OSDN Git Service

Add -m8bit-idiv for x86.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
2
3         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
4
5         * config/i386/i386.c (predict_jump): Add prototype.
6         (flag_opts): Add -m8bit-idiv.
7         (ix86_split_idivmod): New.
8
9         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
10         Add 2 splitters for SI/DI mode divide.
11         (divmod<mode>4_1): New pattern.
12         (udivmod<mode>4_1): Likewise.
13         (testdi_ccno_1): Likewise.
14
15         * config/i386/i386.opt (m8bit-idiv): New.
16
17         * doc/invoke.texi: Document -m8bit-idiv.
18
19 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
20
21         PR bootstrap/45680
22         * config/i386/i386.c (min_insn_size): Moved out of the
23         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
24
25 2010-09-16  Jan Hubicka  <jh@suse.cz>
26
27         * lto-cgraph.c (lto_output_node): Fix handling of clones.
28         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
29         unreachable clones with reachable clones.
30         * tree-inline.c (copy_bb): Fix sanity checking when producing
31         unreachable clone.
32
33 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
34
35         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
36         (TARGET_MEMORY_MOVE_COST): Define.
37         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
38
39 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
40
41         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
42         maybe_tidy_empty_bb.
43
44         Revert:
45         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
46         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
47
48 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
49
50         * target.def (target_option.optimization): New hook.
51         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
52         TARGET_OPTION_OPTIMIZATION hook.
53         * doc/tm.texi: Regenerate.
54         * hooks.c (hook_void_int_int): New.
55         * hooks.h (hook_void_int_int): Declare.
56         * opts.c: Don't include tm_p.h.
57         (decode_options): Use targetm.target_option.optimization instead
58         of OPTIMIZATION_OPTIONS.
59         * system.h (OPTIMIZATION_OPTIONS): Poison.
60         * config/arm/arm-protos.h (arm_optimization_options): Remove.
61         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
62         (arm_optimization_options): Rename to arm_option_optimization.
63         Make static.
64         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
65         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
66         (cris_option_optimization): New.
67         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
68         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
69         (crx_option_optimization): New.
70         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
71         * config/frv/frv-protos.h (frv_optimization_options): Remove.
72         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
73         (frv_optimization_options): Rename to frv_option_optimization.
74         Make static.
75         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
76         * config/h8300/h8300.c (h8300_option_optimization): New.
77         (TARGET_OPTION_OPTIMIZATION): Define.
78         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
79         * config/i386/i386-protos.h (optimization_options): Remove.
80         * config/i386/i386.c (optimization_options): Rename to
81         ix86_option_optimization.  Make static.
82         (TARGET_OPTION_OPTIMIZATION): Define.
83         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
84         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
85         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
86         (ia64_optimization_options): Rename to ia64_option_optimization.
87         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
88         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
89         commented-out definition.
90         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
91         instead of OPTIMIZATION_OPTIONS.
92         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
93         (m32r_option_optimization): New.
94         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
95         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
96         Remove.
97         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
98         (mcore_option_optimization): New.
99         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
100         * config/mep/mep-protos.h (mep_optimization_options): Remove.
101         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
102         (mep_optimization_options): Rename to mep_option_optimization.
103         Make static.  Take unused level and size parameters.
104         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
105         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
106         (mmix_option_optimization): New.
107         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
108         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
109         (pdp11_option_optimization): New.
110         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
111         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
112         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
113         (optimization_options): Rename to rs6000_option_optimization.
114         Make static.
115         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
116         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
117         * config/rx/rx.c (rx_set_optimization_options): Rename to
118         rx_option_optimization.  Make static.  Take unused level and size
119         parameters.
120         (TARGET_OPTION_OPTIMIZATION): Define.
121         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
122         * config/s390/s390-protos.h (optimization_options): Remove.
123         * config/s390/s390.c (optimization_options): Rename to
124         s390_option_optimization.  Make static.  Don't mark size parameter
125         unused.
126         (TARGET_OPTION_OPTIMIZATION): Define.
127         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
128         * config/sh/sh-protos.h (sh_optimization_options): Remove.
129         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
130         (sh_optimization_options): Rename to sh_option_optimization.  Make
131         static.  Don't mark parameters unused.
132         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
133         * config/spu/spu-protos.h (spu_optimization_options): Remove.
134         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
135         (spu_optimization_options): Rename to spu_option_optimization.
136         Make static.
137         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
138         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
139         (v850_option_optimization): New.
140         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
141         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
142         (xtensa_option_optimization): New.
143         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
144
145 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
146
147         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
148         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
149         * doc/tm.texi: Regenerate.
150         * system.h (OVERRIDE_OPTIONS): Poison.
151         * target.def (override): Default to hook_void_void.
152         * targhooks.c (default_target_option_override): Remove.
153         * genmodes.c, machmode.def: Update comments mentioning
154         OVERRIDE_OPTIONS.
155         * config/alpha/alpha-modes.def: Update comment mentioning
156         alpha_override_options.
157         * config/alpha/alpha-protos.h (override_options): Remove.
158         * config/alpha/alpha.c (override_options): Rename to
159         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make
160         static.
161         (TARGET_OPTION_OVERRIDE): Define.
162         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
163         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
164         of OVERRIDE_OPTIONS.
165         * config/arc/arc-protos.h (arc_init): Remove.
166         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
167         (arc_init): Rename to arc_option_override.  Make static.
168         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
169         (OVERRIDE_OPTIONS): Remove.
170         * config/arm/arm-protos.h (arm_override_options): Remove.
171         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
172         (arm_override_options): Rename to arm_option_override.  Make
173         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
174         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
175         * config/arm/arm.md: Update comment referring to
176         arm_override_options.
177         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
178         instead of OVERRIDE_OPTIONS.
179         * config/avr/avr-protos.h (avr_override_options): Remove.
180         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
181         (avr_override_options): Rename to avr_option_override.  Make
182         static.
183         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
184         * config/bfin/bfin-protos.h (override_options): Remove (twice).
185         * config/bfin/bfin.c (override_options): Rename to
186         bfin_option_override.  Make static.
187         (TARGET_OPTION_OVERRIDE): Define.
188         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
189         * config/cris/cris-protos.h (cris_override_options): Remove.
190         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
191         (cris_override_options): Rename to cris_option_override.  Make
192         static.
193         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
194         * config/frv/frv-protos.h (frv_override_options): Remove.
195         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
196         (frv_override_options): Rename to frv_option_override.  Make
197         static.
198         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
199         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
200         * config/h8300/h8300.c (h8300_init_once): Rename to
201         h8300_option_override.  Make static.
202         (TARGET_OPTION_OVERRIDE): Define.
203         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
204         * config/i386/i386-protos.h (override_options): Remove.
205         * config/i386/i386.c (override_options): Rename to
206         ix86_option_override_internal.  Make static.  Comments referring
207         to this function and callers changed.
208         (ix86_option_override): New.
209         (TARGET_OPTION_OVERRIDE): Define.
210         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
211         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update
212         comment.
213         * config/ia64/ia64.c (ia64_file_start): Update comment referring
214         to ia64_override_options.
215         * config/iq2000/iq2000-protos.h (override_options): Remove.
216         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
217         (override_options): Rename to iq2000_option_override.  Make
218         static.
219         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
220         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
221         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
222         (lm32_override_options): Rename to lm32_option_override.  Make
223         static.
224         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
225         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
226         (m32r_option_override): New.
227         (m32r_init): Update comment.
228         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
229         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options):
230         Remove.
231         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
232         (m68hc11_override_options): Rename to m68hc11_option_override.
233         Make static.  Return void.
234         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
235         * config/m68k/m68k-protos.h (override_options): Remove.
236         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
237         (override_options): Rename to m68k_option_override.  Make static.
238         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
239         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
240         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
241         (mcore_override_options): Rename to mcore_option_override.  Make
242         static.
243         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
244         * config/mep/mep-protos.h (mep_override_options): Remove.
245         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
246         (mep_override_options): Rename to mep_option_override.  Make
247         static.
248         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
249         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
250         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
251         (mmix_override_options): Rename to mmix_option_override.  Make
252         static.
253         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
254         * config/mn10300/mn10300-protos.h (mn10300_override_options):
255         Remove.
256         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
257         (mn10300_override_options): Rename to mn10300_option_override.
258         Make static.
259         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
260         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
261         * config/moxie/moxie.c (moxie_override_options): Rename to
262         moxie_option_override.  Make static.
263         (TARGET_OPTION_OVERRIDE): Define.
264         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
265         * config/picochip/picochip-protos.h (picochip_override_options):
266         Remove.  Update comment referring to picochip_override_options.
267         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
268         (picochip_override_options): Rename to picochip_option_override.
269         Make static.  Update comment and definition of
270         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
271         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
272         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update
273         comment.
274         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update
275         comment.
276         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update
277         comment.
278         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update
279         comment.
280         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update
281         comment.
282         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
283         instead of OVERRIDE_OPTIONS.
284         * config/rs6000/rs6000-modes.def: Update comment referring to
285         rs6000_override_options.
286         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
287         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
288         (rs6000_override_options): Rename to
289         rs6000_option_override_internal.  Make static.  Commented
290         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
291         (rs6000_option_override): New.
292         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
293         instead of OVERRIDE_OPTIONS.
294         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update
295         comment.
296         * config/s390/s390-protos.h (override_options): Remove.
297         * config/s390/s390.c (override_options): Rename to
298         s390_option_override.  Make static.
299         (TARGET_OPTION_OVERRIDE): Define.
300         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
301         * config/score/score-protos.h (score_override_options): Remove.
302         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
303         (score_override_options): Rename to score_option_override.  Make
304         static.
305         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
306         Update comment referring to override_options.
307         * config/score/score3.c (score3_override_options): Rename to
308         score3_option_override.
309         * config/score/score3.h (score3_override_options): Rename to
310         score3_option_override.
311         * config/score/score7.c (score7_override_options): Rename to
312         score7_option_override.
313         * config/score/score7.h (score7_override_options): Rename to
314         score7_option_override.
315         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
316         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
317         (sparc_override_options): Rename to sparc_option_override.  Make
318         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
319         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
320         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
321         instead of OVERRIDE_OPTIONS.
322         * config/spu/spu-protos.h (spu_override_options): Remove.
323         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
324         (spu_override_options): Rename to spu_option_override.  Make
325         static.
326         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
327         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
328         OVERRIDE_OPTIONS.
329         * config/vax/vax-protos.h (override_options): Remove.
330         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
331         (override_options): Rename to vax_option_override.  Make static.
332         Call SUBTARGET_OVERRIDE_OPTIONS.
333         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
334         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
335         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
336         * config/xtensa/xtensa-protos.h (override_options): Remove.
337         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
338         (override_options): Rename to xtensa_option_override.  Make
339         static.
340         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
341
342 2010-09-16  Richard Guenther  <rguenther@suse.de>
343
344         PR tree-optimization/45623
345         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
346         (get_constraint_for_component_ref): If computing a constraint
347         for the rhs handle type punning through unions.
348         (get_constraint_for_address_of): Adjust.
349         (get_constraint_for_1): Likewise.
350         (get_constraint_for): Likewise.
351         (get_constraint_for_rhs): New function.
352         (do_structure_copy): Adjust.
353         (make_constraint_to): Likewise.
354         (handle_const_call): Likewise.
355         (find_func_aliases): Likewise.
356         (process_ipa_clobber): Likewise.
357         (create_variable_info_for): Likewise.
358
359 2010-09-16  Ira Rosen  <irar@il.ibm.com>
360
361         * tree-vectorizer.c: Fix documentation.
362         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
363         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
364         is_pattern_stmt_p, is_loop_header_bb_p,
365         stmt_vinfo_set_inside_of_loop_cost,
366         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
367         known_alignment_for_access_p): Likewise.
368         * tree-vect-loop.c: Fix documentation.
369         (vect_get_cost): Start function name from new line.
370         * tree-vect-data-refs.c: Fix documentation.
371         * tree-vect_stmts.c: Likewise.
372         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
373         (vectorizable_store): Free vec_oprnds if allocated.
374         (vectorizable_condition): Initialize several variables to avoid
375         warnings.
376         * tree-vect-slp.c: Fix documentation.
377
378 2010-09-16  Richard Guenther  <rguenther@suse.de>
379
380         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
381         is TS_TRANSLATION_UNIT_DECL.
382         (initialize_tree_contains_struct): Adjust.
383         (all_translation_units): New global vector.
384         (build_translation_unit_decl): New function.
385         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
386         (struct tree_translation_unit_decl): New.
387         (all_translation_units): Declare.
388         (union tree_node): Add translation_unit_decl member.
389         (build_translation_unit_decl): Declare.
390         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
391         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
392         New function.
393         (pack_value_fields): Call it.
394         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
395         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
396         (lto_output_tree_pointers): Call it.
397         * lto-streamer-in.c (lto_input_tree_ref): Handle references
398         to TRANSLATION_UNIT_DECL.
399         (unpack_ts_translation_unit_decl_value_fields): New function.
400         (unpack_value_fields): Call it.
401         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
402         (lto_input_tree_pointers): Call it.
403         * lto-streamer.c (check_handled_ts_structures): Adjust.
404         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
405         * c-decl.c (all_translation_units): Remove.
406         (pop_scope): Use build_translation_unit_decl.
407         (collect_all_refs): Adjust.
408         (for_each_global_decl): Likewise.
409         (c_write_global_declarations): Likewise.
410
411 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
412
413         PR bootstrap/45686
414         * fold-const.c (fold_checksum_tree): Change slot from const void **
415         to void **, use CONST_CAST_TREE to store into *slot.
416
417 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
418
419         * config/i386/i386.md: Remove unneeded empty conditions and
420         preparation statements from expanders.
421         * config/i386/mmx.md: Ditto.
422         * config/i386/sse.md: Ditto.
423
424 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
425
426         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
427
428 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
429
430         PR rtl-optimization/45593
431         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
432         insns that were in delay slots as stand-alone insns.
433
434 2010-09-15  Ian Lance Taylor  <iant@google.com>
435
436         * incpath.c (remove_duplicates): If name is not a directory, issue
437         a warning rather than an error.
438
439 2010-09-15  Martin Jambor  <mjambor@suse.cz>
440
441         PR middle-end/45644
442         * tree-sra.c (create_access): Check for bit-fields directly.
443
444 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
445
446         PR tree-optimization/45633
447         * tree-cfg.c (verify_gimple_assign_binary): Allow
448         MINUS_EXPR with lhs and rhs1 pointer vector and
449         rhs2 sizetype vector.
450         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
451         or vector pointer use TER to optimize pointer subtraction.
452
453 2010-09-15  Jie Zhang  <jie@codesourcery.com>
454
455         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
456         fcmpd to fcmps.
457
458 2010-09-15  Ian Lance Taylor  <iant@google.com>
459
460         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
461
462 2010-09-15  Ian Lance Taylor  <iant@google.com>
463
464         * function.c (get_arg_pointer_save_area): Set
465         arg_pointer_save_area_init to true.
466
467 2010-09-15  Martin Jambor  <mjambor@suse.cz>
468
469         * tree-sra.c (generate_subtree_copies): Updated comment.
470         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
471         obtained from the statement iterator instead.
472         (load_assign_lhs_subreplacements): Removed parameters lhs and
473         right_offset, which is obtained from top_racc instead.  Parameter lacc
474         is now expected to be the root of the processed tree rather than root's
475         first child.  Updated all callers.
476
477 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
478
479         * config/pdp11/pdp11.c (register_move_cost): Rename to
480         pdp11_register_move_cost.
481         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
482         pdp11_register_move_cost.
483         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
484         pdp11_register_move_cost instead of register_move_cost.
485
486 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
487
488         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
489         pattern for vmovn. Expansion in case of non 
490         -mvectorize-with-neon-quad.
491         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
492         non- -mvectorize-with-neon-quad case.
493         (move_lo_quad_<mode>): New expansion to vmov into low part.
494         (move_hi_quad_<mode>): New expansion to vmov into high part.
495         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
496         (move_lo_quad_v4sf): Likewise.
497         (move_lo_quad_v8hi): Likewise.
498         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
499         low part.
500         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
501         high part.
502         * config/arm/iterators.md (ANY128): New mode iterator.
503         (V_narrow_pack): New mode attribute.
504         (V_HALF): Add attribute.
505         (V_DOUBLE): Add attribute.
506         (V_mode_nunits): Add attribute.
507
508 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
509
510         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
511         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
512
513 2010-09-15  Olivier Hainque  <hainque@adacore.com>
514             Jose Ruiz  <ruiz@adacore.com>
515
516         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
517         * config/alpha/osf5-unwind.h: New file.
518
519 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
520
521         PR bootstrap/45672
522         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
523         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
524         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
525
526 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
527
528         * c-lang.h (struct lang_type): Add variable_size GTY option.
529
530 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
531
532         PR bootstrap/45672
533         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
534
535 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
536
537         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
538         result isn't used in memory address.
539
540 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
541
542         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
543         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
544         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
545         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
546         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
547         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
548
549         * target.def: Add units_per_simd_word to vectorize.
550
551         * targhooks.c (default_units_per_simd_word): New.
552         * targhooks.h (default_units_per_simd_word): Likewise.
553         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
554         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
555         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
556         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
557         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
558         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
559         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
560         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
561
562         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
563         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
564
565         * tree-vect-stmts.c: Don't include "tm_p.h".
566         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
567         with targetm.vectorize.units_per_simd_word.
568
569         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
570
571         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
572
573         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
574         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
575
576         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
577         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
578
579         * doc/tm.texi: Regenerated.
580
581 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
582
583         * tree-vect-stmts.c: Include "tm_p.h".
584
585         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
586         out of RTX_CODE.
587
588 2010-09-14  Martin Jambor  <mjambor@suse.cz>
589
590         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
591         location of generated statement.  Changed all callers.
592         (build_ref_for_model): New parameter loc which used to set location of
593         all generated expressions.  Changed all callers.
594         (generate_subtree_copies): Likewise.
595         (init_subtree_with_zero): Likewise.
596         (sra_modify_expr): Set locations of all generated statements and
597         expressions to the location the original statement.
598         (handle_unscalarized_data_in_subtree): Likewise.
599         (load_assign_lhs_subreplacements): Likewise.
600         (sra_modify_constructor_assign): Likewise.
601         (sra_modify_assign): Likewise.
602
603 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
604
605         PR target/45277
606         PR target/45363
607         PR target/45407
608         * doc/install.texi (sparc*-*-*): New section.
609         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
610
611 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
612
613         PR middle-end/45567
614         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
615         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
616         (expand_builtin): Adjust caller.
617         (expand_builtin_unop): Only use subtarget if it has the right mode.
618
619 2010-09-14  Tristan Gingold  <gingold@adacore.com>
620
621         * configure.ac (plugins): Fix typos.
622         * configure: Regenerate.
623
624 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
625
626         PR debug/45660
627         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
628         gen_type_die for function/method return type.
629
630 2010-09-14  Ira Rosen  <irar@il.ibm.com>
631
632         PR tree-optimization/45470
633         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
634         can throw an exception.
635         * tree-vect-stmts.c (vectorizable_call): Likewise.
636
637 2010-09-14  DJ Delorie  <dj@redhat.com>
638
639         PR target/44749
640         * config/mep/mep-protos.h (mep_save_register_info,
641         mep_reinit_regs, mep_init_regs): Declare.
642
643         * config/mep/mep.c: Move all target definitions to the end of the
644         file to avoid the need for duplicate declarations.
645         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
646         (mep_reorg_erepeat): Remove unused variables.
647         (mep_expand_builtin): Likewise.
648
649         * config/mep/mep-pragma.c: Don't include rtl.h.
650         (INVALID_REGNUM): New.
651         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
652         functions.
653         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
654         Avoid enum/integer math.
655
656 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
657
658         PR target/44749
659         * config/mep/t-mep (GTM_H): Add insn-constants.h.
660         * config/mep/mep.c (mep_conditional_register_usage): Take no
661         parameters.
662         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
663         prototype.
664         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
665         call to mep_conditional_register_usage.
666
667 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
668
669         PR debug/43937
670         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
671         the DECL as well.
672
673 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
674
675         PR rtl-optimization/45617
676         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
677         even if low N bits of X aren't known to be zero.
678
679 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
680
681         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
682
683         * config/i386/i386.c (initial_ix86_tune_features): Add
684         X86_TUNE_VECTORIZE_DOUBLE.
685         (ix86_units_per_simd_word): New.
686
687         * config/i386/i386.h (ix86_tune_indices): Add
688         X86_TUNE_VECTORIZE_DOUBLE.
689         (TARGET_VECTORIZE_DOUBLE): New.
690         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
691
692 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
693
694         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
695         (new_temp_expr_table): Allocate call_cnt vector.
696         (free_temp_expr_table): Free it.
697         (process_replaceable): Add call_cnt parm and set in vector.
698         (find_replaceable_in_bb): Skip replacement if def/use span a call.
699         (debug_ter): Dump call_cnt value, remove stderr uses.
700
701 2010-09-13  Jan Hubicka  <jh@suse.cz>
702
703         * tree.c (build_zero_cst): New.
704         * tree.h (build_zero_cst): Declare.
705         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
706         (get_base_constructor): Break out from ...
707         (fold_const_aggregate_ref): Here; handle empty constructors.
708
709 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
710
711         * config/arm/arm.md: (define_attr "conds"): Update comment.
712         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
713         conds attribute to clob.
714         (arm_sync_compare_and_swapsi): Likewise.
715         (arm_sync_compare_and_swap<mode>): Likewise.
716         (arm_sync_lock_test_and_setsi): Likewise.
717         (arm_sync_lock_test_and_set<mode>): Likewise.
718         (arm_sync_new_<sync_optab>si): Likewise.
719         (arm_sync_new_nandsi): Likewise.
720         (arm_sync_new_<sync_optab><mode>): Likewise.
721         (arm_sync_new_nand<mode>): Likewise.
722         (arm_sync_old_<sync_optab>si): Likewise.
723         (arm_sync_old_nandsi): Likewise.
724         (arm_sync_old_<sync_optab><mode>): Likewise.
725         (arm_sync_old_nand<mode>): Likewise.
726
727 2010-09-13  Olivier Hainque  <hainque@adacore.com>
728
729         * fwprop.c (forward_propagate_and_simplify): Only attach a
730         REG_EQUAL note to an insn if the destination is a register.
731         * gcse.c (try_replace_reg): Likewise.
732
733 2010-09-13  Richard Guenther  <rguenther@suse.de>
734
735         PR tree-optimization/45611
736         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
737         (copy_ref_info): Likewise.
738
739 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
740
741         PR debug/45604
742         PR debug/45419
743         PR debug/45408
744         * tree-pretty-print.c (dump_generic_node): Disregard top-level
745         types of MEM_REF pointer types to the same type.
746
747 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
748
749         PR rtl-optimization/41087
750         * ifcvt.c (noce_get_condition): Don't allow conditions with
751         side-effects.
752
753 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
754
755         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
756         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
757         * config/frv/frv.c (frv_register_move_cost): Make static. Change
758         arguments type to reg_class_t. Add mode argument.
759         (frv_memory_move_cost): New.
760         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
761
762 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
763
764         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
765         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
766
767 2010-09-10  Jan Hubicka  <jh@suse.cz>
768
769         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
770
771 2010-09-10  Richard Guenther  <rguenther@suse.de>
772
773         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
774         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
775         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
776         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
777         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
778
779 2010-09-10  Richard Guenther  <rguenther@suse.de>
780
781         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
782         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
783         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
784         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
785
786 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
787
788         PR middle-end/45634
789         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
790         of string folding is of integral type.
791
792 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
793
794         * doc/invoke.texi (-x): Fix typo.
795
796 2010-09-10  Richard Guenther  <rguenther@suse.de>
797
798         PR debug/44115
799         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
800         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
801         Output DECL_DEBUG_EXPR.
802         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
803         Input DECL_DEBUG_EXPR.
804
805 2010-09-10  Richard Guenther  <rguenther@suse.de>
806
807         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
808         (build_index_type): Implement in terms of build_range_type.
809         (build_range_type): Do not allow NULL_TREE type, improve
810         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
811         if we didn't hash.
812         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
813         create a distinct copy of the type.
814
815 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
816
817         * configure: Regenerated.
818         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
819
820 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
821
822         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
823         * config/arm/cortex-a9-neon.md: New and partially generated.
824         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
825
826 2010-09-10  Richard Guenther  <rguenther@suse.de>
827
828         * tree.h (build_index_2_type): Remove.
829         * tree.c (build_index_2_type): Remove.
830
831 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
832
833         PR bootstrap/45630
834         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
835         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
836         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
837
838 2010-09-10  Martin Jambor  <mjambor@suse.cz>
839
840         PR tree-optimization/44972
841         * tree-sra.c: Include toplev.h.
842         (build_ref_for_offset): Entirely reimplemented.
843         (build_ref_for_model): New function.
844         (build_user_friendly_ref_for_offset): New function.
845         (analyze_access_subtree): Removed build_ref_for_offset check.
846         (propagate_subaccesses_across_link): Likewise.
847         (create_artificial_child_access): Use
848         build_user_friendly_ref_for_offset.
849         (propagate_subaccesses_across_link): Likewise.
850         (ref_expr_for_all_replacements_p): Removed.
851         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
852         (sra_modify_expr): Use build_ref_for_model.
853         (load_assign_lhs_subreplacements): Likewise.
854         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
855         checks for return values of build_ref_for_offset.
856         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
857         build_ref_for_offset.
858         * ipa-prop.h: Include gimple.h
859         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
860         (ipa_analyze_indirect_call_uses): Update comment.
861         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
862         (IPA_PROP_H): Likewise.
863
864 2010-09-10  Martin Jambor  <mjambor@suse.cz>
865
866         PR tree-optimization/44972
867         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
868         calling build_ref_for_offset.
869
870 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
871
872         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
873         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
874         * config/arm/arm-tune.md: Regenerate.
875         * doc/invoke.texi (ARM Options): Document it.
876
877 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
878
879         * config/i386/i386.c: Include sched-int.h.
880         (TARGET_SCHED_DISPATCH): Defined.
881         (TARGET_SCHED_DISPATCH_DO): Defined.
882         (DISPATCH_WINDOW_SIZE): Defined.
883         (MAX_DISPATCH_WINDOWS): Defined.
884         (MAX_INSN): Defined.
885         (MAX_IMM): Defined.
886         (MAX_IMM_SIZE): Defined.
887         (MAX_IMM_32): Defined.
888         (MAX_IMM_64): Defined.
889         (MAX_LOAD): Defined.
890         (MAX_STORE): Defined.
891         (BIG): Defined.
892         (dispatch_group): New.
893         (num_allowable_groups): New.
894         (group_name): New.
895         (sched_insn_info_s): New.
896         (dispatch_windows_s): New.
897         (imm_info_s): New.
898         (dispatch_window_list): New.
899         (dispatch_window_list1): New.
900         (get_mem_group): New.
901         (is_cmp): New.
902         (dispatch_violation): New.
903         (is_branch): New.
904         (is_prefetch): New.
905         (init_window): New.
906         (allocate_window): New.
907         (init_dispatch_sched): New.
908         (is_end_basic_block): New.
909         (process_end_window): New.
910         (allocate_next_window): New.
911         (find_constant_1): New.
912         (find_constant): New.
913         (get_num_immediates): New.
914         (has_immediate): New.
915         (get_insn_path): New.
916         (get_insn_group): New.
917         (count_num_restricted): New.
918         (fits_dispatch_window): New.
919         (add_insn_window): New.
920         (add_to_dispatch_window): New.
921         (debug_dispatch_window_file): New.
922         (debug_dispatch_window): New.
923         (debug_insn_dispatch_info_file): New.
924         (debug_ready_dispatch): New.
925         (do_dispatch): New.
926         (has_dispatch): New.
927         * config/i386/i386.h (debug_ready_dispatch): Declared.
928         (debug_dispatch_window): Declared.
929         * config/i386/i386.opt (mdispatch-scheduler): New flag.
930         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
931         (TARGET_SCHED_DISPATCH_DO): New.
932         * doc/tm.texi: Regererated.
933         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
934         ready_remove_first_dispatch
935         (schedule_block): Call targetm.sched.dispatch and
936         targetm.sched.dispatch_do.
937         (sched_init): Call targetm.sched.dispatch and
938         targetm.sched.dispatch_do.
939         (ready_remove_first_dispatch): New.
940         (number_in_ready): New.
941         (get_ready_element): New.
942         * hooks.c (hook_bool_rtx_int_false): New.
943         (hook_void_rtx_int): New.
944         * hooks.h (hook_bool_rtx_int_false): Declared.
945         (hook_void_rtx_int): Declared.
946         * sched-int.h (IS_DISPATCH_ON): Defined.
947         (IS_CMP): Defined.
948         (DISPATCH_VIOLATION): Defined.
949         (FITS_DISPATCH_WINDOW): Defined.
950         (DISPATCH_INIT): Defined.
951         (ADD_TO_DISPATCH_WINDOW): Defined.
952         (get_ready_element): Declared.
953         (number_in_ready): Declared.
954         * target.def (dispatch): Defined.
955         (dispatch_do): Defined.
956
957 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
958
959         PR middle-end/45312
960         * reload1.c (merge_assigned_reloads): Remove.
961         (reload_as_needed): Don't call it.
962
963 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
964
965         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
966         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
967         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
968
969 2010-09-09  Matthias Klose  <doko@ubuntu.com>
970
971         PR bootstrap/43847
972         * configure.ac (--enable-plugin): Enhance for cross builds.
973         * configure: Regenerate.
974
975 2010-09-09  Jan Hubicka  <jh@suse.cz>
976
977         PR tree-optimization/45598
978         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
979         string folding is of integral type.
980
981 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
982
983         * configure.ac (gnu_indirect_function): New test.
984         * configure: Rebuilt.
985         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
986         * defaults.h (IFUNC_ASM_TYPE): Provide default.
987
988         * doc/extend.texi (Function Attributes): Document ifunc.
989         * varasm.c (do_assemble_alias): Deal with ifuncs too.
990
991 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
992
993         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
994         epilogue instruction move.
995
996 2010-09-09  Jan Hubicka  <jh@suse.cz>
997
998         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
999         command line to allow more partitions than input files.
1000
1001 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1002
1003         PR middle-end/44554
1004         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1005
1006 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1007
1008         PR middle-end/40386
1009         * ira.c (pseudo_for_reload_consideration_p): Don't use
1010         flag_ira_share_spill_slots.
1011
1012 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1013
1014         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1015         point zero operands that fit into a single GPR.
1016         (s390_preferred_reload_class): Ensure we only return general-purpose
1017         register classes.
1018         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1019         floating-point zero operands into GPRs.
1020         ("*mov<mode>_64"): Likewise.
1021         ("mov<mode>"): Likewise using lhi.
1022
1023 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1024
1025         * config/s390/s390.c (s390_symref_operand_p): Return false for
1026         literal pool references.
1027         (s390_check_qrst_address): Update caller.
1028
1029 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
1030
1031         * config/i386/predicates.md (ext_register_operand): Check that
1032         SUBREG_REG is really a register before looking for REGNO.
1033         (reg_not_xmm0_operand): Handle SUBREGs correctly.
1034         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1035
1036 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
1037
1038         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1039         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1040         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1041         * print-rtl.c (print_rtx): Likewise.
1042         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1043         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1044         for ADDR_EXPR with non-addressable object.
1045         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1046         (struct dw_val_struct): Add v.val_decl_ref.
1047         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1048         Handle DW_OP_GNU_implicit_pointer.
1049         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
1050         (get_ref_die_offset_label): New function.
1051         (implicit_ptr_descriptor): New function.
1052         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1053         (loc_descriptor): Likewise.
1054         (gen_variable_die): Put even definitions into decl_die_table.
1055         (resolve_addr_in_expr): Resolve still unresolved
1056         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1057         return false.
1058         (dwarf2out_finish): Call output_location_lists after outputting
1059         .debug_info and .debug_abbrev instead of before.
1060
1061 2010-09-09  Roland McGrath  <roland@redhat.com>
1062
1063         * dwarf2out.c (DWARF_REF_SIZE): Define.
1064         (size_of_loc_descr): Use it for DW_OP_call_ref.
1065
1066 2010-09-09  Alan Modra  <amodra@gmail.com>
1067
1068         * doc/invoke.text: Reinstate mcmodel=medium.
1069         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1070         CMODEL_MEDIUM as default.
1071         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1072         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1073         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1074         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1075
1076 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1077
1078         PR target/45250
1079         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1080         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1081         (builtin_longjmp): Likewise.
1082         (allocate_stack): Use hard_frame_pointer_rtx instead of
1083         frame_pointer_rtx.
1084         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1085         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1086         (pa_can_eliminate): Likewise.
1087         (TARGET_INTERNAL_ARG_POINTER): Define.
1088         (TARGET_CAN_ELIMINATE): Define.
1089         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1090         pointer.
1091         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1092         (pa_internal_arg_pointer, pa_can_eliminate,
1093         pa_initial_elimination_offset): New.
1094         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1095         (HARD_FRAME_POINTER_REGNUM): Set to register three.
1096         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1097         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1098         Define.
1099         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1100         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1101         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1102         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1103         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1104         new soft frame pointer.
1105         * config/pa/pa64-regs.h: Likewise.
1106
1107 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1108
1109         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1110         numerical constant.
1111         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1112
1113 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1114
1115         PR debug/45531
1116         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1117
1118 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1119
1120         PR debug/45419
1121         PR debug/45408
1122         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1123         qualifiers in otherwise equal MEM_REF pointer types.
1124         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1125         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1126
1127 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1128
1129         PR target/44392
1130         * config/arm/arm.md (bswapsi2): Handle condition correctly
1131         for armv6 and optimize_size.
1132
1133 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1134
1135         PR other/18555
1136         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1137
1138 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1139
1140         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1141         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1142         ix86_expand_strlen, legitimate_pic_address_disp_p,
1143         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1144         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1145         ix86_check_movabs, ix86_secondary_memory_needed): Change function
1146         prototype to bool.
1147         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1148         return_in_memory_ms_64, ix86_check_movabs,
1149         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1150         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1151         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1152         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1153         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1154         ix86_secondary_memory_needed): Change to bool.  Return
1155         "true" and "false" values.
1156         * config/i386/i386.md: Return "true" and "false" values.
1157
1158 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1159
1160         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1161         run_expensive_tests.
1162
1163 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1164
1165         * toplev.c (output_stack_usage): Use lbasename instead of basename.
1166
1167 2010-09-08  Martin Jambor  <mjambor@suse.cz>
1168
1169         PR other/45443
1170         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1171         at -O3.
1172
1173 2010-09-08  Richard Guenther  <rguenther@suse.de>
1174
1175         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1176         (visit): Adjust.
1177         (iterative_hash_gimple_type): Likewise.
1178         (gimple_type_hash): Likewise.
1179         (gimple_register_type): Likewise.
1180         (print_gimple_types_stats): Likewise.
1181         (free_gimple_type_tables): Likewise.
1182
1183 2010-09-08  Michael Matz  <matz@suse.de>
1184
1185         PR tree-optimization/43430
1186         * tree-vect-stmts.c (vectorizable_condition): Support multiple
1187         copies for conditional statements if it's not part of a reduction.
1188
1189 2010-09-08  Michael Matz  <matz@suse.de>
1190
1191         PR tree-optimization/33244
1192         * tree-ssa-sink.c (statement_sink_location): Don't sink into
1193         empty loop latches.
1194
1195 2010-09-08  Richard Guenther  <rguenther@suse.de>
1196
1197         PR tree-optimization/45578
1198         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1199         Be more careful when transfering alignment information to
1200         the new induction variable.
1201         (copy_ref_info): Likewise.
1202
1203 2010-09-08  Richard Guenther  <rguenther@suse.de>
1204
1205         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1206         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1207
1208 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
1209
1210         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1211         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1212
1213 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
1214
1215         PR doc/45587
1216         * doc/md.texi: Fixed modes on several standard pattern names.
1217
1218 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
1219
1220         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1221         (ashl<mode>3): ...this.
1222         (loongson_psra<V_suffix>): Rename to...
1223         (ashr<mode>3): ...this.
1224         (loongson_psrl<V_suffix>): Rename to...
1225         (lshr<mode>3): ...this.
1226         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1227         (CODE_FOR_loongson_psllw): Define.
1228         (CODE_FOR_loongson_psrlh): Define.
1229         (CODE_FOR_loongson_psrlw): Define.
1230         (CODE_FOR_loongson_psrah): Define.
1231         (CODE_FOR_loongson_psraw): Define.
1232
1233 2010-09-07  Richard Henderson  <rth@redhat.com>
1234
1235         * tree-vect-data-refs.c: Include tm_p.h.
1236         * Makefile.in (tree-vect-data-refs.o): Update deps.
1237         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1238         Move delarations outside #ifdef RTX_CODE.
1239
1240 2010-09-07  Richard Henderson  <rth@redhat.com>
1241
1242         * final.c (rest_of_handle_final): Unconditionally do
1243         output_function_exception_table before assemble_end_function.
1244
1245 2010-09-07  Jan Hubicka  <jh@suse.cz>
1246
1247         * tree-inline.c (tree_inlinable_function_p): Do not test
1248         DECL_REPLACEABLE_P.
1249         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1250         update_callee_keys, cgraph_decide_inlining): Test function availability.
1251         * cif-code.def (OVERWRITABLE): New code.
1252
1253 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
1254             Jack Howarth <howarth@bromo.med.uc.edu>
1255
1256         PR target/36502
1257         PR target/42313
1258         PR target/44651
1259         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1260         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1261         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1262         MAX macro.
1263
1264 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1265
1266         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1267         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1268
1269 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1270
1271         * config.gcc: Don't append t-android for Android targets.
1272
1273         * config/t-android: Removed.
1274
1275 2010-09-07  Richard Henderson  <rth@redhat.com>
1276
1277         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1278         * doc/tm.texi.in: Add doc marker.
1279         * doc/tm.texi: Rebuild.
1280         * except.c (switch_to_exception_section): Always build.
1281         (output_one_function_exception_table): Move section switch,
1282         personality output, and label output ...
1283         (output_function_exception_table): ... here.  Use the new
1284         personality hook.
1285
1286         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1287         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1288         TARGET_ASM_INIT_SECTIONS): New.
1289         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1290         make static.
1291         (TARGET_ASM_UNWIND_EMIT): Update to match.
1292         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1293
1294         * config/arm/arm.c (arm_asm_emit_except_personality): New.
1295         (arm_asm_init_sections): New.
1296         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1297
1298 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1299
1300         * config/arm/arm.md: Remove unused variable.
1301
1302 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
1303
1304         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1305         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1306         (m32r_memory_move_cost): New function.
1307
1308 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1309
1310         * config.gcc: Append t-android for Android targets.
1311
1312         * config/t-android: New.
1313
1314 2010-09-07  Richard Henderson  <rth@redhat.com>
1315
1316         * target.def (unwind_emit_before_insn): New hook.
1317         * doc/tm.texi.in: Add @hook marker for it.
1318         * doc/tm.texi: Rebuild.
1319         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1320
1321 2010-09-07  Martin Jambor  <mjambor@suse.cz>
1322
1323         PR fortran/43665
1324         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1325         are any type attributes.
1326
1327 2010-09-07  Jan Hubicka  <jh@suse.cz>
1328
1329         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1330         array_ref_low_bound in string access folding.
1331
1332 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
1333
1334         PR target/45206
1335         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1336         eh_return fixup sequence.
1337
1338 2010-09-07  Jan Hubicka  <jh@suse.cz>
1339
1340         * gimple-fold.c (maybe_fold_reference): Verify that operand is
1341         gimple_min_invariant.
1342
1343 2010-09-07  Richard Guenther  <rguenther@suse.de>
1344
1345         PR middle-end/45569
1346         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1347         nor CONSTRUCTOR can trap.
1348         * tree-complex.c (update_complex_assignment): Update EH info.
1349
1350 2010-09-07  Richard Guenther  <rguenther@suse.de>
1351
1352         PR middle-end/45569
1353         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1354         * passes.c (execute_function_todo): Do not verify anything if
1355         we saw errors.
1356
1357 2010-09-07  Richard Guenther  <rguenther@suse.de>
1358
1359         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1360
1361 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1362
1363         PR target/43137
1364         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1365         New define_mode_attrs.
1366         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1367         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1368         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1369         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1370         Remove pool_range attribute.
1371         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1372         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1373         pool_range and neg_pool_range attributes.
1374         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1375         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1376         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1377
1378 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1379
1380         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1381         check glibc.
1382
1383 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1384
1385         PR target/22152
1386         * config/i386/mmx.md (*mov<mode>_internal_rex64,
1387         *mov<mode>_internal_avx, *mov<mode>_internal,
1388         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1389         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1390
1391 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
1392
1393         * c-typeck.c (do_warn_double_promotion): Remove.
1394         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1395         Objective-C++ too.
1396
1397 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
1398
1399         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1400         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1401         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1402         argument type to reg_class_t. Change result type to bool.
1403         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1404
1405 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1406
1407         PR libobjc/19850
1408         * gthr-posix.h (__gthread_objc_thread_detach): Use
1409         _objc_thread_attribs when detaching a thread.
1410         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1411
1412 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1413
1414         PR target/45524
1415         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
1416         * configure: Regenerated.
1417
1418 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1419
1420         * combine.c (try_combine): Set subst_low_luid to i0.
1421
1422 2010-09-06  Richard Guenther  <rguenther@suse.de>
1423
1424         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
1425         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
1426         (build_aligned_type): Declare.
1427         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
1428         (check_aligned_type): New function.
1429         (build_aligned_type): Likewise.
1430         * expr.c (expand_assignment): Handle misaligned stores via
1431         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1432         (expand_expr_real_1): Likewise.
1433         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1434         * tree-vect-stmts.c (vectorizable_store): Do not build
1435         MISALIGNED_INDIRECT_REF but initialize alignment information.
1436         (vectorizable_load): Likewise.
1437         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1438         handling.
1439         * cfgexpand.c (expand_debug_expr): Likewise.
1440         * dwarf2out.c (loc_list_from_tree): Likewise.
1441         * fold-const.c (maybe_lvalue_p): Likewise.
1442         (operand_equal_p): Likewise.
1443         (build_fold_addr_expr_with_type_loc): Likewise.
1444         * gimplify.c (gimplify_addr_expr): Likewise.
1445         (gimplify_expr): Likewise.
1446         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1447         (verify_gimple_assign_single): Likewise.
1448         * tree-dump.c (dequeue_and_dump): Likewise.
1449         (tree_could_trap_p): Likewise.
1450         * tree-predcom.c (ref_at_iteration): Likewise.
1451         * tree-pretty-print.c (dump_generic_node): Likewise.
1452         (op_code_prio): Likewise.
1453         (op_symbol_code): Likewise.
1454         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1455         * tree-ssa-loop-im.c (for_each_index): Likewise.
1456         (gen_lsm_tmp_name): Likewise.
1457         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1458         (find_interesting_uses_address): Likewise.
1459         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1460         * tree-ssa-operands.c (get_expr_operands): Likewise.
1461         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1462         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1463         (ao_ref_init_from_vn_reference): Likewise.
1464         * tree.c (staticp): Likewise.
1465         (build1_stat): Likewise.
1466         (reference_alias_ptr_type): Likewise.
1467         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1468         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1469         MISALIGNED_INDIRECT_REF handling.
1470
1471 2010-09-06  Richard Guenther  <rguenther@suse.de>
1472
1473         PR tree-optimization/45534
1474         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1475         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1476         on the target.
1477         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1478         valid on the target.
1479
1480 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1481
1482         * configure.ac: Quote argument of AC_MSG_WARN.
1483         * configure: Regenerate.
1484
1485 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1486
1487         * sel-sched.c (move_cond_jump): Correct arguments to
1488         maybe_tidy_empty_bb.
1489         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1490
1491 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1492
1493         PR rtl-optimization/44919
1494         * sel-sched.c (move_cond_jump): Remove assert, check that
1495         the several blocks case can only happen with mutually exclusive
1496         insns instead.  Rewrite the movement code to support moving through
1497         several basic blocks.
1498
1499 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1500
1501         * config/i386/i386.md (iptrsize): New mode attribute.
1502         (tp_seg): Ditto.
1503         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1504         mode iterator.
1505         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1506         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1507         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1508         (stack_tls_protect_set_<mode>): Ditto from
1509         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1510         of thread base pointer load.
1511         (stack_tls_protect_test_<mode>): Ditto from
1512         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1513         of thread base pointer load.
1514         (stack_protect_set): Rewrite using indirect functions.
1515         (stack_protect_test): Ditto.
1516         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1517         (ix86_print_operand): Handle '@'.
1518
1519 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1520
1521         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1522         MINUS_EXPR.
1523
1524 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1525
1526         * doc/invoke.texi: Document -Wdouble-promotion.
1527         * c-typeck.c (convert_arguments): Check for implicit conversions
1528         from float to double.
1529         (do_warn_double_promotion): New function.
1530         (build_conditional_expr): Use it.
1531         (build_binary_op): Likewise.
1532
1533 2010-09-05  Richard Guenther  <rguenther@suse.de>
1534
1535         PR tree-optimization/45535
1536         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1537         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1538         dereferencing it.
1539         (indirect_refs_may_alias_p): Likewise.
1540
1541 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1542
1543         * config/sh/sh.c (sh_option_override): Make static.
1544         Adjust comments.  Declare.
1545         (sh_function_value_regno_p): Likewise.
1546         (sh_register_move_cost): Modify the arguments, make static.
1547         Adjust comments.  Declare.
1548         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1549         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1550         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1551         REGISTER_MOVE_COST): Delete.
1552         * config/sh/sh-protos.h (sh_override_options): Delete.
1553         (sh_register_move_cost): Delete.
1554         (sh_function_value_regno_p): Delete.
1555
1556 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1557
1558         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1559         m32r_function_value_regno_p): New functions.
1560         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1561         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1562         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1563         FUNCTION_VALUE_REGNO_P): Remove.
1564
1565 2010-09-04  Jan Hubicka  <jh@suse.cz>
1566
1567         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1568         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1569         fold_read_from_constant_string.
1570
1571         * gimple.h (canonicalize_constructor_val): Declare.
1572         * gimple-fold.c (canonicalize_constructor_val): New function.
1573         (get_symbol_constant_value):Use it.
1574         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1575
1576 2010-09-04  Jan Hubicka  <jh@suse.cz>
1577
1578         * tree-switch-conversion.c (build_one_array): Set constructor to be
1579         static.
1580         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1581
1582 2010-09-04  Richard Guenther  <rguenther@suse.de>
1583
1584         PR bootstrap/45519
1585         * tree-flow.h (force_gimple_operand_1): Declare.
1586         (force_gimple_operand_gsi_1): Likewise.
1587         * gimplify.c (force_gimple_operand_1): New worker taking a
1588         gimple predicate for ...
1589         (force_gimple_operand): ... which now wraps it.
1590         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1591         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1592         last change.
1593         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1594         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1595         (create_mem_ref): Likewise.
1596
1597 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1598
1599         * config/i386/predicates.md (sse_reg_operand): New predicate.
1600         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1601         predicate for operand 1.
1602         (XFmode push splitter): Use fp_register_operand predicate
1603         for operand 1.
1604         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1605         (SF-DF float_extend push splitter): Add reload_completed insn
1606         predicate.
1607         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1608         MODEF mode macro.  Add reload_completed insn predicate.
1609
1610 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1611
1612         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1613         (struct df_extract_ref): Remove.
1614         (union df_ref_d): Remove extract_ref member.
1615         (df_ref_create): Remove last three arguments.
1616         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1617         * df-scan.c (df_ref_record): Remove last three arguments, do not
1618         pass them to df_ref_create_structure.
1619         (df_uses_record): Remove first and last three arguments.  Replace
1620         first argument with DF_REF_REGULAR, adjust calls to remove the
1621         width, offset and mode.  Always call recursively on the second
1622         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1623         (df_ref_create_structure): Remove first argument.
1624         (struct df_scan_problem_data): Remove ref_extract_pool.
1625         (df_scan_free_internal): Do not free it.
1626         (df_scan_alloc): Do not allocate it.
1627         (df_ref_create): Remove last three arguments, do not pass them to
1628         df_ref_create_structure.
1629         (df_free_ref): Remove DF_REF_EXTRACT case.
1630         (df_notes_rescan): Adjust call to df_uses_record.
1631         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1632         Remove DF_REF_EXTRACT case.
1633         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
1634         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
1635         and SUBREG definitions.
1636         (df_get_conditional_uses): Remove references to width/offset/mode,
1637         adjust call to df_ref_create_structure.
1638         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1639         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
1640         calls to df_uses_record and df_ref_record.
1641         * fwprop.c (update_df): Remove references to width/offset/mode,
1642         adjust call to df_ref_create.
1643
1644 2010-09-03  Jan Hubicka  <jh@suse.cz>
1645
1646         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
1647         (build_cdtor_fns): Update use of build_cdtor.
1648
1649 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
1650
1651         * doc/options.texi (SeparateAlias): Document.
1652         * opt-functions.awk (switch_flags): Handle SeparateAlias.
1653         * opth-gen.awk: Generate enumeration names for options marked
1654         SeparateAlias, but not for those marked Ignore.
1655         * opts-common.c (generate_canonical_option): Don't output separate
1656         argument for options marked CL_SEPARATE_ALIAS.
1657         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
1658         * opts.h (CL_SEPARATE_ALIAS): New.
1659         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1660         CL_COMMON): Adjust definitions.
1661         * config/i386/darwin.opt, config/mips/sde.opt: New.
1662         * common.opt (fdump-final-insns): New.
1663         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1664         i386/darwin.opt.
1665         (mips*-sde-elf*): Add mips/sde.opt.
1666         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
1667         -mno-data-in-code and -mcode-xonly here.
1668         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
1669         * gcc.c (option_map): Add "j" to --dump entry.
1670         (translate_options): Don't translate -d to -foutput-class-dir= here.
1671
1672 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
1673
1674         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
1675         DR_IS_WRITE.
1676         (compute_all_dependences): Same.
1677         (create_rdg_edge_for_ddr): Same.
1678         * tree-data-ref.h (DR_IS_WRITE): New.
1679         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
1680         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
1681         (write_memrefs_written_at_least_once): Same.
1682         * tree-predcom.c (suitable_component_p): Same.
1683         (determine_roots_comp): Same.
1684         (execute_load_motion): Same.
1685         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
1686         (vect_enhance_data_refs_alignment): Same.
1687         (vect_analyze_group_access): Same.
1688
1689 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1690
1691         PR testsuite/42843
1692         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
1693         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
1694
1695 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
1696
1697         * dwarf2out.c (file scope): Remove #if0'd code.
1698         (gen_subprogram_die): Same.
1699
1700 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1701
1702         PR middle-end/45484
1703         * dwarf2out.c (flush_queued_reg_saves): Rename to...
1704         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
1705         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
1706         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
1707         * config/i386/i386.c (output_set_got): Call it.
1708
1709 2010-09-03  Michael Matz  <matz@suse.de>
1710
1711         PR middle-end/45415
1712         * tree-sra.c (sra_modify_assign): If we modify the statement,
1713         say so.
1714
1715         * tree-ssa.c (verify_ssa): Check number of operands and links
1716         per statement to agree.
1717
1718 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1719             Iain Sandoe  <iains@gcc.gnu.org>
1720
1721         PR target/45476
1722         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
1723         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
1724         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
1725
1726 2010-09-03  Richard Guenther  <rguenther@suse.de>
1727
1728         * lto-streamer-out.c (output_function): Output function
1729         start and end loci.
1730         * lto-streamer-in.c (input_function): Input function start
1731         and end loci.
1732
1733 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1734
1735         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
1736         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
1737         * configure: Regenerate.
1738         * aclocal.m4: Regenerate.
1739
1740 2010-09-03  Jan Hubicka  <jh@suse.cz>
1741
1742         PR lto/44812
1743         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
1744         on functions/variables in other partition.
1745
1746 2010-09-03  Jan Hubicka  <jh@suse.cz>
1747
1748         * cgraph.h (struct varpool_node): Add const_value_known.
1749         (varpool_decide_const_value_known): Declare.
1750         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
1751         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
1752         (input_varpool_node): Restore const_value_known.
1753         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
1754         initializer folding.
1755         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1756         function_and_variable_visibility): Compute const_value_known.
1757         * gimple-fold.c (get_symbol_constant_value): Use varpool for
1758         initializer folding.
1759         * varpool.c (varpool_decide_const_value_known): New function.
1760
1761 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1762
1763         * config/i386/i386.md: Remove empty preparation statements
1764         from splitters.
1765
1766 2010-09-03  Jan Hubicka  <jh@suse.cz>
1767
1768         * passes.c (rest_of_decl_compilation): Do not add local vars into
1769         varpool.
1770         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
1771         static or extern vars are in varpool.
1772         (varpool_finalize_decl): Sanity check that only static vars are
1773         finalized.
1774
1775 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1776
1777         PR debug/45500
1778         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
1779         not just generic vectors with BLKmode.
1780
1781 2010-09-03  Richard Guenther  <rguenther@suse.de>
1782
1783         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
1784         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
1785         * tree.h (TMR_SYMBOL): Remove.
1786         (TMR_BASE, TMR_OFFSET): Adjust.
1787         (TMR_INDEX2): New.
1788         * alias.c (ao_ref_from_mem): Use TMR_BASE.
1789         * builtins.c (get_object_alignment): Merge TMR_BASE and
1790         TMR_SYMBOL handling.
1791         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
1792         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
1793         handling.  Also allow TARGET_MEM_REF as base address.
1794         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
1795         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
1796         base.  Gimplify TMR_INDEX2.
1797         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
1798         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1799         (get_addr_base_and_unit_offset): Likewise.
1800         * tree-eh.c (tree_could_trap_p): Likewise.
1801         * tree-pretty-print.c (dump_generic_node): Likewise.
1802         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
1803         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
1804         base to index2.
1805         (get_address_description): Reconstruct addres description
1806         from merged TMR_BASE and TMR_INDEX2.
1807         (maybe_fold_tmr): Fold propagated addresses.
1808         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
1809         MEM_REF and TARGET_MEM_REF paths.
1810         (indirect_refs_may_alias_p): Likewise.
1811         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
1812         instead of TMR_SYMBOL.
1813         * tree-ssa-operands.c (get_tmr_operands): Simplify.
1814         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
1815         according to changes ...
1816         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
1817         Split TARGET_MEM_REF into two fields plus the base.
1818         * tree.c (mem_ref_offset): Simplify.
1819         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
1820         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
1821         Strip NOPs when folding MEM_REF addresses.
1822         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
1823         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
1824         (fold_gimple_assign): ... not here.
1825
1826 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
1827
1828         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
1829         * config/mips/mips.c (mips_shift_truncation_mask): New function.
1830         (TARGET_SHIFT_TRUNCATION_MASK): Define.
1831
1832 2010-09-02  Richard Henderson  <rth@redhat.com>
1833
1834         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
1835         instead of readelf in the test.
1836         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
1837         in the .debug_frame section for coff targets.
1838         * configure: Rebuild.
1839
1840 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1841
1842         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
1843         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
1844         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1845         (m32c_class_likely_spilled_p): Make static. Change argument type to
1846         reg_class_t. Change result type to bool.
1847
1848 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1849
1850         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
1851         to convert (double)(long) into a single FRIZ instruction or not
1852         when -ffast-math is used.
1853
1854         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
1855         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
1856         or FRIZ instruction if -ffast-math.
1857         * config/rs6000/rs6000.md (friz): Ditto.
1858
1859         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
1860
1861 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1862
1863         * opth-gen.awk (quote, comma): Remove unused variables.
1864
1865 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
1866
1867         * arm.c (arm_override_options): Correct fall-back code to use
1868         SUBTARGET_CPU_DEFAULT.
1869
1870 2010-09-02  Julian Brown  <julian@codesourcery.com>
1871
1872         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
1873         unspecs.
1874         (vcond<mode>, vcondu<mode>): New expanders.
1875         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
1876         comparisons with zero.
1877         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
1878         * config/arm/constraints.md (Dz): New constraint.
1879
1880 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1881
1882         * target.def (class_likely_spilled_p): New hook.
1883         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
1884         * doc/tm.texi: Regenerate.
1885         * targhooks.c (default_class_likely_spilled_p): New function.
1886         * targhooks.h (default_class_likely_spilled_p): Declare.
1887         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
1888         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
1889         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
1890         Use fixed_reg_set instead of fixed_regs.
1891         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
1892         * calls.c (avoid_likely_spilled_reg): Ditto.
1893         * ira-conflicts.c (ira_build_conflicts): Ditto.
1894         * ira.c (update_equiv_regs): Ditto.
1895         * mode-switching.c (create_pre_exit): Ditto.
1896         * regmove.c (find_matches): Ditto.
1897         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
1898         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
1899         (small_register_class_p): New inline function.
1900         (push_secondary_reload, find_reusable_reload, find_reloads): Use
1901         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
1902
1903         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
1904         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
1905         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1906
1907 2010-09-02  Richard Guenther  <rguenther@suse.de>
1908
1909         PR tree-optimization/44937
1910         PR tree-optimization/45412
1911         * ipa-split.c (split_function): Properly remove PHI nodes.
1912
1913 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1914
1915         * opts.h (struct cl_option): Add warn_message field.
1916         (struct cl_decoded_option): Add warn_message field.
1917         * doc/options.texi (Ignore, Warn): Document.
1918         * opt-functions.awk (needs_state_p): Don't consider aliases or
1919         ignored options to need state saved.
1920         * optc-gen.awk: Handle Warn and Ignore.
1921         * opth-gen.awk: Output OPT_SPECIAL_ignore.
1922         * opts-common.c (decode_cmdline_option): Set warn_message field.
1923         Handle ignored options.
1924         (decode_cmdline_options_to_array, generate_option,
1925         generate_option_input_file): Set warn_message field.
1926         (read_cmdline_option): Generate warnings from warn_message field.
1927         Handle ignored options.
1928         * common.opt (Wunreachable-code, fargument-alias,
1929         fargument-noalias, fargument-noalias-global,
1930         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
1931         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
1932         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
1933         ftree-salias): Mark Ignore.
1934         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
1935         -mintel-syntax and -mno-intel-syntax here.
1936         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
1937         using Warn.
1938         * opts.c (common_handle_option): Don't handle options marked as
1939         ignored.
1940         (enable_warning_as_error): Handle ignored options.
1941
1942 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
1943
1944         PR driver/44076
1945         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
1946         alias_target fields.
1947         * opt-functions.awk (opt_sanitized_name): Don't handle
1948         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
1949         * optc-gen.awk: Generate alias fields.
1950         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
1951         Don't generate such constants for aliases.
1952         * opts-common.c (generate_canonical_option): New.
1953         (decode_cmdline_option): Handle aliases.  Use
1954         generate_canonical_option for known options instead of copying the
1955         input option text.
1956         * doc/options.texi (Alias): Document.
1957         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
1958         fstack-check, specs): Mark as aliases.
1959         * gcc.c (driver_handle_option): Canonicalize -L options to joined
1960         arguments.
1961         (driver_handle_option): Don't handle OPT_specs.
1962         * opts.c (common_handle_option): Don't handle options marked as
1963         aliases.
1964         (enable_warning_as_error): Handle aliases.
1965         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
1966         OPT_Wlarger_than_eq.
1967         * tree-optimize.c (tree_rest_of_compilation): Use
1968         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
1969
1970 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
1971
1972         * config/i386/i386.md (nonmemory_operand): New mode attribute.
1973         (push memory peephole2): Macroize peepholes using SWI mode iterator.
1974         (move immediate to memory peephole2): Macroize peepholes using
1975         SWI124 mode iterator.
1976         (non-pairable NOT peephole2): Macroize peepholes using SWI124
1977         mode iterator.
1978         (simple lea add peephole2): Macroize peepholes using SWI48
1979         mode iterator.
1980         (simple lea mult peephole2): Ditto.
1981         (imul by 3,5,9 to lea peephole2): Ditto.
1982         (mov $-1, reg peephole2): Macroize peepholes using SWI248
1983         mode iterator.
1984         (imul $32bit_imm,mem,reg peephole2): Ditto.
1985         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
1986
1987 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
1988
1989         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
1990
1991 2010-09-02  Olivier Hainque  <hainque@adacore.com>
1992
1993         PR middle-end/44763
1994         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
1995         (allocno_priority_compare_func): Use it instead of a straight
1996         difference computation over priorities.
1997
1998 2010-09-02  Andi Kleen  <ak@linux.intel.com>
1999
2000         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2001
2002 2010-09-02  Ira Rosen  <irar@il.ibm.com>
2003
2004         * tree-vectorizer.h (get_later_stmt): New function.
2005         (vect_analyze_data_ref_dependences): Add argument.
2006         * tree-vect-loop.c (vect_analyze_loop): Update call to
2007         vect_analyze_data_ref_dependences.
2008         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2009         New function.
2010         (vect_analyze_data_ref_dependence): Add argument for basic block
2011         dependencies. Check dependencies in basic block vectorization.
2012         (vect_analyze_data_ref_dependences): Add argument and update call to
2013         vect_analyze_data_ref_dependences.
2014         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2015         (vect_bb_vectorizable_with_dependencies): New.
2016         (vect_slp_analyze_bb): Check dependencies in basic block.
2017         (vect_schedule_slp_instance): Insert stores before the last store in
2018         SLP instance.
2019
2020 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2021
2022         PR target/45476
2023         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2024         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2025
2026 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
2027
2028         PR middle-end/45458
2029         * bb-reorder.c (add_labels_and_missing_jumps): Treat
2030         bbs ending with throwing insns like blocks ending with a call.
2031         (fix_up_fall_thru_edges): Likewise.
2032
2033 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
2034
2035         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2036         (m32c_function_arg_advance): Delete.
2037         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2038         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
2039         comments.  Take a const_tree and a bool.  Declare.
2040         (m32c_function_arg_advance): Likewise.
2041         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2042
2043 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2044
2045         PR target/45476
2046         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2047         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2048         * config/i386/mingw32.h: ... here.
2049
2050 2010-09-01  Andi Kleen  <ak@linux.intel.com>
2051
2052         PR lto/45475
2053         * lto-streamer-in.c (lto_input_ts_target_option): Add.
2054         (lto_input_tree_pointers): Call lto_input_ts_target_option.
2055         * lto-streamer-out (lto_output_ts_target_option): Add.
2056         (lto_output_tree_pointers): Call lto_output_ts_target_option.
2057
2058 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
2059
2060         PR/target 45452
2061         * config/i386/cygwin.h: Change order of specified import libraries.
2062         * config/i386/mingw32.h: Likewise.
2063         * config/i386/t-cygwin: Likewise.
2064         * config/i386/t-mingw32: Likewise.
2065         * config/i386/t-mingw-w32: Likewise.
2066         * config/i386/t-mingw-w64: Likewise.
2067
2068 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2069
2070         * config/arm/neon-schedgen.ml (core): New type.
2071         (allCores): List of supported cores.
2072         (availability_table): Add supported cores.
2073         (collate_bypasses): Accept core as a parameter.
2074         (worst_case_latencies_and_bypasses): Accept core as a parameter.
2075         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
2076         and coreStr to get tune attribute and prefix for functional units.
2077         (emit_bypasses): Accept core name and use it.
2078         (calculate_per_core_availability_table): New.
2079         (filter_core): New.
2080         (calculate_core_availability_table): New.
2081         (main): Use calculate_core_availablity_table.
2082         * config/arm/cortex-a8-neon.md: Update copyright year.
2083         Regenerated from ml file and merged in.
2084         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2085         cortex_a8_neon_mrc.
2086
2087 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
2088
2089         * Makefile.in (tree-switch-conversion.o): Update dependencies.
2090
2091 2010-09-01  Richard Guenther  <rguenther@suse.de>
2092
2093         * alias.c (ao_ref_from_mem): Adjust.
2094         * builtins.c (get_object_alignment): Likewise.
2095         * cfgexpand.c (expand_debug_expr): Likewise.
2096         * gimple.c (get_base_address): Likewise.
2097         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2098         (get_addr_base_and_unit_offset): Likewise.  Fix for
2099         both TMR_SYMBOL and TMR_BASE being set.
2100         * tree-eh.c (tree_could_trap_p): Likewise.
2101         * gimplify.c (gimplify_expr): Do not attempt to gimplify
2102         TMR_SYMBOL.  Always gimplify TMR_BASE.
2103         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2104         TMR_BASE if there is a TMR_SYMBOL.
2105         * tree-pretty-print.c (dump_generic_node): Adjust.
2106         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2107         (tree_mem_ref_addr): Likewise.
2108         (create_mem_ref_raw): Likewise.
2109         (move_fixed_address_to_symbol): Likewise.
2110         (create_mem_ref): Likewise.
2111         (dump_mem_address): Likewise.
2112         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2113         Fix for both TMR_SYMBOL and TMR_BASE being set.
2114         (indirect_refs_may_alias_p): Likewise.
2115         * tree-ssa-operands.c (get_tmr_operands): Adjust.
2116         * tree.def (TARGET_MEM_REF): Adjust documentation.
2117
2118 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2119
2120         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2121         Rename from X86_TUNE_ADD_ESP_4.
2122         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2123         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2124         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2125         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2126         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2127         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2128         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2129         * config/i386/i386.c (initial_ix86_tune_features)
2130         <X86_TUNE_SINGLE_POP>: Invert members.
2131         <X86_TUNE_DOUBLE_POP>: Ditto.
2132         <X86_TUNE_SINGLE_PUSH>: Ditto.
2133         <X86_TUNE_DOUBLE_PUSH>: Ditto.
2134         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2135         No longer exported.
2136         (push peephole2 patterns): Macroize peepholes using P mode iterator.
2137         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2138         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2139         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2140
2141 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2142
2143         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2144         a volatile LHS if the constructor has only one element.
2145
2146 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
2147
2148         PR bootstrap/45321
2149         * tree.c (stdarg_p): Make fntype parameter const.
2150         * tree.h (stdarg_p): Likewise.
2151         (function_args_iterator): Remove unused fntype field.
2152         (function_args_iter_init): Do not initialize fntype
2153         field.  Make fntype parameter const.
2154
2155 2010-09-01  Richard Guenther  <rguenther@suse.de>
2156
2157         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2158         estimate.
2159         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2160         (execute_vrp): Compute number of iteration estimates.
2161         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2162         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2163         * tree-data-ref.c (estimated_loop_iterations): Adjust.
2164         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2165         Infer loop bounds from undefined behavior based on a new parameter.
2166         (estimate_numbers_of_iterations): Likewise.
2167         (scev_probably_wraps_p): Adjust.
2168         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2169
2170 2010-09-01  Nick Clifton  <nickc@redhat.com>
2171
2172         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2173         where appropriate.
2174         (xstormy16_legitimate_address_p): Use true and false instead of 1
2175         and 0.
2176         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2177         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2178         magic constant 2.
2179         (xstormy16_expand_call): Fix comment at start of function.
2180
2181 2010-09-01  Nick Clifton  <nickc@redhat.com>
2182
2183         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2184         when pushing accumulator register.
2185         (rx_get_stack_layout): Always save call clobbered registers inside
2186         interrupt handlers.
2187         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2188
2189 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2190
2191         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2192         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2193
2194         * libgcc-std.ver (GCC_4.6.0): Define version.
2195
2196 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2197
2198         * tree-nested.c (convert_all_function_calls): Iterate until after the
2199         sum of static chains in the nest doesn't change.
2200
2201 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
2202
2203         * config/m32c/m32c.c (classes_intersect): Remove.
2204         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2205         reg_classes_intersect_p instead of classes_intersect.
2206         (class_can_hold_mode): Change arguments type from enum reg_class to
2207         reg_class_t.  Use reg_class_contents instead of class_contents.
2208         (m32c_register_move_cost): Make static. Change arguments type from
2209         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2210         classes_intersect. Use reg_class_contents instead of class_contents.
2211         (m32c_memory_move_cost): Make static. Change arguments type from
2212         enum reg_class to reg_class_t.
2213         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2214         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2215         * config/m32c/m32c-protos.h (m32c_register_move_cost,
2216         m32c_memory_move_cost): Remove.
2217
2218 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2219
2220         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2221         (arm_function_arg): Delete.
2222         (arm_needs_doubleword_align): Take a const_tree.
2223         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2224         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2225         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2226         (arm_function_arg): Make static.  Take a const_tree and a bool.
2227         (arm_function_arg_advance): Likewise.
2228         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2229
2230 2010-08-31  Andi Kleen  <ak@linux.intel.com>
2231
2232         * common.opt (fwhopr=): Update for -fwhopr=jobserver
2233         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2234         * lto-wrapper.c (run_gcc): Add jobserver mode.
2235         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2236         argument.
2237
2238 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2241         (popsi1): Ditto.
2242         (*popdi1_epilogue): Ditto.
2243         (*popsi1_epilogue): Ditto.
2244         (popsi, popdi peephole2 patterns): Update peepholes for changed
2245         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2246
2247         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2248         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2249
2250         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2251         (override_options): Do not initialize removed ix86_gen_pop1.
2252         (gen_pop): New static function.
2253         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2254         (release_scratch_register_on_entry): Ditto.
2255         (ix86_restore_reg_using_pop): Ditto.
2256         (ix86_expand_epilogue): Ditto.
2257
2258 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
2259
2260         PR middle-end/45461
2261         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2262
2263 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2264
2265         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2266         semicolons.
2267
2268 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2269
2270         * doc/extend.texi: Fix documentation of the return value of
2271         __builtin_choose_expr.
2272
2273 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2274
2275         * config/v850/v850-protos.h (function_arg): Delete.
2276         * config/v850/v850.h (FUNCTION_ARG): Delete.
2277         (FUNCTION_ARG_ADVANCE): Move code to...
2278         * config/v850/v850.c (v850_function_arg_advance): ...here.
2279         (v850_function_arg): Make static.  Take a const_tree and a bool.
2280         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2281
2282 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2283
2284         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2285         these...
2286         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2287         ...and these...
2288         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2289         ..to here..
2290         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2291         ...and here.
2292         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2293
2294 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2295
2296         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2297         Delete.
2298         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2299         * config/rx/rx.c (rx_function_arg_size): Make static.
2300         (rx_function_arg): Likewise.
2301         (rx_function_arg_advance): New function.
2302         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2303
2304 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
2305
2306         * config/arm/arm.c (arm_override_options): Remove superfluous test.
2307         Fix indentation.
2308
2309 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2310
2311         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2312         (dwarf2out_decl) <CONST_DECL>: Likewise.
2313
2314 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2315
2316         Stack usage support
2317         * common.opt (-fstack-usage): New option.
2318         * doc/invoke.texi (Debugging options): Document it.
2319         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2320         allocate_dynamic_stack_space.
2321         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2322         and propagate it to allocate_dynamic_stack_space.
2323         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2324         * calls.c (initialize_argument_information): Pass TRUE as 4th
2325         argument to allocate_dynamic_stack_space.
2326         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2327         to 1 when pushing a variable-sized argument onto the stack.  Pass
2328         TRUE as 4th argument to allocate_dynamic_stack_space.
2329         Update current_function_pushed_stack_size.
2330         (emit_library_call_value_1): Likewise.
2331         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2332         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
2333         attempt to find an upper bound.  Remove redundant code for the
2334         SETJMP_VIA_SAVE_AREA case.
2335         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2336         * function.h (struct stack_usage): New structure.
2337         (current_function_static_stack_size): New macro.
2338         (current_function_dynamic_stack_size): Likewise.
2339         (current_function_pushed_stack_size): Likewise.
2340         (current_function_dynamic_alloc_count): Likewise.
2341         (current_function_has_unbounded_dynamic_stack_size): Likewise.
2342         (current_function_allocates_dynamic_stack_space): Likewise.
2343         (struct function): Add new field 'su'.
2344         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2345         add the value of the dynamic offset to the dynamic stack usage.
2346         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2347         for variable-sized objects.
2348         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2349         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2350         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2351         BUILT_IN_ALLOCA for variable-sized objects.
2352         * output.h (output_stack_usage): Declare.
2353         * toplev.c (stack_usage_file): New file pointer.
2354         (output_stack_usage): New function.
2355         (open_auxiliary_file): Likewise.
2356         (lang_dependent_init): Open file if flag_stack_usage is set.
2357         (finalize): Close file if stack_usage_file is not null.
2358         * tree.h (ALLOCA_FOR_VAR_P): New macro.
2359         * config/alpha/alpha.c (compute_frame_size): New function.
2360         (alpha_expand_prologue): Use it.
2361         (alpha_start_function): Likewise.
2362         (alpha_expand_epilogue): Likewise.  Set stack usage info.
2363         * config/i386/i386.c (ix86_expand_prologue): Likewise.
2364         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2365         * config/mips/mips.c (mips_expand_prologue): Likewise.
2366         * config/pa/pa.c (hppa_expand_prologue): Likewise.
2367         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2368         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2369
2370 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
2371
2372         PR tree-optimization/45427
2373         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2374         Handle the case that the exit is never taken correctly.
2375         (number_of_iterations_ne): Pass exit_must_be_taken to
2376         number_of_iterations_ne_max.
2377
2378 2010-08-30  Catherine Moore  <clm@codesourcery.com>
2379
2380         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2381         Infer -mdspr2 for the the 74K.
2382
2383 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
2384
2385         PR debug/45419
2386         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2387
2388         PR middle-end/45423
2389         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2390         and TRUTH_{AND,OR,XOR}_EXPR.
2391         * c-parser.c (c_parser_omp_atomic): Handle boolean
2392         {PRE,POST}_{INC,DEC}REMENT.
2393
2394 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
2395
2396         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2397         (function_arg): Delete.
2398         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2399         (FUNCTION_INCOMING_ARG): Delete.
2400         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2401         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
2402         and a bool.
2403         (function_arg): Rename to...
2404         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
2405         a bool.
2406         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2407         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2408         (TARGET_FUNCTION_INCOMING_ARG): Define.
2409
2410 2010-08-30  Richard Guenther  <rguenther@suse.de>
2411
2412         PR tree-optimization/21602
2413         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
2414         using points-to information.
2415
2416 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
2417
2418         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2419
2420 2010-08-30  Richard Guenther  <rguenther@suse.de>
2421
2422         PR tree-optimization/45449
2423         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
2424         variables.
2425
2426 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
2427
2428         * opts.h (CL_ERR_NEGATIVE): Define.
2429         * opts.c (unknown_option_callback): Don't postpone warnings for
2430         options marked with CL_ERR_NEGATIVE.
2431         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2432         for negative versions of CL_REJECT_NEGATIVE options.
2433
2434 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
2435
2436         * config/i386/i386.md (zero_extendsidi2_1): Rename from
2437         zero_extendsidi2_32.
2438         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2439         using SWI12 mode iterator.
2440         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2441         to define_insn_and_split pattern.
2442         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2443         using SWI24 mode iterator.
2444         (*zero_extendqi<mode>2_and): Macroize insn from
2445         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2446         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2447         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2448         SWI24 mode iterator.
2449         (*zero_extendqi<mode>2_movzbl): Ditto from
2450         *zero_extendqi{hi,si}2_movzbl.
2451         (extendsidi2_1): Rename from extendsidi2_32.
2452         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2453         SWI12 mode iterator.
2454
2455 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
2456
2457         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2458         general purpose registers.
2459         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2460         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
2461         with general purpose registers and memory operands.  Add associated
2462         CCImode post-reload splitter.
2463         * config/ia64/div.md: Change BImode to CCImode throughout.
2464
2465 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2466
2467         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2468
2469 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2470
2471         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2472         function was dropping debug insns which caused PR45299.
2473
2474 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2475
2476         * config/i386/sse.md (extsuffix): New code attribute.
2477         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2478         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2479         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2480         and sse4_1_zero_extendv4qiv4si2.
2481         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2482         and sse4_1_zero_extendv2qiv2di2.
2483         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2484         and sse4_1_zero_extendv4hiv4si2.
2485         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2486         and sse4_1_zero_extendv2hiv2di2.
2487         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2488         and sse4_1_zero_extendv2siv2di2
2489
2490         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2491         using any_extend code iterator.
2492         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2493         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2494         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2495
2496         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2497         gen_sse4_1_sign_extend* functions.
2498         (struct builtin_description bdesc_args): Ditto.
2499
2500 2010-08-27  Xinliang David Li  <davidxl@google.com>
2501
2502         PR/45422
2503         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2504         (iv_ca_set_no_cp): Update used inv expr count.
2505         (iv_ca_set_cp): Ditto.
2506         (iv_ca_new): Initialize new member.
2507         (iv_ca_free): Free memory.
2508
2509 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2510
2511         * config/sh/sh-protos.h (sh_function_arg): Delete.
2512         (sh_function_arg_advance): Delete.
2513         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2514         (PASS_IN_REG_P): Eliminate cast.
2515         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2516         const_tree and a bool.
2517         (sh_function_arg): Likewise.
2518         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2519         sh_function_arg.
2520         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2521
2522 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2523             Kaz Kojima  <kkojima@gcc.gnu.org>
2524
2525         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2526         when possible.
2527         (sh_expand_epilogue): Likewise.
2528         * config/sh/sh.md (movml_push_banked): New insn.
2529         (movml_pop_banked): Likewise.
2530
2531 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2532
2533         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2534         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2535         in vector element 0 rather than the original string when there's
2536         only one element.
2537         (gen_regexp): Remove extra semicolon.
2538
2539         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2540         thumb2_movsf_vfp): Set attribute "insn".
2541         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2542         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2543         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2544         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2545         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2546         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2547         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2548         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2549         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2550         if_not_arith, if_arith_not, cond_move_not): Likewise.
2551
2552 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2553
2554         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2555         New declaration.
2556         (rs6000_allocate_stack_temp): Ditto.
2557         (rs6000_expand_convert_si_to_sfdf): Ditto.
2558
2559         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2560         line.  Update the options set if power6 or power7 server/embedded
2561         type options are used.  If we give a warning for no vsx under
2562         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2563         (rs6000_allocate_stack_temp): New function to allocate a stack
2564         tempoary and adjust the address so it meets either REG+OFFSET or
2565         REG+REG addressing requirements.
2566         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2567         that they can be used with the LFIWAX/LFIWZX instrucitons.
2568         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2569         converting signed/unsigned SImode to either SFmode/DFmode.
2570
2571         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2572         whether certain instructions can be generated.
2573         (TARGET_FCTIDZ): Ditto.
2574         (TARGET_STFIWX): Ditto.
2575         (TARGET_LFIWAX): Ditto.
2576         (TARGET_LFIWZX): Ditto.
2577         (TARGET_FCFIDS): Ditto.
2578         (TARGET_FCFIDU): Ditto.
2579         (TARGET_FCFIDUS): Ditto.
2580         (TARGET_FCTIDUZ): Ditto.
2581         (TARGET_FCTIWUZ): Ditto.
2582
2583         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2584         (UNSPEC_FCTID): Ditto.
2585         (UNSPEC_LFIWAX): Ditto.
2586         (UNSPEC_LFIWZX): Ditto.
2587         (UNSPEC_FCTIWUZ): Ditto.
2588         (rreg): Use correct constraints.
2589         (SI_CONVERT_FP): New mode attribute for floating point conversion
2590         tests.
2591         (E500_CONVERT): Ditto.
2592         (lfiwax): New insns for converting from integer to floating point
2593         utilizing newer instructions.  Attempt to optimize conversions
2594         that come from memory so that we don't load the value into a GPR,
2595         spill it to the stack and reload it into a FPR.
2596         (floatsi<mode>2_lfiwax): Ditto.
2597         (floatsi<mode>2_lfiwax_mem): Ditto.
2598         (floatsi<mode>2_lfiwax_mem2): Ditto.
2599         (lfiwzx): Ditto.
2600         (floatunssi<mode>2_lfiwzx): Ditto.
2601         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2602         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2603         (floatdidf2_mem): Ditto.
2604         (floatunsdidf2_fcfidu): Ditto.
2605         (floatunsdidf2_mem): Ditto.
2606         (floatunsdisf2): Ditto.
2607         (floatunsdisf2_fcfidus): Ditto.
2608         (floatunsdisf2_mem): Ditto.
2609         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2610         Use FCFID on 32-bit hosts that support it.
2611         (floatsidf2_internal): Ditto.
2612         (floatunssisf2): Ditto.
2613         (floatunssidf2): Ditto.
2614         (floatunssidf2_internal): Ditto.
2615         (floatsisf2): Ditto.
2616         (floatdidf2): Ditto.
2617         (floatdidf2_fpr): Ditto.
2618         (floatunsdidf2): Ditto.
2619         (floatdisf2): Ditto.
2620         (floatdisf2_fcfids): Ditto.
2621         (floatdisf2_internal1): Ditto.
2622         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2623         SF/DF.  Add power7 support.
2624         (fix_truncsfsi2): Ditto.
2625         (fixuns_truncdfsi2): Ditto.
2626         (fixuns_truncdfdi2): Ditto.
2627         (fix_truncdfsi2): Ditto.
2628         (fix_truncdfsi2_internal): Ditto.
2629         (fix_truncdfsi2_internal_gfxopt): Ditto.
2630         (fix_truncdfsi2_mfpgpr): Ditto.
2631         (fctiwz): Ditto.
2632         (btruncdf2): Ditto.
2633         (btruncdf2_fpr): Ditto.
2634         (btructsf2): Ditto.
2635         (ceildf2): Ditto.
2636         (ceildf2_fpr): Ditto.
2637         (ceilsf2): Ditto.
2638         (floordf2): Ditto.
2639         (floordf2_fpr): Ditto.
2640         (floorsf2): Ditto.
2641         (rounddf2): Ditto.
2642         (rounddf2_fpr): Ditto.
2643         (roundsf2): Ditto.
2644         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
2645         (fix_trunc<mode>di2): Ditto.
2646         (fixuns_trunc<mode>si2): Ditto.
2647         (fixuns_trunc<mode>di2): Ditto.
2648         (fctiwz_<mode>): Ditto.
2649         (btrunc<mode>2): Ditto.
2650         (btrunc<mode>2_fpr): Ditto.
2651         (ceil<mode>2): Ditto.
2652         (ceil<mode>2_fpr): Ditto.
2653         (floor<mode>2): Ditto.
2654         (float<mode>2_fpr): Ditto.
2655         (round<mode>2): Ditto.
2656         (round<mode>2_fpr): Ditto.
2657         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
2658         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2659         (fix_truncdfsi2_internal): Ditto.
2660         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
2661         converted value on stack, loaded into GPR, and then stored into
2662         the final destination.
2663         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
2664         FCTIDZ.
2665         (lrint<mode>di2): New insn, provide the lrint builtin functions.
2666         (ftruncdf2): Delete, unused.
2667         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
2668
2669         * config/rs6000/vsx.md (toplevel): Update copyright year.
2670         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
2671         (VSr3): Ditto.
2672
2673 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
2674             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2675
2676         * gengtype.c (output_type_enum): Test the right union member.
2677
2678 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
2679
2680         PR target/41484
2681         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
2682         operands for operand 1.
2683         (sse4_1_extendv4qiv4si2): Ditto.
2684         (sse4_1_extendv2qiv2di2): Ditto.
2685         (sse4_1_extendv4hiv4si2): Ditto.
2686         (sse4_1_extendv2hiv2di2): Ditto.
2687         (sse4_1_extendv2siv2di2): Ditto.
2688         (sse4_1_zero_extendv8qiv8hi2): Ditto.
2689         (sse4_1_zero_extendv4qiv4si2): Ditto.
2690         (sse4_1_zero_extendv2qiv2di2): Ditto.
2691         (sse4_1_zero_extendv4hiv4si2): Ditto.
2692         (sse4_1_zero_extendv2hiv2di2): Ditto.
2693         (sse4_1_zero_extendv2siv2di2): Ditto.
2694         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
2695         (*sse4_1_extendv4qiv4si2): Ditto.
2696         (*sse4_1_extendv2qiv2di2): Ditto.
2697         (*sse4_1_extendv4hiv4si2): Ditto.
2698         (*sse4_1_extendv2hiv2di2): Ditto.
2699         (*sse4_1_extendv2siv2di2): Ditto.
2700         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
2701         (*sse4_1_zero_extendv4qiv4si2): Ditto.
2702         (*sse4_1_zero_extendv2qiv2di2): Ditto.
2703         (*sse4_1_zero_extendv4hiv4si2): Ditto.
2704         (*sse4_1_zero_extendv2hiv2di2): Ditto.
2705         (*sse4_1_zero_extendv2siv2di2): Ditto.
2706
2707 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2708
2709         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
2710         (mips_function_arg): Delete.
2711         (mips_function_arg_boundary): Take a const_tree.
2712         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
2713         (mips_arg_info): Likewise.
2714         (mips_setup_incoming_varargs): Call mips_function_arg_advance
2715         instead of FUNCTION_ARG_ADVANCE.
2716         (mips_function_arg_advance): Adjust prototype.  Make static.
2717         (mips_function_arg): Likewise.
2718         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2719         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2720
2721 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2722
2723         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2724         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
2725         (function_arg): Delete.
2726         (function_arg_boundary): Take a const_tree.
2727         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
2728         (rs6000_spe_function_arg): Likewise.
2729         (rs6000_parm_start): Likewise.
2730         (rs6000_arg_size): Likewise.
2731         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
2732         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
2733         (rs6000_mixed_function_arg): Likewise.
2734         (function_arg): Rename to...
2735         (rs6000_function_arg): ...this.
2736         (function_arg_advance): Rename to...
2737         (rs6000_function_arg_advance_1): ...this
2738         (rs6000_function_arg_advance): New function.  Call it.
2739         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
2740         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
2741         (rs6000_function_value): Likewise.
2742         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2743
2744 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2745
2746         * config/arm/arm.md (enabled): Test the value of arch_enabled
2747         rather than just using it.
2748
2749 2010-08-27  Olivier Hainque  <hainque@adacore.com>
2750             Eric Botcazou  <ebotcazou@adacore.com>
2751
2752         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
2753         cover all the possible offsets from this base.
2754         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
2755
2756 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
2757
2758         PR tree-optimization/44485
2759         * calls.c (flags_from_decl_or_type): For const or pure
2760         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
2761         together with ECF_CONST resp. ECF_PURE.
2762         * builtins.c (expand_builtin): Use flags_from_decl_or_type
2763         instead of querying flags directly.
2764         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
2765         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
2766
2767 2010-08-26  Richard Guenther  <rguenther@suse.de>
2768
2769         PR tree-optimization/45255
2770         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
2771         and externals are also invariant.
2772
2773 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2774
2775         PR rtl-optimization/44858
2776         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
2777         newi2pat, make sure they don't affect newpat.
2778
2779         PR rtl-optimization/45400
2780         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
2781         SUBREG_REG if both modes are of MODE_INT class.
2782
2783 2010-08-25  Julian Brown  <julian@codesourcery.com>
2784
2785         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
2786         * config/arm/arm.md (generic_sched): No for Cortex-A5.
2787         (generic_vfp): Likewise.
2788         (cortex-a5.md): Include.
2789         * config/arm/cortex-a5.md: New.
2790
2791 2010-08-25  Richard Guenther  <rguenther@suse.de>
2792
2793         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
2794         * gimple.c (gimple_get_alias_set): Remove special handling
2795         for pointers.
2796
2797 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2798
2799         PR middle-end/45355
2800         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
2801         dead_or_set_p when computing i0_feeds_i2_n.
2802
2803         * combine.c (find_split_point): Undo canonicalization of multiply-add
2804         to (minus x (mult)) when it seems likely that this will increase the
2805         chances of a split.
2806
2807 2010-08-25  Richard Guenther  <rguenther@suse.de>
2808
2809         PR lto/44562
2810         * lto-streamer.c (lto_record_common_node): Do not mess with
2811         TYPE_CANONICAL when not in lto.
2812         * gimple.c (gimple_register_type): Likewise.
2813
2814 2010-08-25  Richard Guenther  <rguenther@suse.de>
2815
2816         PR tree-optimization/45316
2817         * tree-ssa-pre.c (eliminate): Properly clean EH info.
2818
2819 2010-08-25  Richard Guenther  <rguenther@suse.de>
2820
2821         PR tree-optimization/45393
2822         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
2823         and clean EH info.  Avoid SSA update.
2824         (execute_cse_sincos): Cleanup the CFG if it has changed.
2825
2826 2010-08-25  Richard Guenther  <rguenther@suse.de>
2827
2828         PR middle-end/45379
2829         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
2830         TARGET_MEM_REF in alignment computation.
2831
2832 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2833
2834         PR tree-optimization/45059
2835         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
2836         type conversions from newop{1,2}.  Assert t is a comparison and
2837         newop{1,2} after the stripping are gimple vals.
2838
2839 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
2840
2841         * config/arm/iterators.md (VU, SE, V_widen_l): New.
2842         (V_unpack, US): New.
2843         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
2844         (vec_unpack<US>_lo_<mode>): Likewise.
2845         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
2846         (neon_vec_unpack<US>_lo_<mode>): Likewise.
2847         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
2848         (vec_widen_<US>mult_hi_<mode>): Likewise.
2849         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
2850         (neon_vec_<US>mult_hi_<mode>"): Likewise.
2851         (neon_unpack<US>_<mode>): Widening move intermediate step for
2852         vectorizing without -mvectorize-with-neon-quad.
2853         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
2854         for vectorizing without -mvectorize-with-neon-quad.
2855         * config/arm/predicates.md (vect_par_constant_high): Check for
2856         high-half lanes of a vector.
2857         (vect_par_constant_low): Check for low-half lanes of a vector.
2858
2859 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2860
2861         * tree-if-conv.c (struct ifc_dr): New.
2862         (IFC_DR): New.
2863         (DR_WRITTEN_AT_LEAST_ONCE): New.
2864         (DR_RW_UNCONDITIONALLY): New.
2865         (memref_read_or_written_unconditionally): Use the cached values
2866         when possible.
2867         (write_memref_written_at_least_once): Same.
2868         (if_convertible_loop_p): Initialize and free DR->aux fields.
2869
2870 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2871
2872         * gimple.c (gimple_could_trap_p_1): Not static anymore.
2873         Pass an extra bool parameter include_mem.
2874         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
2875         (gimple_assign_rhs_could_trap_p): Same.
2876         * gimple.h (gimple_could_trap_p_1): Declared.
2877         * tree-data-ref.h (same_data_refs_base_objects): New.
2878         (same_data_refs): New.
2879         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
2880         (write_memrefs_written_at_least_once): New.
2881         (ifcvt_memrefs_wont_trap): New.
2882         (operations_could_trap): New.
2883         (ifcvt_could_trap_p): New.
2884         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
2885         Gets a vector of data refs.
2886         (if_convertible_stmt_p): Same.
2887         (if_convertible_loop_p_1): New.
2888         (if_convertible_loop_p): Call if_convertible_loop_p_1.
2889
2890 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
2891
2892         * common.opt (ftree-loop-if-convert-stores): New flag.
2893         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
2894         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
2895         the created statement before GSI.
2896         (if_convertible_phi_p): Allow virtual phi nodes when
2897         flag_loop_if_convert_stores is set.
2898         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
2899         Do not handle types that do not match is_gimple_reg_type.
2900         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
2901         when flag_loop_if_convert_stores is set, as LHS can contain
2902         memory refs.
2903         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
2904         to if_convertible_gimple_assign_stmt_p.
2905         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
2906         (replace_phi_with_cond_gimple_assign_stmt): Renamed
2907         predicate_scalar_phi.  Do not handle virtual phi nodes.
2908         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
2909         Call predicate_scalar_phi.
2910         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
2911         just after the labels for flag_loop_if_convert_stores, otherwise
2912         insert the predicate in the end of the BB.
2913         (predicate_mem_writes): New.
2914         (combine_blocks): Call predicate_all_scalar_phis.  When
2915         flag_loop_if_convert_stores is set, call predicate_mem_writes.
2916         (tree_if_conversion): Call mark_sym_for_renaming when
2917         flag_loop_if_convert_stores is set.
2918         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
2919         flag_loop_if_convert_stores is set.
2920
2921 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
2922
2923         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
2924         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
2925         (pa_function_value): Make static.
2926         (override_options): Rename to...
2927         (pa_option_override): ...this. Make static.
2928         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
2929         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
2930         TARGET_OPTION_OVERRIDE): Define.
2931         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
2932         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
2933         Remove.
2934         * config/pa/pa-protos.h (override_options): Remove.
2935
2936 2010-08-24  Richard Guenther  <rguenther@suse.de>
2937
2938         PR middle-end/45379
2939         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
2940         if addr->index is NULL or zero.
2941         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
2942         TARGET_MEM_REF more properly.
2943         (indirect_ref_may_alias_decl_p): Likewise.
2944         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
2945         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
2946
2947 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
2948
2949         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
2950         (m32c_override_options): Rename to...
2951         (m32c_option_override): ...this. Make static.
2952         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
2953         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
2954         Remove.
2955         * config/m32c/m32c-protos.h (m32c_override_options,
2956         m32c_function_value_regno_p): Remove.
2957
2958 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
2959
2960         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
2961         Fix a typo in a previous commit.
2962
2963 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
2964
2965         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
2966         Pre-initialize innerloop_iters to one.
2967
2968 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
2969
2970         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
2971         existing static function global.
2972
2973         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
2974         is changed to global.
2975
2976         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
2977         may_be_nonaddressable_p on base, and don't collect this reference
2978         if the address of the base could not be taken.
2979
2980 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2981
2982         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
2983         enable the compiler to autovectorize mathmetical functions for
2984         power7 using the Mathematical Acceleration Subsystem library.
2985
2986         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
2987         handle which vector math library we have.
2988         (rs6000_override_options): Add -mveclibabi=mass support.
2989         (rs6000_builtin_vectorized_libmass): New function to handle auto
2990         vectorizing math functions that are in the MASS library.
2991         (rs6000_builtin_vectorized_function): Call it.
2992
2993         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2994         -mveclibabi=mass.
2995
2996 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2997
2998         PR boehm-gc/34544
2999         * gthr-posix.h (__gthread_active_init): Delete.
3000         (__gthread_active_p): Do activity check here.
3001         Don't include errno.h on hppa-hpux.  Update comment.
3002         * gthr-posix95.h (__gthread_active_init): Delete.
3003         (__gthread_active_p): Do activity check here.
3004         Don't include errno.h on hppa-hpux.  Update comment.
3005         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3006         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3007         add -lpthread when -mt or -pthread is specified.
3008         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3009         (LINK_GCC_C_SEQUENCE_SPEC): Define.
3010         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3011         (stublib.c, pthread_default_stacksize_np-stub.o,
3012         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3013         $(T)libgcc_stub.a): Add methods.
3014         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3015         (stublib.c, pthread_default_stacksize_np-stub.o,
3016         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3017         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3018         pthread_mutex_unlock): New stubs.
3019
3020 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
3021
3022         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3023         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3024         options.
3025         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3026         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3027         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3028         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3029         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3030         "-l".
3031         * cppspec.c: Include opts.h.
3032         (lang_specific_driver): Use cl_decoded_option structures.
3033         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3034         * doc/tm.texi: Regenerate.
3035         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3036         (driver_handle_option): Allow driver options needing no special
3037         processing.
3038         (process_command): Decode options before call to
3039         lang_specific_driver.  Pass decoded options to
3040         lang_specific_driver.
3041         * gcc.h (lang_specific_driver): Update prototype.
3042         * gccspec.c: Include opts.h.
3043         (lang_specific_driver): Use cl_decoded_option structures.
3044         * opts-common.c (option_ok_for_language, generate_option,
3045         generate_option_input_file): New.
3046         (decode_cmdline_option): Use option_ok_for_language.
3047         (decode_cmdline_options_to_array): Use generate_option_input_file.
3048         (handle_generated_option): Use generate_option.
3049         * opts.h (generate_option, generate_option_input_file): Declare.
3050
3051 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
3052
3053         * config/mips/mips.c (mips_override_options): Rename to...
3054         (mips_option_override): ...this. Make static.
3055         (TARGET_OPTION_OVERRIDE): Define.
3056         (mips_in_small_data_p): Update comment.
3057         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3058         (FIXED_REGISTERS): Update comment.
3059         * config/mips/mips-protos.h (mips_override_options): Remove.
3060
3061 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3062
3063         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3064
3065 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3066
3067         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3068         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3069
3070 2010-08-20  Jan Hubicka  <jh@suse.cz>
3071
3072         * tree-pass.h (pass_ipa_cdtor_merge): New function.
3073         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3074         heap allocated.
3075         (record_cdtor_fn): Move to ipa.c; do not test for
3076         have_ctors_dtors.
3077         (build_cdtor): Move to ipa.c; add code avoiding construction
3078         when target have ctors/dtors and there is only one ctor/dtor at given
3079         priority.
3080         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3081         sort; reverse order of constructors.
3082         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3083         (cgraph_finalize_function): Do not call record_cdtor_fn.
3084         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3085         (cgraph_build_static_cdtor): Move to ipa.c.
3086         * ipa.c: Include target.h and tree-iterator.h.
3087         (cgraph_build_static_cdtor, static_ctors, static_dtors,
3088         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3089         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3090         pass_ipa_cdtor_merge): New.
3091         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3092         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3093         bounds access.
3094
3095 2010-08-20  Jan Hubicka  <jh@suse.cz>
3096
3097         PR c++/45307
3098         PR c++/17736
3099         * cgraph.h (cgraph_only_called_directly_p,
3100         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3101         static cdtors.
3102         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3103         are not needed.
3104         (cgraph_finalize_function): Static cdtors are reachable.
3105         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3106
3107 2010-08-20  Jan Hubicka  <jh@suse.cz>
3108
3109         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3110         flag_wpa.
3111         * lto-streamer-out.c (lto_output): Likewise.
3112         * passes.c (ipa_write_optimization_summaries): Initialize statement
3113         uids.
3114
3115 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3116
3117         * tree.h (alias_diag_flags): New enum.
3118         (alias_pair): Add an 'emitted_diags' field.
3119         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3120         (assemble_alias): Initialize emitted_diags of new pairs.
3121
3122 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
3123
3124         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3125         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3126         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3127         (STACK_CHECK_PROTECT): Define.
3128         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3129         (output_probe_stack_range): Likewise.
3130         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3131         builtin stack checking is enabled.
3132         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3133         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3134         (probe_stack_range): New insn.
3135
3136 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3137
3138         PR target/45336
3139         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3140         short first.
3141
3142         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3143         char first.
3144
3145 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3146
3147         PR target/45336
3148         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3149         to cover zero extension into 64-bit register.
3150         (*sse2_pextrw): Likewise.
3151         (*sse4_1_pextrd_zext): New insn.
3152
3153 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3154
3155         revert r163410, partially revert r163267.
3156         * config/rs6000/darwin.h (LIB_SPEC): Remove.
3157         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3158         Darwin versions.
3159
3160 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3161
3162         PR middle-end/44974
3163         * builtins.c (expand_builtin): Don't optimize away
3164         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3165
3166 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
3167
3168         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3169         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3170         alternative 1 of operand 2.
3171
3172 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3173             Paolo Bonzini  <bonzini@gnu.org>
3174
3175         * simplify-rtx.c (simplify_unary_operation_1): Optimize
3176         (sign_extend (zero_extend (...)) and
3177         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3178
3179 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3180
3181         PR rtl-optimization/45353
3182         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3183         after bb_note is a BARRIER.
3184
3185 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3186
3187         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3188         linking libgcc.a.
3189
3190 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3191             Michael Matz  <matz@suse.de>
3192
3193         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3194
3195 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3196
3197         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3198         (ggc_mark_roots): ...here.
3199
3200 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3201
3202         * vec.h (FOR_EACH_VEC_ELT): Define.
3203         * c-decl.c: Use it.
3204         * cfgloop.c: Likewise.
3205         * cfgloopmanip.c: Likewise.
3206         * cgraph.c: Likewise.
3207         * cgraphunit.c: Likewise.
3208         * combine.c: Likewise.
3209         * config/bfin/bfin.c: Likewise.
3210         * config/mips/mips.c: Likewise.
3211         * config/rs6000/rs6000.c: Likewise.
3212         * dbxout.c: Likewise.
3213         * df-scan.c: Likewise.
3214         * dominance.c: Likewise.
3215         * dse.c: Likewise.
3216         * dwarf2out.c: Likewise.
3217         * except.c: Likewise.
3218         * expr.c: Likewise.
3219         * function.c: Likewise.
3220         * gcse.c: Likewise.
3221         * genattr.c: Likewise.
3222         * ggc-common.c: Likewise.
3223         * gimplify.c: Likewise.
3224         * graphite-blocking.c: Likewise.
3225         * graphite-clast-to-gimple.c: Likewise.
3226         * graphite-dependences.c: Likewise.
3227         * graphite-interchange.c: Likewise.
3228         * graphite-poly.c: Likewise.
3229         * graphite-scop-detection.c: Likewise.
3230         * graphite-sese-to-poly.c: Likewise.
3231         * graphite.c: Likewise.
3232         * haifa-sched.c: Likewise.
3233         * ifcvt.c: Likewise.
3234         * implicit-zee.c: Likewise.
3235         * ipa-prop.c: Likewise.
3236         * ipa-struct-reorg.c: Likewise.
3237         * ipa.c: Likewise.
3238         * ira-build.c: Likewise.
3239         * ira-color.c: Likewise.
3240         * ira-emit.c: Likewise.
3241         * lambda-code.c: Likewise.
3242         * loop-invariant.c: Likewise.
3243         * loop-unroll.c: Likewise.
3244         * lower-subreg.c: Likewise.
3245         * lto-cgraph.c: Likewise.
3246         * lto-opts.c: Likewise.
3247         * lto-streamer-in.c: Likewise.
3248         * lto-streamer-out.c: Likewise.
3249         * lto-streamer.c: Likewise.
3250         * lto-symtab.c: Likewise.
3251         * matrix-reorg.c: Likewise.
3252         * opts.c: Likewise.
3253         * predict.c: Likewise.
3254         * print-tree.c: Likewise.
3255         * sdbout.c: Likewise.
3256         * sel-sched-dump.c: Likewise.
3257         * sel-sched-ir.c: Likewise.
3258         * sel-sched.c: Likewise.
3259         * sese.c: Likewise.
3260         * stor-layout.c: Likewise.
3261         * tree-cfg.c: Likewise.
3262         * tree-cfgcleanup.c: Likewise.
3263         * tree-chrec.c: Likewise.
3264         * tree-data-ref.c: Likewise.
3265         * tree-emutls.c: Likewise.
3266         * tree-inline.c: Likewise.
3267         * tree-into-ssa.c: Likewise.
3268         * tree-loop-distribution.c: Likewise.
3269         * tree-loop-linear.c: Likewise.
3270         * tree-mudflap.c: Likewise.
3271         * tree-outof-ssa.c: Likewise.
3272         * tree-parloops.c: Likewise.
3273         * tree-predcom.c: Likewise.
3274         * tree-pretty-print.c: Likewise.
3275         * tree-scalar-evolution.c: Likewise.
3276         * tree-ssa-live.c: Likewise.
3277         * tree-ssa-loop-im.c: Likewise.
3278         * tree-ssa-loop-ivcanon.c: Likewise.
3279         * tree-ssa-loop-ivopts.c: Likewise.
3280         * tree-ssa-loop-manip.c: Likewise.
3281         * tree-ssa-loop-niter.c: Likewise.
3282         * tree-ssa-loop-prefetch.c: Likewise.
3283         * tree-ssa-phiprop.c: Likewise.
3284         * tree-ssa-pre.c: Likewise.
3285         * tree-ssa-reassoc.c: Likewise.
3286         * tree-ssa-sccvn.c: Likewise.
3287         * tree-ssa-structalias.c: Likewise.
3288         * tree-ssa.c: Likewise.
3289         * tree-vect-data-refs.c: Likewise.
3290         * tree-vect-loop-manip.c: Likewise.
3291         * tree-vect-loop.c: Likewise.
3292         * tree-vect-patterns.c: Likewise.
3293         * tree-vect-slp.c: Likewise.
3294         * tree-vect-stmts.c: Likewise.
3295         * tree-vrp.c: Likewise.
3296         * tree.c: Likewise.
3297         * value-prof.c: Likewise.
3298         * var-tracking.c: Likewise.
3299         * varasm.c: Likewise.
3300         * vmsdbgout.c: Likewise.
3301
3302 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
3303             Richard Guenther  <richard.guenther@gmail.com>
3304
3305         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
3306         copy the src value and return a copy.
3307         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
3308         (C++ Volatiles): Adjust to describe C++ semantics only.
3309
3310 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
3311
3312         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
3313         be zero or nonzero.
3314         * doc/tm.texi: Regenerate.
3315         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
3316         * df-scan.c (df_get_exit_block_use_set), reginfo.c
3317         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
3318         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
3319         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
3320         to 1.
3321
3322 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3323
3324         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
3325         an extra nop past a sibling call at the very end.
3326
3327 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3328
3329         PR bootstrap/45350
3330         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
3331         a comment.
3332
3333 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3334
3335         * target.def (function_arg, function_incoming_arg): Remove const
3336         qualifier on CUMULATIVE_ARGS parameter.
3337         * targhooks.h (default_function_arg, default_function_incoming_arg):
3338         Likewise.
3339         * targhooks.c (default_function_arg, default_function_incoming_arg):
3340         Likewise.
3341         * config/i386/i386.c (ix86_function_arg): Likewise.
3342
3343 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
3344
3345         PR target/45336
3346         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
3347         SIGN_EXTENDs or ZERO_EXTENDs.
3348
3349 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
3350
3351         PR target/42172
3352         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
3353         Take its cost into account if nonnull.
3354         (insn_a_feeds_b): New static function.
3355         (combine_instructions): Look for four-insn combinations.
3356         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
3357         them into account when computing all_adjacent and looking for other
3358         uses.
3359         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
3360         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
3361         (try_combine): New arg I0.  Handle four-insn combinations.
3362         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
3363         like ELIM_I1.
3364
3365 2010-08-19  Jason Merrill  <jason@redhat.com>
3366
3367         PR c++/45307
3368         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
3369         if ctor is empty.
3370         (gimplify_modify_expr_rhs): Adjust.
3371
3372 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
3373
3374         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
3375         bitmap_bit_p.
3376         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
3377         * dominance.c (iterate_fix_dominators): Likewise.
3378         * dse.c (set_usage_bits): Likewise.
3379         (set_position_unneeded, record_store): Likewise.
3380         * gimple-fold.c (get_maxval_strlen): Likewise.
3381         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
3382         * ipa-inline.c (update_caller_keys): Likewise.
3383         * ipa-split.c (verify_non_ssa_vars): Likewise.
3384         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
3385         (close_type_exposed_parameter, close_type_full_escape): Likewise.
3386         (close_addressof_down): Likewise.
3387         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
3388         (setup_allocno_left_conflicts_size): Likewise.
3389         (ira_reassign_conflict_allocnos): Likewise.
3390         (ira_reassign_pseudos): Likewise.
3391         * ira-emit.c (change_loop): Likewise.
3392         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
3393         * lto-streamer-out.c (write_symbol): Likewise.
3394         * predict.c (expr_expected_value_1): Likewise.
3395         * regstat.c (regstat_bb_compute_ri): Likewise.
3396         * sel-sched.c (create_block_for_bookkeeping): Likewise.
3397         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
3398         * stmt.c (expand_case): Likewise.
3399         * tree-eh.c (emit_eh_dispatch): Likewise.
3400         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
3401         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
3402         Likewise.
3403         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
3404         (rdg_build_components): Likewise.
3405         * tree-object-size.c (collect_object_sizes_for): Likewise.
3406         * tree-sra.c (convert_callers): Likewise.
3407         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
3408         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
3409         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
3410
3411 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3412
3413         * config/i386/i386.md (*lea_1): Use P mode iterator.
3414         (lea add splitter): Also handle DImode operands.
3415         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
3416         predicate.  Do not use ix86_lea_for_add_ok.
3417         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
3418         (lea ashift splitter): Also handle DImode operands.
3419         (DImode lea ashift splitter): Remove splitter.
3420
3421 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
3422
3423         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
3424         ix86_binary_operator_ok.
3425
3426 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
3427
3428         PR rtl-optimization/44691
3429         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
3430         is not a register.
3431
3432 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3433
3434         PR target/45070
3435         * config/arm/arm.c (arm_output_epilogue): Ensure that return
3436          value of size 1-3 is handled correctly.
3437
3438 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
3439
3440         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
3441         type for the conditional has wide enough range.
3442
3443 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3444
3445         PR target/45327
3446         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
3447         ix86_binary_operator_ok.
3448
3449 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
3450
3451         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
3452         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
3453         code to output insn mnemonic.  Fix comment.
3454         (*addsi_1_zext): Add r-r-0 alternative 1.
3455         <TYPE_LEA>: Split insn to lea.
3456         <default>: Handle alternative 1.
3457         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
3458         multi-level if_then_else RTX to set "type" attribute.
3459         <default>: Handle alternative 2.
3460         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
3461         Use cond RTX instead of multi-level if_then_else RTX to set
3462         "type" attribute.
3463         <default>: Handle alternatives 2 and 4.
3464         (lea splitters): Update calls to ix86_lea_for_add_ok.
3465
3466         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
3467         argument.
3468         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
3469
3470 2010-08-18  Richard Guenther  <rguenther@suse.de>
3471
3472         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
3473         use operand helpers.
3474
3475 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
3476
3477         PR middle-end/45292
3478         * optabs.c (expand_bool_compare_and_swap): Expand pending
3479         pops before trying the optab.
3480
3481 2010-08-18  Yao Qi  <yao@codesourcery.com>
3482
3483         PR target/45094
3484         * config/arm/arm.c (output_move_double): Fix typo generating
3485         instructions ('ldr'->'str').
3486
3487 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
3488
3489         PR rtl-optimization/42575
3490         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
3491         live ranges.
3492
3493 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
3494
3495         * config/arm/arm-protos.h (arm_expand_sync): New.
3496         (arm_output_memory_barrier, arm_output_sync_insn): New.
3497         (arm_sync_loop_insns): New.
3498         * config/arm/arm.c (FL_ARCH7): New.
3499         (FL_FOR_ARCH7): Include FL_ARCH7.
3500         (arm_arch7): New.
3501         (arm_print_operand): Support %C markup.
3502         (arm_legitimize_sync_memory): New.
3503         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
3504         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
3505         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
3506         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
3507         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
3508         (arm_process_output_sync_insn, arm_output_sync_insn): New.
3509         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
3510         * config/arm/arm.h (struct arm_sync_generator): New.
3511         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
3512         (TARGET_HAVE_MEMORY_BARRIER): New.
3513         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
3514         * config/arm/arm.md: Include sync.md.
3515         (UNSPEC_MEMORY_BARRIER): New.
3516         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
3517         (VUNSPEC_SYNC_OP):New.
3518         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
3519         (sync_result, sync_memory, sync_required_value): New attributes.
3520         (sync_new_value, sync_t1, sync_t2): Likewise.
3521         (sync_release_barrier, sync_op): Likewise.
3522         (length): Add logic to length attribute defintion to call
3523         arm_sync_loop_insns when appropriate.
3524         * config/arm/sync.md: New file.
3525
3526 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3527
3528         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
3529         ENABLE_TREE_CHECKING.
3530         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
3531         and GCC >= 4.3.
3532
3533 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
3534
3535         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
3536         or optimizing for size, always avoid lea if possible.
3537
3538         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
3539
3540 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
3541
3542         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
3543         Dunmmy function with NULL return unless the target is
3544         OSX >= 10.6 (Darwin10).
3545
3546 2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>
3547
3548         * gcc.c (spec_function): Add remove-outfile.
3549         (remove_outfile_spec_function): New function.
3550         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
3551         * invoke.texi (replace-outfile): Document.
3552
3553 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
3554
3555         PR target/45296
3556         * reginfo.c (globalize_reg): Reject stack registers.
3557
3558 2010-08-17  Richard Guenther  <rguenther@suse.de>
3559
3560         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
3561         list of conditional equivalences.
3562         (free_all_edge_infos): Adjust.
3563         (record_equivalences_from_incoming_edge): Likewise.
3564         (record_cond): Likewise.
3565         (build_and_record_new_cond): Likewise.
3566         (record_conditions): Likewise.
3567         (dom_opt_leave_block): Likewise.
3568
3569 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
3570
3571         * doc/invoke.texi (ms-extension): Add documentation.
3572
3573 2010-08-17  Richard Guenther  <rguenther@suse.de>
3574
3575         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
3576
3577 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
3578
3579         PR c/40563
3580         * c-decl.c (diagnose_uninitialized_cst_member): New function.
3581         (finish_decl): Use it to issue a -Wc++-compat warning about
3582         uninitialized const field in struct or union.
3583
3584         (finish_struct): Use strip_array_types.
3585
3586 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
3587
3588         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
3589         functions.
3590         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
3591         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
3592         call block_nreverse here.
3593         (blocks_nreverse): Rename decl temporary to block.
3594
3595 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
3596
3597         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
3598         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
3599         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
3600         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
3601         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
3602         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
3603         thumb2_iorsi3): Delete.
3604         (orsi_notsi_si): No longer a named pattern.
3605         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
3606         * config/arm/predicates.md (shift_amount_operand): New.
3607         (mult_operator): New.
3608         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
3609         attr enabled): New.
3610         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
3611         arch matches t2.
3612         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
3613         (not_shiftsi_compare0): Likewise, renamed from
3614         arm_notsi_shiftsi_compare0.
3615         (not_shiftsi_compare0_scratch): Likweise, renamed from
3616         arm_notsi_shiftsi_compare0_scratch.
3617         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
3618         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
3619         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
3620         so that the register alternative is disabled when the shift_operator
3621         is MULT.  Use "M" as the constraint for constants.
3622         (arith_shiftsi splitter): Enable for TARGET_32BIT.
3623         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
3624         constraint for constants.
3625         (arith_shiftsi_compare0_scratch): Likewise.
3626         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
3627         Handle Thumb2 alternative.
3628
3629 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3630
3631         * doc/options.texi (NoDriverArg): Document.
3632         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
3633         -MDX and -MMDX.
3634         * opt-functions.awk (switch_flags): Handle NoDriverArg.
3635         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
3636         marking for CL_NO_DRIVER_ARG options when in the driver.
3637         * opts.h (CL_NO_DRIVER_ARG): Define.
3638         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3639         CL_COMMON): Update values.
3640
3641 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
3642
3643         * common.opt: Add driver options.
3644         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
3645         * doc/options.texi (Driver, RejectDriver): Document.
3646         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
3647         print_prog_name, print_multi_directory, print_sysroot,
3648         print_multi_os_directory, print_multi_lib,
3649         print_sysroot_headers_suffix, report_times, combine_flag,
3650         use_pipes, wrapper_string): Remove.
3651         (save_switch, driver_unknown_option_callback,
3652         driver_wrong_lang_callback, driver_post_handling_callback,
3653         driver_handle_option): New.
3654         (spec_lang, last_language_n_infiles): Make file-scope static
3655         instead of local to process_command.
3656         (process_command): Use decode_cmdline_options_to_array and
3657         read_cmdline_option for option processing.  Compute have_c in
3658         prescan of decoded options.
3659         * opt-functions.awk (switch_flags): Handle Driver and
3660         RejectDriver.
3661         (var_type, var_type_struct): Handle Separate options as generating
3662         const char * variables.
3663         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
3664         CL_TARGET to be passed by caller if required.
3665         (decode_cmdline_options_to_array): Update comment.
3666         * opts.c (complain_wrong_lang): Handle options only valid for the
3667         driver.
3668         (decode_options): Update call to decode_cmdline_options_to_array.
3669         (print_filtered_help): Ignore driver-only options.
3670         (print_specific_help): Ignore CL_DRIVER.
3671         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
3672         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
3673         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
3674         Update values.
3675
3676 2010-08-16  Richard Guenther  <rguenther@suse.de>
3677
3678         * tree-cfg.c (verify_types_in_gimple_reference): Verify
3679         TARGET_MEM_REF a bit.
3680         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
3681         (create_mem_ref_raw): Always create TMR_OFFSET, store the
3682         alias pointer type via it.
3683         (copy_mem_ref_info): Adjust.
3684         (maybe_fold_tmr): Likewise.
3685         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
3686         (reference_alias_ptr_type): Likewise.
3687         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
3688         adjust documentation of TMR_OFFSET operand.
3689         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
3690         use the alias pointer type.
3691         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
3692         initialize mem attrs but the TMR itself.
3693         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
3694         similar to MEM_REF.
3695         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
3696         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
3697         (unshare_and_remove_ssa_names): Likewise.
3698         (copy_ref_info): Adjust.
3699         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
3700         TARGET_MEM_REF case.
3701         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
3702         at TMR_ORIGINAL.
3703         * tree.h (TMR_ORIGINAL): Remove.
3704         * gimple.c (get_base_address): For TARGET_MEM_REF with a
3705         symbol return that.
3706         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
3707         with a symbol.
3708         (get_addr_base_and_unit_offset): Likewise.
3709         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
3710         TARGET_MEM_REFs.
3711         (indirect_ref_may_alias_decl_p): Likewise.
3712         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
3713
3714 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
3715
3716         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
3717         with GCC version 4.6, the default setting (when not optimizing
3718         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
3719         been changed to -fomit-frame-pointer.
3720
3721 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
3722
3723         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
3724         Darwin10.  Do not link libgcc.a for Darwin >= 9.
3725
3726 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
3727
3728         * doc/invoke.texi (Warning Options): Fix terminology and markup
3729         in the description of how unknown warning options are handled.
3730
3731 2010-08-15  Ira Rosen  <irar@il.ibm.com>
3732
3733         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
3734         in basic blocks.
3735         (vect_supportable_dr_alignment): Check alignment for basic blocks.
3736         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
3737         data references.
3738         (vect_bb_vectorization_profitable_p): New function.
3739         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
3740         check if it's worthwhile to vectorize the basic block.
3741
3742 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
3743
3744         * reload.h (register_move_cost, memory_move_secondary_cost,
3745         secondary_reload_class): Adjust prototype.
3746         * rtl.h (reg_class_subset_p): Adjust prototype.
3747         * reload.c (secondary_reload_class): Change arguments type from
3748         enum reg_class to reg_class_t. Change result type to reg_class_t.
3749         * reginfo.c (register_move_cost, reg_class_subset_p): Change
3750         arguments type from enum reg_class to reg_class_t.
3751         (memory_move_secondary_cost): Change arguments type from
3752         enum reg_class to reg_class_t. Change type of saved_flags to
3753         reg_class_t.
3754
3755         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
3756         Remove macros.
3757         (mips_cost): Remove.
3758         (struct mips_rtx_cost_data): Moved to mips.c.
3759         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
3760         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
3761         (mips_cost): Make static.
3762         (mips_canonicalize_move_class): Change argument type to reg_class_t.
3763         Change result type to reg_class_t.
3764         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
3765         type from enum reg_class to reg_class_t.
3766         (mips_register_move_cost): Make static. Change arguments
3767         type from enum reg_class to reg_class_t.
3768         (mips_memory_move_cost): New function.
3769         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3770
3771 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
3772
3773         PR rtl-optimization/43358
3774         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
3775         of a single hard register, using simplify_subreg_regno to decide
3776         what that register should be.
3777
3778 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
3779
3780         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
3781         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
3782         (loongson_pmull<V_suffix>): Rename to...
3783         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
3784
3785 2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>
3786
3787         * configure.ac: Enable -fomit-frame-pointer on darwin
3788         which support dwarf2.
3789         * config/i386/i386.c (override_options): Same.
3790
3791 2010-08-13  Jie Zhang  <jie@codesourcery.com>
3792
3793         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
3794
3795 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
3796
3797         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
3798         -MMD.
3799
3800 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
3801
3802         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
3803         up dot_prod pattern searching if a stmt is outside the loop.
3804
3805 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
3806             Uros Bizjak  <ubizjak@gmail.com>
3807
3808         * config.gcc: Handle --enable-frame-pointer.
3809
3810         * configure.ac: Add --enable-frame-pointer.
3811         * configure: Regenerated.
3812
3813         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
3814         (override_options): If not configured with --enable-frame-pointer,
3815         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
3816         optimizing for size), -fasynchronous-unwind-tables and
3817         -maccumulate-outgoing-args by default.
3818
3819 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
3820
3821         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
3822
3823         PR middle-end/45262
3824         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
3825         -a overflows.  Normalize the range.
3826
3827 2010-08-12  Richard Guenther  <rguenther@suse.de>
3828
3829         PR tree-optimization/45232
3830         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
3831         for types with undefined overflow.
3832         (reassociate_bb): Allow re-associating of bit and min/max
3833         operations for types with undefined overflow.
3834         * tree-ssa-forwprop.c (associate_plusminus): New function.
3835         (tree_ssa_forward_propagate_single_use_vars): Call it.
3836
3837 2010-08-12  Richard Guenther  <rguenther@suse.de>
3838
3839         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
3840         * tree-ssa-alias.c (get_ptr_info): Move ...
3841         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
3842         align and misalign fields conservatively.
3843         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
3844         derive alignment information.
3845         (evaluate_stmt): Derive alignment information from memory
3846         allocation functions.
3847         * tree.h (get_pointer_alignment): Make unsigned.
3848         * builtins.c (get_object_alignment): Use alignment information we
3849         have computed for pointers.
3850         (get_pointer_alignment): Likewise.  Make conservative, return
3851         and unsigned value.
3852         (expand_builtin_strlen): Adjust.
3853         (expand_builtin_memcmp): Likewise.
3854         (expand_builtin_strcmp): Likewise.
3855         (expand_builtin_strncmp): Likewise.
3856         (get_builtin_sync_mem): Use at least mode alignment.
3857         (fold_builtin_memset): Adjust.
3858         (fold_builtin_memory_op): Likewise.
3859         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
3860         information also dump pointer alignment knowledge.
3861         (dump_gimple_stmt): Likewise.
3862
3863 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
3864
3865         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
3866         (EMPTY_FIELD_BOUNDARY): Remove.
3867         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
3868
3869 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
3870
3871         PR debug/45259
3872         * caller-save.c (save_call_clobbered_regs): Only swap notes with
3873         DEBUG_INSNs if n_regs_saved.
3874
3875 2010-08-12  Wei Guozhi  <carrot@google.com>
3876
3877         PR target/44999
3878         * config/arm/arm.md (andsi3): Change to zero extension if possible.
3879         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
3880
3881 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
3882
3883         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
3884
3885         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
3886
3887 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3888
3889         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
3890         the case removed in the previous patch, when the only phi argument
3891         is defined in the same loop as the phi node itself.  Handle it
3892         separately from the invariant case by both propagating it outside
3893         the region and replacing the phi node with an assign.
3894
3895 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
3896
3897         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
3898         constant phi nodes with one argument are is_gimple_min_invariant
3899         and SSA_NAME_IS_DEFAULT_DEF.
3900
3901 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3902
3903         * graphite-cloog-util.c (oppose_constraint):
3904         Extend loop counter's value range (CLOOG_ORG).
3905         (cloog_matrix_to_ppl_constraint): Same.
3906         (new_Constraint_System_from_Cloog_matrix): Same.
3907         * graphite-cloog-compat.h (matrix_num_type): New.
3908
3909 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3910
3911         * graphite.c (graphite_initialize): Do not initialize
3912         CLooG and initialize the Parma Polyhedra Library
3913         manually when using CLOOG_ORG.
3914         (graphite_finalize): Do not finalize CLooG and finalize
3915         the Parma Polyhedra Library manually when using CLOOG_ORG.
3916         * graphite-cloog-compat.h (cloog_initialize): Hide function
3917         when using CLOOG_ORG.
3918         (cloog_finalize): Same.
3919
3920 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3921
3922         * graphite-clast-to-gimple.c (free_scattering): Change
3923         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
3924         (CLOOG_ORG).
3925         (build_cloog_prog): Same.
3926         * graphite-cloog-compat.h (cloog_domain): Removed.
3927         (cloog_scattering): New.
3928         (cloog_set_domain): Removed.
3929         (cloog_set_scattering): New.
3930         (cloog_next_domain): Removed.
3931         (cloog_next_scattering): New.
3932         (cloog_set_next_domain): Removed.
3933         (cloog_set_next_scattering): New.
3934         (CloogScatteringList): New.
3935         (CloogScattering): New.
3936         (cloog_scattering_free): New.
3937         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
3938         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
3939         New.
3940
3941 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3942
3943         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
3944         CloogState.
3945         (set_cloog_options): Same.
3946         (print_clast_stmt): Same.
3947         (scop_to_clast): Same.
3948         (print_generated_program): Same.
3949         (gloog): Same.
3950         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
3951         (scop_to_clast): Extend with CloogState.
3952         * graphite-cloog-util.c: Include graphite-cloog-compat.h
3953         (new_Cloog_Domain_from_ppl_Polyhedron):
3954         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
3955         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
3956         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
3957         * graphite-cloog-util.h (build_cloog_prog): Same.
3958         * graphite-cloog-copat.h (build_cloog_prog): New.
3959         (CloogState): New.
3960         (cloog_state_malloc): New.
3961         (cloog_state_free): New.
3962         (cloog_loop_malloc): New.
3963         (cloog_options_malloc): New.
3964         (cloog_statement_alloc): New.
3965         (cloog_domain_from_cloog_matrix): New.
3966         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
3967         (new_Cloog_Domain_from_ppl_Polyhedron): New.
3968
3969 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3970
3971         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
3972         type of NAME now depends on used CLooG version.
3973         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
3974         (gcc_type_for_clast_expr): Same.
3975         (print_clast_stmt): Replace pprint with clast_pprint.
3976         * graphite-cloog-compat.h: Provide compatibility macros for
3977         CLooG Legacy.
3978         (clast_name_p): New.
3979         (clast_expr_term): New.
3980         (clast_expr_red): New.
3981         (clast_expr_bin): New.
3982         (clast_pprint): New.
3983
3984 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3985
3986         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
3987         compatible to newer CLooG releases (CLOOG_ORG).
3988         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
3989         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
3990         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
3991         (build_cloog_prog) : New.
3992         (cloog_program_extract_scalars): New.
3993         (cloog_program_scatter): New.
3994
3995 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
3996
3997         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
3998         conditionally (CLOOG_ORG).
3999         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
4000         (cloog_statement_usr): New.
4001         (cloog_domain): Same.
4002         (cloog_set_domain): Same.
4003         (cloog_next_domain): Same.
4004         (cloog_set_next_domain): Same.
4005         (cloog_program_nb_scattdims): Same.
4006         (cloog_program_set_nb_scattdims): Same.
4007         (cloog_program_names): Same.
4008         (cloog_program_set_names): Same.
4009         (cloog_program_set_context): Same.
4010         (cloog_program_set_loop): Same.
4011         (cloog_program_blocklist): Same.
4012         (cloog_program_set_blocklist): Same.
4013         (cloog_program_scaldims): Same.
4014         (cloog_program_set_scaldims): Same.
4015         (cloog_names_nb_parameters): Same.
4016         (cloog_names_set_nb_parameters): Same.
4017         (cloog_names_parameters): Same.
4018         (cloog_names_set_parameters): Same.
4019         (cloog_names_set_nb_iterators): Same.
4020         (cloog_names_set_iterators): Same.
4021         (cloog_names_set_nb_scattering): Same.
4022         (cloog_names_set_scattering): Same.
4023         (cloog_statement_set_usr): Same.
4024         (cloog_loop_set_next): Same.
4025         (cloog_loop_set_domain): Same.
4026         (cloog_loop_set_block): Same.
4027         (cloog_block_list_next): Same.
4028         (cloog_block_list_set_next):
4029         (cloog_block_list_set_block): Same.
4030
4031 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4032
4033         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
4034         a bool.
4035         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
4036         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
4037         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
4038         when something has been changed.
4039         (rewrite_commutative_reductions_out_of_ssa): Same.
4040
4041 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4042
4043         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
4044         handle the case when def is in the sese region.
4045         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
4046         for invariant expressions.
4047         (rewrite_cross_bb_phi_deps): Removed.
4048         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
4049         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
4050         rewrite_cross_bb_phi_deps.
4051
4052 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4053
4054         * graphite-sese-to-poly.c
4055         (rewrite_commutative_reductions_out_of_ssa_loop): Call
4056         scev_analyzable_p only on is_gimple_reg
4057
4058 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4059
4060         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
4061         (rewrite_close_phi_out_of_ssa): Propagate constant values or
4062         parametric expressions outside the scop region.
4063         (rewrite_cross_bb_scalar_deps): Same.
4064         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
4065
4066 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4067
4068         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
4069         SSA_NAME_DEF_STMT only on SSA_NAMEs.
4070
4071 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4072
4073         * tree-scalar-evolution.c (instantiate_scev_name): Do not
4074         instantiate default definitions.
4075
4076 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
4077             Sebastian Pop  <sebastian.pop@amd.com>
4078
4079         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
4080         (loop_exits_from_bb_p): New.
4081         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
4082         (loop_exits_from_bb_p): Declared.
4083         * graphite-scop-detection.c (scopdet_basic_block_info): Call
4084         loop_exits_to_bb_p.
4085
4086 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4087
4088         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
4089         extra parameter for the region.  Call scev_analyzable_p.
4090         (rewrite_reductions_out_of_ssa): Update call to
4091         rewrite_close_phi_out_of_ssa.
4092         (rewrite_cross_bb_phi_deps): Same.
4093         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
4094         parameter for the region.  Call scev_analyzable_p.
4095         (rewrite_commutative_reductions_out_of_ssa): Update call to
4096         rewrite_commutative_reductions_out_of_ssa_loop.
4097
4098 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4099
4100         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
4101
4102 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4103
4104         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
4105         SSA scalar phi nodes that can be scev_analyzable_p.
4106
4107 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4108
4109         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
4110         handle SSA_NAME_IS_DEFAULT_DEF.
4111
4112 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4113
4114         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
4115
4116 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4117
4118         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
4119         case non close-phi nodes with one argument.
4120
4121 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4122
4123         * sese.h (scev_analyzable_p): Scevs could be expressions without
4124         chrecs and still be scev_analyzable_p.
4125
4126 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4127
4128         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
4129
4130 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4131
4132         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
4133         * cfgloop.h (struct loop): Remove single_iv field.
4134         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
4135         (scop_canonicalize_loops): Removed.
4136         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
4137         over all the loop phi nodes in loop->header.
4138         (build_poly_scop): Remove use of scop_canonicalize_loops.
4139
4140 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4141
4142         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
4143         handle GIMPLE_CALL.
4144
4145 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4146
4147         * tree-chrec.c (chrec_apply): Should only apply to the specified
4148         variable.  Also handle multivariate chains of recurrences that
4149         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
4150
4151 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4152
4153         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
4154         (debug_clast_name_indexes_1): Removed.
4155         (debug_clast_name_indexes): Removed.
4156         (pbb_to_depth_to_oldiv): Removed.
4157         (build_iv_mapping): Replace the use of rename_map with iv_map.
4158         (translate_clast_user): Remove uses of rename_map.  Allocate and
4159         free iv_map.
4160         (translate_clast_for_loop): Remove uses of rename_map.
4161         (translate_clast_for): Same.
4162         (translate_clast_guard): Same.
4163         (translate_clast): Same.
4164         (gloog): Same.
4165         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
4166         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
4167         * sese.c (set_rename): Now static.
4168         (rename_variables_in_stmt): Removed.
4169         (rename_uses): New.
4170         (is_parameter): Removed.
4171         (is_iv): Removed.
4172         (expand_scalar_variables_call): Removed.
4173         (expand_scalar_variables_ssa_name): Removed.
4174         (expand_scalar_variables_expr): Removed.
4175         (expand_scalar_variables_stmt): Removed.
4176         (expand_scalar_variables): Removed.
4177         (rename_variables): Removed.
4178         (remove_condition): Removed.
4179         (get_true_edge_from_guard_bb): Removed.
4180         (get_false_edge_from_guard_bb): Removed.
4181         (struct igp): Removed.
4182         (default_before_guard): Removed.
4183         (convert_for_phi_arg): Removed.
4184         (add_guard_exit_phis): Removed.
4185         (insert_guard_phis): Removed.
4186         (graphite_copy_stmts_from_block): Now also uses iv_map and a
4187         region.  Do not copy conditions.  Do not copy induction variables.
4188         Call rename_uses.
4189         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
4190         the translated statement.  Use the iv_map for the induction
4191         variable renaming.
4192         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4193         (set_rename): Removed declaration.
4194         (scev_analyzable_p): ...here.
4195         * tree-chrec.c (chrec_apply_map): New.
4196         * tree-chrec.h (chrec_apply_map): Declared.
4197
4198 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4199
4200         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
4201         insert_loop_close_phis.
4202         * sese.c (name_defined_in_loop_p): Removed.
4203         (expr_defined_in_loop_p): Removed.
4204         (alive_after_loop): Removed.
4205         (close_phi_not_yet_inserted_p): Removed.
4206         (struct alep): Removed.
4207         (add_loop_exit_phis): Removed.
4208         (insert_loop_close_phis): Removed.
4209
4210 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4211
4212         * graphite-cloog-util.c
4213         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
4214         * graphite-poly.c
4215         (psct_scattering_dim_for_loop_depth): Same.
4216
4217 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4218
4219         * graphite-cloog-util.h: Added cloog.h.
4220         * graphite-blocking.c: Removed cloog.h.
4221         * graphite-dependences.c: Same.
4222         * graphite-interchange.c: Same.
4223         * graphite-poly.c: Same.
4224         * graphite-ppl.c: Same.
4225         * graphite-scop-detection.c: Same.
4226         * graphite-sese-to-poly.c:
4227         Removed cloog.h.
4228         Removed graphite-clast-to-gimple.h.
4229         (check_poly_representation): Removed (unused).
4230         * graphite-sese-to-poly.h
4231         (check_poly_representation): Removed (unused).
4232
4233 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4234
4235         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
4236         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
4237         (graphite-cloog-util.o): New.
4238         (graphite-ppl.o): Added graphite-cloog-util.h.
4239         * graphite-clast-to-gimple.c:
4240         Added graphite-cloog-util.h to include statements.
4241         * graphite-cloog-util.c: New.
4242         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
4243         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4244         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4245         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4246         (insert_constraint_into_matrix): Same.
4247         (ppl_Constrain_System_number_of_constraints): Same.
4248         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4249         (oppose_constraint): Same.
4250         (cloog_matrix_to_ppl_constraint): Same.
4251         (new_Constraint_System_from_Cloog_Matrix): Same.
4252         * graphite-cloog-util.h: New.
4253         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
4254         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4255         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4256         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4257         (insert_constraint_into_matrix): Same.
4258         * graphite-ppl.c:
4259         Added graphite-cloog-util.h to include statements.
4260         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
4261         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4262         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4263         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4264         (insert_constraint_into_matrix): Same.
4265         (ppl_Constrain_System_number_of_constraints): Same.
4266         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
4267         (oppose_constraint): Same.
4268         (cloog_matrix_to_ppl_constraint): Same.
4269         (new_Constraint_System_from_Cloog_Matrix): Same.
4270         * graphite-ppl.h:
4271         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
4272         graphite-cloog-util.h.
4273         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
4274         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
4275         (new_C_Polyhedron_from_Cloog_Matrix): Same.
4276         (insert_constraint_into_matrix): Same.
4277
4278 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
4279
4280         * graphite-clast-to-gimple.c
4281         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
4282         (precision_for_interval): Same.
4283         (gcc_type_for_interval): Same.
4284         (compute_type_for_level): Same.
4285         * graphite-interchange.c
4286         (lst_interchange_profitable_p): Same.
4287         * graphite-poly.c
4288         (psct_scattering_dim_for_loop_depth): Same.
4289         * graphite-ppl.c
4290         (ppl_max_for_le_pointset): Same.
4291         (ppl_min_for_le_pointset): Same.
4292
4293 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4294
4295         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
4296         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
4297
4298 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4299
4300         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
4301         rewrite_close_phi_out_of_ssa.
4302
4303 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4304
4305         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
4306
4307 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4308
4309         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
4310         rename_map.
4311         * sese.c (debug_rename_map): Same.
4312         (get_rename): Same.
4313         (set_rename): Same.
4314         (rename_variables_in_stmt): Same.
4315         (expand_scalar_variables_call): Same.
4316         (expand_scalar_variables_ssa_name): Same.
4317         (expand_scalar_variables_expr): Same.
4318         (expand_scalar_variables_stmt): Same.
4319         (expand_scalar_variables): Same.
4320         (rename_variables): Same.
4321         (graphite_copy_stmts_from_block): Same.
4322         (copy_bb_and_scalar_dependences): Same.
4323
4324 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4325
4326         * graphite-clast-to-gimple.c (copy_renames): Removed.
4327         (translate_clast_for): Do not call copy_renames.
4328         (translate_clast_guard): Same.
4329
4330 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4331
4332         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
4333         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
4334         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
4335         before rewrite_cross_bb_scalar_deps.
4336
4337 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4338
4339         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
4340         Early return in when flag_associative_math is not set.
4341
4342 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4343
4344         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
4345         of SSA copies on edges except for loop->latch.
4346
4347 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4348
4349         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
4350         Split out of rewrite_reductions_out_of_ssa.
4351         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
4352         Declared.
4353         * graphite.c (graphite_transform_loops): Call it.
4354
4355 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4356
4357         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
4358
4359 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
4360
4361         * dbgcnt.def (graphite_scop): New counter.
4362         * graphite.c: Include dbgcnt.h.
4363         (graphite_transform_loops): Use new counter to limit transformations.
4364         * Makefile.in (graphite.o): Depend on DBGCNT_H.
4365
4366 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4367
4368         * passes.c (init_optimization_passes): Add pass_graphite.
4369         Schedule a pass_copy_prop before pass_graphite_transforms.
4370         * timevar.def (TV_GRAPHITE): Declared.
4371         * tree-pass.h (pass_graphite): Declared.
4372         * tree-ssa-loop.c (pass_graphite): New.
4373
4374 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4375
4376         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
4377         Remove calls to rename_nb_iterations and rename_sese_parameters.
4378         * graphite-clast-to-gimple.h (gloog): Update declaration.
4379         * graphite.c (graphite_transform_loops): Update call to gloog.
4380         * sese.c (rename_variables_in_expr): Removed.
4381         (rename_nb_iterations): Removed.
4382         (rename_sese_parameters): Removed.
4383         * sese.h (rename_nb_iterations): Removed.
4384         (rename_sese_parameters): Removed.
4385
4386 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4387
4388         * graphite-clast-to-gimple.c (gloog): Remove call to
4389         sese_adjust_liveout_phis.
4390         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
4391         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
4392         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
4393         rewrite_phi_out_of_ssa.
4394         * sese.c (get_vdef_before_sese): Removed.
4395         (sese_adjust_vphi): Removed.
4396         (sese_adjust_liveout_phis): Removed.
4397         * sese.h (sese_adjust_liveout_phis): Removed.
4398
4399 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4400
4401         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
4402         argument for the place after which to insert the out of SSA copy.
4403         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
4404         (rewrite_phi_out_of_ssa): Same.
4405         (rewrite_cross_bb_scalar_deps): Same.
4406         (insert_copyout): Removed.
4407         (insert_copyin): Removed.
4408         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
4409         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
4410         insert_copyin.
4411
4412 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4413
4414         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
4415         (rewrite_reductions_out_of_ssa): Same.
4416         (rewrite_commutative_reductions_out_of_ssa): Same.
4417         (build_poly_scop): Do not call these functions.
4418         * graphite-sese-to-poly.h (build_poly_scop): Declared.
4419         (rewrite_reductions_out_of_ssa): Declared.
4420         (rewrite_commutative_reductions_out_of_ssa): Declared.
4421         * graphite.c (graphite_transform_loops): Call on every scop
4422         rewrite_commutative_reductions_out_of_ssa before calling
4423         rewrite_reductions_out_of_ssa and build_scop_bbs.
4424
4425 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4426
4427         * graphite-dependences.c (dot_deps): Make system call to dotty run
4428         in background.
4429         (dot_deps_stmt): Same.
4430         * graphite-poly.c (dot_lst): Same.
4431
4432 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
4433
4434         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
4435         phi_arg_in_outermost_loop.
4436         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
4437         (remove_invariant_phi): Same.
4438
4439 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
4440
4441         * target.def (output_addr_const_extra): New hook.
4442         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
4443         * doc/tm.texi: Regenerate.
4444         * targhooks.c (default_asm_output_addr_const_extra): New function.
4445         * targhooks.h (default_asm_output_addr_const_extra): Declare.
4446         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
4447         target hook.
4448
4449         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
4450         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
4451         * config/i386/i386.h (output_addr_const_extra): Rename to...
4452         (i386_asm_output_addr_const_extra): ...this. Make static.
4453         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4454
4455 2010-08-11  Richard Henderson  <rth@redhat.com>
4456
4457         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
4458
4459 2010-08-11  Nick Clifton  <nickc@redhat.com>
4460
4461         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
4462         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
4463         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4464         stormy16-lib2-cmpsi.c.
4465
4466         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
4467         -O2.
4468
4469 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
4470
4471         * opts.h (struct cl_option_handler_func): Make handler take
4472         cl_decoded_option structure as parameter, not individual elements.
4473         (struct cl_option_handlers): Make callbacks take cl_decoded_option
4474         structure as parameter, not individual elements.
4475         (handle_option): Take cl_decoded_option structure as parameter,
4476         not individual elements.
4477         (handle_generated_option): Declare.
4478         * opts-common.c (handle_option): Take cl_decoded_option structure
4479         as parameter, not individual elements.  Update calls to callback
4480         and handler functions.
4481         (handle_generated_option): New.
4482         (read_cmdline_option): Update calls to callback functions and
4483         handle_option.
4484         * opts.c (common_handle_option, complain_wrong_lang,
4485         unknown_option_callback, post_handling_callback,
4486         lang_handle_option, target_handle_option): Take cl_decoded_option
4487         structure as parameter, not individual elements.
4488         (lang_handle_option, target_handle_option, common_handle_option):
4489         Assert option has at most one argument.
4490         (enable_warning_as_error): Call handle_generated_option instead of
4491         handle_option.  Do not pass -Werror argument as argument of
4492         generated option.
4493
4494 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4495
4496         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4497         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4498         (SUBWORD_BOOL_CAS): Likewise.
4499         (SUBWORD_SYNC_OP): Likewise.
4500         (SUBWORD_TEST_AND_SET): Likewise.
4501         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4502         (SUBWORD_SYNC_OP): Likewise.
4503         (OP_AND_FETCH_WORD): Likewise.
4504
4505 2010-08-10  Xinliang David Li  <davidxl@google.com>
4506
4507         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
4508         compute max/min offset in address.
4509
4510 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
4511
4512         * ira-live.c: Include sbitmap.h.
4513         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
4514         Compress live ranges even more.
4515
4516 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4517
4518         * coverage.c (ctr_labels): Delete.
4519
4520 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4521
4522         PR bootstrap/45177
4523         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
4524         test here from arm_gen_load_multiple_1.
4525         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
4526         multiple_operation_profitable_p.
4527
4528 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4529
4530         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
4531         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
4532
4533 2010-08-10  Richard Henderson  <rth@redhat.com>
4534
4535         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
4536         after saving registers.  Assert that SSE registers are only saved
4537         with a sufficiently aligned frame.
4538         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
4539         remove stack_realign_fp handling.
4540         (ix86_expand_prologue): Save int registers before stack_realign_fp,
4541         and do not mark the stack alignment as frame related.
4542         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
4543
4544         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
4545         saves when re-aligning the stack.
4546
4547 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4548
4549         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
4550         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
4551         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
4552
4553 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
4554
4555         * dwarf2out.c (struct die_struct): Move die_tag to the end.
4556
4557 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
4558
4559         * config/arm/iterators.md: New file.
4560         * config/arm/arm.md: Include iterators.md.
4561         (QHSI): Move to new file.
4562         (LTUGEU, cnb, optab, ior_xor): Likewise.
4563         * config/arm/iwmmxt.md (VMMX): Move to new file.
4564         (VSHFT, MMX_char): Likewise.
4565         * config/arm/neon.md (VD): Move to new file.
4566         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
4567         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
4568         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
4569         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
4570         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
4571         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
4572         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
4573         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
4574         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
4575         (Is_d_reg, V_mode_nunits): Likewise.
4576         * config/arm/vec-common.md (VALL): Move to new file.
4577         (VALLW, VINT, VINTW): Likewise.
4578
4579 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
4580
4581         PR middle-end/45182
4582         * combine.c (make_compound_operation): Don't try to convert
4583         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
4584
4585 2010-08-10  Richard Guenther  <rguenther@suse.de>
4586
4587         * tree.h (get_object_alignment): Adjust prototype.
4588         * builtins.c (get_object_alignment): Return unsigned int,
4589         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
4590         and TARGET_MEM_REF properly.
4591         (get_pointer_alignment): Adjust.
4592         * emit-rtl.c (get_mem_align_offset): Adjust comment.
4593         (set_mem_attributes_minus_bitpos): Adjust.
4594         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
4595
4596 2010-08-10  Richard Guenther  <rguenther@suse.de>
4597
4598         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
4599         (copy_prop_visit_assignment): Simplify.
4600         (copy_prop_visit_stmt): Also visit assignments from
4601         constants.
4602         (copy_prop_visit_phi_node): Use operand_equal_p.
4603
4604 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4605
4606         * ipa-split.c (find_split_points): Free stack.
4607
4608 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4609
4610         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
4611         * tree.c (tree_node_kind): Delete corresponding entries.
4612
4613 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
4614
4615         * alias.c (may_alias_p): Remove unused ret.
4616
4617 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
4618
4619         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
4620         alias_sets_conflict_p.
4621         (walk_mems_1): Moved from alias.c.
4622         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
4623         in alias.c.
4624         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
4625         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
4626         * alias.c (walk_mems_2): Moved to ddg.c.
4627         (walk_mems_1): Ditto.
4628         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
4629         to ddg.c.
4630         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
4631         disambiguation.
4632         *(may_alias_p): New function to check whether two memory expression
4633         may alias or not. Currently used in buidling inter-iteration memory
4634         dependence.
4635         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
4636         (insn_alias_sets_conflict_p): Removed
4637         *rtl.h (may_alias_p): New function prototype.
4638
4639 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4640
4641         * tree.c (nreverse): Assert that we don't have a BLOCK.
4642
4643 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
4644
4645         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
4646         * config/arm/arm.c (arm_get_pcs_model): Likewise.
4647         * config/avr/avr.c (init_cumulative_args): Likewise.
4648         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
4649         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
4650         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
4651         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
4652         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
4653         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4654         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
4655         * dwarf2out.c (gen_subprogram_die): Likewise.
4656         * function.c (allocate_struct_function): Likewise.
4657         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
4658         (deserves_ellipsis): Delete.
4659
4660 2010-08-09  Richard Guenther  <rguenther@suse.de>
4661
4662         * tree-ssa-copy.c (cached_last_copy_of): Remove.
4663         (valueize_val): New function.
4664         (get_last_copy_of): Remove.
4665         (set_copy_of_val): Simplify.
4666         (dump_copy_of): Likewise.
4667         (copy_prop_visit_cond_stmt): Use valueize_val.
4668         (copy_prop_visit_phi_node): Properly handle unvisited names.
4669         Drop code managing copy-of chains.
4670         (init_copy_prop): Adjust.
4671         (fini_copy_prop): Likewise.
4672         (execute_copy_prop): Remove obsolete comment.
4673
4674 2010-08-09  Richard Guenther  <rguenther@suse.de>
4675
4676         PR middle-end/44632
4677         * function.c (gimplify_parameters): Do not clear addressable
4678         bit of the original parameter.
4679
4680 2010-08-09  Richard Guenther  <rguenther@suse.de>
4681
4682         PR middle-end/45212
4683         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
4684         alignment from MEM_REF offset only if we took it from the
4685         base object.
4686
4687 2010-08-09  Eric Fisher <joefoxreal@gmail.com>
4688
4689         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
4690
4691 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4692
4693         * c-tree.h (build_arg_info): Declare.
4694         * c-decl.c (build_arg_info): Define.
4695         (get_parm_info): Call it.  Delete initialization code.
4696         * c-parser.c (c_parser_parms_declarator): Likewise.
4697         (c_parser_parms_list_declaractor): Likewise.
4698
4699 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4700
4701         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
4702         (struct c_arg_info): Change type of tags field.
4703         * c-decl.c (grokdeclarator): Update for changed type of tags field.
4704         (get_parm_info): Likewise.
4705         (store_parm_decls_newstyle): Likewise.
4706
4707 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
4708
4709         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
4710         (branch_island_list): Delete.
4711         (branch_islands): Declare.
4712         (add_compiler_branch_island): Adjust for branch_islands instead of
4713         branch_island_list.
4714         (macho_branch_islands): Likewise.
4715         (no_previous_def): Likewise.
4716         (get_prev_label): Likewise.
4717
4718 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4719
4720         PR boehm-gc/34544
4721         * gthr-posix.h (__gthread_start): Delete.
4722         (__gthread_active_init): Use pthread_default_stacksize_np instead of
4723         pthread_create to determine if hpux pthreads are active.
4724         * gthr-posix95.h (__gthread_start): Delete.
4725         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
4726
4727 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
4728
4729         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
4730         _WIN64 not expanded.
4731
4732 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
4733             H.J. Lu  <hongjiu.lu@intel.com>
4734
4735         PR target/45213
4736         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
4737         to output 32bit SFmode immediate as 8 byte sign extended value.
4738
4739 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4740
4741         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
4742         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
4743         (SUBWORD_BOOL_CAS): Likewise.
4744         (SUBWORD_SYNC_OP): Likewise.
4745         (SUBWORD_TEST_AND_SET): Likewise.
4746         (FETCH_AND_OP_WORD): Parenthesise INF_OP
4747         (SUBWORD_SYNC_OP): Likewise.
4748         (OP_AND_FETCH_WORD): Likewise.
4749
4750 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4751
4752         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
4753         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
4754         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
4755         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
4756         generic part.
4757         (cortex_a9_sched_adjust_cost): New function.
4758         (xscale_sched_adjust_cost): New function.
4759         * config/arm/arm-protos.h (struct tune_params): New field
4760         sched_adjust_cost.
4761         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
4762
4763 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
4764
4765         PR target/44942
4766         * config/sparc/sparc.c (function_arg_advance): Always take into account
4767         the padding, if any.
4768
4769 2010-08-06  Richard Guenther  <rguenther@suse.de>
4770
4771         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
4772         (dump_lattice_value): Dump it.
4773         (get_default_value): Adjust.
4774         (get_constant_value): Likewise.
4775         (set_value_varying): Likewise.
4776         (set_lattice_value): Make sure to not go up the lattice
4777         with bitwise constant values.
4778         (get_value_for_expr): Handle ADDR_EXPRs.
4779         (value_to_double_int): New function.
4780         (get_value_from_alignment): Likewise.
4781         (do_dbg_cnt): Adjust.
4782         (ccp_lattice_meet): Handle partially constant values.
4783         (bit_value_unop_1): New function.
4784         (bit_value_binop_1): Likewise.
4785         (bit_value_unop): Likewise.
4786         (bit_value_binop): Likewise.
4787         (evaluate_stmt): Track partially constant values if
4788         flag_tree_bit_ccp is set.
4789         (ccp_fold_stmt): Dump if we folded a predicate.
4790         (ccp_visit_stmt): Adjust.
4791         * common.opt (ftree-bit-ccp): New flag.
4792         * doc/invoke.texi (ftree-bit-ccp): Document.
4793         * opts.c (decode_options): Enable bit-CCP at -O1.
4794
4795 2010-08-06  Alan Modra  <amodra@gmail.com>
4796
4797         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
4798         and -mrelocatable-lib description.
4799
4800 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
4801
4802         From Martin Thuresson  <martint@google.com>
4803         * postreload.c (reload_cse_simplify_operands): Use
4804         SET_REGNO_RAW instead of SET_REGNO.
4805         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
4806         SET_REGNO.
4807         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
4808         instead of SET_REGNO.
4809         * rtl.h (SET_REGNO_RAW): New macro.
4810
4811 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
4812
4813         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
4814         computations.  Fix formatting issues.
4815         (num_sign_bit_copies1): Likewise.
4816         (canonicalize_condition): Likewise.
4817
4818 2010-08-05  Richard Henderson  <rth@redhat.com>
4819
4820         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
4821         (floor_log2): Use clz_hwi.
4822         (exact_log2): Use ctz_hwi.
4823         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
4824         * builtins.c (fold_builtin_bitop): Use them.
4825         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
4826         * combine.c (get_pos_from_mask): Use ctz_hwi.
4827         * double-int.c (double_int_ctz): Likewise.
4828         * explow.c (force_reg): Likewise.
4829         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
4830
4831 2010-08-05  Richard Henderson  <rth@redhat.com>
4832
4833         PR target/45189
4834         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
4835         the alignment constant is properly sign-extended.
4836
4837 2010-08-05  Richard Guenther  <rguenther@suse.de>
4838
4839         * expr.c (store_expr): Use emit_block_move only if both
4840         source and target are MEMs.  Use store_bit_field if only
4841         the target is a MEM.
4842
4843 2010-08-05  Richard Henderson  <rth@redhat.com>
4844
4845         PR debug/45188
4846         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
4847         (INCOMING_RETURN_ADDR_RTX): Likewise.
4848         (dwarf2out_do_frame): Remove conditional compilation.
4849         (dwarf2out_frame_init): Likewise.
4850
4851 2010-08-05  Nicolas Setton  <setton@adacore.com>
4852
4853         * gcov.c (flag_display_progress): New static variable.
4854         (main): Display progress info on standard output if requested.
4855         (options): Add -d/--display-progress.
4856         (print_usage): Print them.
4857         (process_args): Handle them.
4858         * doc/gcov.texi: Document them.
4859
4860 2010-08-05  Martin Jambor  <mjambor@suse.cz>
4861
4862         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
4863         (ipcp_insert_stage): Redirect only edges not flagged with
4864         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
4865         discovered constants.
4866
4867 2010-08-05  Martin Jambor  <mjambor@suse.cz>
4868
4869         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
4870         (struct ipa_param_descriptor): New fields types and
4871         cannot_devirtualize.
4872         (ipa_param_cannot_devirtualize_p): New function.
4873         (ipa_param_types_vec_empty): Likewise.
4874         (ipa_make_edge_direct_to_target): Declare.
4875         * ipa-cp.c: Fixed first stage driver name in initial comment,
4876         described devirtualization there too.
4877         (ipcp_analyze_node): Call ipa_analyze_params_uses.
4878         (ipcp_print_all_lattices): Print devirtualization info.
4879         (ipa_set_param_cannot_devirtualize): New function.
4880         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
4881         lattice to BOTTOM.
4882         (ipcp_init_stage): Merged into...
4883         (ipcp_generate_summary): ...its caller.
4884         (ipcp_change_tops_to_bottom): Also process type lists.
4885         (ipcp_add_param_type): New function.
4886         (ipcp_copy_types): Likewise.
4887         (ipcp_propagate_types): Likewise.
4888         (ipcp_propagate_stage): Also propagate types.
4889         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
4890         Also return true if propagated types require it.
4891         (ipcp_update_callgraph): Dump redirection info.
4892         (ipcp_process_devirtualization_opportunities): New function.
4893         (ipcp_const_param_count): Include known type information.
4894         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
4895         on new node.  Fixed formatting.
4896         * ipa-prop.c (make_edge_direct_to_target): Renamed to
4897         ipa_make_edge_direct_to_target and changed all callers.  Made
4898         externally visible.
4899         (ipa_node_duplication_hook): Duplicate types vector.
4900         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
4901         redirect outgoing calls for which we can't get a decl from the
4902         statement.  Check that we can get a decl from the call statement.
4903         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4904         ipa_analyze_params_uses only when ipa-cp is disabled.
4905         * tree-inline.c (get_indirect_callee_fndecl): Removed.
4906         (expand_call_inline): Do not call get_indirect_callee_fndecl.
4907         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
4908         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
4909
4910 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
4911
4912         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
4913         temporary. Emit move from temporary to accum, so REG_EQUAL note will
4914         be attached to this insn in correct mode.
4915
4916 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
4917
4918         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
4919         using REGNO of base_reg directly.
4920
4921 2010-08-05  Jie Zhang  <jie@codesourcery.com>
4922
4923         PR tree-optimization/45144
4924         * tree-sra.c (type_consists_of_records_p): Return false
4925         if the record contains bit-field.
4926
4927 2010-08-04  Richard Henderson  <rth@redhat.com>
4928
4929         * config/i386/i386.c (struct ix86_frame): Remove padding and
4930         to_allocate members.
4931         (ix86_compute_frame_layout): Don't store them.
4932         (ix86_can_use_return_insn_p): Use a more direct and more obviously
4933         correct condition for the position of the stack pointer.
4934         (ix86_expand_prologue): Compute remaining stack allocation based
4935         on the ultimate stack pointer offset.
4936         (ix86_expand_epilogue): Use more obvious expressions testing for
4937         the stack pointer already pointing to the saved registers.
4938
4939         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
4940         duplication deconstructing the frame pointer.  Simplify
4941         deallocation of the local stack frame.
4942
4943         * reg-notes.def (CFA_EXPRESSION): New.
4944         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
4945         (dwarf2out_frame_debug_cfa_expression): New.
4946         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
4947
4948         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
4949         * config/i386/i386.c (ix86_expand_prologue): Set it.
4950         (ix86_expand_epilogue): Clear it.
4951         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
4952         context, add REG_CFA_EXPRESSION notes.
4953
4954         * config/i386/i386.h (struct machine_frame_state): Rename from
4955         machine_cfa_state.  Add members tracking SP and FP regardless
4956         of the current CFA register.
4957         (ix86_cfa_state): Remove.
4958         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
4959         and sse_reg_save_offset members.
4960         (ix86_compute_frame_layout): Set them.
4961         (gen_push): Increment sp_offset too.
4962         (choose_baseaddr_len, choose_baseaddr): New.
4963         (ix86_emit_save_reg_using_mov): New.
4964         (ix86_emit_save_regs_using_mov): Use it.
4965         (ix86_emit_save_sse_regs_using_mov): Likewise.
4966         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
4967         compare vs the saved red_zone_offset.
4968         (pro_epilogue_adjust_stack): Adjust sp_offset.
4969         (ix86_adjust_stack_and_probe): Likewise.
4970         (ix86_expand_prologue): Set up, use, and validate the new
4971         frame_state_info members.  Use gen_frame_mem.
4972         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
4973         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
4974         new frame_state_info members.
4975         (ix86_emit_leave): Likewise.
4976         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
4977         out-of-range stack pointer offsets here.
4978         (ix86_emit_restore_sse_regs_using_mov): Likewise.
4979         (ix86_expand_epilogue): Use and validate the new frame_state_info
4980         members.  Break up and simplify the logic selecting the
4981         restore_regs_via_mov code path.  Ensure that there will be no
4982         out-of-range stack pointer offsets.
4983
4984         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
4985
4986         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
4987         argument name to reflect the expected tree; fix indentation.
4988         (ix86_asm_output_function_label): Output the entire 32-bit
4989         ms_hook here as bytes ...
4990         (ix86_expand_prologue): ... not here as insns.  Attach the
4991         unwind info for the ms_hook to a blockage insn.
4992         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
4993         (ix86_ms_bitfield_layout_p): Fix indentation.
4994         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
4995
4996         * config/i386/i386.c (ix86_using_red_zone): New.
4997         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
4998         ix86_expand_prologue, ix86_force_to_memory): Use it.
4999
5000         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
5001         saving the int registers.
5002
5003         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
5004         and DWARF2_UNWIND_INFO conditional compilation.
5005
5006 2010-08-04  Richard Henderson  <rth@redhat.com>
5007
5008         PR debug/45171
5009         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
5010         an is_naming_typedef_decl.
5011
5012 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
5013
5014         PR rtl-optimization/45162
5015         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
5016         * dce.c (word_dce_process_block): Likewise.
5017
5018 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
5019
5020         PR target/44583
5021         * config/ia64/constraints.md (Z): New.
5022         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
5023         (xfreg_or_signed_fp01_operand): New.
5024         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
5025         with fr_reg_or_signed_fp01_operand and constraint G with Z.
5026         (subsf3): Ditto.
5027         (*maddsf4): Ditto.
5028         (*msubsf4): Ditto.
5029         (adddf3): Ditto.
5030         (adddf3_trunc): Ditto.
5031         (subdf3): Ditto.
5032         (*subdf3_trunc): Ditto.
5033         (*madddf4): Ditto.
5034         (*madddf4_trunc): Ditto.
5035         (*msubdf4): Ditto.
5036         (*msubdf4_trunc): Ditto.
5037         (addxf3): Replace xfreg_or_fp01_operand with
5038         xfreg_or_signed_fp01_operand and constraint G with Z.
5039         (*addxf3_truncsf): Ditto.
5040         (*addxf3_truncdf): Ditto.
5041         (subxf3): Ditto.
5042         (*subxf3_truncsf): Ditto.
5043         (*subxf3_truncdf): Ditto.
5044         (*maddxf4): Ditto.
5045         (*maddxf4_truncsf): Ditto.
5046         (*maddxf4_truncdf): Ditto.
5047         (*msubxf4): Ditto.
5048         (*msubxf4_truncsf): Ditto.
5049         (*msubxf4_truncdf): Ditto.
5050
5051 2010-08-04  Richard Guenther  <rguenther@suse.de>
5052
5053         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
5054         if either alias-set is zero.
5055
5056 2010-08-04  Richard Guenther  <rguenther@suse.de>
5057
5058         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
5059         * tree-ssa-ccp.c: ... here.
5060         * tree-ssa-copy.c: ... and here.
5061         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
5062         value_range_t): Move ...
5063         * tree-vrp.c: ... here.
5064         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
5065         (substitute_and_fold): Adjust prototype.
5066         * tree-ssa-propagate.c (replace_uses_in): Adjust.
5067         (replace_phi_args_in): Likewise.
5068         (substitute_and_fold): Take callback to query lattice instead
5069         of pointer to lattice.  Replace SSA name defs with lattice
5070         values first.
5071         * tree-ssa-ccp.c (ccp_finalize): Adjust.
5072         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
5073         (get_value): New function.
5074         (fini_copy_prop): Adjust.
5075         * tree-vrp.c (vrp_finalize): Adjust.
5076
5077 2010-08-04  Richard Guenther  <rguenther@suse.de>
5078
5079         PR middle-end/45176
5080         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
5081         points-to set for original MEM_REF.
5082
5083 2010-08-04  Richard Guenther  <rguenther@suse.de>
5084
5085         * tree-ssa-ccp.c (get_constant_value): New function.
5086         (get_rhs_assign_op_for_ccp): Remove.
5087         (valueize_op): New function.
5088         (ccp_fold): Use get_constant_value and valueize_op.
5089         (fold_const_aggregate_ref): Likewise.
5090         (ccp_fold_stmt): Likewise.
5091         (visit_assignment): Simplify.
5092
5093 2010-08-04  Richard Guenther  <rguenther@suse.de>
5094
5095         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
5096         * double-int.h (double_int_ctz): Declare.
5097         * double-int.c (double_int_ctz): New function.
5098
5099 2010-08-04  Hariharan Sandanagobalane <hariharan@picochip.com>
5100
5101         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
5102         Define.
5103         picochip_expand_movmemhi : Expand movmem pattern.
5104         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
5105         Declare.
5106         * config/picochip/picochip.md (movmemhi) : New pattern.
5107
5108 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5109
5110         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
5111
5112 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
5113
5114         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
5115         NEG as operand of a MULT by merging it with the other operand.
5116         * combine.c (make_compound_operation): Use trunc_int_for_mode when
5117         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
5118         MULT.
5119         * config/arm/constraints.md (M): Examine only 32 bits of a
5120         HOST_WIDE_INT.
5121         * config/arm/predicates.md (power_of_two_operand): Likewise.
5122
5123 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5124
5125         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
5126         non-NOTE insns.
5127
5128 2010-08-03  Jan Hubicka  <jh@suse.cz>
5129
5130         * ipa-split.c (struct split_point): Add split_part_set_retval.
5131         (find_retval): Forward declare.
5132         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
5133         (consider_split): Compute current->split_part_set_retval.
5134         (visit_bb): Do not look into return value.
5135         (split_function): Handle !split_part_set_retval
5136
5137 2010-08-03  Martin Jambor  <mjambor@suse.cz>
5138
5139         * tree-sra.c (completely_scalarize_record): New parameter REF, create
5140         its own access->expr intead of using build_ref_for_offset.
5141
5142 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
5143
5144         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
5145         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
5146         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
5147         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
5148         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
5149         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
5150         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
5151         DEFAULT_SWITCH_TAKES_ARG.
5152         * config/rx/rx.opt (-patch=): Remove option.
5153         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
5154         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
5155         * doc/invoke.texi (RX Options): Remove -patch=.
5156         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
5157         (option_map): Remove --profile-blocks, --quiet and --silent.
5158
5159 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
5160
5161         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
5162         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
5163         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
5164         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5165         Update calls to ix86_expand_compare and ix86_expand_branch.
5166         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
5167         ix86_expand_compare.
5168         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
5169         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
5170         Make static.
5171         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
5172         and ix86_compare_op1.  Update calls to ix86_expand_compare.
5173         (ix86_expand_int_movcc): Ditto.
5174         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
5175         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
5176         (ix86_expand_setcc): Ditto.
5177         (ix86_expand_compare): Remove prototype.
5178         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
5179         ix86_compare_op0 and ix86_compare_op1.  Update calls
5180         to ix86_expand_branch to directly pass operands[1] and operands[2].
5181         (cbranchxf4): Ditto.
5182         (cbranch<MODEF:mode>4): Ditto.
5183         (cbranchcc4): Ditto.
5184         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
5185         Update calls to ix86_expand_setcc to directly pass operands[2] and
5186         operands[3].
5187         (cstorexf4): Ditto.
5188         (cstore<MODEF:mode>4): Ditto.
5189         (cstorecc4): Ditto.
5190
5191 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5192
5193         PR target/45063
5194         * caller-save.c (save_call_clobbered_regs): Remove regs from
5195         hard_regs_saved when they are set.
5196
5197 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
5198
5199         PR target/41089
5200         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
5201         as volatile.
5202
5203 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
5204
5205         * common.opt (ftree-loop-distribute-patterns): New.
5206         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
5207         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
5208         at -O3.
5209         * tree-data-ref.c (stores_zero_from_loop): New.
5210         * tree-data-ref.h (stores_zero_from_loop): Declared.
5211         * tree-loop-distribution.c (tree_loop_distribution): Call
5212         stores_zero_from_loop.
5213         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
5214
5215 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
5216
5217         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
5218         into account.
5219
5220         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
5221         * config/arm/arm.c (thumb1_code): New variable.
5222         (arm_override_options): Set it.
5223         (thumb1_final_prescan_insn): Keep track of condition code status.
5224         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
5225         jumps that depend on them.
5226         * config/arm/arm.h (thumb1_code): Declare variable.
5227         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
5228         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
5229         thumb1_cc_mode.
5230         (CC_STATUS_INIT): New macro.
5231         * config/arm/constraints.md (Pd): New constraint.
5232         * config/arm/predicates.md (noov_comparison_operator): New predicate.
5233         * config/arm/arm.md (is_thumb1): New define_attr.
5234         (conds): Set default to "clob" when generating Thumb1 code.
5235         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
5236         code are set.  Use two-operand assembly syntax.
5237         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
5238         pattern.
5239         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
5240         codes are set.  Use two-operand assembly syntax.
5241         (zero_extendhisi splitter): Remove constraints.
5242         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
5243         thumb1_movsf_insn): Set conds attribute as appropriate.
5244         (cbranchsi4_insn): Use condition code status from struct
5245         machine_function to determine whether the comparison can be eliminated.
5246         Discourage the alternative using high registers.
5247         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
5248         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
5249         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
5250         subsi3_cbranch): Delete.
5251         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
5252         one subtract and one cbranch insn.
5253
5254         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
5255         thumb2_movdf_soft_insn): Delete patterns.
5256         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
5257         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
5258         (pool_range, neg_pool_range): Use them to define defaults.
5259         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
5260         and allow for TARGET_32BIT.
5261
5262         PR target/40457
5263         * config/arm/arm.h (arm_regs_in_sequence): Declare.
5264         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
5265         load_multiple_sequence, store_multiple_sequence): Delete
5266         declarations.
5267         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
5268         declarations.
5269         * config/arm/ldmstm.md: New file.
5270         * config/arm/arm.c (arm_regs_in_sequence): New array.
5271         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
5272         CHECK_REGS.  All callers changed.
5273         If SAVED_ORDER is nonnull, copy the computed order into it.
5274         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
5275         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
5276         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
5277         If SAVED_ORDER is nonnull, copy the computed order into it.
5278         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
5279         like REGS.  Handle Thumb mode.
5280         (arm_gen_load_multiple_1): New function, broken out of
5281         arm_gen_load_multiple.
5282         (arm_gen_store_multiple_1): New function, broken out of
5283         arm_gen_store_multiple.
5284         (arm_gen_multiple_op): New function, with code from
5285         arm_gen_load_multiple and arm_gen_store_multiple moved here.
5286         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
5287         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
5288         changed.
5289         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
5290         * config/arm/predicates.md (commutative_binary_operator): New.
5291         (load_multiple_operation, store_multiple_operation): Handle more
5292         variants of these patterns with different starting offsets.  Handle
5293         Thumb-1.
5294         * config/arm/arm.md: Include "ldmstm.md".
5295         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
5296         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
5297         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
5298         peepholes): Delete.
5299         * config/arm/ldmstm.md: New file.
5300         * config/arm/arm-ldmstm.ml: New file.
5301
5302         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
5303         if statement which adds extra costs to frame-related expressions.
5304
5305 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5306
5307         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
5308
5309 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
5310
5311         PR target/45142
5312         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
5313         alternative 2.
5314         (vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
5315         split V4SI operands.
5316
5317 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
5318
5319         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5320         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
5321         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
5322         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
5323
5324 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
5325
5326         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
5327         LOCAL_INCLUDE_DIR.
5328
5329 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
5330
5331         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
5332         used in the call to optab_for_tree_code.  Fix the second
5333         is_widening_mult_p call.  Check that both unwidened operands
5334         have the same sign.
5335
5336 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
5337
5338         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
5339
5340 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
5341
5342         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
5343
5344 2010-07-30  DJ Delorie  <dj@redhat.com>
5345
5346         * config/rx/predicates.md (rx_constshift_operand): New.
5347         * config/rx/rx.md (zs_cond): New.
5348         (cbranchsi4): Remove mode.
5349         (*cbranchsi4_<code>): Likewise.
5350         (*tstbranchsi4_<code>): New.
5351         (*tstbranchsi4r_<code>): New.
5352         (*tstbranchsi4m_eq): New.
5353         (*tstbranchsi4m_ne): New.
5354         (cbranchsf4): Remove mode.
5355         (*cbranchsf4_<code>): Likewise.
5356
5357 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
5358
5359         * rtlanal.c (simplify_subreg_regno): Don't treat
5360         HARD_FRAME_POINTER_REGNUM specially.
5361
5362 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
5363
5364         * common.opt (-G): Don't define option here.
5365         * config/g.opt: New.
5366         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
5367         rs6000/powerpc and score targets.
5368         * opts.c (common_handle_option): Don't handle -G here.
5369         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
5370         * config/frv/frv.c (frv_handle_option): Handle -G.
5371         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
5372         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
5373         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
5374         * config/mips/mips.c (mips_handle_option): Handle -G.
5375         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
5376         * config/score/score.c (score_handle_option): Handle -G.
5377
5378 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
5379
5380         * config/mmix/mmix.c: Include basic-block.h.
5381
5382 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
5383
5384         PR debug/45055
5385         PR rtl-optimization/45137
5386         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
5387         prototypes.
5388         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
5389         New functions.
5390         * combine.c (next_nonnote_nondebug_insn): Removed.
5391         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
5392         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
5393         * sched-deps.c (sched_analyze_insn): Likewise.
5394         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
5395         * rtlanal.c (canonicalize_condition): Likewise.
5396         * postreload.c (reload_combine_recognize_pattern): Likewise.
5397         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
5398
5399 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
5400
5401         * config/i386/i386.md (int_cond): Remove code iterator.
5402         (fp_cond): Ditto.
5403         (cbranch<mode>4): Use ordered_comparison_operator predicate
5404         for operator0.
5405         (cstore<mode>4): Ditto for operator1.
5406         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
5407         (add<mode>cc): ditto.
5408
5409 2010-07-30  Richard Guenther  <rguenther@suse.de>
5410
5411         PR middle-end/45141
5412         * expr.c (expand_expr_real_1): Check for not handled base address.
5413
5414 2010-07-30  Richard Guenther  <rguenther@suse.de>
5415
5416         * ipa-prop.c (ipa_modify_formal_parameters): Use
5417         build_distinct_type_copy.
5418
5419 2010-07-30  Anthony Green  <green@moxielogic.com>
5420
5421         * config/moxie/rtems.h: New file.
5422         * config.gcc: Add moxie-rtems support.
5423
5424 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5425
5426         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
5427         df flags as in run_fast_df_dce.
5428
5429 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5430
5431         Revert:
5432         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5433
5434         * rtl.def (NOTE): Swap operands 4 and 5.
5435         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
5436         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
5437         Adjust accordingly.
5438         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
5439
5440 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
5441
5442         PR debug/45110
5443         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
5444         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
5445         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
5446         formal parameters.
5447         (gen_decl_die): Change return type to dw_die_ref, return what
5448         gen_formal_parameter_die returned.
5449
5450 2010-07-29  Martin Jambor  <mjambor@suse.cz>
5451
5452         * dbgcnt.def (eipa_sra): New counter.
5453         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
5454
5455 2010-07-29  Xinliang David Li  <davidxl@google.com>
5456
5457         PR bootstrap/45119
5458         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
5459         in revision 162652.
5460
5461 2010-07-29  Richard Guenther  <rguenther@suse.de>
5462
5463         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
5464         (TV_TREE_STORE_CCP): Likewise.
5465         (TV_TREE_REDPHI): Likewise.
5466
5467 2010-07-29  Richard Guenther  <rguenther@suse.de>
5468
5469         * double-int.h (double_int_and_not): New function.
5470         * combine.c (try_combine): Use it.
5471         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
5472
5473 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
5474
5475         PR rtl-optimization/42575
5476         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
5477         Argument AU removed.  All callers changed.  Ignore artificial refs.
5478         Use return value of df_word_lr_simulate_defs to decide whether an insn
5479         is necessary.
5480         (fast_dce): Rename arg to WORD_LEVEL.
5481         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
5482         static.
5483         (pass_fast_rtl_byte_dce): Delete.
5484         * dce.h (run_word_dce): Declare.
5485         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
5486         All callers changed.  Simplify code to only deal with two-word regs.
5487         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
5488         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
5489         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
5490         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
5491         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
5492         (df_word_lr_mark_ref): Declare.
5493         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
5494         df_word_lr_simulate_uses): Declare or rename from byte variants.
5495         (df_byte_lr_simulate_artificial_refs_at_top,
5496         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5497         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
5498         declarations.
5499         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
5500         (enum df_mm): Delete.
5501         * df-byte-scan.c: Delete file.
5502         * df-problems.c (df_word_lr_problem_data): Renamed from
5503         df_byte_lr_problem_data, all members deleted except for
5504         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
5505         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
5506         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
5507         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
5508         df_byte_lr_confluence_0): Delete functions.
5509         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
5510         callers changed.
5511         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
5512         Don't initialize members that were deleted, don't try to discover data
5513         about registers.  Ignore hard regs.
5514         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
5515         (df_word_lr_mark_ref): New function.
5516         (df_word_lr_bb_local_compute): Renamed from
5517         df_byte_bb_lr_local_compute; all callers changed.  Use
5518         df_word_lr_mark_ref.  Assert that artificial refs don't include
5519         pseudos.  Ignore hard registers.
5520         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
5521         Assert that exit block uses don't contain pseudos.
5522         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
5523         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
5524         callers changed.  Ignore hard regs.
5525         (df_word_lr_transfer_function): Renamed from
5526         df_byte_lr_transfer_function; all callers changed.
5527         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
5528         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
5529         changed.
5530         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
5531         callers changed.
5532         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
5533         confluence operator 0 set to NULL.
5534         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
5535         callers changed.
5536         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
5537         Return bool, true if bitmap changed or insn otherwise necessary.
5538         All callers changed.  Simplify using df_word_lr_mark_ref.
5539         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
5540         all callers changed.  Simplify using df_word_lr_mark_ref.
5541         * lower-subreg.c: Include "dce.h"
5542         (decompose_multiword_subregs): Call run_word_dce if df available.
5543         * Makefile.in (lower-subreg.o): Adjust dependencies.
5544         (df-byte-scan.o): Delete.
5545         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
5546
5547 2010-07-29  Richard Guenther  <rguenther@suse.de>
5548
5549         * tree.c (build_vector): Assert that the vector constant
5550         has enough elements.
5551         (build_vector_from_ctor): Pad with trailing zeros.
5552
5553 2010-07-29  Richard Guenther  <rguenther@suse.de>
5554
5555         PR tree-optimization/45120
5556         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5557         Handle offset in DEREFs properly.
5558         (get_constraint_for_1): Handle MEM_REF offset properly.
5559
5560 2010-07-29  Richard Guenther  <rguenther@suse.de>
5561
5562         PR middle-end/45034
5563         * convert.c (convert_to_integer): Always use an unsigned
5564         type for narrowed negate and bitwise not.
5565
5566 2010-07-29  Ira Rosen  <irar@il.ibm.com>
5567
5568         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
5569         to outer loop when creating reduction epilogue for double reduction,
5570         and switch back to the inner loop when updating the phi nodes.
5571         Update uses of outer loop exit phi nodes in double reduction (instead
5572         of uses of reduction).
5573
5574 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
5575
5576         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
5577         popcount on power7 and parity on power6 systems.
5578         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
5579         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
5580         instructions.
5581
5582         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
5583         (UNSPEC_PARITY): Ditto.
5584         (SFDF): New iterator for SF/DF.
5585         (rreg2): New mode attribute for floating register constraint.
5586         (TARGET_FLOAT): New mode attribute for whether single/double float
5587         is supported.
5588         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
5589         pattern.
5590         (parity<mode>2_cmpb): New insn for parity on power6 and newer
5591         machines.
5592         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
5593         pattern.  Add support for fcpsgn instruction added in power6.
5594         (copysignsf3): Delete.
5595         (copysigndf3): Delete.
5596         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
5597         instead of if_then_else in RTL to avoid problems with -0.
5598
5599         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
5600         of if_then_else to mirror scalar code.
5601         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
5602         rs6000.md.
5603
5604         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
5605         instead of if_then_else.
5606
5607 2010-07-28  Xinliang David Li  <davidxl@google.com>
5608
5609         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
5610         (dump_cand): Dump var_before/after.
5611         (htab_inv_expr_eq): New function.
5612         (htab_inv_expr_hash): New function.
5613         (tree_ssa_iv_optimize_init): Support pseudo invariants.
5614         (add_candidate_1): consider base type precision.
5615         (set_use_iv_cost): New parameter.
5616         (adjust_setup_cost): Use profile information.
5617         (get_address_cost): Do not hard code width in computing address
5618         offset limits.
5619         (compare_aff_trees): New function.
5620         (get_loop_invariant_expr_id): New function.
5621         (get_computation_cost_at): New parameter and use profile information.
5622         (get_computation_cost): New parameter.
5623         (determine_use_iv_cost_generic): Pass new parameter.
5624         (determine_use_iv_cost_address): Ditto.
5625         (determine_use_iv_cost_condition): Ditto.
5626         (autoinc_possible_for_pair): Ditto.
5627         (determine_use_iv_costs): More dumps.
5628         (iv_ca_get_num_inv_exprs): New function.
5629         (iv_ca_recount_cost): Consider loop invariants in register pressure
5630         cost.
5631         (iv_ca_add_use): New parameter.
5632         (iv_ca_dump): Better dumping.
5633         (iv_ca_extend): New parameter.
5634         (try_add_cand_for): Attempt to get better partial solution.
5635         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
5636         (create_new-ivs): More dumps.
5637         (rewrite_use_compare): Ditto.
5638         (free_loop_data): More cleanup.
5639         (treee_ssa_iv_optimize_finalize): Ditto.
5640
5641 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
5642
5643         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
5644         * config/i386/i386.c (ix86_profile_before_prologue): New.
5645         (override_options): Add special handling for -mfentry.
5646         (ix86_function_regparm): Likewise.
5647         (ix86_function_sseregparm): Likewise.
5648         (ix86_frame_pointer_required): Likewise.
5649         (ix86_expand_prologue): Check for ms_hook_prologue.
5650         (x86_function_profiler): Adjust mcount output.
5651         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
5652         * config/i386/i386.opt (mfentry): New.
5653         * doc/invoke.texi (mfentry): Add documentation.
5654         * doc/tm.texi: Regenerated..
5655         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
5656         * final.c (final_start_function): Replace macro
5657         PROFILE_BEFORE_PROLOGUE by target hook.
5658         * function.c (thread_prologue_and_epilogue_insns): Likewise.
5659         * target.def (profile_before_prologue): New hook.
5660         * targhooks.c (default_profile_before_prologue): New.
5661         * targhooks.h (default_profile_before_prologue): New.
5662
5663 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
5664
5665         PR debug/45105
5666         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
5667
5668         PR debug/45103
5669         * dwarf2out.c (dwarf2out_var_location): Always consider
5670         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
5671
5672 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5673
5674         PR rtl-optimization/45107
5675         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
5676
5677 2010-07-28  Richard Guenther  <rguenther@suse.de>
5678
5679         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
5680         (set_lattice_value): Do not query an old default value.
5681         (get_value_for_expr): New function.  Properly canonicalize
5682         float values.
5683         (ccp_visit_phi_node): Use it.
5684
5685 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
5686
5687         * config/arm/arm.c (arm_pcs_default): Remove static.
5688         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
5689         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
5690         (arm_pcs_default): Declare.
5691
5692 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
5693
5694         * config/rs6000/rs6000.c (rs6000_override_options):
5695         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
5696         ... to darwin_rs6000_override_options.
5697         (rs6000_return_in_memory): Update preceding comment for darwin
5698         64 bit ABI.  Use TARGET_MACHO inline.
5699         (rs6000_darwin64_struct_check_p): New.
5700         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
5701         (function_arg): Likewise.
5702         (rs6000_arg_partial_bytes): Likewise.
5703         (rs6000_function_value): Likewise.
5704
5705 2010-07-28  Andi Kleen <ak@linux.intel.com>
5706
5707         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
5708
5709 2010-07-28  Richard Guenther  <rguenther@suse.de>
5710
5711         PR middle-end/44903
5712         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
5713         targets try harder to not generate unaligned accesses.
5714
5715 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
5716
5717         PR rtl-optimization/45101
5718         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
5719         for gcse-las.
5720
5721 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
5722
5723         PR tree-optimization/44885
5724         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
5725         with non-aliased component.
5726
5727 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
5728
5729         * config/darwin-driver.c (SWITCH_TAKES_ARG,
5730         WORD_SWITCH_TAKES_ARG): Remove.
5731         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
5732         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
5733         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
5734         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
5735         definitions from gcc.c.
5736         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
5737         defaults.h.
5738         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
5739         Move to defaults.h.
5740         * opts-common.c: Include tm.h.
5741         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
5742         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
5743         Handle more than one argument.  Set canonical_option_num_elements.
5744         (decode_cmdline_options_to_array): Set
5745         canonical_option_num_elements and trailing elements of
5746         canonical_option.
5747         * opts.h (struct cl_decoded_option): Allow four elements in
5748         canonical_option.  Add field canonical_option_num_elements.
5749         * Makefile.in (opts-common.o): Update dependencies.
5750
5751 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
5752
5753         PR middle-end/44790
5754         PR middle-end/44993
5755         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
5756         sure the base has address_mode before adding the offset.
5757
5758 2010-07-27  Xinliang David Li <davidxl@google.com>
5759
5760         * tree-flow.h (create_mem_ref): Add one new parameter.
5761         * tree-ssa-address.c (create_mem_ref): New parameter.
5762         (addr_to_parts): Ditto.
5763         (move_variant_to_index): New function.
5764         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
5765
5766 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5767
5768         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
5769         4 and 5.
5770         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
5771         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
5772         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
5773         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
5774         CODE_LABELs and NOTEs.
5775         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
5776         * combine.c (try_combine): Likewise.
5777         * ira.c (setup_prohibited_mode_move_regs): Likewise.
5778         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
5779
5780 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5781
5782         * coretypes.h (struct cl_option_handlers): Declare.
5783         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
5784         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
5785         * langhooks-def.h (lhd_handle_option): Declare.
5786         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
5787         * langhooks.c (lhd_handle_option): New.
5788         * langhooks.h (struct lang_hooks): Update prototype and return
5789         value type of handle_option hook.
5790         * optc-gen.awk: Generate target_flags_explicit definition for the
5791         driver.
5792         * opts-common.c: Include diagnostic.h.
5793         (handle_option): Move from opts.c.  Update prototype and return
5794         value type.  Use handlers structure.
5795         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
5796         handlers structure.
5797         (set_option): Move from opts.c.
5798         * opts.c (common_handle_option): Update prototype and return value
5799         type.  Update calls to handle_option and enable_warning_as_error.
5800         (unknown_option_callback, post_handling_callback,
5801         lang_handle_option, target_handle_option): New.
5802         (handle_option, read_cmdline_option): Move to opts-common.c.
5803         (read_cmdline_options): Update prototype.  Update call to
5804         read_cmdline_option.
5805         (decode_options): Initialize and use handlers structure.
5806         (set_option): Move to opts-common.c.
5807         (enable_warning_as_error): Update prototype.  Update call to
5808         handle_option.
5809         * opts.h (struct cl_option_handler_func, struct
5810         cl_option_handlers): New.
5811         (handle_option, enable_warning_as_error): Update prototypes.
5812         (read_cmdline_option): Declare.
5813         * Makefile.in (opts-common.o): Update dependencies.
5814
5815 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5816
5817         * config/arm/arm.c (params.h): Include.
5818         (arm_override_options): Tune gcse-unrestricted-cost.
5819         * config/arm/t-arm (arm.o): Define dependencies.
5820
5821 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5822
5823         PR target/42495
5824         PR middle-end/42574
5825         * basic-block.h (get_dominated_to_depth): Declare.
5826         * dominance.c (get_dominated_to_depth): New function, use
5827         get_all_dominated_blocks as a base.
5828         (get_all_dominated_blocks): Use get_dominated_to_depth.
5829
5830         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
5831         (hoist_exprs): Remove.
5832         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
5833         (compute_code_hoist_vbeinout): Add debug print outs.
5834         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
5835
5836         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
5837         quadratic behavior.
5838         * params.h (MAX_HOIST_DEPTH): New macro.
5839         * doc/invoke.texi (max-hoist-depth): Document.
5840
5841 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5842
5843         PR rtl-optimization/40956
5844         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
5845         constants.
5846
5847 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5848
5849         PR target/42495
5850         PR middle-end/42574
5851         * config/arm/arm.c (legitimize_pic_address): Use
5852         gen_calculate_pic_address pattern to emit calculation of PIC address.
5853         (will_be_in_index_register): New function.
5854         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
5855         (thumb1_legitimate_address_p): Use it provided !strict_p.
5856         * config/arm/arm.md (calculate_pic_address): New expand and split.
5857
5858 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5859
5860         PR target/42495
5861         PR middle-end/42574
5862         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
5863         * config/arm/arm.md (define_split "J", define_split "K"): Make
5864         IRA/reload friendly.
5865
5866 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5867
5868         * gcse.c (insert_insn_end_basic_block): Update signature, remove
5869         unused checks.
5870         (pre_edge_insert, hoist_code): Update.
5871
5872 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5873
5874         PR target/42495
5875         PR middle-end/42574
5876         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
5877
5878 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5879
5880         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
5881
5882 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5883
5884         PR rtl-optimization/40956
5885         PR target/42495
5886         PR middle-end/42574
5887         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
5888         for hoisting.
5889         (hoist_code): Count occurences in current block too.
5890
5891 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5892
5893         * gcse.c (struct expr:max_distance): New field.
5894         (doing_code_hoisting_p): New static variable.
5895         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
5896         simple expressions, don't change behavior for PRE.  Set max_distance.
5897         (insert_expr_in_table): Set new max_distance field.
5898         (hash_scan_set): Update.
5899         (hoist_expr_reaches_here_p): Stop search after max_distance
5900         instructions.
5901         (find_occr_in_bb): New static function.  Use it in ...
5902         (hoist_code): Calculate sizes of basic block before any changes are
5903         done.  Pass max_distance to hoist_expr_reaches_here_p.
5904         (one_code_hoisting_pass): Set doing_code_hoisting_p.
5905
5906         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
5907         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
5908         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
5909         macros.
5910         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
5911         Document.
5912
5913 2010-07-27  Jeff Law  <law@redhat.com>
5914             Maxim Kuvyrkov  <maxim@codesourcery.com>
5915
5916         * gcse.c (compute_transpout, transpout): Remove, move logic
5917         to prune_expressions.
5918         (compute_pre_data): Move pruning of trapping expressions ...
5919         (prune_expressions): ... here.  New static function.
5920         (compute_code_hoist_data): Use it.
5921         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
5922
5923 2010-07-27  Xinliang David Li  <davidxl@google.com>
5924
5925         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
5926         (rewrite_use_address): Adjust iv update position when needed.
5927
5928 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
5929
5930         * dbgcnt.def (hoist_insn): New debug counter.
5931         * gcse.c (hoist_code): Use it.
5932
5933 2010-07-27  Xinliang David Li  <davidxl@google.com>
5934
5935         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
5936         (niter_for_single_dom_exit): Passes additional parameter.
5937         (iv_period): Fix comments.
5938         (may_eliminate_iv): Handles multiple exit loops properly.
5939         (free_tree_niter_desc): New function.
5940         (free_loop_data): Frees up loop iteration descriptors.
5941
5942 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5943
5944         PR target/44542
5945         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
5946         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
5947         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
5948         (expand_one_var): Don't consider DECL_ALIGN for variables for
5949         which expand_one_stack_var_at has been already called.
5950
5951         PR testsuite/44701
5952         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
5953         constraints on IA-64.
5954
5955 2010-07-27  Jie Zhang  <jie@codesourcery.com>
5956
5957         PR target/44290
5958         Revert:
5959         2010-07-23  Jie Zhang  <jie@codesourcery.com>
5960
5961         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
5962         false if ! tree_versionable_function_p.
5963
5964 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
5965
5966         * dwarf2out.c (add_data_member_location_attribute): Use
5967         add_AT_unsigned instead of add_AT_int if offset is non-negative.
5968
5969 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
5970
5971         * postreload.c (try_replace_in_use): New static function.
5972         (reload_combine_recognize_const_pattern): Use it here.  Allow
5973         substituting into a final add insn, and substituting into a memory
5974         reference in an insn that sets the reg.
5975
5976 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
5977
5978         * common.opt (o): Add MissingArgError.
5979         * doc/options.texi (MissingArgError): Document.
5980         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
5981         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
5982         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
5983         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
5984         * langhooks.h (struct lang_hooks): Remove missing_argument.
5985         * optc-gen.awk: Handle MissingArgError and output new structure
5986         field initializers.
5987         * opts.c (read_cmdline_option): Use missing_argument_error field
5988         instead of missing_argument langhook.
5989         * opts.h (struct cl_option): Add missing_argument_error field.
5990         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
5991
5992 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
5993
5994         PR target/29090
5995         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
5996         Darwin64 ABI, for zero-sized objects.
5997
5998 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
5999
6000         PR target/35491
6001         PR target/29090
6002
6003         Merge from Apple local 4.2.1.
6004         2005-05-11  Stan Shebs  <shebs@apple.com>
6005         Fix 64-bit varargs for Darwin (Radar 4028089).
6006         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
6007         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
6008         Add argument, add case for 8-byte register half-filled with a float.
6009         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
6010         single-precision floats specially.
6011
6012 2010-07-27  Ira Rosen  <irar@il.ibm.com>
6013
6014         PR tree-optimization/44152
6015         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
6016         complex numbers for further check.
6017         (vect_supported_load_permutation_p): Check nodes with
6018         complex numbers.
6019
6020 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
6021
6022         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
6023         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
6024         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
6025         (LANG_HOOKS_INITIALIZER): Add new hooks.
6026         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
6027         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
6028         and complain_wrong_lang_p.  Update init_options prototype.
6029         * c-objc-common.c (c_initialize_diagnostics): First call
6030         c_common_initialize_diagnostics.
6031         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
6032         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
6033         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
6034         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
6035         (hook_uint_void_0): New.
6036         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
6037         (hook_uint_void_0): New.
6038         * opts-common.c (decode_cmdline_option,
6039         decode_cmdline_options_to_array): Also fill in canonical_option field.
6040         * opts.c (complain_wrong_lang): Use langhook to determine whether
6041         to complain instead of special-casing LTO.
6042         (decode_options): Separate lang_mask determination with
6043         option_lang_mask hook from call of init_options hook.
6044         * opts.h (struct cl_decoded_option): Add canonical_option.
6045
6046 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
6047
6048         PR tree-optimization/45083
6049         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
6050
6051 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
6052
6053         * postreload.c (reload_combine_recognize_const_pattern): Move test
6054         for limiting the insn movement to the right scope.
6055
6056         PR rtl-optimization/45051
6057         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
6058         than reg_mentioned_p.
6059
6060 2010-07-26  Richard Henderson  <rth@redhat.com>
6061
6062         PR target/44132
6063         * tree-emutls.c: New file.
6064         * Makefile.in (OBJS-common): Add it.
6065         * tree-pass.h (pass_ipa_lower_emutls): Declare.
6066         * passes.c (init_optimization_passes): Add it.
6067
6068         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
6069         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
6070         * expr.c (emutls_var_address): Delete.
6071         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
6072         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
6073         (emutls_finish): Delete.
6074         * toplev.c (compile_file): Don't call it.
6075         * tree.h (emutls_decl): Delete.
6076         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
6077         (emutls_finish, emutls_finalize_control_var): Delete.
6078         (emutls_object_type): Move to tree-emutls.c.
6079         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
6080         default_emutls_var_fields, get_emutls_object_type,
6081         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
6082         default_emutls_var_init): Likewise.
6083         (get_variable_section): Don't special case emutls.
6084         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
6085         default_elf_select_section, default_unique_section,
6086         default_encode_section_info): Likewise.
6087         * varpool.c (decide_is_variable_needed): Likewise.
6088         * gimple-iterator.c (update_call_edge_frequencies): New
6089         (gsi_insert_on_edge_immediate): Use it.
6090         (gsi_insert_seq_on_edge_immediate): Likewise.
6091         (gsi_commit_one_edge_insert): Likewise.
6092
6093         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
6094         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
6095         (x86_64_elf_unique_section): Likewise.
6096
6097 2010-07-26  Jan Hubicka  <jh@suse.cz>
6098
6099         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
6100         GTY((skip)).
6101
6102 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
6103
6104         * target.def (output_source_filename): New hook.
6105         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
6106         * doc/tm.texi: Regenerate.
6107         * toplev.c (output_file_directive) Remove function.
6108         * toplev.h (output_file_directive) Remove.
6109         * output.h (default_asm_output_source_filename,
6110         output_file_directive): Declare.
6111         * varasm.h (default_asm_output_source_filename,
6112         output_file_directive): New functions.
6113
6114         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
6115         * config/mips/mips-protos.h (mips_output_filename): Remove.
6116         * config/mips/mips.c (mips_output_filename): Make Static.
6117         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
6118
6119 2010-07-26  Richard Guenther  <rguenther@suse.de>
6120
6121         PR tree-optimization/43784
6122         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
6123         if the destination is used by the call.
6124
6125 2010-07-26  Richard Guenther  <rguenther@suse.de>
6126
6127         PR middle-end/45073
6128         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
6129         SSA updating on being in SSA form.
6130
6131 2010-07-26  Richard Guenther  <rguenther@suse.de>
6132
6133         PR middle-end/45056
6134         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
6135
6136 2010-07-26  Richard Guenther  <rguenther@suse.de>
6137
6138         PR tree-optimization/45071
6139         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
6140         adjust op->opcode.
6141
6142 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
6143
6144         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
6145         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
6146         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
6147         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
6148         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
6149         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
6150         save_r31, return_r31, save_interrupt, return_interrupt,
6151         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
6152         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
6153         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
6154         new ABI requirements.
6155         (save_r6_r9, L_callt_save_r6_r9): Remove.
6156         * config/v850/predicates.md (even_reg_operand, disp23_operand,
6157         const_float_1_operand const_float_0_operand): New Predicates.
6158         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
6159         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
6160         * config/v850/t-v850: Update multilibs for new target variants.
6161         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
6162         * config/v850/t-v850e: Likewise.
6163         * config/v850/v850.c (v850_issue_rate): New.
6164         (v850_strict_argument_naming): New.
6165         (function_arg): Modify to generate a different ABI.
6166         (print_operand): Update case 'z' to support float modes.
6167         (output_move_single): Modify to generate appropriate and better
6168         assembly.
6169         (v850_float_z_comparison_operator, v850_select_cc_mode,
6170         v850_float_nz_comparison_operator,  v850_gen_float_compare,
6171         v850_gen_compare): New functions to support comparison of float values.
6172         (ep_memory_offset): Add support for V850E2 targets.
6173         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
6174         (INTERRUPT_REGPARM_NUM): Remove.
6175         (compute_register_save_size): Add extra case to save/restore long call.
6176         (use_prolog_function): New function to support prologue.
6177         (expand_prologue): Add support for V850E2 targets and modified
6178         as per the current ABI requirements.
6179         (expand_epilogue): Likewise.
6180         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
6181         (construct_save_jarl): Likewise.
6182         (construct_dispose_instruction): Update as per the current ABI
6183         requirements.
6184         (construct_prepare_instruction): Likewise.
6185         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
6186         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
6187         (CPP_SPEC): Updated to support v850e2 targets.
6188         (STRICT_ALIGNMENT): Modified.
6189         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
6190         (FIXED_REGISTERS): Likewise.
6191         (CALL_USED_REGISTERS): Likewise.
6192         (CONDITIONAL_REGISTER_USAGE): Updated.
6193         (HARD_REGNO_MODE_OK): Updated.
6194         (reg_class): Updated to add even registers.
6195         (REG_CLASS_NAMES): Likewise.
6196         (REG_CLASS_CONTENTS): Likewise.
6197         (REGNO_REG_CLASS): Updated for CC registers.
6198         (REG_CLASS_FROM_LETTER): Added support for even registers.
6199         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
6200         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
6201         ARG_POINTER_REGNUM): Updated.
6202         (FUNCTION_ARG_ADVANCE): Define.
6203         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
6204         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
6205         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
6206         (GO_IF_LEGITIMATE_ADDRESS): Updated.
6207         (SELECT_CC_MODE): Define.
6208         (REGISTER_NAMES): Updated to add psw and fcc registers.
6209         (ADDITIONAL_REGISTER_NAMES): Updated.
6210         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
6211         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
6212         * config/v850/v850.md (define_constants): Define new constants.
6213         (type): Update store,bit1,macc,div,fpu and single attributes.
6214         (cpu): New attribute.
6215         (cc): Add set_z attribute.
6216         (unsign23byte_load, sign23byte_load, unsign23hword_load,
6217         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
6218         23word_store): New instructions for 23-bit displacement load and store.
6219         (movqi_internal, movhi_internal): Update the attributes.
6220         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
6221         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
6222         the attributes.
6223         (v850_tst1): Modified using CC_REGNUM.
6224         (tstsi): Remove.
6225         (cmpsi): Modified as define_expand from define_insn.
6226         (cmpsi_insn, cmpsf, cmpdf): New instructions.
6227         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
6228         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
6229         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
6230         one_cmplsi2): Clobber the CC_REGNUM register.
6231         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
6232         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
6233         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
6234         (setf_insn, set_z_insn, set_nz_insn): New instructions for
6235         v850e2v3 target.
6236         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
6237         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
6238         targets.
6239         (sasf_1, sasf_2): Remove.
6240         (sasf): New instruction.
6241         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
6242         targets. CC_REGNUM register is clobbered and attributes are
6243         updated.
6244         (branch_z_normal, branch_z_invert, branch_nz_normal,
6245         branch_nz_invert): New branch related instructions.
6246         (jump): Updated the attributes.
6247         (switch): Update to support new targets. CC_REGNUM register is
6248         clobbered and attributes are updated.
6249         (call_internal_short, call_internal_long, call_value_internal_short,
6250         call_value_internal_long): Updated the attributes.
6251         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
6252         clobbered and attributes are updated.
6253         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
6254         Update to support new targets. CC_REGNUM register is clobbered.
6255         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
6256         instructions.
6257         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
6258         are updated.
6259         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
6260         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
6261         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
6262         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
6263         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
6264         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
6265         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
6266         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
6267         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
6268         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
6269         point instructions defined for V850e2v3 target.
6270         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
6271         Add support for V850E2 targets and CC_REGNUM register is clobbered.
6272         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
6273         support for new targets.
6274         * config/v850/v850-modes.def: New file.
6275         * config/v850/v850.opt(mstrict-align): Remove.
6276         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
6277         mv850e2v3): New command line options for V850.
6278         * config.gcc: Update the newly added files.
6279         * doc/invoke.texi: Update the newly added command line options for
6280         V850 target.
6281
6282 2010-07-26  Richard Guenther  <rguenther@suse.de>
6283
6284         PR tree-optimization/45052
6285         * ipa-pure-const.c (check_stmt): Check volatileness.
6286
6287 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6288
6289         PR target/44707
6290         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
6291         * config/sparc/sparc.c: Include reload.h.
6292         (legitimize_tls_address): Rename into...
6293         (sparc_legitimize_tls_address): ...this.
6294         (legitimize_pic_address): Rename into...
6295         (sparc_legitimize_pic_address): ...this.
6296         (sparc_expand_move): Adjust to above renaming.
6297         (sparc_tls_referenced_p): Likewise.
6298         (sparc_legitimize_tls_address): Likewise.
6299         (sparc_legitimize_pic_address): Likewise.
6300         (sparc_legitimize_address): Likewise.
6301         (sparc_output_mi_thunk): Likewise.
6302         (sparc_legitimize_reload_address): New global function.  Recognize
6303         (lo_sum (high ...) ...) patterns generated by earlier passes.
6304         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
6305
6306 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
6307
6308         PR target/44484
6309         * config/sparc/predicates.md (memory_reg_operand): Delete.
6310         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
6311         (*sync_compare_and_swap): Encode the address form in the pattern.
6312         (*sync_compare_and_swapdi_v8plus): Likewise.
6313
6314 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
6315
6316         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
6317         Streamline paragraph on compatibility with the system compiler.
6318
6319 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
6320
6321         PR middle-end/45035
6322         * alias.c (true_dependence_1): Fix thinko in merge of old
6323         true_dependence and canon_true_dependence.
6324
6325 2010-07-23  Jan Hubicka  <jh@suse.cz>
6326
6327         * lto-streamer-out.c (write_symbol): Fix visibilities of external
6328         references.
6329
6330 2010-07-23  Le-Chun Wu  <lcwu@google.com>
6331
6332         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
6333         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
6334         and an unnecessary assignment.
6335         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
6336         self-assign warning.
6337         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
6338         unnecessary self-init.
6339
6340 2010-07-23  Richard Guenther  <rguenther@suse.de>
6341
6342         PR lto/43071
6343         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
6344         for -flto and -fwhopr.
6345
6346 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
6347
6348         PR target/41943
6349         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
6350         (stmp-int-hdrs): Prefix/postfix headers by include_next.
6351         * config.gcc (user_headers_inc_next_pre): New.
6352         (user_headers_inc_next_post): Likewise.
6353         (*-w64-mingw*): Use for float.h post-fixing, and for
6354         stddef.h/stdarg.h pre-fixing by include_next.
6355         * configure.ac (user_headers_inc_next_post): New.
6356         (user_headers_inc_next_pre): New.
6357         * configure: Regenerated.
6358
6359 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6360
6361         * configure.ac: Don't disable TLS on Solaris 8/9 by default
6362         Set tga_func for Solaris 2/x86 resp. SPARC.
6363         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
6364         (LIB_THREAD_LDFLAGS_SPEC): Define.
6365         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
6366         * configure: Regenerate.
6367         * config.in: Regenerate.
6368         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
6369         -pthread, -threads, LIB_TLS_SPEC with -pthread.
6370         * doc/install.texi (Specific, *-*-solaris2*): Document use of
6371         alternate thread libraries on Solaris 8.
6372         Document TLS patch requirements.
6373         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
6374         Document tls.
6375
6376         PR target/18788
6377         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
6378         -shared.
6379
6380 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
6381
6382         * tree.h (struct tree_base): Add nameless_flag bitfield.
6383         (TYPE_NAMELESS, DECL_NAMELESS): Define.
6384         * omp-low.c (create_omp_child_function, scan_omp_parallel,
6385         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
6386         DECL_ARTIFICIAL where needed.
6387         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
6388         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
6389         has DECL_NAMELESS set.
6390
6391 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6392
6393         PR tree-optimization/44915
6394         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
6395         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
6396         (analyze_function): Likewise.
6397
6398 2010-07-23  Martin Jambor  <mjambor@suse.cz>
6399
6400         PR tree-optimization/44914
6401         * tree-sra.c (sra_modify_function_body): Return true if CFG was
6402         changed, add purging dead eh edges.
6403         (ipa_sra_modify_function_body): Return true if CFG was changed,
6404         simplify purging dead eh edges.
6405         (modify_function): Return true if CFG was changed.
6406         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
6407         was changed.
6408         (ipa_early_sra): Likewise.
6409
6410 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6411
6412         PR target/44290
6413         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
6414         if "naked".
6415         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
6416         false if ! tree_versionable_function_p.
6417
6418 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
6419
6420         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
6421         * ipa-pure-const.c (special_builtlin_state): Remove
6422         BUILT_IN_ARGS_INFO case.
6423         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
6424         * builtins.c (expand_builtin): Likewise.
6425         (expand_builtin_args_info): Remove.
6426         * doc/tm.texi (__builtin_args_info): Remove.
6427         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
6428         * doc/tm.text.in: Likewise.
6429
6430 2010-07-23  Richard Guenther  <rguenther@suse.de>
6431
6432         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
6433         (lto_symtab_merge_decls_2): Likewise.
6434         * tree-ssa.c (useless_type_conversion_p): Likewise.
6435         * lto-streamer-in.c (input_gimple_stmt): Likewise.
6436         * gimple.c (gtc_visited2, gtc_ob2): Remove.
6437         (struct type_pair_d): Make same_p an array indexed by mode.
6438         Update comment.
6439         (lookup_type_pair): Update initialization.
6440         (struct sccs): Adjust same_p type.
6441         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
6442         Adjust.
6443         (print_gimple_types_stats): Likewise.
6444         * gimple.h (enum gtc_mode): New.
6445         (gimple_types_compatible_p): Adjust prototype.
6446
6447 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
6448
6449         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
6450         again after processing insn.
6451
6452 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6453
6454         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
6455         proper words when !tree_versionable_function_p.
6456
6457 2010-07-23  Richard Guenther  <rguenther@suse.de>
6458
6459         PR tree-optimization/45037
6460         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
6461
6462 2010-07-23  Jie Zhang  <jie@codesourcery.com>
6463
6464         * doc/extend.texi: Remove IP2K from the description of naked attribute.
6465         Add MCORE instead.
6466
6467 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6468
6469         PR lto/44992
6470         * lto-opts.c (lto_write_options): Add NULL file_data argument to
6471         lto_get_section_name.
6472         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
6473         * lto-streamer-out.c (produce_asm): Likewise.
6474         (copy_function): Likewise.
6475         (produce_symtab): Likewise.
6476         (produce_asm_for_decls): Likewise.
6477         * lto-streamer.c (lto_get_section_name): Add file_data argument.
6478         Rewrite to add random postfix to LTO sections.
6479         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
6480         (lto_get_section_name): Add file_data argument to prototype.
6481
6482 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6483
6484         * lto-section-in.c (lto_section_name): Synchronize names
6485         with lto_get_section_name.
6486
6487 2010-07-10  Andi Kleen  <ak@linux.intel.com>
6488
6489         * lto-opts.c (lto_read_file_options): Check for missing section.
6490
6491 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6492
6493         * ira.c (check_allocation): Correctly handle the case where an allocno
6494         with two objects was allocated to a single reg.
6495
6496 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
6497
6498         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
6499         (is_widening_mult_p): Likewise.
6500         (convert_to_widen): Use them.
6501         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
6502         well as integer ones.
6503
6504 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
6505
6506         * alias.c (true_dependence_1): New function, merged version of
6507         true_dependence and canon_true_dependence.
6508         (true_dependence): Simplify.
6509         (canon_true_dependence): Simplify.
6510
6511 2010-07-22  Richard Henderson  <rth@redhat.com>
6512
6513         PR target/45027
6514         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
6515         of V4SFmode for the SSE saves; increase stack alignment if needed.
6516         (ix86_gimplify_va_arg): Don't increase stack alignment here.
6517
6518 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
6519
6520         PR bootstrap/45028
6521         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
6522         call cprop_find_used_regs again via note_uses.
6523
6524 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
6525
6526         * alias.c (get_alias_set): Fix formatting issues.
6527
6528 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
6529
6530         PR middle-end/44878
6531         * stmt.c (expand_value_return):  Call promote_function_mode with
6532         a for_return argument of 2 when returning by reference.
6533
6534 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
6535
6536         PR debug/45024
6537         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
6538         unit DIE if we can find the scope DIE.
6539
6540 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6541
6542         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
6543         changed.  Initialize OBJECT_SUBWORD.
6544         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
6545         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
6546         all callers changed.
6547         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
6548         (finish_allocno): Likewise.
6549         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
6550         (remove_low_level_allocnos): Likewise.
6551         (update_bad_spill_attribute): Likewise.
6552         (setup_min_max_allocno_live_range_point): Likewise.
6553         (sort_conflict_id_map): Likewise.
6554         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
6555         (ior_hard_reg_conflicts): New function.
6556         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
6557         (compress_conflict_vecs): Iterate over objects, not allocnos.
6558         (ira_add_live_range_to_object): New function.
6559         (object_range_compare_func): Renamed from allocno_range_compare_func.
6560         All callers changed.
6561         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
6562         subobjects, widen the min/max range of the lowest-order object to
6563         potentially include all other such low-order objects.
6564         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
6565         (check_allocation): Likewise.  Use more fine-grained tests for register
6566         conflicts.
6567         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
6568         allocno subobjects.
6569         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
6570         choices about which bits to set in each set.  Don't use
6571         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
6572         using the multiple sets we computed.
6573         (push_allocno_to_stack): Iterate over allocno subobjects.
6574         (all_conflicting_hard_regs_coalesced): New static function.
6575         (setup_allocno_available_regs_num): Use it.
6576         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
6577         subobjects.
6578         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
6579         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
6580         by ALLOCNO_NUM_OBJECTS.
6581         (calculate_spill_cost): Likewise.
6582         (color_pass): Express if statement in a more normal way.
6583         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
6584         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
6585         (setup_slot_coalesced_allocno_live_ranges): Likewise.
6586         (allocno_reload_assign): Likewise.
6587         (ira_reassign_pseudos): Likewise.
6588         (fast_allocation): Likewise.
6589         * ira-conflicts.c (build_conflict_bit_table): Likewise.
6590         (print_allocno_conflicts): Likewise.
6591         (ira_build_conflicts): Likewise.
6592         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
6593         callers changed.  Test subword 0 of each allocno for conflicts.
6594         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
6595         callers changed.  Iterate over allocno subobjects.
6596         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
6597         * ira-int.h (struct ira_allocno): New member: num_objects.
6598         Rename object to objects and change it into an array.
6599         (ALLOCNO_OBJECT): Add new argument N.
6600         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
6601         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
6602         (ior_hard_reg_conflicts): Declare.
6603         (ira_add_live_range_to_object): Declare.
6604         (ira_allocno_object_iterator): New.
6605         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
6606         (FOR_EACH_ALLOCNO_OBJECT): New macro.
6607         * ira-lives.c (objects_live): Renamed from allocnos_live; all
6608         uses changed.
6609         (allocnos_processed): New sparseset.
6610         (make_object_born): Renamed from make_allocno_born; take an
6611         ira_object_t argument.  All callers changed.
6612         (make_object_dead): Renamed from make_allocno_dead; take an
6613         ira_object_t argument.  All callers changed.
6614         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
6615         All callers changed.
6616         (mark_pseudo_regno_live): Iterate over allocno subobjects.
6617         (mark_pseudo_regno_dead): Likewise.
6618         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
6619         functions.
6620         (mark_ref_live): Detect subword accesses and call
6621         mark_pseudo_regno_subword_live as appropriate.
6622         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
6623         (process_bb_nodes_live): Deal with object-related updates first; set
6624         and test bits in allocnos_processed to avoid computing allocno
6625         statistics more than once.
6626         (create_start_finish_chains): Iterate over objects, not allocnos.
6627         (print_object_live_ranges): New function.
6628         (print_allocno_live_ranges): Use it.
6629         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
6630         and objects_live.
6631
6632 2010-07-22  Richard Guenther  <rguenther@suse.de>
6633
6634         PR lto/42451
6635         * gimple.c (gtc_next_dfs_num): New global.
6636         (struct sccs): Make value a union, add integer same_p member.
6637         (gtc_visit): New function.
6638         (gimple_types_compatible_p_1): New function, split out from ...
6639         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
6640         (iterative_hash_gimple_type): Adjust for sccs change.
6641
6642 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6643
6644         PR tree-optimization/44891
6645         * tree-sra.c: Include gimple-pretty-print.h.
6646         (replace_uses_with_default_def_ssa_name): Renamed to
6647         get_repl_default_def_ssa_name, return the new SSA name instead of
6648         replacing the old one.
6649         (sra_modify_assign): Dump a message when removing a load, if the LHS
6650         is an SSA_NAME, do not do any propagation, just set the RHS to a
6651         default definition SSA NAME, type convert if necessary.
6652         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
6653
6654 2010-07-22  Richard Guenther  <rguenther@suse.de>
6655
6656         PR tree-optimization/45017
6657         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
6658         TYPE_PRECISION of integral types in addition to size.
6659
6660 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
6661
6662         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
6663         when no C library is specified.
6664
6665 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6666
6667         * ipa-prop.h (struct ipa_node_params): Updated comment.
6668         (struct ipa_edge_args): Likewise.
6669         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
6670
6671 2010-07-22  Martin Jambor  <mjambor@suse.cz>
6672
6673         * cgraphunit.c (verify_edge_count_and_frequency): New function.
6674         (verify_cgraph_node): Verify frequencies of indirect edges.
6675         * tree-inline.c (tree_function_versioning): Update frequencies of
6676         indirect edges.
6677
6678 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6679
6680         PR target/43698
6681         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
6682         Set *arm_rev to be predicable.
6683
6684 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6685
6686         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
6687         (LINK_COMMAND_SPEC_A): New.
6688         (DSYMUTIL): New.
6689         (DSYMUTIL_SPEC): New.
6690         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
6691         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
6692
6693 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
6694
6695         * calls.c (load_register_parameters): Move check for zero
6696         sized items so that only the call to
6697         mem_overlaps_already_clobbered_arg_p () is protected.
6698
6699 2010-07-22  Jan Hubicka  <jh@suse.cz>
6700
6701         * ipa-pure-const.c (varying_state): Break out from ...
6702         (get_function_state): ... here; always return varying_state
6703         when state would be NULL otherwise.
6704         (remove_node_data): Do not free varying state.
6705
6706 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
6707
6708         PR bootstrap/44970
6709         PR middle-end/45009
6710         * postreload.c: Include "target.h".
6711         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
6712         into account.
6713         (fixup_debug_insns): Don't copy the rtx.
6714         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
6715         Don't copy when replacing.  Call fixup_debug_insns in the case where
6716         we merged one add with another.
6717         (reload_combine_recognize_pattern): Fail if there aren't any uses.
6718         Try harder to determine whether we're picking a valid index register.
6719         Don't set store_ruid for an insn we're going to scan in the
6720         next iteration.
6721         (reload_combine): Remove unused code.
6722         (reload_combine_note_use): When updating use information for
6723         an old insn, ignore a use that occurs after store_ruid.
6724         * Makefile.in (postreload.o): Update dependencies.
6725
6726         * function.c (record_hard_reg_sets): Restrict the previous change
6727         to cases where the incoming nominal mode is the same as the
6728         incoming promoted mode and everything happens in MODE_INT.
6729
6730 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
6731
6732         PR debug/45015
6733         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
6734         ASM_OPERANDS_OUTPUT_IDX.
6735         (adjust_insn): For inline asm with multiple sets ensure first
6736         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
6737         the insn.
6738
6739 2010-07-21  Richard Henderson  <rth@redhat.com>
6740
6741         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
6742         comparison for avoiding xmm register saves.  Emit the xmm register
6743         saves explicitly.
6744         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
6745         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
6746         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
6747         Remove patterns and the associated splitters.
6748
6749 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
6750
6751         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
6752         and imagine parts of a complex, so that they can have the same
6753         base and fall into the same group.
6754
6755 2010-07-21  Richard Guenther  <rguenther@suse.de>
6756
6757         PR lto/45018
6758         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
6759         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
6760         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
6761
6762 2010-07-21  Martin Jambor  <mjambor@suse.cz>
6763
6764         PR tree-optimization/44900
6765         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
6766         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
6767
6768 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
6769
6770         PR middle-end/44738
6771         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
6772
6773 2010-07-21  Richard Guenther  <rguenther@suse.de>
6774
6775         PR middle-end/45013
6776         * tree-ssa.c (useless_type_conversion_p): Dispatch to
6777         gimple_types_compatible_p only when in lto.
6778         * gimple.c (gimple_types_compatible_p): Use canonical types
6779         to speed up comparison.
6780
6781 2010-07-21  Richard Guenther  <rguenther@suse.de>
6782
6783         * tree-flow.h (referenced_var): Move define ...
6784         * tree-flow-inline.h (referenced_var): ... here as an inline
6785         function.  Assert here ...
6786         * tree-dfa.c (referenced_var_lookup): ... instead of here.
6787         * tree-ssa.c (maybe_optimize_var): Check if the variable
6788         is in referenced vars.
6789         (execute_update_addresses_taken): Remove old broken check.
6790         * gimple-pretty-print.c (pp_points_to_solution): Use
6791         referenced_var_lookup.
6792         * tree-into-ssa.c (dump_decl_set): Likewise.
6793
6794 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
6795
6796         PR debug/45003
6797         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
6798         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
6799         ZERO_EXTEND here.
6800
6801 2010-07-20  Richard Henderson  <rth@redhat.com>
6802
6803         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
6804
6805 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
6806
6807         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
6808         computing the sum of the stack pointer and a large constant.
6809         * config/arm/constraints.md (M): Remove superfluous parentheses.
6810         (Pc): New constraint.
6811
6812 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
6813
6814         PR debug/45006
6815         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
6816         operand's type if exp is tcc_unary class tree.
6817
6818 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
6819
6820         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
6821         Reverse sense of if_then_else condition.
6822
6823 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
6824
6825         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
6826         * config/rs6000/rs6000.c (rs6000_override_options): Set
6827         rs6000_block_move_inline_limit appropriately.
6828         (expand_block_move): Use rs6000_block_move_inline_limit.
6829         * doc/invoke.texi (mblock-move-inline-limit): Document.
6830
6831 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
6832
6833         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
6834         FROM and TO.  All callers changed.  Don't look for tracked uses,
6835         just scan the RTL for DEBUG_INSNs and substitute.
6836         (reload_combine_recognize_pattern): Call fixup_debug_insns.
6837         (reload_combine): Ignore DEBUG_INSNs.
6838
6839 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
6840
6841         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
6842         depth to 8 from 5.
6843
6844         PR debug/45003
6845         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
6846         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
6847         instead of the result's type.
6848
6849 2010-07-20  Richard Guenther  <rguenther@suse.de>
6850
6851         PR tree-optimization/44977
6852         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
6853         SSA form.
6854
6855 2010-07-20  Richard Guenther  <rguenther@suse.de>
6856
6857         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
6858         (lto_symtab_merge_decls_2): Likewise.
6859         * gimple.h (gimple_types_compatible_p): Declare.
6860         * gimple.c (gimple_queue_type_fixup): Remove.
6861         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
6862         (gimple_compatible_complete_and_incomplete_type_p): New function.
6863         (gimple_types_compatible_p): Adjust.
6864         (gimple_register_type): Remove type fixup code.
6865         (print_gimple_types_stats): Adjust.
6866         (free_gimple_type_tables): Likewise.
6867         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
6868         * tree-ssa.c (useless_type_conversion_p): Likewise.
6869
6870 2010-07-20  Richard Guenther  <rguenther@suse.de>
6871
6872         PR middle-end/44971
6873         PR middle-end/44988
6874         * tree-ssa.c (maybe_optimize_var): New function split out from ...
6875         (execute_update_addresses_taken): ... here.
6876         (non_rewritable_mem_ref_base): Likewise.
6877         (execute_update_addresses_taken): Do not iterate over all referenced
6878         vars but just all local decls and parms.
6879         Properly check call and asm arguments and rewrite call arguments.
6880
6881 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
6882
6883         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
6884         to top level.
6885         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
6886         definitions ...
6887         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
6888         New macro.
6889         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
6890
6891 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6892
6893         * gengtype.c (start_root_entry): New function, split out from
6894         write_root.  Check whether V is null and raise an error if so.
6895         (write_field_root): Check for V being null.  Don't raise an error here;
6896         set V to null instead.
6897         (write_root): Update comment above function.  Use start_root_entry.
6898
6899 2010-07-19  Xinliang David Li  <davidxl@google.com>
6900
6901         PR testsuite/44932
6902         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
6903         def edges.
6904         (find_uninit_use): Add dump.
6905         (is_use_properly_guarded): Ditto.
6906         (warn_uninitialized_phi): Ditto.
6907         (execute_late_warn_uninitialized): Ditto.
6908
6909 2010-07-19  Richard Guenther  <rguenther@suse.de>
6910
6911         PR middle-end/44941
6912         * expr.c (emit_block_move_hints): Move zero size check first.
6913         Move asserts to more useful places.
6914         * calls.c (load_register_parameters): Check for zero size.
6915
6916 2010-07-19  Richard Henderson  <rth@redhat.com>
6917
6918         * tree-optimize.c (execute_all_early_local_passes): New.  Change
6919         cgraph_state here ...
6920         (execute_early_local_optimizations): ... not here.  Remove.
6921         (pass_early_local_passes, pass_all_early_optimizations): Update.
6922
6923 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
6924
6925         * postreload.c (reload_combine_closest_single_use): Ignore the
6926         number of uses for DEBUG_INSNs.
6927         (fixup_debug_insns): New static function.
6928         (reload_combine_recognize_const_pattern): Use it.  Don't let the
6929         main loop be affected by DEBUG_INSNs.
6930         Really disallow moving adds past a jump insn.
6931         (reload_combine_recognize_pattern): Don't update use_ruid here.
6932         (reload_combine_note_use): Do it here.
6933         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
6934
6935 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
6936
6937         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
6938         of a loop.
6939         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
6940
6941 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
6942
6943         * config/i386/darwin.h: Define darwin_emit_branch_islands.
6944         (TARGET_MACHO_BRANCH_ISLANDS): New.
6945         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
6946         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
6947         default value.
6948         * config/i386/i386.c (output_pic_addr_const): Do not emit
6949         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
6950         (x86_output_mi_thunk): Adjust symbol creation.
6951         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
6952         Remove out of date comment.
6953         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
6954         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
6955         (DARWIN_GENERATE_ISLANDS): Ditto.
6956         (output_call):  Do not emit branch islands unless
6957         darwin_emit_branch_islands is set.
6958         * config/darwin.c: Declare darwin_emit_branch_islands.
6959         (machopic_indirect_data_reference): Do not emit unless
6960         darwin_emit_branch_islands is set.
6961         (darwin_override_options): Set darwin_emit_branch_islands
6962         where it is needed.
6963         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
6964
6965 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6966
6967         * doc/sourcebuild.texi (Effective-Target Keywords): Document
6968         sse_runtime, sse2_runtime.
6969
6970 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
6971
6972         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
6973         low half of a single-register SCmode return value before ORing
6974         it with the high half.
6975         * config/mips/mips16.S (MERGE_GPRf): Likewise.
6976
6977 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6978
6979         PR target/44805
6980         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
6981         on all targets.
6982
6983 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
6984
6985         PR target/42235
6986         * postreload.c (reload_cse_move2add): Return bool, true if anything.
6987         changed.  All callers changed.
6988         (move2add_use_add2_insn): Likewise.
6989         (move2add_use_add3_insn): Likewise.
6990         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
6991         reload_combine.
6992         (RELOAD_COMBINE_MAX_USES): Bump to 16.
6993         (last_jump_ruid): New static variable.
6994         (struct reg_use): New members CONTAINING_MEM and RUID.
6995         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
6996         (reload_combine_split_one_ruid, reload_combine_split_ruids,
6997         reload_combine_purge_insn_uses, reload_combine_closest_single_use
6998         reload_combine_purge_reg_uses_after_ruid,
6999         reload_combine_recognize_const_pattern): New static functions.
7000         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
7001         is true for our reg and that we have available index regs.
7002         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
7003         callers changed.  Use them to initialize fields in struct reg_use.
7004         (reload_combine): Initialize last_jump_ruid.  Be careful when to
7005         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
7006         Call reload_combine_recognize_const_pattern.
7007         (reload_combine_note_store): Update REAL_STORE_RUID field.
7008
7009 2010-07-16  Jason Merrill  <jason@redhat.com>
7010
7011         * Makefile.in (opts-common.o): Depend on options.h.
7012
7013 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7014
7015         * tree.c (build_common_builtin_nodes): Use build_function_type_list
7016         instead of build_function_type.
7017         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
7018         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
7019
7020 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
7021
7022         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
7023         do all the work.
7024         (rs6000_emit_int_cmove): Use function pointers for insn generation.
7025         Don't force values into registers unnecessarily.
7026         (output_isel): Assert that we're not given conditions we can't handle.
7027         Delete corresponding code.
7028         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
7029         scc_comparison_operator constraint.  Permit 0 for the consequent
7030         operand.  Permit any GPR for the alternative operand.
7031         (isel_unsigned_<mode>): Likewise.
7032
7033 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
7034
7035         PR target/44942
7036         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
7037         argument to const_tree.
7038         * config/i386/i386.c (function_arg_advance): If padding needs to be
7039         inserted before argument, increment cum->words by number of padding
7040         words as well.
7041         (contains_aligned_value_p): Change argument to const_tree.
7042         (ix86_function_arg_boundary): Change second argument to const_tree.
7043
7044 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
7045
7046         PR target/42235
7047         * function.c (record_hard_reg_sets): New static function.
7048         (assign_parm_setup_reg): If an optab for extending exists and the
7049         generated code clobbbers no hard regs, emit the insn directly and
7050         create a REG_EQUIV note.
7051
7052 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7053
7054         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
7055         TREE_CHAIN.
7056         * c-typeck.c (push_init_level): Likewise.
7057         (process_init_element): Likewise.
7058
7059 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
7060
7061         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
7062         (integer_three_node): Add.
7063         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
7064         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
7065         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
7066         of call build_int_cst.
7067         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
7068         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
7069         (find_interesting_uses_address): Ditto.
7070         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
7071         * tree-eh.c (lower_eh_constructs_2): Ditto.
7072         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
7073         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
7074         * expmed.c (expand_divmod): Ditto.
7075         * tree-mudflap.c (mx_register_decls): Ditto.
7076         * varasm.c (array_size_for_constructor): Ditto.
7077         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
7078         * c-parser.c (c_parser_postfix_expression): Ditto.
7079
7080 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
7081
7082         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
7083         New static variables.
7084         (reload_combine_recognize_pattern): New static function, broken out
7085         of reload_combine.
7086         (reload_combine): Use it.  Only initialize first_index_reg and
7087         last_index_reg once.
7088
7089 2010-07-15  Richard Henderson  <rth@redhat.com>
7090
7091         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
7092         when done.
7093
7094 2010-07-15  Jan Hubicka  <jh@suse.cz>
7095
7096         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
7097         comdats for broken gold.
7098         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
7099
7100 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7101
7102         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
7103
7104 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
7105
7106         * tree.h (DECL_CHAIN): Define.
7107         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
7108         * c-decl.c: Likewise.
7109         * c-parser.c: Likewise.
7110         * c-typeck.c: Likewise.
7111         * cfgexpand.c: Likewise.
7112         * cgraph.c: Likewise.
7113         * cgraphunit.c: Likewise.
7114         * combine.c: Likewise.
7115         * config/alpha/alpha.c: Likewise.
7116         * config/arm/arm.c: Likewise.
7117         * config/frv/frv.c: Likewise.
7118         * config/i386/i386.c: Likewise.
7119         * config/i386/winnt-cxx.c: Likewise.
7120         * config/ia64/ia64.c: Likewise.
7121         * config/iq2000/iq2000.c: Likewise.
7122         * config/mep/mep.c: Likewise.
7123         * config/mips/mips.c: Likewise.
7124         * config/pa/som.h: Likewise.
7125         * config/rs6000/rs6000.c: Likewise.
7126         * config/s390/s390.c: Likewise.
7127         * config/sh/sh.c: Likewise.
7128         * config/sh/symbian-cxx.c: Likewise.
7129         * config/sparc/sparc.c: Likewise.
7130         * config/spu/spu.c: Likewise.
7131         * config/stormy16/stormy16.c: Likewise.
7132         * config/vxworks.c: Likewise.
7133         * config/xtensa/xtensa.c: Likewise.
7134         * coverage.c: Likewise.
7135         * dbxout.c: Likewise.
7136         * dwarf2out.c: Likewise.
7137         * emit-rtl.c: Likewise.
7138         * expr.c: Likewise.
7139         * function.c: Likewise.
7140         * gimple-low.c: Likewise.
7141         * gimple-pretty-print.c: Likewise.
7142         * gimplify.c: Likewise.
7143         * integrate.c: Likewise.
7144         * ipa-inline.c: Likewise.
7145         * ipa-prop.c: Likewise.
7146         * ipa-split.c: Likewise.
7147         * ipa-struct-reorg.c: Likewise.
7148         * ipa-type-escape.c: Likewise.
7149         * langhooks.c: Likewise.
7150         * lto-cgraph.c: Likewise.
7151         * omp-low.c: Likewise.
7152         * stor-layout.c: Likewise.
7153         * tree-cfg.c: Likewise.
7154         * tree-complex.c: Likewise.
7155         * tree-dfa.c: Likewise.
7156         * tree-dump.c: Likewise.
7157         * tree-inline.c: Likewise.
7158         * tree-mudflap.c: Likewise.
7159         * tree-nested.c: Likewise.
7160         * tree-object-size.c: Likewise.
7161         * tree-pretty-print.c: Likewise.
7162         * tree-sra.c: Likewise.
7163         * tree-ssa-live.c: Likewise.
7164         * tree-ssa-loop-niter.c: Likewise.
7165         * tree-ssa-math-opts.c: Likewise.
7166         * tree-ssa-reassoc.c: Likewise.
7167         * tree-ssa-sccvn.c: Likewise.
7168         * tree-ssa-structalias.c: Likewise.
7169         * tree-tailcall.c: Likewise.
7170         * tree-vrp.c: Likewise.
7171         * tree.c: Likewise.
7172         * var-tracking.c: Likewise.
7173         * varasm.c: Likewise.
7174
7175 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7176
7177         PR target/44877
7178         * config/spu/spu.c (spu_expand_builtin_1): Allow references
7179         (as well as pointers) as argument to mask_for_load builtins.
7180
7181 2010-07-15  Richard Guenther  <rguenther@suse.de>
7182
7183         PR tree-optimization/44946
7184         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
7185         with accessing only padding properly.
7186
7187 2010-07-15  Jan Hubicka  <jh@suse.cz>
7188
7189         * ipa.c (function_and_variable_visibility): Variables marked as used
7190         should not be localized.
7191
7192 2010-07-15  Jan Hubicka  <jh@suse.cz>
7193
7194         * cgraph.c: Include lto-streamer.h
7195         (change_decl_assembler_name): Work when assembler name hash is at place.
7196         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
7197         be sure to rename it to avoid name clash.
7198         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
7199         Localize hidden symbols only when locally defined.
7200
7201 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
7202
7203         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
7204
7205 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
7206             Kevin F. Quinn  <kevquinn@gentoo.org>
7207
7208         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
7209         * common.opt: Add -Wtrampolines.
7210         * doc/invoke.texi: Add -Wtrampolines.
7211
7212 2010-07-15  Jie Zhang  <jie@codesourcery.com>
7213
7214         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
7215         cortex_a8_issue_ls.
7216
7217 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
7218
7219         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
7220         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
7221
7222 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7223
7224         * config/spu/spu.c (reg_names): Remove prototype.
7225         (call_used_regs): Likewise.
7226
7227 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
7228
7229         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
7230         "unused" with attribute "used".
7231         (__JCR_END__): Likewise.
7232         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
7233         "used" attribute.
7234         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
7235
7236 2010-07-14  Richard Guenther  <rguenther@suse.de>
7237
7238         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
7239         (maybe_fixup_decls): Likewise.
7240         (input_gimple_stmt): Do not fixup anything.
7241         * lto-streamer-out.c (output_gimple_stmt): Make sure all
7242         non-automatic variable uses are wrapped inside a MEM_REF.
7243
7244 2010-07-14  Richard Henderson  <rth@redhat.com>
7245
7246         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
7247         for functions.
7248         * varasm.c (assemble_variable): Remove early exit for functions;
7249         assert that we're given a variable.
7250
7251 2010-07-14  Jie Zhang  <jie@codesourcery.com>
7252
7253         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
7254         cortex_a8_default when neon_type is not none.
7255
7256 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7257
7258         * lower-subreg.c (subreg_context): New static bitmap.
7259         (decompose_multiword_subregs): Allocate and free it.
7260         (find_decomposable_subregs): Set a bit in it for a register that
7261         occurs in a subreg that changes mode but not size.
7262         (can_decompose_p): Test it instead of non_decomposable_context.
7263
7264 2010-07-14  Richard Guenther  <rguenther@suse.de>
7265
7266         PR tree-optimization/44824
7267         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
7268         is_gimple_mem_ref_addr.
7269         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
7270         non-decl_address_invariant_p addresses.
7271
7272 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7273
7274         * reload.c (find_reloads): Revert code to penalize small register
7275         classes that was brought in with the IRA merge.
7276
7277 2010-07-14  Richard Guenther  <rguenther@suse.de>
7278
7279         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
7280         as base of ARRAY_REFs.
7281
7282 2010-07-14  Richard Guenther  <rguenther@suse.de>
7283
7284         PR middle-end/44930
7285         * tree-pretty-print.c (do_niy): Do not print a newline.
7286
7287 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
7288
7289         * ira-int.h (struct ira_object): New.
7290         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
7291         (struct ira_allocno): Remove members min, max,
7292         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
7293         conflict_allocnos_num and conflict_vec_p.  Add new member object.
7294         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
7295         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
7296         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
7297         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
7298         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
7299         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
7300         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
7301         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
7302         an ira_object_t rather than ira_allocno_t.  All uses changed.
7303         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7304         contains a vector of ira_object_t; all uses changed.
7305         (ira_objects_num): Declare variable.
7306         (ira_create_allocno_object): Declare function.
7307         (ira_conflict_vector_profitable_p): Adjust prototype.
7308         (ira_allocate_conflict_vec): Renamed from
7309         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
7310         (ira_allocate_object_conflicts): Renamed from
7311         ira_allocate_allocno_conflicts; first arg now ira_object_t.
7312         (struct ira_object_iterator): New.
7313         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
7314         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
7315         to conflict_vec_p.  All uses changed.
7316         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
7317         Changed to take into account that conflicts are now tracked for
7318         objects.
7319         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
7320         Args changed to accept ira_object_t.  All uses changed.
7321         (allocnos_conflict_p): New static function.
7322         (collected_conflict_objects): Renamed from collected_allocno_objects;
7323         now a vector of ira_object_t.  All uses changed.
7324         (build_conflict_bit_table): Changed to take into account that
7325         conflicts are now tracked for objects.
7326         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
7327         (print_allocno_conflicts, ira_build_conflicts): Likewise.
7328         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
7329         setup_allocno_left_conflicts_size, allocno_reload_assign,
7330         fast_allocation): Likewise.
7331         * ira-lives.c (make_hard_regno_born, make_allocno_born)
7332         process_single_reg_class_operands, process_bb_node_lives): Likewise.
7333         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
7334         Likewise.
7335         * ira-build.c (ira_objects_num): New variable.
7336         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
7337         contains a vector of ira_object_t; all uses changed.
7338         (ira_object_id_map_vec): Corresponding change.
7339         (object_pool): New static variable.
7340         (initiate_allocnos): Initialize it.
7341         (finish_allocnos): Free it.
7342         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
7343         New functions.
7344         (ira_create_allocno): Don't set members that were removed.
7345         (ira_set_allocno_cover_class): Don't change conflict hard regs.
7346         (merge_hard_reg_conflicts): Changed to take into account that
7347         conflicts are now tracked for objects.
7348         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
7349         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
7350         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
7351         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
7352         setup_min_max_conflict_allocno_ids, ):  Likewise.
7353         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
7354         to ira_object_t; all callers changed.
7355         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
7356         to ira_object_t, all callers changed.
7357         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
7358         to ira_object_t, all callers changed.
7359         (conflict_check, curr_conflict_check_tick): Renamed from
7360         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
7361         changed.
7362         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
7363         arg changed to ira_object_t, all callers changed.
7364         (create_cap_allocno): Call ira_create_allocno_object.
7365         (finish_allocno): Free the corresponding object.
7366         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
7367         callers changed.  Adjusted for dealing with objects.
7368         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
7369         dealing with objects.
7370         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
7371
7372         * ira-int.h (struct live_range): Rename allocno member to object
7373         and change type to ira_object_t.
7374         (struct ira_object): New member live_ranges.
7375         (struct ira_allocno): Remove member live_ranges.
7376         (ALLOCNO_LIVE_RANGES): Remove.
7377         (OBJECT_LIVE_RANGES): New macro.
7378         (ira_create_live_range, ira_copy_live_range_list,
7379         ira_merge_live_range_list, ira_live_ranges_intersect_p,
7380         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
7381         * ira-build.c (ira_create_object): Initialize live ranges here.
7382         (ira_create_allocno): Not here.
7383         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
7384         changed to ira_object_t, all callers changed.
7385         (copy_live_range): Rename from copy_allocno_live_range, all callers
7386         changed.
7387         (ira_copy_live_range_list): Rename from
7388         ira_copy_allocno_live_range_list, all callers changed.
7389         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
7390         all callers changed.
7391         (ira_live_ranges_intersect_p): Rename from
7392         ira_allocno_live_ranges_intersect_p, all callers changed.
7393         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
7394         callers changed.
7395         (ira_finish_live_range_list): Rename from
7396         ira_finish_allocno_live_range_list, all callers changed.
7397         (change_object_in_range_list): Rename from change_allocno_in_range_list,
7398         last arg changed to ira_object_t, all callers changed.
7399         (finish_allocno): Changed to expect live ranges in the allocno's object.
7400         (move_allocno_live_ranges, copy_allocno_live_ranges,
7401         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
7402         ira_flattening, ira_build): Likewise.
7403         * ira-color.c (allocnos_have_intersected_live_ranges_p,
7404         slot_coalesced_allocno_live_ranges_intersect,
7405         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
7406         * ira-conflicts.c (build_conflict_bit_table): Likewise.
7407         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
7408         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
7409         make_allocno_dead, create_start_finish_chains,
7410         remove_some_program_points_and_update_live_ranges,
7411         ira_debug_live_range_list): Likewise.
7412
7413         * ira-int.h (ira_object_conflict_iterator): Rename from
7414         ira_allocno_conflict_iterator.
7415         (ira_object_conflict_iter_init): Rename from
7416         ira_allocno_conflict_iter_init, second arg changed to
7417         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
7418         FOR_EACH_ALLOCNO_CONFLICT.
7419         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
7420         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
7421         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
7422         * ira-conflicts.c (print_allocno_conflicts): Likewise.
7423
7424 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
7425
7426         PR other/44874
7427         * tree-dump.c (dump_options): Add enumerate_locals entry.
7428         Add TDF_NOID exclusion to all entry.
7429         * tree-dump.h (dump_enumerated_decls): Declare.
7430         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
7431         Don't display type uid.
7432         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
7433         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
7434         * tree-ssa-live.c: Include gimple.h.
7435         (numbered_tree_d): New struct.
7436         (numbered_tree): New typedef.
7437         (DEF_VEC_O (numbered_tree): New.
7438         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
7439         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
7440         (dump_enumerated_decls): Likewise.
7441         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
7442         debug info and flag_dump_final_insns, call dump_enumerated_decls.
7443         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
7444         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
7445
7446 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
7447
7448         * expmed.h (MAX_BITS_PER_WORD): Move to...
7449         * defaults.h (MAX_BITS_PER_WORD): ...here.
7450
7451 2010-07-13  DJ Delorie  <dj@redhat.com>
7452
7453         * config/h8300/h8300.c (h8300_init_once): Default to
7454         -fstrict_volatile_bitfields.
7455
7456         * config/sh/sh.c (sh_override_options): Default to
7457         -fstrict_volatile_bitfields.
7458
7459         * config/rx/rx.c (rx_option_override): New.
7460
7461         * config/m32c/m32c.c (m32c_override_options): Default to
7462         -fstrict_volatile_bitfields.
7463
7464 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
7465
7466         * tree.h (build_function_call_expr): Delete.
7467         (build_call_expr_loc_array): New function.
7468         (build_call_expr_loc_vec): New function.
7469         * tree-flow.h (struct omp_region): Change type of ws_args field
7470         to a VEC.
7471         * builtins.c (build_function_call_expr): Delete.
7472         (build_call_expr_loc_array): New function.
7473         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
7474         (build_call_expr): Likewise.
7475         (build_call_expr_loc_vec): New function.
7476         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
7477         build_function_call_expr.
7478         * expr.c (emutls_var_address): Likewise.
7479         * varasm.c (emutls_common_1): Likewise.
7480         * omp-low.c (expand_omp_atomic_mutex): Likewise.
7481         (expand_omp_taskreg): Adjust for new type of region->ws_args.
7482         (get_ws_args_for): Return a VEC instead of a tree.
7483         (expand_parallel_call): Call build_call_expr_loc_vec instead of
7484         build_function_call_expr.
7485         * stor-layout.c (self_referential_size): Likewise.
7486
7487 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7488
7489         PR testsuite/44701
7490         * recog.c (constrain_operands): Allow side-effects in memory
7491         operands if either < or > constraint is used, rather than if
7492         both < and > is used.
7493
7494 2010-07-13  Richard Guenther  <rguenther@suse.de>
7495
7496         PR middle-end/44911
7497         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
7498         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
7499         without name.
7500
7501 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
7502
7503         PR target/44761
7504         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
7505         to variable emited.
7506         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
7507         * config/sh/sh.md (symGOT_load): Likewise.
7508         (symDTPOFF2reg): Likewise.
7509         (symTPOFF2reg): Likewise.
7510
7511 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7512
7513         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
7514         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
7515
7516 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7517
7518         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
7519         explanation.
7520         Find ucontext_t * on Solaris 11.
7521         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
7522         Handle new Solaris 11 __sighndlr patterns.
7523
7524 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
7525
7526         PR debug/44901
7527         * vec.h (VEC_block_remove): Fix comment.
7528         * tree-ssa-live.c (remove_unused_locals): Don't use
7529         VEC_unordered_remove on local_decls, instead replace a single
7530         vector element in each iteration if at least one element had
7531         to be removed and VEC_truncate at the end.
7532         * omp-low.c (expand_omp_taskreg): Likewise.
7533
7534 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7535
7536         * c-decl.c (finish_function): Fix typo in comment.
7537
7538 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
7539
7540         PR bootstrap/44921
7541         * postreload.c (move2add_use_add3_insn): Silence gcc warning
7542         on min_regno.
7543
7544 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
7545
7546         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
7547         (simplify_stmt_using_ranges): Use it.
7548
7549 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7550
7551         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
7552         member.  Do not mark as GTY(()).
7553         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
7554         (spu_builtin_decls): New static variable.
7555         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
7556         (spu_init_builtins): Likewise.
7557         (spu_builtin_mul_widen_even): Likewise.
7558         (spu_builtin_mul_widen_odd): Likewise.
7559         (spu_builtin_mask_for_load): Likewise.
7560         (spu_builtin_vec_perm): Likewise.
7561         * config/spu/spu-c.c: Include "target.h".
7562         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
7563         of using spu_builtins[].fndecl.
7564
7565 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7566
7567         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
7568         imply -minterlink-mips16.
7569
7570 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7571
7572         * config/mips/mips.h (mips16_globals): Declare.
7573         (SWITCHABLE_TARGET): Define.
7574         * config/mips/mips.c: Include target-globals.h.
7575         (mips16_globals): New variable.
7576         (mips_set_mips16_mode): Use save_target_globals and
7577         restore_target_globals instead of target_reinit.
7578
7579 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7580
7581         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
7582         to say that the function can be called more than once.
7583         * target-globals.c (save_target_globals): Call init_reg_sets.
7584
7585 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7586
7587         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
7588         * bb-reorder.h: New file.
7589         * bb-reorder.c (default_target_bb_reorder): New variable.
7590         (this_target_bb_reorder): New conditional variable.
7591         (uncond_jump_length): Redefine as a macro.
7592         * target-globals.h (this_target_bb_reorder): Declare.
7593         (target_globals): Add a bb_reorder field.
7594         (restore_target_globals): Copy the bb_reorder field to
7595         this_target_bb-reorder.
7596         * target-globals.c: Include bb-reorder.h.
7597         (default_target_globals): Initialize the bb_reorder field.
7598         (save_target_globals): Likewise.
7599
7600 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7601
7602         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
7603         * gcse.h: New file.
7604         * gcse.c: Include gcse.h.
7605         (default_target_gcse): New variable.
7606         (this_target_gcse): New conditional variable.
7607         (can_copy): Redefine as a macro.
7608         (can_copy_init_p): New macro.
7609         (can_copy_p): Remove can_copy_init_p.
7610         * target-globals.h (this_target_gcse): Declare.
7611         (target_globals): Add a gcse field.
7612         (restore_target_globals): Copy the gcse field to this_target_gcse.
7613         * target-globals.c: Include gcse.h.
7614         (default_target_globals): Initialize the gcse field.
7615         (save_target_globals): Likewise.
7616
7617 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7618
7619         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
7620         and x_ira_prohibited_mode_move_regs_initialized_p.
7621         (ira_prohibited_mode_move_regs): Redefine as a macro.
7622         * ira.c (ira_prohibited_mode_move_regs): Delete.
7623         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
7624
7625 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7626
7627         * reload.h (target_reload): Add x_cached_reg_save_code and
7628         x_cached_reg_restore_code.
7629         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
7630         Redefine as macros.
7631
7632 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7633
7634         * Makefile.in (target-globals.o): Depend on builtins.h.
7635         * builtins.h: New file.
7636         * builtins.c: Include builtins.h.
7637         (default_target_builtins): New variable.
7638         (this_target_builtins): New conditional variable.
7639         (apply_args_mode, apply_result_mode): Redefine as macros.
7640         * target-globals.h (this_target_builtins): Declare.
7641         (target_globals): Add a builtins field.
7642         (restore_target_globals): Copy the builtins field to
7643         this_target_builtins.
7644         * target-globals.c: Include builtins.h.
7645         (default_target_globals): Initialize the builtins field.
7646         (save_target_globals): Likewise.
7647
7648 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7649
7650         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
7651         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
7652         from expmed.c.
7653         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
7654         (alg_hash, alg_hash_used_p): New macros.
7655         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
7656         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
7657         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
7658
7659 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7660
7661         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
7662         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
7663         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
7664         (this_op_costs, costs_classes): Redefine as macros.
7665         (record_reg_classes): Don't take op_costs as a parameter.
7666         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
7667         (scan_one_insn): Update call to record_operand_costs.
7668
7669 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7670
7671         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
7672         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
7673         (target_ira_int): New structure.
7674         (default_target_ira_int): Declare.
7675         (this_target_ira_int): Declare as a variable or define as a macro.
7676         (ira_reg_mode_hard_regset, ira_register_move_cost)
7677         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
7678         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
7679         (prohibited_class_mode_regs, ira_important_classes_num)
7680         (ira_important_classes, ira_reg_class_intersect)
7681         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
7682         (ira_reg_class_union): Redefine as macros.
7683         * ira.h (target_ira): New structure.
7684         (default_target_ira): Declare.
7685         (this_target_ira): Declare as a variable or define as a macro.
7686         (ira_available_class_regs, ira_hard_regno_cover_class)
7687         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
7688         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
7689         (ira_class_hard_regs_num): Redefine as macros.
7690         * ira.c (default_target_ira, default_target_ira_int): New variables.
7691         (this_target_ira, this_target_ira_int): New conditional variables.
7692         (ira_reg_mode_hard_regset, ira_memory_move_cost)
7693         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
7694         (ira_class_subset_p): Delete.
7695         (no_unit_alloc_regs): Redefine as a macro.
7696         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
7697         (ira_class_hard_regs_num, ira_class_hard_reg_index)
7698         (ira_available_class_regs): Delete.
7699         (alloc_reg_class_subclasses): Redefine as a macro.
7700         (ira_reg_class_cover_size, ira_reg_class_cover)
7701         (ira_important_classes_num, ira_important_classes)
7702         (ira_important_class_nums, ira_class_translate): Delete.
7703         (cover_class_order): Document the variable's lifetime.
7704         (reorder_important_classes): Don't set ira_important_class_nums.
7705         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
7706         (ira_reg_class_super_classes, ira_reg_class_union)
7707         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
7708         Delete.
7709         (setup_reg_class_nregs): Don't set ira_max_regs.
7710         (prohibited_class_mode_regs): Delete.
7711         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
7712         (target_globals): Add ira and ira_int fields.
7713         (restore_target_globals): Copy the ira field to this_target_ira
7714         and the ira_int field to this_target_ira_int.
7715         * target-globals.c: Include ira-int.h.
7716         (default_target_globals): Initialize the ira and ira_int fields.
7717         (save_target_globals): Likewise.
7718
7719 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7720
7721         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
7722         * cfgloop.h (target_cfgloop): New structure.
7723         (default_target_cfgloop): Declare.
7724         (this_target_cfgloop): Declare as a variable or define as a macro.
7725         (target_avail_regs, target_clobbered_regs, target_res_regs)
7726         (target_reg_cost, target_spill_cost): Redefine as macros.
7727         * cfgloopanal.c (default_target_cfgloop): New variable.
7728         (this_target_cfgloop): New conditional variable.
7729         (target_avail_regs, target_clobbered_regs, target_res_regs)
7730         (target_reg_cost, target_spill_cost): Delete.
7731         * target-globals.h (this_target_cfgloop): Declare.
7732         (target_globals): Add a cfgloop field.
7733         (restore_target_globals): Copy the cfgloop field to
7734         this_target_cfgloop.
7735         * target-globals.c: Include cfgloop.h.
7736         (default_target_globals): Initialize the cfgloop field.
7737         (save_target_globals): Likewise.
7738
7739 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7740
7741         * regs.h (target_regs): Add x_direct_load, x_direct_store and
7742         x_float_extend_from_mem.
7743         (direct_load, direct_store, float_extend_from_mem): New macros.
7744         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
7745
7746 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7747
7748         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
7749         (target-globals.o): Depend on $(LIBFUNCS_H).
7750         * libfuncs.h: Include hashtab.h.
7751         (libfunc_entry): Moved from optabs.c.
7752         (target_libfuncs): New structure.
7753         (default_target_libfuncs): Declare.
7754         (this_target_libfuncs): Declare as a variable or define as a macro.
7755         (libfunc_table): Redefine as a macro.
7756         * optabs.c (default_target_libfuncs): New variable.
7757         (this_target_libfuncs): New conditional variable.
7758         (libfunc_table): Delete.
7759         (libfunc_entry): Moved to optabs.h.
7760         (libfunc_hash): Redefine as a macro.
7761         (hash_libfunc, eq_libfunc): Fix comments.
7762         (init_optabs): Use libfunc_hash to detect cases where the function
7763         has already been called.  Clear the hash table instead of
7764         recreating it.
7765         * target-globals.h (this_target_libfuncs): Declare.
7766         (target_globals): Add a libfuncs field.
7767         (restore_target_globals): Copy the libfuncs field to
7768         this_target_libfuncs.
7769         * target-globals.c: Include libfuncs.h.
7770         (default_target_globals): Initialize the libfuncs field.
7771         (save_target_globals): Likewise.
7772
7773 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7774
7775         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
7776         in all dependency lists.
7777
7778 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7779
7780         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
7781         * optabs.h (target_optabs): New structure.
7782         (default_target_optabs): Declare.
7783         (this_target_optabs): Declare as a variable or define as a macro.
7784         (optab_table, convert_optab_table, direct_optab_table): Redefine
7785         as macros.
7786         * optabs.c (default_target_optabs): New variable.
7787         (this_target_optabs): New conditional variable.
7788         (optab_table, convert_optab_table, direct_optab_table): Delete.
7789         * target-globals.h (this_target_optabs): Declare.
7790         (target_globals): Add a optabs field.
7791         (restore_target_globals): Copy the optabs field to
7792         this_target_optabs.
7793         * target-globals.c: Include expr.h and optabs.h.
7794         (default_target_globals): Initialize the optabs field.
7795         (save_target_globals): Likewise.
7796
7797 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7798
7799         * flags.h (target_flagstate): Add x_flag_excess_precision.
7800         (flag_excess_precision): Redefine as a macro.
7801         * toplev.c (flag_excess_precision): Delete.
7802
7803 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7804
7805         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
7806         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
7807         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
7808         (no_caller_save_reg_set): Redefine as a macro.
7809         * reload.h (target_reload): Add x_caller_save_initialized_p and
7810         x_regno_save_mode.
7811         (caller_save_initialized_p): Redefine as a macro.
7812         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
7813         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
7814         (regno_save_mode): Redefine as a macro.
7815
7816 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7817
7818         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
7819         * expmed.h: New file.
7820         * expmed.c (default_target_costs): New variable.
7821         (this_target_costs): New conditional variable.
7822         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
7823         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
7824         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
7825         * target-globals.h (this_target_expmed): Declare.
7826         (target_globals): Add a expmed field.
7827         (restore_target_globals): Copy the expmed field to
7828         this_target_expmed.
7829         * target-globals.c: Include expmed.h.
7830         (default_target_globals): Initialize the expmed field.
7831         (save_target_globals): Likewise.
7832
7833 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7834
7835         * Makefile.in (target-globals.o): Depend on reload.h.
7836         * reload.h (target_reload): New structure.
7837         (default_target_reload): Declare.
7838         (this_target_reload): Declare as a variable or define as a macro.
7839         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
7840         * reload1.c (default_target_reload): New variable
7841         (this_target_reload): New conditional variable.
7842         (indirect_symref_ok, double_reg_address_ok): Delete.
7843         (spill_indirect_levels): Redefine as a macro.
7844         * target-globals.h (this_target_reload): Declare.
7845         (target_globals): Add a reload field.
7846         (restore_target_globals): Copy the reload field to
7847         this_target_reload.
7848         * target-globals.c: Include hard-reg-set.h.
7849         (default_target_globals): Initialize the reload field.
7850         (save_target_globals): Likewise.
7851
7852 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7853
7854         * rtl.h (target_rtl): Add x_static_reg_base_value.
7855         * alias.c (static_reg_base_value): Redefine as a macro.
7856
7857 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7858
7859         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
7860         (GTFILES): Remove reginfo.c.
7861         * rtl.h (target_rtl): Add x_top_of_stack.
7862         (top_of_stack): New macro.
7863         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
7864         (top_of_stack): Delete.
7865
7866 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7867
7868         * regs.h (target_regs): Add x_hard_regs_of_mode,
7869         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
7870         x_may_move_out_cost and x_last_mode_for_init_move_cost.
7871         (have_regs_of_mode, contains_reg_of_mode, move_cost)
7872         (may_move_in_cost, may_move_out_cost): Redefine as macros.
7873         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
7874         (may_move_in_cost, may_move_out_cost): Delete.
7875         (last_mode_for_init_move_cost): Redefine as a macro.
7876
7877 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7878
7879         * hard-reg-set.h (target_hard_regs): New structure.
7880         (default_target_hard_regs): Declare.
7881         (this_target_hard_regs): Declare as a variable or define as a macro.
7882         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
7883         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
7884         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
7885         (reg_class_size, reg_class_subclasses, reg_class_subunion)
7886         (reg_class_superunion, reg_names): Redefine as macros.
7887         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
7888         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
7889         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
7890         (reg_class_contents, reg_class_size, reg_class_subclasses)
7891         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
7892         (default_target_hard_regs): New variable
7893         (this_target_hard_regs, initial_call_really_used_regs)
7894         (initial_reg_alloc_order): New conditional variables.
7895         (initial_reg_names): New variable.
7896         (init_reg_sets): Assert that initial_call_really_used_regs,
7897         initial_reg_alloc_order and initial_reg_names
7898         are all the same size as their variable counterparts.  Use them to
7899         initialize those counterparts.
7900         * target-globals.h (this_target_hard_regs): Declare.
7901         (target_globals): Add a hard_regs field.
7902         (restore_target_globals): Copy the hard_regs field to
7903         this_target_hard_regs.
7904         * target-globals.c: Include hard-reg-set.h.
7905         (default_target_globals): Initialize the hard_regs field.
7906         (save_target_globals): Likewise.
7907
7908 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7909
7910         * Makefile.in (target-globals.o): Depend on $(RTL_H).
7911         * rtl.h (target_rtl): New structure.
7912         (default_target_rtl): Declare.
7913         (this_target_rtl): Declare as a variable or define as a macro.
7914         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
7915         Redefine as macros.
7916         * emit-rtl.c (default_target_rtl): New variable.
7917         (this_target_rtl): New conditional variable.
7918         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
7919         (return_address_pointer_rtx): Delete.
7920         (initial_regno_reg_rtx): New macro.
7921         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
7922         (init_emit_regs): Likewise.
7923         * target-globals.h (this_target_rtl): Declare.
7924         (target_globals): Add a rtl field.
7925         (restore_target_globals): Copy the rtl field to this_target_rtl.
7926         * target-globals.c: Include rtl.h.
7927         (default_target_globals): Initialize the rtl field.
7928         (save_target_globals): Likewise.
7929
7930 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7931
7932         * Makefile.in (target-globals.o): Depend on $(REGS_H).
7933         * regs.h (target_reg_modes): New structure.
7934         (default_target_reg_modes): Declare.
7935         (this_target_reg_modes): Declare as a variable or define as a macro.
7936         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
7937         * reginfo.c (default_target_reg_modes): New variable.
7938         (this_target_reg_modes): New conditional variable.
7939         (hard_regno_nregs, reg_raw_mode): Delete.
7940         * target-globals.h (this_target_regs): Declare.
7941         (target_globals): Add a regs field.
7942         (restore_target_globals): Copy the regs field to this_target_regs.
7943         * target-globals.c: Include regs.h.
7944         (default_target_globals): Initialize the regs field.
7945         (save_target_globals): Likewise.
7946
7947 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
7948
7949         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
7950         * doc/tm.texi: Regenerate.
7951         * Makefile.in (OBJS-common): Add target-globals.o.
7952         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
7953         and target-globals.h.
7954         (target-globals.o): New rule.
7955         (GTFILES): Include $(srcdir)/target-globals.h.
7956         * defaults.h (SWITCHABLE_TARGET): Define.
7957         * gengtype.c (open_base_files): Add target-globals.h to the
7958         list of includes.
7959         * target-globals.h: New file.
7960         * target-globals.c: Likewise.
7961
7962         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
7963         * flags.h (target_flag_state): New structure.
7964         (default_target_flag_state): Declare.
7965         (this_target_flag_state): Declare as a variable or define as a macro.
7966         (align_loops_log): Redefine as a macro.
7967         (align_loops_max_skip, align_jumps_log): Likewise.
7968         (align_jumps_max_skip, align_labels_log): Likewise.
7969         (align_labels_max_skip, align_functions_log): Likewise.
7970         * toplev.c (default_target_flag_state): New variable.
7971         (this_target_flag_state): New conditional variable.
7972         (align_loops_log): Delete.
7973         (align_loops_max_skip, align_jumps_log): Likewise.
7974         (align_jumps_max_skip, align_labels_log): Likewise.
7975         (align_labels_max_skip, align_functions_log): Likewise.
7976         * target-globals.h (this_target_flag_state): Declare.
7977         (target_globals): Add a flag_state field.
7978         (restore_target_globals): Copy the flag_state field to
7979         this_target_flag_state.
7980         * target-globals.c: Include flags.h.
7981         (default_target_globals): Initialize the flag_state field.
7982         (save_target_globals): Likewise.
7983
7984 2010-07-12  Jie Zhang  <jie@codesourcery.com>
7985
7986         * postreload.c (reg_symbol_ref[]): New.
7987         (move2add_use_add2_insn): New.
7988         (move2add_use_add3_insn): New.
7989         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
7990         (move2add_note_store): Likewise.
7991
7992 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
7993
7994         PR rtl-optimization/44752
7995         * genautomata.c (main): Don't emit an empty file even if there
7996         is no automaton.
7997
7998 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7999
8000         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
8001         ix86_solaris_return_in_memory.
8002         * config/i386-protos.h: Reflect this.
8003         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8004         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
8005         Move ...
8006         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
8007
8008 2010-07-12  Jie Zhang  <jie@codesourcery.com>
8009
8010         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
8011         align the stack when it's going to be saved.
8012
8013 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8014
8015         PR pch/14940
8016         * config/host-solaris.c (mmap_fixed): New function.
8017         (sol_gt_pch_get_address): Use it.
8018         (sol_gt_pch_use_address): Likewise.
8019
8020 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8021
8022         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
8023         pentiumpro on Solaris 8 and 9/x86.
8024         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
8025         Document SSE/SSE2 support.
8026         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
8027
8028 2010-07-12  Andi Kleen  <ak@linux.intel.com>
8029
8030         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
8031         instead of gcc_assert to print better error message for multiple
8032         prevailing defs.
8033
8034 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
8035
8036         * config/i386/i386.c (ix86_asm_output_function_label): Change format
8037         string placeholder from 0x%x to %#x.
8038         (ix86_code_end): Use putc to output '\n'.
8039         (ix86_print_operand) <case ';'>: Use putc to output ';'.
8040
8041 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
8042
8043         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
8044         in directive -export.
8045
8046 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
8047
8048         * reginfo.h (reg_classes_intersect_p): Change arguments type to
8049         reg_class_t.
8050         * rtl.h (reg_classes_intersect_p): Adjust prototype.
8051
8052         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8053         Remove macros.
8054         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
8055         rs6000_memory_move_cost): Remove
8056         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
8057         TARGET_MEMORY_MOVE_COST): Define.
8058         (rs6000_register_move_cost): Make static. Change arguments type from
8059         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
8060         (rs6000_memory_move_cost): Make static. Change arguments type from
8061         'enum reg_class' to reg_class_t.
8062
8063 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
8064
8065         PR middle-end/42505
8066         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
8067         lookup code into....
8068         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
8069         new functions.
8070         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
8071         * cfgloopanal.c (target_clobbered_regs): Define.
8072         (init_set_costs): Initialize target_clobbered_regs.
8073         (estimate_reg_pressure_cost): Add call_p argument.  When true,
8074         adjust the number of available registers to exclude the
8075         call-clobbered registers.
8076         * cfgloop.h (target_clobbered_regs): Declare.
8077         (estimate_reg_pressure_cost): Adjust declaration.
8078         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
8079         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
8080         (determine_set_costs): Dump target_clobbered_regs.
8081         (loop_body_includes_call): New function.
8082         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
8083         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
8084         call_p flag through.
8085         (best_gain_for_invariant): Likewise.
8086         (find_invariants_to_move): Likewise.
8087         (move_single_loop_invariants): Likewise, using already-computed
8088         has_call field.
8089
8090 2010-07-10  Richard Guenther  <rguenther@suse.de>
8091             Joern Rennecke  <joern.rennecke@embecosm.com>
8092
8093         PR debug/44832
8094         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
8095         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
8096         unless they have DECL_IGNORED_P set.
8097
8098 2010-07-10  Richard Guenther  <rguenther@suse.de>
8099
8100         PR lto/44889
8101         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
8102         helper function.
8103         (gimple_types_compatible_p): Similar to pointed-to
8104         types allow and merge a mix of complete and incomplete aggregate.
8105         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
8106         (iterative_hash_gimple_type): Adjust for that.
8107
8108 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
8109
8110         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
8111
8112 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
8113
8114         PR objc/44140
8115         * config/darwin.c (output_objc_section_asm_op): Save and restore
8116         section when outputting ObjC section list.
8117
8118 2010-07-09  Jan Hubicka  <jh@suse.cz>
8119
8120         * lto-streamer-out.c (produce_symtab): Do not write alias
8121         cgraph/varpool nodes.
8122
8123 2010-07-09  Jan Hubicka  <jh@suse.cz>
8124
8125         * tree-inline.c (declare_return_variable): Fix ICE while
8126         inlining DECL_BY_VALUE function not in SSA form
8127
8128 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
8129
8130         PR tree-optimization/44576
8131         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
8132         New.  Pull out from is_loop_prefetching_profitable to implement
8133         the trip count to ahead ratio heuristic.
8134         (mem_ref_count_reasonable_p): New.  Pull out from
8135         is_loop_prefetching_profitable to implement the instruction to
8136         memory reference ratio heuristic.  Also consider not reasonable if
8137         the memory reference count is above a threshold (to avoid
8138         explosive compilation time.
8139         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
8140         is_loop_prefetching_profitable to implement the instruction to
8141         prefetch ratio heuristic.
8142         (is_loop_prefetching_profitable): Removed.
8143         (loop_prefetch_arrays): Distribute the cost analysis across the
8144         function to allow early exit of the prefetch analysis.
8145         is_loop_prefetching_profitable is splitted into three functions,
8146         with each one called as early as possible.
8147         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
8148         number of memory references in a loop is considered too many.
8149
8150 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8151
8152         * reload.c (find_reloads): Don't clear badop if we have a winreg
8153         alternative, but not win, and the class only has fixed regs.
8154         * hard-reg-set.h (class_only_fixed_regs): Declare.
8155         * reginfo.c (class_only_fixed_regs): New array.
8156         (init_reg_sets_1): Initialize it.
8157         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
8158         discourage alternatives using the stack pointer.
8159
8160         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
8161
8162         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
8163
8164         * config/arm/arm.md (cbranchqi4): Fix array size.
8165         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
8166         calculating length.
8167
8168 2010-07-09  Richard Guenther  <rguenther@suse.de>
8169
8170         * gimple.c (struct type_fixup_s): New struct and VEC type.
8171         (gimple_register_type_fixups): New static global.
8172         (gimple_queue_type_fixup): New function.
8173         (gimple_types_compatible_p): Queue type fixups instead of
8174         applying them here.
8175         (gimple_register_type): Apply queued fixups for the
8176         canonical type.  Empty the type fixup queue.
8177
8178 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8179
8180         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
8181         * configure: Regenerate.
8182         * config.in: Ditto.
8183
8184 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8185             Denys Vlasenko  <dvlasenk@redhat.com>
8186             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
8187
8188         PR tree-optimization/28632
8189         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
8190         (extract_range_from_binary_expr): Further optimize
8191         BIT_AND_EXPR and BIT_IOR_EXPR.
8192
8193 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
8194
8195         * tree-if-conv.c (fold_or_predicates): New.
8196         (add_to_predicate_list): Call it.
8197
8198 2010-07-09  Richard Guenther  <rguenther@suse.de>
8199
8200         PR middle-end/44890
8201         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
8202         if base is a pointer.
8203         * tree-cfg.c (verify_expr): Update MEM_REF checking.
8204
8205 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
8206
8207         PR target/44877
8208         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
8209         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
8210         builtin mask for load/store builtins.
8211
8212 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8213
8214         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
8215         for "lock addl".
8216         * configure: Regenerate.
8217         * config/i386/i386.c (ix86_print_operand) <case ';'>:
8218         Remove TARGET_MACHO.
8219
8220 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
8221
8222         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
8223         default ISA flags.
8224         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
8225
8226 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
8227
8228         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
8229
8230 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
8231
8232         * config/picochip/picochip.md (commsTestPort): Emit more
8233         efficient sequence for tstport instruction.
8234
8235 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
8236
8237         * config/i386/i386.c (ix86_veclib_handler): Make static.
8238
8239 2010-07-09  Richard Guenther  <rguenther@suse.de>
8240
8241         PR tree-optimization/44852
8242         * tree-ssa-alias.c: Include toplev.h for exact_log2.
8243         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
8244         in MEM_REF.
8245         (indirect_refs_may_alias_p): Likewise.
8246         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
8247
8248 2010-07-09  Richard Guenther  <rguenther@suse.de>
8249
8250         PR tree-optimization/44882
8251         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
8252         sets do conflict.
8253         (vectorizable_load): Likewise.
8254
8255 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
8256
8257         PR target/40657
8258         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
8259         All callers changed.
8260         Handle the case when we're called for the epilogue.
8261         (thumb_unexpanded_epilogue): Use it.
8262         (thumb1_expand_epilogue): Likewise.
8263
8264 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
8265
8266         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
8267         both ranges are range_int_cst_p with non-negative minimum,
8268         try harder to derive smaller range.
8269
8270 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8271
8272         * genrecog.c: Include diagnostic-core.h before toplev.h.
8273         * genoutput.c: Likewise.
8274         * genextract.c: Likewise.
8275         * genautomata.c: Likewise.
8276         * genemit.c: Likewise.
8277         * genpeep.c: Likewise.
8278         * genattrtab.c: Likewise.
8279         * genconditions.c: Likewise.
8280         * genpreds.c: Likewise.
8281
8282 2010-07-08  Andi Kleen  <ak@linux.intel.com>
8283
8284         * lto-section-in.c (lto_section_name): Add missing comma.
8285
8286 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
8287
8288         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
8289         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
8290         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
8291         (ia64_override_options): Rename to...
8292         (ia64_option_override): ... this one. Make static.
8293
8294 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8295
8296         PR middle-end/44843
8297         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
8298         pointed-to type of the offset in a MEM_REF to compute the alignment.
8299
8300 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
8301
8302         * final.c (final_scan_insn): Replace
8303         TARGET_UNWIND_INFO macro check by unwind_emit
8304         hook NULL check.
8305         * targhooks.c (default_unwind_emit): Removed.
8306         * targhooks.h (default_unwind_emit): Likewise.
8307         * target.def (unwind_emit): Set default value to NULL.
8308
8309         * config/i386/i386-protos.h (ix86_asm_output_function_label):
8310         New prototype.
8311         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
8312         for NULL fntype argument and allow 64-bit targets.
8313         (ix86_asm_output_function_label): New function.
8314         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
8315         (ix86_handle_fndecl_attribute): Likewise.
8316         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
8317         * doc/doc/tm.texi: Regenerated.
8318         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
8319         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
8320         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
8321         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
8322         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8323         * config/elfos.h: Likewise.
8324         * config/i386/cygming.h: Likewise.
8325         * config/netbsd-aout.h: Likewise.
8326         * config/openbsd.h: Likewise.
8327         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
8328         by ix86_asm_output_function_label function call.
8329         * varasm.c (assemble_start_function): Use
8330         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
8331
8332 2010-07-08  Jan Hubicka  <jh@suse.cz>
8333
8334         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
8335         New function.
8336         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
8337         Declare.
8338         * ipa-cp.c (ipcp_estimate_growth): Use it.
8339         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
8340         Likewise.
8341
8342 2010-07-08  Jan Hubicka  <jh@suse.cz>
8343
8344         * tree-inline.c (declare_return_variable): Allocate annotation for new
8345         temporary.
8346
8347 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8348
8349         PR tree-optimization/44710
8350         * tree-if-conv.c (parse_predicate): New.
8351         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
8352         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
8353
8354 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
8355
8356         * common.opt (ftree-loop-if-convert): New flag.
8357         * doc/invoke.texi (ftree-loop-if-convert): Documented.
8358         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
8359         when flag_tree_loop_if_convert is set.
8360
8361 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
8362
8363         * config/i386/i386.c: Use short syntax for function calls
8364         through function pointers.
8365         * config/i386/i386.md: Ditto.
8366
8367 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8368
8369         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
8370
8371 2010-07-08  Richard Guenther  <rguenther@suse.de>
8372
8373         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
8374         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
8375
8376 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
8377
8378         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
8379         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
8380         (loc_list_from_tree): Likewise.
8381         (output_loc_operands): Handle outputting DW_OP_const[48]u
8382         with loc->dtprel set.
8383         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
8384
8385 2010-07-08  Jan Hubicka  <jh@suse.cz>
8386
8387         * ipa.c: Include pointer-set.h
8388         (cgraph_externally_visible_p): New attribute ALIASED;
8389         when in LTO, hidden symbols are local unless they are aliased.
8390         (function_and_variable_visibility): Compute aliased nodes;
8391         handle LTO and hidden symbol on functions and vars.
8392         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
8393         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
8394
8395 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8396
8397         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
8398         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8399         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8400         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8401         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8402         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
8403         (ix86_gen_probe_stack_range): Likewise.
8404         (override_options): Set them.
8405         (ix86_target_stack_probe): New function.
8406         (ix86_compute_frame_layout): Force use of push instructions to
8407         save registers if stack checking with probes is enabled.
8408         (get_scratch_register_on_entry): New function.
8409         (release_scratch_register_on_entry): Likewise.
8410         (ix86_adjust_stack_and_probe): Likewise.
8411         (output_adjust_stack_and_probe): Likewise.
8412         (ix86_emit_probe_stack_range): Likewise.
8413         (output_probe_stack_range): Likewise.
8414         (ix86_expand_prologue): Emit stack checking code if static built-in
8415         stack checking is enabled.
8416         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
8417         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
8418         (output_adjust_stack_and_probe): Likewise.
8419         (output_probe_stack_range): Likewise.
8420         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
8421         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
8422         TARGET_STACK_PROBE.
8423         (allocate_stack_worker_64): Likewise.
8424         (allocate_stack): Likewise.
8425         (adjust_stack_and_probe): New insn.
8426         (probe_stack_range): Likewise.
8427
8428 2010-07-08  Richard Guenther  <rguenther@suse.de>
8429
8430         PR tree-optimization/44831
8431         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
8432         a MEM_REF preserving TBAA info of the original dereference.
8433         Dereference the original pointer if the address is not invariant.
8434         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
8435         at least one invariant address that we are going to dereference.
8436
8437 2010-07-08  Richard Guenther  <rguenther@suse.de>
8438
8439         PR tree-optimization/44861
8440         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
8441         information when building MEM_REFs.
8442         (vectorizable_load): Likewise.
8443         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
8444
8445 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8446
8447         * config/sol2-c.c: Do not include diagnostic-core.h.
8448
8449 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8450
8451         PR bootstrap/44768
8452         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
8453         with respect to current_function_decl. Pass decl of the function.
8454         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
8455         * ipa-inline.c (compute_inline_parameters): Pass decl to
8456         estimated_stack_frame_size.
8457
8458 2010-07-08  Richard Guenther  <rguenther@suse.de>
8459
8460         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8461         New function.
8462         (valueize_refs): Call it.
8463
8464 2010-07-08  Richard Guenther  <rguenther@suse.de>
8465
8466         PR rtl-optimization/44838
8467         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
8468         SSA form do not use pointer equivalence.
8469
8470 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
8471
8472         * dwarf2out.c (AT_linkage_name): Delete.
8473         (add_linkage_attr): New function.
8474         (add_linkage_name): Call it to emit the linkage attribute.
8475         (dwarf2out_finish): Likewise.
8476         (move_linkage_attr): Explicitly accept both attribute variants.
8477
8478 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8479
8480         * toplev.h: Do not include diagnostic-core.h.
8481         Include diagnostic-core.h in every file that includes toplev.h.
8482         * c-tree.h: Do not include toplev.h.
8483         * pretty-print.h: Update comment.
8484         * Makefile.in: Update dependencies.
8485         * alias.c: Include diagnostic-core.h in every file that includes
8486         toplev.h.
8487         * attribs.c: Likewise.
8488         * auto-inc-dec.c: Likewise.
8489         * bb-reorder.c: Likewise.
8490         * bt-load.c: Likewise.
8491         * caller-save.c: Likewise.
8492         * calls.c: Likewise.
8493         * cfg.c: Likewise.
8494         * cfganal.c: Likewise.
8495         * cfgbuild.c: Likewise.
8496         * cfgcleanup.c: Likewise.
8497         * cfghooks.c: Likewise.
8498         * cfgloop.c: Likewise.
8499         * combine.c: Likewise.
8500         * config/alpha/alpha.c: Likewise.
8501         * config/arc/arc.c: Likewise.
8502         * config/arm/arm.c: Likewise.
8503         * config/arm/pe.c: Likewise.
8504         * config/avr/avr.c: Likewise.
8505         * config/bfin/bfin.c: Likewise.
8506         * config/cris/cris.c: Likewise.
8507         * config/crx/crx.c: Likewise.
8508         * config/darwin-c.c: Likewise.
8509         * config/darwin.c: Likewise.
8510         * config/fr30/fr30.c: Likewise.
8511         * config/frv/frv.c: Likewise.
8512         * config/h8300/h8300.c: Likewise.
8513         * config/host-darwin.c: Likewise.
8514         * config/i386/i386.c: Likewise.
8515         * config/i386/netware.c: Likewise.
8516         * config/i386/nwld.c: Likewise.
8517         * config/i386/winnt-cxx.c: Likewise.
8518         * config/i386/winnt-stubs.c: Likewise.
8519         * config/i386/winnt.c: Likewise.
8520         * config/ia64/ia64-c.c: Likewise.
8521         * config/ia64/ia64.c: Likewise.
8522         * config/iq2000/iq2000.c: Likewise.
8523         * config/lm32/lm32.c: Likewise.
8524         * config/m32c/m32c-pragma.c: Likewise.
8525         * config/m32c/m32c.c: Likewise.
8526         * config/m32r/m32r.c: Likewise.
8527         * config/m68hc11/m68hc11.c: Likewise.
8528         * config/m68k/m68k.c: Likewise.
8529         * config/mcore/mcore.c: Likewise.
8530         * config/mep/mep-pragma.c: Likewise.
8531         * config/mep/mep.c: Likewise.
8532         * config/mmix/mmix.c: Likewise.
8533         * config/mn10300/mn10300.c: Likewise.
8534         * config/moxie/moxie.c: Likewise.
8535         * config/pa/pa.c: Likewise.
8536         * config/pdp11/pdp11.c: Likewise.
8537         * config/picochip/picochip.c: Likewise.
8538         * config/rs6000/rs6000-c.c: Likewise.
8539         * config/rs6000/rs6000.c: Likewise.
8540         * config/rx/rx.c: Likewise.
8541         * config/s390/s390.c: Likewise.
8542         * config/score/score.c: Likewise.
8543         * config/score/score3.c: Likewise.
8544         * config/score/score7.c: Likewise.
8545         * config/sh/sh.c: Likewise.
8546         * config/sh/symbian-base.c: Likewise.
8547         * config/sh/symbian-c.c: Likewise.
8548         * config/sh/symbian-cxx.c: Likewise.
8549         * config/sol2-c.c: Likewise.
8550         * config/sol2.c: Likewise.
8551         * config/sparc/sparc.c: Likewise.
8552         * config/spu/spu.c: Likewise.
8553         * config/stormy16/stormy16.c: Likewise.
8554         * config/v850/v850-c.c: Likewise.
8555         * config/v850/v850.c: Likewise.
8556         * config/vax/vax.c: Likewise.
8557         * config/vxworks.c: Likewise.
8558         * config/xtensa/xtensa.c: Likewise.
8559         * convert.c: Likewise.
8560         * cse.c: Likewise.
8561         * cselib.c: Likewise.
8562         * dbgcnt.c: Likewise.
8563         * dbxout.c: Likewise.
8564         * ddg.c: Likewise.
8565         * dominance.c: Likewise.
8566         * emit-rtl.c: Likewise.
8567         * explow.c: Likewise.
8568         * expmed.c: Likewise.
8569         * fixed-value.c: Likewise.
8570         * fold-const.c: Likewise.
8571         * fwprop.c: Likewise.
8572         * gcse.c: Likewise.
8573         * ggc-common.c: Likewise.
8574         * ggc-page.c: Likewise.
8575         * ggc-zone.c: Likewise.
8576         * gimple-low.c: Likewise.
8577         * gimplify.c: Likewise.
8578         * graph.c: Likewise.
8579         * haifa-sched.c: Likewise.
8580         * ifcvt.c: Likewise.
8581         * implicit-zee.c: Likewise.
8582         * integrate.c: Likewise.
8583         * ira-build.c: Likewise.
8584         * ira-color.c: Likewise.
8585         * ira-conflicts.c: Likewise.
8586         * ira-costs.c: Likewise.
8587         * ira-lives.c: Likewise.
8588         * ira.c: Likewise.
8589         * lists.c: Likewise.
8590         * loop-doloop.c: Likewise.
8591         * loop-iv.c: Likewise.
8592         * lto-opts.c: Likewise.
8593         * lto-symtab.c: Likewise.
8594         * main.c: Likewise.
8595         * modulo-sched.c: Likewise.
8596         * optabs.c: Likewise.
8597         * params.c: Likewise.
8598         * plugin.c: Likewise.
8599         * postreload-gcse.c: Likewise.
8600         * postreload.c: Likewise.
8601         * predict.c: Likewise.
8602         * profile.c: Likewise.
8603         * real.c: Likewise.
8604         * regcprop.c: Likewise.
8605         * reginfo.c: Likewise.
8606         * regmove.c: Likewise.
8607         * reorg.c: Likewise.
8608         * resource.c: Likewise.
8609         * rtl.c: Likewise.
8610         * rtlanal.c: Likewise.
8611         * sched-deps.c: Likewise.
8612         * sched-ebb.c: Likewise.
8613         * sched-rgn.c: Likewise.
8614         * sdbout.c: Likewise.
8615         * sel-sched-dump.c: Likewise.
8616         * sel-sched-ir.c: Likewise.
8617         * simplify-rtx.c: Likewise.
8618         * stmt.c: Likewise.
8619         * stor-layout.c: Likewise.
8620         * store-motion.c: Likewise.
8621         * targhooks.c: Likewise.
8622         * tree-cfg.c: Likewise.
8623         * tree-cfgcleanup.c: Likewise.
8624         * tree-dump.c: Likewise.
8625         * tree-eh.c: Likewise.
8626         * tree-inline.c: Likewise.
8627         * tree-nomudflap.c: Likewise.
8628         * tree-object-size.c: Likewise.
8629         * tree-optimize.c: Likewise.
8630         * tree-outof-ssa.c: Likewise.
8631         * tree-phinodes.c: Likewise.
8632         * tree-profile.c: Likewise.
8633         * tree-ssa-ccp.c: Likewise.
8634         * tree-ssa-coalesce.c: Likewise.
8635         * tree-ssa-live.c: Likewise.
8636         * tree-ssa-loop-niter.c: Likewise.
8637         * tree-ssa-loop-prefetch.c: Likewise.
8638         * tree-ssa-loop.c: Likewise.
8639         * tree-ssa-structalias.c: Likewise.
8640         * tree-ssa-uninit.c: Likewise.
8641         * tree-ssa.c: Likewise.
8642         * tree-vect-data-refs.c: Likewise.
8643         * tree-vect-loop-manip.c: Likewise.
8644         * tree-vect-loop.c: Likewise.
8645         * tree-vect-patterns.c: Likewise.
8646         * tree-vect-stmts.c: Likewise.
8647         * tree-vrp.c: Likewise.
8648         * varasm.c: Likewise.
8649         * vec.c: Likewise.
8650         * web.c: Likewise.
8651         * xcoffout.c: Likewise.
8652
8653 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
8654
8655         * gengtype.c (write_field_root): New function.
8656         (write_root): Use it.
8657
8658 2010-07-07  Wei Guozhi  <carrot@google.com>
8659
8660         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8661         of lowest bits to lshift/compare): Add a missing line.
8662
8663 2010-07-07  Wei Guozhi  <carrot@google.com>
8664
8665         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
8666         of lowest bits to lshift/compare): New.
8667
8668 2010-07-07  Tom Tromey  <tromey@redhat.com>
8669
8670         * doc/tm.texi: Update.
8671         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
8672         Add @hook.
8673         * target.def (want_debug_pub_sections): New hook.
8674         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
8675         * dwarf2out.c (add_pubname_string): Check
8676         targetm.want_debug_pub_sections.
8677         (add_pubname): Likewise.
8678         (add_pubtype): Likewise.
8679
8680 2010-07-07  Jie Zhang  <jie@codesourcery.com>
8681
8682         * genautomata.c (output_automata_list_min_issue_delay_code):
8683         Correctly decompress min_issue_delay.
8684
8685 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8686
8687         PR rtl-optimization/44404
8688         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
8689         possible, use reg_overlap_mentioned_p instead.
8690
8691 2010-07-07  Duncan Sands  <baldrick@free.fr>
8692
8693         PR middle-end/41355
8694         * tree.c (build_function_type_skip_args): Copy the original type using
8695         build_distinct_type_copy rather than copy_node.
8696
8697 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8698
8699         PR target/44850
8700         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
8701         revision 161876.
8702         (ix86_expand_prologue): Likewise.
8703         (ix86_handle_fndecl_attribute): Likewise.
8704         (ix86_asm_declare_function_name): Likewise.
8705         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8706         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8707         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
8708         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
8709         * doc/extend.texi: Likewise.
8710
8711 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
8712
8713         PR target/44844
8714         * config/i386/i386.md (rdrand<mode>): Changed to expand to
8715         retry if the carry flag isn't valid.
8716         (rdrand<mode>_1): New.
8717
8718 2010-07-07  Richard Guenther  <rguenther@suse.de>
8719
8720         PR middle-end/44790
8721         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
8722         for expanding the constant offset for MEM_REFs.
8723
8724 2010-07-07  Richard Guenther  <rguenther@suse.de>
8725
8726         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
8727         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
8728         * gimple.h (is_gimple_operand): Remove.
8729         * gimple.c (is_gimple_operand): Likewise.
8730         (walk_gimple_op): Fix wi->val_only setting for calls.
8731         * tree-cfg.c (verify_gimple_call): Fix argument validation.
8732         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
8733         invalid gimple calls.
8734
8735 2010-07-06  Jan Hubicka  <jh@suse.cz>
8736
8737         * lto-cgraph.c (output_cgraph): Add missing declaration.
8738
8739 2010-07-06  Jan Hubicka  <jh@suse.cz>
8740
8741         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
8742         partition.
8743
8744 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
8745
8746         * doc/gimple.texi (GIMPLE_DEBUG): Document.
8747         * doc/rtl.texi (Debug Information): New node.
8748         (NOTE_INSN_VAR_LOCATION): Document.
8749         (debug_insn): Likewise.
8750         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
8751
8752 2010-07-07  Jan Hubicka  <jh@suse.cz>
8753
8754         With parts by Richard Guenther.
8755
8756         PR middle-end/44813
8757         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
8758         for functions passed by reference.
8759         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
8760         in memory when passed by reference.
8761         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
8762         beggining.
8763         * ipa-split.c (split_function): Cleanup way return value is passed;
8764         handle SSA DECL_BY_REFERENCE retvals.
8765         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
8766         DECL_BY_REFERENCE is set.
8767         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
8768         find_what_p_points_to): Handle RESULT_DECL.
8769         * tree-inline.c (declare_return_variable): Get new entry_block argument;
8770         when passing by reference ensure that RESULT_DECL is gimple_val.
8771         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
8772         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
8773
8774 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
8775
8776         PR rtl-optimization/44787
8777         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
8778         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
8779
8780 2010-07-06  Jan Hubicka  <jh@suse.cz>
8781
8782         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
8783         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
8784         with body can prevail.
8785         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
8786         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
8787         * cgraph.c (cgraph_get_node_or_alias): New function.
8788         * cgraph.h (cgraph_get_node_or_alias): Declare.
8789
8790 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
8791
8792         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
8793         support.
8794         (ix86_expand_prologue): Likewise.
8795         (ix86_handle_fndecl_attribute): Likewise.
8796         (ix86_asm_declare_function_name): New function for
8797         ASM_DECLARE_FUNCTION_NAME.
8798         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
8799         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
8800         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
8801         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
8802         * doc/extend.texi: Adjust documentation about ms_hook_prologue
8803         attribute.
8804
8805 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8806
8807         * config/i386/i386.md (immediate_operand): New mode attribute.
8808
8809         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
8810         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
8811         using P mode iterator.
8812         (pro_epilogue_adjust_stack_di_2): Rename from
8813         pro_epilogue_adjust_stack_rex64_2.
8814
8815         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
8816
8817 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8818
8819         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
8820         through gen_mov_insv_1 function pointer.
8821         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
8822         gen_truncxf<mode>2 through gen_truncxf function pointer.
8823         (remainder<mode>3): Ditto.
8824         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
8825         (allocate_stack): Call gen_allocate_stack_worker_64 or
8826         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
8827         function pointer.
8828         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
8829         function pointer.
8830
8831 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
8832
8833         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
8834         operand constraint instead of <r><i>m.
8835
8836 2010-07-06  Richard Guenther  <rguenther@suse.de>
8837
8838         PR middle-end/44828
8839         * convert.c (convert_to_integer): Watch out for overflowing
8840         MULT_EXPR as well.
8841
8842 2010-07-05  Jan Hubicka  <jh@suse.cz>
8843
8844         * lto-streamer.c (write_symbol_vec): Rename to ...
8845         (write_symbol) ... this one; write only symbol given and when
8846         present in cache. Sanity check that what is defined is present
8847         in cgraph/varpool with body/finalized decl.
8848         (write_symbols_of_kind): Remove.
8849         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
8850         pairs to produce symtab.
8851         (produce_asm_for_decls): Update call of produce_symtab; don't do so
8852         when doing WPA streaming.
8853
8854 2010-07-05  Jan Hubicka  <jh@suse.cz>
8855
8856         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
8857         function is still available to fold into.
8858
8859 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
8860
8861         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
8862         * function.h (struct_function): Change type of local_decls field
8863         to a VEC.
8864         (add_local_decl): New function.
8865         (FOR_EACH_LOCAL_DECL): New macro.
8866         * cfgexpand.c (init_vars_expansion): Adjust for new type of
8867         cfun->local_decls.
8868         (estimated_stack_frame_size): Likewise.
8869         (expand_used_vars): Likewise.
8870         * cgraphbuild.c (build_cgraph_edges): Likewise.
8871         * function.c (instantiate_decls_1): Likewise.
8872         * ipa-struct-reorg.c (build_data_structure): Likewise.
8873         * ipa-type-escape.c (analyze_function): Likewise.
8874         * lto-streamer-in.c (input_function): Likewise.
8875         * lto-streamer-out.c (output_function): Likewise.
8876         * tree-ssa-live.c (remove_unused_locals): Likewise.
8877         * tree.c (free_lang_data_in_decl): Likewise.
8878         (find_decls_types_in_node): Likewise.
8879         * omp-low.c (remove_exit_barrier): Likewise.
8880         (expand_omp_taskreg): Likewise.
8881         (list2chain): Rename to...
8882         (vec2chain): ...this.  Adjust.
8883         * cgraphunit.c (assemble_thunk): Call add_local_decl.
8884         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
8885         * gimple-low.c (record_vars_into): Likewise.
8886         * tree-inline.c (remap_decls): Likewise.
8887         (declare_return_variable): Likewise.
8888         (declare_inline_vars): Likewise.
8889         (copy_forbidden): Adjust for new type of cfun->local_decls.
8890         (add_local_variables): New function.
8891         (expand_call_inline): Call it.
8892         (tree_function_versioning): Likewise.
8893
8894 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
8895
8896         AVX Programming Reference (June, 2010)
8897         * config/i386/cpuid.h (bit_F16C): New.
8898         (bit_RDRND): Likewise.
8899         (bit_FSGSBASE): Likewise.
8900
8901         * config/i386/i386-builtin-types.def: Add
8902         "DEF_FUNCTION_TYPE (UINT16)", function types for
8903         float16 <-> float conversions and
8904         "DEF_FUNCTION_TYPE (VOID, UINT64)".
8905
8906         * config/i386/i386-c.c (ix86_target_macros_internal): Support
8907         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
8908         OPTION_MASK_ISA_F16C.
8909
8910         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
8911         (OPTION_MASK_ISA_RDRND_SET): Likewise.
8912         (OPTION_MASK_ISA_F16C_SET): Likewise.
8913         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
8914         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
8915         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
8916         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
8917         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
8918         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
8919         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
8920         (override_options): Handle them.
8921         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
8922         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
8923         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
8924         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
8925         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
8926         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
8927         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
8928         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
8929         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
8930         (bdesc_args): Likewise.
8931         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
8932         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
8933         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
8934         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
8935         Handle non-memory store.
8936
8937         * config/i386/i386.h (TARGET_FSGSBASE): New.
8938         (TARGET_RDRND): Likewise.
8939         (TARGET_F12C): Likewise.
8940
8941         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
8942         (UNSPEC_VCVTPS2PH): Likewise.
8943         (UNSPECV_RDFSBASE): Likewise.
8944         (UNSPECV_RDGSBASE): Likewise.
8945         (UNSPECV_WRFSBASE): Likewise.
8946         (UNSPECV_WRGSBASE): Likewise.
8947         (UNSPECV_RDRAND): Likewise.
8948         (rdfsbase<mode>): Likewise.
8949         (rdgsbase<mode>): Likewise.
8950         (wrfsbase<mode>): Likewise.
8951         (wrgsbase<mode>): Likewise.
8952         (rdrand<mode>): Likewise.
8953
8954         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
8955
8956         * config/i386/immintrin.h (_rdrand_u16): New.
8957         (_rdrand_u32): Likewise.
8958         (_readfsbase_u32): Likewise.
8959         (_readfsbase_u64): Likewise.
8960         (_readgsbase_u32): Likewise.
8961         (_readgsbase_u64): Likewise.
8962         (_writefsbase_u32): Likewise.
8963         (_writefsbase_u64): Likewise.
8964         (_writegsbase_u32): Likewise.
8965         (_writegsbase_u64): Likewise.
8966         (_rdrand_u64): Likewise.
8967         (_cvtsh_ss): Likewise.
8968         (_mm_cvtph_ps): Likewise.
8969         (_mm256_cvtph_ps): Likewise.
8970         (_cvtss_sh): Likewise.
8971         (_mm_cvtps_ph): Likewise.
8972         (_mm256_cvtps_ph): Likewise.
8973
8974         * config/i386/sse.md (vcvtph2ps): New.
8975         (*vcvtph2ps_load): Likewise.
8976         (vcvtph2ps256): Likewise.
8977         (vcvtps2ph): Likewise.
8978         (*vcvtps2ph): Likewise.
8979         (*vcvtps2ph_store): Likewise.
8980         (vcvtps2ph256): Likewise.
8981
8982         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
8983
8984         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
8985
8986 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
8987
8988         PR bootstrap/44512
8989         * genenums.c (main): Output include of insn-constants.h
8990         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
8991
8992 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
8993
8994         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
8995         (override_options): Initialize it.
8996         (ix86_expand_prologue): Use it.
8997
8998 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
8999
9000         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
9001
9002 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9003
9004         * double-int.h (fit_double_type): Remove declaration.
9005         * double-int.c (fit_double_type): Remove function.
9006         * tree.h (int_fits_type_p): Adjust prototype.
9007         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
9008         instead of fit_double_type.
9009         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
9010         instead of fit_double_type and build_int_cst_wide.
9011         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
9012         instead of fit_double_type and build_int_cst_wide.
9013         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
9014         of fit_double_type.
9015
9016 2010-07-05  Jan Hubicka  <jh@suse.cz>
9017
9018         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
9019         in_other_partition.
9020         * lto-cgraph.c (referenced_from_other_partition_p,
9021         reachable_from_other_partition_p): Use in_other_partition flags.
9022         (output_node, output_varpool_node): COMDAT nodes always have private
9023         copies and thus are never used from other partition.
9024
9025 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
9026
9027         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
9028         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
9029         * config/ia64/ia64.c Include reload.h.
9030         (ia64_memory_move_cost): New function.
9031         (TARGET_MEMORY_MOVE_COST): Define.
9032         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
9033         memory_move_cost.
9034
9035 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
9036
9037         PR middle-end/42505
9038         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
9039         comments about cost model.
9040         (try_add_cand_for):  Add second strategy for choosing initial set
9041         based on original IVs, controlled by ORIGINALP argument.
9042         (get_initial_solution): Add ORIGINALP argument.
9043         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
9044         (find_optimal_iv_set): Try two different strategies for choosing
9045         the IV set, and return the one with lower cost.
9046
9047 2010-07-05  Richard Guenther  <rguenther@suse.de>
9048
9049         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
9050
9051 2010-07-05  Richard Guenther  <rguenther@suse.de>
9052
9053         * tree.c (reference_alias_ptr_type): New function.
9054         * tree.h (reference_alias_ptr_type): Declare.
9055         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
9056         allow non-TARGET_MEM_REF new refs.
9057         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
9058         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
9059         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
9060         (create_mem_ref): Get alias pointer type.  Adjust calls to
9061         create_mem_ref_raw.
9062         (maybe_fold_tmr): Likewise.
9063         * tree-flow.h (create_mem_ref): Adjust prototype.
9064
9065 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
9066
9067         PR c++/44808
9068         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
9069         *from_p is VAR_DECL.
9070
9071 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9072
9073         * tree.h (build_call_list): Remove.
9074         * tree.c (build_call_list): Remove.
9075
9076 2010-07-05  Richard Guenther  <rguenther@suse.de>
9077
9078         * double-int.h (double_int_sub): Declare.
9079         * double-int.c (double_int_sub): New function.
9080         * dwarf2out.c (field_byte_offset): Use it.
9081         * fixed-value.c (do_fixed_add): Likewise.
9082         (do_fixed_multiply): Likewise.
9083         (do_fixed_divide): Likewise.
9084         * tree-predcom.c (add_ref_to_chain): Likewise.
9085         (determine_roots_comp): Likewise.
9086         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
9087
9088 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
9089
9090         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
9091         implementations.
9092
9093 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
9094
9095         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
9096         * arm-modes.def (CC_NOTB): Don't define.
9097         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
9098         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
9099         (LTUGEU): New code_iterator.
9100         (cnb, optab): New corresponding code_attrs.
9101         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
9102         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
9103         using LTUGEU.
9104         (addsi3_carryin_shift_<optab>): Likewise.
9105         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
9106         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
9107         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
9108         (subsi3_compare): Renamed from subsi3_compare0_c.
9109         Change CC_NOTB to CC.
9110         (arm_subsi3_insn): Allow constants for operand 0.
9111         (compare_scc peephole for eq case): New.
9112         (compare_scc splitters): Change CC_NOTB to CC.
9113
9114 2010-07-05  Richard Guenther  <rguenther@suse.de>
9115
9116         * tree-ssa-loop-im.c (for_each_index): Do not handle
9117         ALIGN_INDIRECT_REF.
9118         (gen_lsm_tmp_name): Likewise.
9119         * tree-dump.c (dequeue_and_dump): Likewise.
9120         * tree-pretty-print.c (dump_generic_node): Likewise.
9121         (op_code_prio): Likewise.
9122         (op_symbol_code): Likewise.
9123         * tree.c (staticp): Likewise.
9124         (build1_stat): Likewise.
9125         * tree.h (INDIRECT_REF_P): Likewise.
9126         * fold-const.c (maybe_lvalue_p): Likewise.
9127         (operand_equal_p): Likewise.
9128         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9129         (ao_ref_init_from_vn_reference): Likewise.
9130         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
9131         (find_interesting_uses_address): Likewise.
9132         * dwarf2out.c (loc_list_from_tree): Likewise.
9133         * gimplify.c (gimplify_expr): Likewise.
9134         * tree-eh.c (tree_could_trap_p): Likewise.
9135         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9136         * cfgexpand.c (expand_debug_expr): Likewise.
9137         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
9138         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
9139         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
9140         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
9141         * tree-ssa-operands.c (get_expr_operands): Likewise.
9142         * expr.c (safe_from_p): Likewise.
9143         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
9144         * tree-vect-data-refs.c (vect_setup_realignment): Build
9145         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
9146         * tree-vect-stmts.c (vectorizable_load): Likewise.
9147         * tree.def (ALIGN_INDIRECT_REF): Remove.
9148
9149 2010-07-05  Richard Guenther  <rguenther@suse.de>
9150
9151         PR tree-optimization/44784
9152         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
9153         for inserted stmts.
9154         (find_or_generate_expression): Fix SCCVN insertion check.
9155
9156 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
9157
9158         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
9159         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
9160         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
9161         directives.
9162
9163 2010-07-05  Ira Rosen  <irar@il.ibm.com>
9164
9165         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
9166         statements that are not vectorized.
9167         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
9168         in INSIDE_COST.
9169
9170 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
9171
9172         PR bootstrap/44820
9173         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
9174
9175 2010-07-05  Richard Guenther  <rguenther@suse.de>
9176
9177         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
9178         RESULT_DECLs properly.
9179
9180 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
9181
9182         PR rtl-optimization/44695
9183         * config/i386/i386.md (extract_code): Removed.
9184         (<u>divmodqi4): Likewise.
9185         (divmodqi4): New.
9186         (udivmodqi4): Likewise.
9187         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
9188         (udivmodhiqi3): Likewise.
9189
9190 2010-07-04  Jan Hubicka  <jh@suse.cz>
9191
9192         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
9193
9194 2010-07-04  Jan Hubicka  <jh@suse.cz>
9195
9196         * cgraphunit.c (init_cgraph): Only initialize dump file if it
9197         is not already initialized.
9198
9199 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9200
9201         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
9202         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
9203         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
9204         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
9205         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
9206         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
9207         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
9208         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
9209         (sync_new_nand_optab): Redefine as macros.
9210         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
9211         Delete.
9212         (direct_optab_index): New enum.
9213         (direct_optab_d): New structure.
9214         (direct_optab): New typedef.
9215         (direct_optab_table): Declare.
9216         (direct_optab_handler, set_direct_optab_handler): New functions.
9217         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
9218         (sync_lock_release_optab): New macros.
9219         * optabs.c (direct_optab_table): New variable.
9220         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
9221         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
9222         cmpstr_optab and cmpstrn_optab.
9223         (emit_conditional_move): Likewise for movcc_optab.
9224         (can_conditionally_move_p): Likewise for movcc_gen_code.
9225         (init_insn_codes): Clear direct_optab_table.
9226         (init_optabs): Don't initialize the new "direct optabs" here.
9227         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
9228         vcond_gen_code.
9229         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
9230         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
9231         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
9232         (expand_sync_operation): Likewise other sync_*_optabs.
9233         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
9234         to sync_compare_and_swap_optab.
9235         (expand_sync_lock_test_and_set): Use direct_optab_handler for
9236         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
9237         to the names of both.
9238         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
9239         cmpstr_optab and cmpstrn_optab.
9240         (expand_builtin_lock_release): Likewise sync_lock_release.
9241         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
9242         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
9243         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
9244         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
9245         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
9246         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
9247         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
9248         (sync_lock_test_and_set, sync_lock_release): Delete.
9249         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
9250         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
9251         * genopinit.c (optabs): Use set_direct_optab_handler for the new
9252         macro optabs.
9253         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
9254         the "optab" local variable.  Use direct_optab_handler for optab and
9255         sync_compare_and_swap_optab.
9256         * reload1.c (reload_in_optab, reload_out_optab): Delete.
9257         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
9258         reload_in_optab and reload_out_optab.
9259         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
9260         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
9261         * config/pa/pa.c (pa_secondary_reload): Likewise.
9262         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
9263         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
9264         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
9265         (VMSupportsCS8_builtin): Likewise.
9266
9267 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9268
9269         * optabs.h (optab_handlers): Change type of insn_code to int.
9270         (optab_handler, set_optab_handler, convert_optab_handler)
9271         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
9272         CODE_FOR_nothing".
9273         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
9274         (init_insn_codes): Zero both the above arrays.
9275         (init_optabs): Never call init_insn_codes first time around.
9276
9277 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
9278
9279         * optabs.h (optab_handler, convert_optab_handler): Turn into
9280         inline functions that return an insn code.
9281         (set_optab_handler, set_convert_optab_handler): New functions.
9282         * builtins.c: Replace optab_handler(X)->insn_code with
9283         optab_handler or set_optab_handler thoughout.  Likewise
9284         convert_optab_handler(X)->insn_code with convert_optab_handler
9285         and set_convert_optab_handler.
9286         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
9287         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
9288         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
9289         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
9290         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
9291         config/spu/spu.c: Likewise.
9292
9293 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
9294
9295         PR target/44531
9296         * config.gcc (sh*-*-*): Use regular expressions instead of
9297         the 'i' modifier for sed substitutions.
9298
9299 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
9300
9301         * gimple.c (gimple_body): Comments added.
9302
9303 2010-07-04  Richard Guenther  <rguenther@suse.de>
9304
9305         PR middle-end/44809
9306         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
9307         of an INDIRECT_REF.
9308
9309 2010-07-04  Richard Guenther  <rguenther@suse.de>
9310
9311         PR tree-optimization/44479
9312         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
9313         extra SSA name copy statements which preserves points-to
9314         information.
9315         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
9316         Copy points-to information for all pointers.  Properly handle
9317         MEM_REFs.
9318         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
9319         copy statements.
9320         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
9321         dependency.
9322
9323 2010-07-04  Richard Guenther  <rguenther@suse.de>
9324
9325         PR middle-end/44785
9326         * tree-inline.c (initialize_inlined_parameters): Do not
9327         re-use pointer-map slot over remap_type call.
9328
9329 2010-07-04  Richard Guenther  <rguenther@suse.de>
9330
9331         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
9332
9333 2010-07-04  Richard Guenther  <rguenther@suse.de>
9334
9335         PR tree-optimization/44656
9336         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
9337         again after value-replacing in the defintions lhs.
9338
9339 2010-07-04  Ira Rosen  <irar@il.ibm.com>
9340             Revital Eres  <eres@il.ibm.com>
9341
9342         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
9343         Document new arguments.
9344         * doc/tm.texi: Regenerate.
9345         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
9346         Handle unaligned store.
9347         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
9348         * target.def (builtin_vectorization_cost): Add new arguments.
9349         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
9350         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
9351         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
9352         (vect_vfa_segment_size): Fix indentation.
9353         * tree-vectorizer.h (struct _vect_peel_info): New.
9354         (struct _vect_peel_extended_info): New.
9355         (struct _loop_vec_info): Add new field for peeling hash table and a
9356         macro for its access.
9357         (VECT_MAX_COST): Define.
9358         (vect_get_load_cost): Declare.
9359         (vect_get_store_cost, vect_get_known_peeling_cost,
9360         vect_get_single_scalar_iteraion_cost): Likewise.
9361         (vect_supportable_dr_alignment): Add new argument.
9362         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
9363         field.
9364         (destroy_loop_vec_info): Free peeling hash table.
9365         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
9366         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
9367         vect_analyze_slp. Fix indentation.
9368         (vect_get_single_scalar_iteraion_cost): New function.
9369         (vect_get_known_peeling_cost): Likewise.
9370         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
9371         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
9372         statement. Move outside cost calculation inside unknown peeling case.
9373         Call vect_get_known_peeling_cost for known amount of peeling.
9374         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
9375         reference to the print message of forced alignment.
9376         (vect_verify_datarefs_alignment): Update call to
9377         vect_supportable_dr_alignment.
9378         (vect_get_data_access_cost): New function.
9379         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
9380         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
9381         vect_peeling_hash_choose_best_peeling): Likewise.
9382         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
9383         to store all the accesses in the loop and find best possible access to
9384         align using peeling for known alignment case. For unknown alignment
9385         check if stores are preferred or if peeling is worthy.
9386         (vect_find_same_alignment_drs): Analyze pairs of loads too.
9387         (vect_supportable_dr_alignment): Add new argument and check aligned
9388         accesses according to it.
9389         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
9390         (cost_for_stmt): Call vect_get_stmt_cost.
9391         (vect_model_simple_cost): Likewise.
9392         (vect_model_store_cost): Call vect_get_stmt_cost. Call
9393         vect_get_store_cost to calculate the cost of the statement.
9394         (vect_get_store_cost): New function.
9395         (vect_model_load_cost): Call vect_get_stmt_cost. Call
9396         vect_get_load_cost to calculate the cost of the statement.
9397         (vect_get_load_cost): New function.
9398         (vectorizable_store): Update call to vect_supportable_dr_alignment.
9399         (vectorizable_load): Likewise.
9400         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
9401         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
9402         arguments. Handle unaligned store.
9403         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
9404         (rs6000_builtin_support_vector_misalignment): Return true for word and
9405         double word alignments for VSX.
9406         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
9407         vect_supportable_dr_alignment and builtin_vectorization_cost.
9408
9409 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9410
9411         PR target/44597
9412         * config/pa/predicates.md (prefetch_cc_operand): Remove.
9413         (prefetch_nocc_operand): Likewise.
9414         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
9415         (prefetch_20): New insn.
9416         (prefetch_cc): Remove.
9417         (prefetch_nocc): Likewise.
9418
9419 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9420
9421         * expr.c (vector_mode_valid_p): Move to c-common.c.
9422         * expr.h (vector_mode_valid_p): Do not declare here.
9423         * system.h: Poison GCC_EXPR_H in front-ends.
9424         * Makefile.in: Update dependencies.
9425
9426 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9427
9428         PR target/44705
9429         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
9430
9431 2010-07-03  Jan Hubicka  <jh@suse.cz>
9432
9433         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
9434         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
9435         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
9436         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
9437         Likewise.
9438
9439         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
9440         Update timevars.V
9441         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
9442         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
9443         TV_IPA_LTO_DECL_OUT): New.
9444         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
9445
9446 2010-07-03  Jan Hubicka  <jh@suse.cz>
9447
9448         * ipa-inline.c (update_edge_key): Break out from ...
9449         update_callers_keys): ... here;
9450         (update_callee_keys): Update only the edges from caller to callee.
9451         (update_all_calle_keys): Do what update_calle_keys did.
9452         (decide_inlining_of_small_functions): Avoid recomputing of all
9453         callees when badness increase.
9454
9455 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9456
9457         * config/arm/arm.c (arm_attr_length_move_neon): New.
9458         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
9459         * config/arm/neon.md (define_mode_attr V_slen): Remove.
9460         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
9461         to compute length attribute.
9462
9463 2010-07-03  Jie Zhang  <jie@codesourcery.com>
9464
9465         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
9466         as predicate for operand 1 and remove its constraint.
9467         * config/arm/predicates.md (vfp_register_operand): New.
9468         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
9469         (*push_fp_multi): Likewise.
9470
9471 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
9472
9473         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
9474
9475 2010-07-03  Jan Hubicka  <jh@suse.cz>
9476
9477         * config/i386/i386.c (override_options): Revert accidental commit.
9478
9479 2010-07-02  Le-Chun Wu  <lcwu@google.com>
9480
9481         PR c++/44128
9482         * doc/invoke.texi: Update documentation of -Wshadow.
9483
9484 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
9485             Julian Brown  <julian@codesourcery.com>
9486             Sandra Loosemore <sandra@codesourcery.com>
9487
9488         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
9489         comparisons.  Adjust to take both operands.
9490         (arm_select_cc_mode): Handle DImode comparisons.
9491         (arm_gen_compare_reg): Generate a scratch register for DImode
9492         comparisons which require one.  Use xor for Thumb equality checks.
9493         (arm_const_double_by_immediates): New.
9494         (arm_print_operand): Allow 'Q' and 'R' for constants.
9495         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
9496         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
9497         arm_canonicalize_comparison.
9498         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
9499         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
9500         prototype.
9501         (arm_const_double_by_immediates): Declare.
9502         * config/arm/constraints.md (Di): New constraint.
9503         * config/arm/predicates.md (arm_immediate_di_operand)
9504         (arm_di_operand, cmpdi_operand): New.
9505         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
9506         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
9507         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
9508         (cstoredi4): Handle non-Cirrus also.
9509
9510 2010-07-02  Julian Brown  <julian@codesourcery.com>
9511             Sandra Loosemore <sandra@codesourcery.com>
9512
9513         PR target/43703
9514         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
9515         (smax<mode>3): Disable for NEON float modes when
9516         flag_unsafe_math_optimizations is false.
9517         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
9518         (*mul<mode>3_neon)
9519         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
9520         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
9521         for NEON float modes when flag_unsafe_math_optimizations is false.
9522         (quad_halves_<code>v4sf): Only enable if
9523         flag_unsafe_math_optimizations is true.
9524         * doc/invoke.texi (ARM Options): Add note about floating point
9525         vectorization requiring -funsafe-math-optimizations.
9526
9527 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9528             Julian Brown  <julian@codesourcery.com>
9529
9530         * config/arm/neon.md (UNSPEC_VABA): Delete.
9531         (UNSPEC_VABAL): Delete.
9532         (UNSPEC_VABS): Delete.
9533         (UNSPEC_VMUL_N): Delete.
9534         (adddi3_neon): New.
9535         (subdi3_neon): New.
9536         (mul<mode>3add<mode>_neon): Make the pattern named.
9537         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
9538         (neon_vadd<mode>): Replace with define_expand, and move the remaining
9539         unspec parts...
9540         (neon_vadd<mode>_unspec): ...to this.
9541         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
9542         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
9543         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
9544         (neon_vaba<mode>): Rewrite in terms of vabd.
9545         (neon_vabal<mode>): Rewrite in terms of vabdl.
9546         (neon_vabs<mode>): Rewrite without unspec.
9547         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
9548         (*arm_subdi3): Likewise.
9549         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
9550         No_op attribute to disable assembly output checks.
9551         * config/arm/arm_neon.h: Regenerated.
9552         * doc/arm-neon-intrinsics.texi: Regenerated.
9553
9554 2010-07-02  Jan Hubicka  <jh@suse.cz>
9555
9556         * ipa-split.c (split_function): For aggregate values, set the return
9557         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
9558         *<retval> = fncall.part ().
9559         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
9560
9561 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9562
9563         * config/arm/neon.md (UNSPEC_VAND): Delete.
9564         (UNSPEC_VBIC): Delete.
9565         (UNSPEC_VCLZ): Delete.
9566         (UNSPEC_VCNT): Delete.
9567         (UNSPEC_VEOR): Delete.
9568         (UNSPEC_VORN): Delete.
9569         (UNSPEC_VORR): Delete.
9570         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
9571         core registers too.
9572         (anddi3_neon): Likewise.
9573         (orndi3_neon): Likewise.
9574         (bicdi3_neon): Likewise.
9575         (xordi3_neon): Likewise.
9576         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
9577         rid of unspec and handle unused operand.
9578         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
9579         * config/arm/predicates.md (imm_for_neon_logic_operand):
9580         Require TARGET_NEON.
9581         (imm_for_neon_inv_logic_operand): Likewise.
9582         * config/arm/arm.md (define_split for logical_binary_operator):
9583         Disable for NEON registers.
9584         (anddi3): Add new define_expand, and rename the insn.  Disable
9585         this insn for NEON, where anddi3_neon now applies.
9586         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
9587         (iordi3): As for anddi3.
9588         (xordi3): Likewise.
9589         * config/arm/neon.ml (Vand): Split DImode variants and mark them
9590         as No_op to disable testing for exact instruction match.
9591         (Vorr): Likewise.
9592         (Veor): Likewise.
9593         (Vbic): Likewise.
9594         (Vorn): Likewise.
9595         * config/arm/arm_neon.h: Regenerated.
9596         * doc/arm-neon-intrinsics.texi: Regenerated.
9597
9598 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9599
9600         * expr.h (emit_stack_probe): Declare.
9601         * explow.c (emit_stack_probe): Make global.
9602         (anti_adjust_stack_and_probe): Fix comments.
9603         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
9604         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9605         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9606         * config/sparc/sparc.c: Include except.h.
9607         (sparc_emit_probe_stack_range): New function.
9608         (output_probe_stack_range): Likewise.
9609         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
9610         built-in stack checking is enabled.
9611         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
9612         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
9613         (probe_stack_range): New insn.
9614
9615 2010-07-02  Richard Guenther  <rguenther@suse.de>
9616
9617         PR target/43958
9618         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
9619         for argument alignment.
9620
9621 2010-07-02  Jan Hubicka  <jh@suse.cz>
9622
9623         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
9624         walk backwards from entry_bb to check only those basic block of header
9625         that might lead to execution of split part.
9626         (consider_split) ... here.
9627         (find_return_bb): Allow assignment in return BB.
9628         (find_retval): New.
9629         (split_function): Fix name of cloned function; take care of updating
9630         return value in return_bb containing move.
9631
9632 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
9633
9634         PR target/44771
9635         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
9636         used variable insn.
9637
9638 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
9639
9640         * implicit-zee.c (combine_reaching_defs): Fix long lines.
9641         (is_set_with_extension_DI): Delete.
9642         (struct zero_extend_info): New structure.
9643         (add_removable_zero_extend): New function.
9644         (find_removable_zero_extends): Use note_stores to find SETs.
9645         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
9646
9647 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9648
9649         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
9650         is_miss_rate_acceptable. Pull total_positions computation
9651         out of the loops.  Early return if miss_positions exceeds
9652         the acceptable threshold.
9653         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
9654         is_miss_rate_acceptable after renaming of compute_miss_rate.
9655
9656 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
9657
9658         PR middle-end/44576
9659         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
9660         of 1000) for miss rate if the address diference is greater than or
9661         equal to the cache line size (the two reference will never hit the
9662         same cache line).
9663
9664 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
9665
9666         PR target/42835
9667         * config/arm/arm-modes.def (CC_NOTB): New mode.
9668         * config/arm/arm.c (get_arm_condition_code): Handle it.
9669         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
9670         * config/arm/arm.md (subsi3_compare0_c): New pattern.
9671         (compare_scc): Now a define_and_split.  Add a number of extra
9672         splitters before it.
9673
9674         PR target/42172
9675         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
9676         and ZERO_EXTEND.
9677         (arm_rtx_costs_1): Likewise.
9678         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
9679         * config/arm/arm.md (is_arch6): New attribute.
9680         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
9681         extendqisi2): Tighten the code somewhat, avoiding invalid
9682         RTL to occur in the expander patterns.
9683         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
9684         (thumb1_zero_extendhisi2_v6): Delete.
9685         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
9686         (thumb1_extendhisi2_v6): Delete.
9687         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
9688         (thumb1_extendqisi2_v6): Delete.
9689         (zero_extendhisi2 for register input splitter): New.
9690         (zero_extendqisi2 for register input splitter): New.
9691         (thumb1_extendhisi2 for register input splitter): New.
9692         (extendhisi2 for register input splitter): New.
9693         (extendqisi2 for register input splitter): New.
9694         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
9695         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
9696         and add support for a register alternative requiring a split.
9697         (thumb1_zero_extendqisi2): Likewise.
9698         (arm_zero_extendqisi2): Likewise.
9699         (arm_extendhisi2): Likewise.
9700         (arm_extendqisi2): Likewise.
9701
9702 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9703
9704         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
9705         instead of an unspec.
9706         (neon_expand_vector_init): Likewise.
9707         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
9708         (UNSPEC_VDUP_LANE): Delete.
9709         (UNSPEC VDUP_N): Delete.
9710         (UNSPEC_VGET_HIGH): Delete.
9711         (UNSPEC_VGET_LANE): Delete.
9712         (UNSPEC_VGET_LOW): Delete.
9713         (UNSPEC_VMVN): Delete.
9714         (UNSPEC_VSET_LANE): Delete.
9715         (V_double_vector_mode): New.
9716         (vec_set<mode>_internal): Make code emitted match that for the
9717         corresponding intrinsics.
9718         (vec_setv2di_internal): Likewise.
9719         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
9720         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
9721         (neon_vset_lane<mode>): Combine double and quad patterns and
9722         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
9723         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
9724         (neon_vdup_n<mode>): Rewrite RTL without unspec.
9725         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
9726         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
9727         with neon_vdup_lanev2di, adjusting the pattern from the latter
9728         to be predicable for consistency.
9729         (neon_vdup_lane<mode>_internal): New.
9730         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
9731         to avoid using an unspec.
9732         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
9733         (neon_vdup_lanev2di): Turn into a define_expand.
9734         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
9735         (neon_vget_high<mode>): Replace with....
9736         (neon_vget_highv16qi): New pattern using canonical RTL.
9737         (neon_vget_highv8hi): Likewise.
9738         (neon_vget_highv4si): Likewise.
9739         (neon_vget_highv4sf): Likewise.
9740         (neon_vget_highv2di): Likewise.
9741         (neon_vget_low<mode>): Replace with....
9742         (neon_vget_lowv16qi): New pattern using canonical RTL.
9743         (neon_vget_lowv8hi): Likewise.
9744         (neon_vget_lowv4si): Likewise.
9745         (neon_vget_lowv4sf): Likewise.
9746         (neon_vget_lowv2di): Likewise.
9747
9748         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
9749         test for this emitting vmov.
9750         (Vset_lane): Likewise.
9751         (Vdup_n): Likewise.
9752         (Vmov_n): Likewise.
9753
9754         * doc/arm-neon-intrinsics.texi: Regenerated.
9755
9756 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
9757
9758         * config/arm/neon.md (vec_extractv2di): Correct error in register
9759         numbering to reconcile with neon_vget_lanev2di.
9760
9761 2010-07-02  Richard Guenther  <rguenther@suse.de>
9762
9763         * tree-ssa-structalias.c (pt_solution_set_var): New function.
9764         * tree-ssa-alias.h (pt_solution_set_var): Declare.
9765         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
9766         points-to information.
9767
9768 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
9769
9770         * config/s390/s390.c (override_options): Adopt prefetching
9771         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
9772
9773 2010-07-02  Jan Hubicka  <jh@suse.cz>
9774
9775         * df-problems.c (df_kill_notes): Do not collect dead  notes.
9776         (df_set_note): Just call add_reg_note.
9777         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
9778         df_create_unused_note): Do not deal with lists of old notes.
9779         (df_note_bb_compute): Likewise.
9780
9781 2010-07-02  Richard Guenther  <rguenther@suse.de>
9782
9783         * tree-ssa-structalias.c (find_func_aliases): Handle
9784         pointer alignment via BIT_AND_EXPR.
9785         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
9786
9787 2010-07-02  Richard Guenther  <rguenther@suse.de>
9788
9789         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9790         mismatching number of dimensions properly.
9791
9792 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9793
9794         PR target/44707
9795         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
9796         (lo_sum (high ...) ...) patterns generated by earlier passes.
9797
9798 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9799
9800         * doc/install.texi (Prerequisites): Document Perl requirement on
9801         Solaris 2.
9802         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
9803
9804 2010-07-02  Richard Guenther  <rguenther@suse.de>
9805
9806         PR middle-end/44777
9807         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
9808
9809 2010-07-02  Jan Hubicka  <jh@suse.cz>
9810
9811         PR middle-end/44706
9812         * predict.c (predict_paths_for_bb): Handle case when control dependence
9813         BB has only abnormal edges.
9814
9815 2010-07-02  Richard Guenther  <rguenther@suse.de>
9816
9817         PR tree-optimization/44748
9818         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
9819         the embedded conversion in MEM_REFs.
9820
9821 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
9822
9823         * reload.c: Include toplev.h.
9824         * recog.c:  Likewise.
9825         * Makefile.in: Adjust dependencies.
9826
9827 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
9828
9829         PR debug/44694
9830         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
9831         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
9832
9833 2010-07-01  Richard Guenther  <rguenther@suse.de>
9834
9835         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
9836         types for offsets.
9837
9838 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
9839
9840         PR target/44732
9841         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
9842         Fix argument types.
9843
9844 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
9845
9846         PR target/44727
9847         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
9848         Make sure operand 0 dies.
9849
9850 2010-07-01  Richard Guenther  <rguenther@suse.de>
9851
9852         PR middle-end/42834
9853         PR middle-end/44468
9854         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
9855         * doc/generic.texi (References to storage): Document MEM_REF.
9856         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
9857         (print_call_name): Likewise.
9858         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
9859         (build_simple_mem_ref_loc): New function.
9860         (mem_ref_offset): Likewise.
9861         * tree.h (build_simple_mem_ref_loc): Declare.
9862         (build_simple_mem_ref): Define.
9863         (mem_ref_offset): Declare.
9864         * fold-const.c: Include tree-flow.h.
9865         (operand_equal_p): Handle MEM_REF.
9866         (build_fold_addr_expr_with_type_loc): Likewise.
9867         (fold_comparison): Likewise.
9868         (fold_unary_loc): Fold
9869         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
9870         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
9871         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
9872         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
9873         (ptr_deref_may_alias_ref_p_1): Likewise.
9874         (ao_ref_base_alias_set): Properly differentiate base object for
9875         offset and TBAA.
9876         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
9877         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
9878         (indirect_refs_may_alias_p): Likewise.
9879         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
9880         chasing code.
9881         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
9882         (call_may_clobber_ref_p_1): Likewise.
9883         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
9884         * expr.c (expand_assignment): Handle MEM_REF.
9885         (store_expr): Handle MEM_REFs from STRING_CSTs.
9886         (store_field): If expanding a MEM_REF of a non-addressable
9887         decl use bitfield operations.
9888         (get_inner_reference): Handle MEM_REF.
9889         (expand_expr_addr_expr_1): Likewise.
9890         (expand_expr_real_1): Likewise.
9891         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
9892         * alias.c (ao_ref_from_mem): Handle MEM_REF.
9893         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
9894         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
9895         (dr_analyze_indices): Likewise.
9896         (dr_analyze_alias): Likewise.
9897         (object_address_invariant_in_loop_p): Likewise.
9898         * gimplify.c (mark_addressable): Handle MEM_REF.
9899         (gimplify_cond_expr): Build MEM_REFs.
9900         (gimplify_modify_expr_to_memcpy): Likewise.
9901         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
9902         (gimple_fold_indirect_ref): Adjust.
9903         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
9904         * tree.def (MEM_REF): New tree code.
9905         * tree-dfa.c: Include toplev.h.
9906         (get_ref_base_and_extent): Handle MEM_REF.
9907         (get_addr_base_and_unit_offset): New function.
9908         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
9909         * gimple-fold.c (may_propagate_address_into_dereference): Handle
9910         MEM_REF.
9911         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
9912         accesses if the array has just one dimension.  Remove always true
9913         parameter.  Do not require type compatibility here.
9914         (maybe_fold_offset_to_component_ref): Remove.
9915         (maybe_fold_stmt_indirect): Remove.
9916         (maybe_fold_reference): Remove INDIRECT_REF handling.
9917         Fold back to non-MEM_REF.
9918         (maybe_fold_offset_to_address): Simplify.  Deal with type
9919         mismatches here.
9920         (maybe_fold_reference): Likewise.
9921         (maybe_fold_stmt_addition): Likewise.  Also handle
9922         &ARRAY + I in addition to &ARRAY[0] + I.
9923         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
9924         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
9925         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
9926         * tree-ssa.c (useless_type_conversion_p): Make most pointer
9927         conversions useless.
9928         (warn_uninitialized_var): Handle MEM_REF.
9929         (maybe_rewrite_mem_ref_base): New function.
9930         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
9931         to SSA form.
9932         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
9933         INDIRECT_REF handling.
9934         (copy_tree_body_r): Handle MEM_REF.
9935         * gimple.c (is_gimple_addressable): Adjust.
9936         (is_gimple_address): Likewise.
9937         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
9938         invariant base are invariant.
9939         (is_gimple_min_lval): Adjust.
9940         (is_gimple_mem_ref_addr): New function.
9941         (get_base_address): Handle MEM_REF.
9942         (count_ptr_derefs): Likewise.
9943         (get_base_loadstore): Likewise.
9944         * gimple.h (is_gimple_mem_ref_addr): Declare.
9945         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
9946         * tree-cfg.c (verify_address): New function, split out from ...
9947         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
9948         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
9949         INDIRECT_REFs.
9950         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
9951         INDIRECT_REF.  Allow conversions.
9952         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
9953         a register does not change its size.
9954         (verify_types_in_gimple_reference): Verify MEM_REF.
9955         (verify_gimple_assign_single): Disallow INDIRECT_REF.
9956         Handle MEM_REF.
9957         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
9958         New.
9959         (mark_address_taken): Handle MEM_REF.
9960         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
9961         (get_asm_expr_operands): Pass opf_not_non_addressable.
9962         (get_expr_operands): Handle opf_[not_]non_addressable.
9963         Handle MEM_REF.  Remove INDIRECT_REF handling.
9964         * tree-vrp.c (check_array_ref): Handle MEM_REF.
9965         (search_for_addr_array): Likewise.
9966         (check_array_bounds): Likewise.
9967         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
9968         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
9969         (ref_always_accessed_p): Likewise.
9970         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
9971         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
9972         Handle MEM_REF.
9973         * cgraphbuild.c (mark_load): Properly check for NULL result
9974         from get_base_address.
9975         (mark_store): Likewise.
9976         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
9977         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
9978         handling for MEM_REF.
9979         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
9980         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
9981         * builtins.c (stabilize_va_list_loc): Use the function ABI
9982         valist type if we couldn't canonicalize the argument type.
9983         Always dereference with the canonical va-list type.
9984         (maybe_emit_free_warning): Handle MEM_REF.
9985         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
9986         memmove to memcpy.
9987         * builtins.c (fold_builtin_memory_op): Use ref-all types
9988         for all memcpy foldings.
9989         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
9990         (build_outer_var_ref): Likewise.
9991         (scan_omp_1_op): Likewise.
9992         (lower_rec_input_clauses): Likewise.
9993         (lower_lastprivate_clauses): Likewise.
9994         (lower_reduction_clauses): Likewise.
9995         (lower_copyprivate_clauses): Likewise.
9996         (expand_omp_atomic_pipeline): Likewise.
9997         (expand_omp_atomic_mutex): Likewise.
9998         (create_task_copyfn): Likewise.
9999         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
10000         Remove old union trick.  Initialize constant offsets.
10001         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
10002         INDIRECT_REF.  Init base_alias_set properly.
10003         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
10004         (vn_reference_fold_indirect): Adjust for MEM_REFs.
10005         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
10006         for ARRAY_REFs.
10007         (may_insert): Remove.
10008         (visit_reference_op_load): Do not test may_insert.
10009         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
10010         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
10011         a field to store the constant offset this op applies.
10012         (run_scc_vn): Adjust prototype.
10013         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
10014         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
10015         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
10016         bother about volatile qualifiers on pointers.
10017         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
10018         * tree-ssa-loop-ivopts.c
10019         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
10020         (strip_offset_1): Likewise.
10021         (find_interesting_uses_address): Replace INDIRECT_REF handling with
10022         MEM_REF handling.
10023         (get_computation_cost_at): Likewise.
10024         * ipa-pure-const.c (check_op): Handle MEM_REF.
10025         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
10026         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
10027         and constants.
10028         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
10029         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
10030         (eliminate_local_variables_1): Likewise.
10031         (create_call_for_reduction_1): Likewise.
10032         (create_loads_for_reductions): Likewise.
10033         (create_loads_and_stores_for_name): Likewise.
10034         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
10035         (ssa_accessed_in_tree): Handle MEM_REF.
10036         (ssa_accessed_in_assign_rhs): Likewise.
10037         (update_type_size): Likewise.
10038         (analyze_accesses_for_call_stmt): Likewise.
10039         (analyze_accesses_for_assign_stmt): Likewise.
10040         (transform_access_sites): Likewise.
10041         (transform_allocation_sites): Likewise.
10042         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
10043         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
10044         not handle INDIRECT_REF.
10045         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
10046         (cond_store_replacement): Likewise.
10047         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
10048         MEM_REF, no not handle INDIRECT_REFs.
10049         (insert_into_preds_of_block): Properly initialize avail.
10050         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
10051         for ARRAY_REFs.  Properly handle reference lookups that
10052         require a bit re-interpretation.
10053         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
10054         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
10055         (build_ref_for_offset_1): Remove.
10056         (build_ref_for_offset): Build MEM_REFs.
10057         (gate_intra_sra): Disable for now.
10058         (sra_ipa_modify_expr): Handle MEM_REF.
10059         (ipa_early_sra_gate): Disable for now.
10060         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
10061         MEM_REF handling.
10062         (disqualify_base_of_expr): Likewise.
10063         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
10064         MEM_REF handling.
10065         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
10066         Use mem_ref_offset.  Remove bogus folding.
10067         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
10068         (make_fancy_name_1): Add support for MEM_REF.
10069         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
10070         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
10071         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
10072         (compute_complex_ancestor_jump_func): Likewise.
10073         (ipa_analyze_virtual_call_uses): Likewise.
10074         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
10075         INDIRECT_REF folding with more generalized MEM_REF folding.
10076         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
10077         (forward_propagate_addr_into_variable_array_index): Also handle
10078         &ARRAY + I in addition to &ARRAY[0] + I.
10079         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
10080         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
10081         creates assignments with overlap.
10082         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
10083         (get_frame_field): Likewise.
10084         (get_nonlocal_debug_decl): Likewise.
10085         (convert_nonlocal_reference_op): Likewise.
10086         (struct nesting_info): Add mem_refs pointer-set.
10087         (create_nesting_tree): Allocate it.
10088         (convert_local_reference_op): Insert to be folded mem-refs.
10089         (fold_mem_refs): New function.
10090         (finalize_nesting_tree_1): Perform defered folding of mem-refs
10091         (free_nesting_tree): Free the pointer-set.
10092         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
10093         (vectorizable_load): Likewise.
10094         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
10095         (propagate_with_phi): Likewise.
10096         * tree-object-size.c (addr_object_size): Handle MEM_REFs
10097         instead of INDIRECT_REFs.
10098         (compute_object_offset): Handle MEM_REF.
10099         (plus_stmt_object_size): Handle MEM_REF.
10100         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
10101         for &MEM_REF.
10102         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
10103         (symbol_marked_for_renaming): Likewise.
10104         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
10105         (fold-const.o): Add $(TREE_FLOW_H).
10106         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
10107         (find_func_clobbers): Likewise.
10108         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
10109         (decompose_access): Likewise.
10110         (replace_field_acc): Likewise.
10111         (replace_field_access_stmt): Likewise.
10112         (insert_new_var_in_stmt): Likewise.
10113         (get_stmt_accesses): Likewise.
10114         (reorg_structs_drive): Disable.
10115         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
10116         (ix86_canonical_va_list_type): Likewise.
10117
10118 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10119
10120         PR other/44566
10121         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
10122         * target.def (struct gcc_target): Replace enum reg_class with
10123         reg_class_t in hook argument / return types.
10124         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
10125         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
10126         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
10127         * targhooks.h (default_branch_target_register_class): Likewise.
10128         (default_ira_cover_classes, default_secondary_reload): Likewise.
10129         (default_memory_move_cost, default_register_move_cost): Likewise.
10130         * targhooks.c (default_branch_target_register_class): Likewise.
10131         (default_ira_cover_classes, default_secondary_reload): Likewise.
10132         (default_memory_move_cost, default_register_move_cost): Likewise.
10133         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
10134         * bt-load.c (branch_target_load_optimize): Likewise.
10135         * ira.c (setup_cover_and_important_classes): Likewise.
10136         * ira-costs.c (copy_cost): Likewise.
10137         * reload1.c (emit_input_reload_insns): Likewise.
10138         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
10139         * config/frv/frv.c (frv_secondary_reload): Likewise.
10140         * config/s390/s390.c (s390_secondary_reload): Likewise.
10141         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
10142         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
10143         (ix86_register_move_cost): Likewise.
10144         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
10145         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
10146         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
10147         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
10148         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
10149         (rs6000_ira_cover_classes): Likewise.
10150         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
10151         * config/picochip/picochip-protos.h (picochip_secondary_reload):
10152         Likewise.
10153         * config/pa/pa.c (pa_secondary_reload): Likewise.
10154         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
10155         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
10156         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
10157         * doc/tm.texi: Regenerate.
10158
10159 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
10160
10161         PR bootstrrap/44726
10162         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
10163         use.
10164         (build_alias_set_optimal_p): Likewise.
10165         (build_base_obj_set_for_drs): Likewise.
10166
10167 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
10168
10169         * target.def: Remove comment about licensing problems of function
10170         declarations.
10171
10172         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
10173         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
10174         * doc/tm.texi: Regenerate.
10175
10176         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
10177         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
10178
10179         * target.def (enum_va_list_p): Use DEFHOOK.
10180         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
10181         Rename ptype to ptree.
10182         * doc/tm.texi: Regenerate.
10183
10184         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
10185         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
10186         * doc/tm.texi: Regenerate.
10187
10188         * target.def (memory_move_cost): Use DEFHOOK.
10189         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
10190         Rename regclass AKA class to rclass.
10191         * doc/tm.texi: Regenerate.
10192
10193         * target.def (pragma_parse): Use DEFHOOK.
10194         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
10195         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
10196         * doc/tm.texi: Regenerate.
10197
10198         * target.def (pass_by_reference): Use DEFHOOK.
10199         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
10200         * doc/tm.texi: Regenerate.
10201
10202         * target.def (resolve_overloaded_builtin): Rename params to arglist.
10203         Use DEFHOOK.
10204         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
10205         * doc/tm.texi: Regenerate.
10206
10207         * target.def (return_pops_args): Use DEFHOOK.
10208         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
10209         Rename stack-size to size.
10210         * doc/tm.texi: Regenerate.
10211
10212         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
10213         last-sched_cycle to last_clock, cur_cycle to clock.
10214         * doc/tm.texi.in: Use @hook.
10215         * doc/tm.texi: Regenerate.
10216
10217         * target.def (print_operand, print_operand_address): Update comment.
10218         (print_operand_punct_valid_p): Likewise.
10219
10220 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10221
10222         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
10223         to rtl.h.
10224         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
10225         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
10226         * rtl-error.h: New.
10227         * regrename.c: Do not include toplev.h. Include rtl-error.h.
10228         * rtl-error.c: Likewise.
10229         * reload.c: Likewise.
10230         * recog.c:  Likewise.
10231         * sel-sched.c: Likewise.
10232         * function.c: Likewise.
10233         * reg-stack.c: Likewise.
10234         * cfgrtl.c: Likewise.
10235         * reload1.c: Likewise.
10236         * final.c: Include rtl-error.
10237         * Makefile.in: Adjust dependencies.
10238
10239 2010-06-30  Jan Hubicka  <jh@suse.cz>
10240
10241         PR middle-end/PR44706
10242         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
10243         to return the value.
10244
10245 2010-06-30  Michael Matz  <matz@suse.de>
10246
10247         PR bootstrap/44699
10248         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
10249         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
10250         a gimple reg, attach the original VDEF to the last store in the
10251         sequence.
10252
10253 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
10254
10255         PR other/44034
10256         * config/darwin.c (darwin_override_options): Use renamed
10257         targetm.asm_out.emit_unwind_label.
10258
10259 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10260
10261         PR tree-optimization/39799
10262         * tree-inline.c (remap_ssa_name): Initialize variable only if
10263         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
10264
10265 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
10266
10267         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
10268
10269 2010-06-30  Richard Guenther  <rguenther@suse.de>
10270
10271         PR target/44722
10272         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
10273         against oscillation with reverse peephole2.
10274
10275 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
10276
10277         PR target/44721
10278         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10279         Fix last commit.
10280
10281 2010-06-30  Nick Clifton  <nickc@redhat.com>
10282
10283         * config/rx/rx-modes.def: New file.
10284         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
10285         (CC_REGNUM): Define.
10286         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
10287         register.
10288         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
10289         (SELECT_CC_MODE): Define.
10290         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
10291         (reg:CC CC_REG) instead of (cc0).
10292         (attr "cc"): Delete.
10293         (cbranchsi4): Do not split compare and branch here. Instead move
10294         it to...
10295         (cbranchsi4_<code>): ... here.  New patterns.
10296         (cmpsi): Call rx-compare_redundant to find out if it is necessary
10297         to emit the compare instruction.
10298         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
10299         cc_status flags.
10300         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
10301         FIRST_PSEUDO_REGNUM.
10302         (rx_expand_prologue, rx_expand_epilogue): Likewise.
10303         (rx_notice_update_cc): Delete.
10304         (rx_cc_modes_compatible): New function.
10305         (flags_needed_for_conditional): New function.
10306         (flags_from_mode): New function.
10307         (rx_compare_redundant): New function - scans backwards through
10308         insn list to find out if condition flags are already set correctly.
10309         (TARGET_CC_MODES_COMPATIBLE): Define.
10310         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
10311
10312         * config/rx/rx.h (BRANCH_COST): Define.
10313         (REGISTER_MOVE_COST): Define.
10314         * config/rx/predicates (rx_source_operand): Allow all constant types.
10315         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
10316         (tstsi4): New pattern.
10317         * config/rx/rx.c (rx_memory_move_cost): Define.
10318         (TARGET_MEMORY_MOVE_COST): Define.
10319
10320 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10321
10322         * tree.h (block_may_fallthru): Declare here.
10323         * tree-flow.h (block_may_fallthru): Do not declare here.
10324         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
10325         bitmap.h
10326         * Makefile.in (c-typeck.o): Update dependencies.
10327
10328 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
10329
10330         PR debug/44694
10331         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
10332         * cselib.c (cfa_base_preserved_regno): New static variable.
10333         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
10334         of REGNO (cfa_base_preserved_val->locs->loc).
10335         (cselib_preserve_cfa_base_value): Add regno argument, set
10336         cfa_base_preserved_regno to it.
10337         (cselib_invalidate_regno): Allow removal of registers other than
10338         cfa_base_preserved_regno from cfa_base_preserved_val.
10339         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
10340         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
10341         of MEM addresses, if not on LHS.
10342         (reverse_op): Don't add reverse ops for cfa_base_rtx.
10343         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
10344
10345 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
10346
10347         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
10348         static variables.
10349         (peep2_buf_position): New static function.
10350         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
10351         peephole2_optimize): Use it.
10352         (peep2_attempt, peep2_update_life): New static functions, broken out
10353         of peephole2_optimize.
10354         (peep2_fill_buffer): New static function.
10355         (peephole2_optimize): Change the main loop to try to fill the buffer
10356         with the maximum number of insns before matching them against
10357         peepholes.  Use a forward scan.  Remove special case for targets with
10358         conditional execution.
10359         * genrecog.c (change_state): Delete dead code.
10360         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
10361         Rewrite so as not to expect the second insn to have had a peephole
10362         applied yet.
10363
10364 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10365
10366         * genhooks.c (emit_findices): Cast field precision to int.
10367         (emit_documentation): Likewise.
10368
10369 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
10370
10371         PR tree-optimization/43801
10372         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
10373         if old_decl was DECL_ONE_ONLY.
10374
10375         PR debug/44668
10376         * dwarf2out.c (add_accessibility_attribute): New function.
10377         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
10378         instead of adding DW_AT_accessibility manually.
10379         (gen_enumeration_type_die, gen_struct_or_union_type_die,
10380         gen_typedef_die): Use it.
10381
10382 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10383
10384         * vmsdbgout.c (full_name): Just output the file name if not native.
10385
10386 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10387
10388         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
10389         (funcnam_table): New static table.
10390         (funcnum_table): New static table.
10391         (write_rtnbeg): Write value saved in funcnum_table.
10392         (write_rtnend): Write value saved in funcnum_table.
10393         (vmsdbgout_begin_function): Save current function info in
10394         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
10395         (vmsdbgout_finish): Iterate over funcnum_table.
10396
10397 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10398
10399         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
10400         (vmsdbgout_type_decl): Declare
10401         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
10402         (FUNC_EPILOGUE_LABEL): New macro
10403         (vmsdbgout_begin_epilogue): New function.
10404         (vmsdbgout_type_decl): New function.
10405
10406 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10407
10408         * vmsdbg.h: Update copyright.
10409
10410 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
10411
10412         * vmsdbg.h (DST_K_TBG): New DST constant.
10413         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
10414         (write_modbeg): Cast module_language to avoid warning.
10415         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
10416
10417 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10418
10419         PR other/44034
10420         * target.def, doc/tm.texi.in, genhooks.c: New files.
10421         * target.h: Instead of defining individual hook members,
10422         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
10423         include target.def.
10424         * target-def.h: Instead of defining individual hook initializers,
10425         include target-hooks-def.h.
10426         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
10427         targetm.live_on_entry -> targetm.extra_live_on_entry
10428         targetm.sched.md_finish ->targetm.sched.finish
10429         targetm.sched.md_init -> targetm.sched.init
10430         targetm.sched.md_init_global -> targetm.sched.init_global
10431         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
10432         targetm.asm_out.except_table_label ->
10433           targetm.asm_out.emit_except_table_label
10434         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
10435         targetm.target_help -> targetm.help
10436         targetm.vectorize.builtin_support_vector_misalignment ->
10437           targetm.vectorize.support_vector_misalignment
10438         targetm.file_start_app_off -> targetm.asm_file_start_app_off
10439         targetm.file_start_file_directive ->
10440          targetm.asm_file_start_file_directive
10441         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
10442         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
10443         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
10444         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
10445           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
10446         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
10447           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
10448         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
10449         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
10450         * Makefile.in (TARGET_H): Depend on target.def.
10451         (TARGET_DEF_H): Depend on target-hooks-def.h.
10452         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
10453         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
10454         * doc/tm.texi: Regenerate.
10455
10456         * Makefile.in (s-tm-texi): Remove stray tab / rule.
10457
10458         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
10459         (targetm.sched.init): Likewise.
10460
10461 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10462
10463         PR bootstrap/44713
10464         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
10465         (function_arg_advance_32): Const-ify TYPE parameter.
10466         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
10467         (ix86_function_arg_advance): Change type of NAMED to bool.
10468         (function_arg_32): Const-ify CUM and TYPE parameters.
10469         (function_arg_64): Likewise.  Change type of NAMED to bool.
10470         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
10471         to bool.
10472         (ix86_function_arg): Change type of NAMED to bool.
10473         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
10474         last argument as a bool.
10475
10476 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
10477
10478         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
10479         (OVERRIDE_OPTIONS): Add note of obsolescence.
10480         Replace references with references to TARGET_OPTION_OVERRIDE.
10481         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
10482          the macro).
10483         * targhooks.c (default_target_option_override): New function.
10484         * targhooks.h (default_target_option_override): Declare.
10485         * target.h (struct gcc_target): Add override member to
10486         target_option member.
10487         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
10488         targetm.target_option.override call.
10489         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
10490         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
10491
10492 2010-06-29  Jan Hubicka  <jh@suse.cz>
10493
10494         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
10495
10496 2010-06-29  Jan Hubicka  <jh@suse.cz>
10497
10498         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
10499         unreachable.
10500         (rebuild_frequencies): New function.
10501         * predict.h (rebuild_frequencies): Declare.
10502         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
10503         entry block and edge reaching new_entry.
10504         (tree_function_versioning): When doing partial cloning, rebuild
10505         frequencies when done.
10506         * passes.c (execute_function_todo): Use rebild_frequencies.
10507
10508 2010-06-29  Richard Guenther  <rguenther@suse.de>
10509
10510         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
10511         * tree-flow.h (enum noalias_state): Remove.
10512         (struct var_ann_d): Remove noalias_state member.
10513
10514 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10515
10516         PR target/43902
10517         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
10518         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
10519         (maddhidi4): Likewise.
10520
10521         Revert parts of the change for PR25130.
10522         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10523         MEM_ALIAS_SET.
10524
10525 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10526
10527         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
10528         targetm.calls.function_incoming_arg, and
10529         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
10530         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
10531         * target.h (struct gcc_target): Add function_arg_advance,
10532         function_arg, and function_incoming_arg fields.
10533         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
10534         (TARGET_FUNCTION_INCOMING_ARG): Define.
10535         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
10536         and TARGET_FUNCTION_INCOMING_ARG.
10537         * targhooks.h (default_function_arg_advance): Declare.
10538         (default_function_arg, default_function_incoming_arg): Declare.
10539         * targhooks.c (default_function_arg_advance): New function.
10540         (default_function_arg, default_function_incoming_arg): New function.
10541         * config/i386/i386.c (function_arg_advance): Rename to...
10542         (ix86_function_arg_advance): ...this.  Make static.
10543         (function_arg): Rename to...
10544         (ix86_function_arg): ...this.  Make static.
10545         (TARGET_FUNCTION_ARG_ADVANCE): Define.
10546         (TARGET_FUNCTION_ARG): Define.
10547         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
10548         (FUNCTION_ARG): Delete.
10549         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
10550         (function_arg): Delete prototype.
10551
10552 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
10553
10554         * reginfo.c (init_reg_sets_1): Adjust comments.
10555         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
10556         * calls.c (prepare_call_address): Likewise.
10557         (emit_call_1): Use targetm.calls.return_pops_args.
10558         (expand_call): Likewise.
10559         * function.c (assign_parms): Likewise.
10560         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
10561         * target.h (struct gcc_target) [struct calls]: Add
10562         return_pops_args field.
10563         * targhooks.h (default_return_pops_args): Declare.
10564         * targhooks.c (default_return_pops_args): Define.
10565         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
10566         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
10567         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
10568         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
10569         documentation.
10570         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
10571         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
10572         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
10573         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
10574         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
10575         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
10576         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
10577         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
10578         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
10579         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
10580         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
10581         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
10582         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
10583         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
10584         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
10585         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
10586         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
10587         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
10588         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
10589         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
10590         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
10591         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
10592         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
10593         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
10594         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
10595         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
10596         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
10597         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
10598         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
10599         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
10600         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
10601         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
10602         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
10603         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
10604         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
10605         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
10606         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
10607         * config/i386/i386.c (ix86_return_pops_args): Make static.
10608         Constify arguments.
10609         (TARGET_RETURN_POPS_ARGS): Define.
10610         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
10611         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
10612         (TARGET_RETURN_POPS_ARGS): Define.
10613         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
10614         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
10615         (TARGET_RETURN_POPS_ARGS): Define.
10616
10617 2010-06-29  Richard Guenther  <rguenther@suse.de>
10618
10619         PR middle-end/44667
10620         * tree-inline.c (initialize_inlined_parameters): Make sure
10621         to remap the inlined parameter variable substitutions types.
10622
10623 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
10624
10625         PR rtl-optimization/44659
10626         * combine.c (make_compound_operation) <SUBREG>: Do not return the
10627         result of force_to_mode if it partially re-expanded the compound.
10628
10629 2010-06-28  Jan Hubicka  <jh@suse.cz>
10630
10631         PR middle-end/44671
10632         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
10633         RESULT_DECL.
10634
10635 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
10636
10637         * double-int.h (force_fit_type_double): Remove declaration.
10638         * double-int.c (force_fit_type_double): Move to tree.c.
10639         * tree.h (force_fit_type_double): Declare.
10640         * tree.h (force_fit_type_double): Moved from double-int.c. Use
10641         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
10642         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
10643         * convert.c (convert_to_pointer): Adjust call to
10644         force_fit_type_double.
10645         * tree-vrp.c (extract_range_from_assert,
10646         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
10647         * fold-const.c: Update comment.
10648         (int_const_binop, fold_convert_const_int_from_int,
10649         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
10650         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
10651         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
10652         round_up_loc): Adjust call to force_fit_type_double.
10653
10654 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10655
10656         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
10657
10658 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10659
10660         * tree-sra.c (convert_callers): New parameter, change fndecls of
10661         recursive calls.
10662         (modify_function): Pass the old decl to convert_callers.
10663
10664 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10665
10666         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
10667         ipa_check_create_node_params and ipa_initialize_node_params with
10668         checking asserts they are not necessary.
10669
10670 2010-06-28  Jan Hubicka  <jh@suse.cz>
10671
10672         PR tree-optimization/44687
10673         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
10674
10675 2010-06-28  Martin Jambor  <mjambor@suse.cz>
10676
10677         PR c++/44535
10678         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
10679         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
10680         instead of BINFO_BASE_BINFO.
10681
10682 2010-06-28  Michael Matz  <matz@suse.de>
10683
10684         PR middle-end/44592
10685         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
10686         proper VDEF chain for intermediate stores in the sequence.
10687
10688 2010-06-28  Jan Hubicka  <jh@suse.cz>
10689
10690         PR tree-optimization/44357
10691         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
10692         uninlinable functions.
10693
10694 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
10695
10696         * config.gcc (powerpc*-*-*): Handle titan.
10697         * config/rs6000/rs6000.c (titan_cost): New costs.
10698         (rs6000_override_options): Add "titan" to processor_target_table.
10699         Add Titan to branch alignment logic.
10700         Correctly set rs6000_cost for titan.
10701         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
10702         * config/rs6000/titan.md: New file.
10703         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
10704
10705 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
10706
10707         * tree-browser.c (TB_history_stack): Convert to a VEC.
10708         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
10709         (TB_history_prev): Likewise.
10710
10711 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
10712
10713         * vec.h (vec_heap_free): Add parentheses around free.
10714
10715 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
10716
10717         * system.h: Poison GCC_EXCEPT_H for front-end files.
10718
10719         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
10720         langhook.
10721         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
10722         Define to NULL by default.
10723         * except.h: Define GCC_EXCEPT_H.
10724         (doing_eh): Remove prototype.
10725         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
10726         (lang_protect_cleanup_actions): Remove.
10727         * except.c (lang_protect_cleanup_actions): Remove.
10728         (doing_eh): Remove.
10729         (gen_eh_region): Don't check doing_eh here.
10730         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
10731         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
10732         instead of lang_protect_cleanup_actions.
10733         * omp-low.c (maybe_catch_exception): Likewise.
10734         * Makefile.in: Update dependencies.
10735
10736 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
10737
10738         * cgraph.h (struct varpool_node): new used_from_object_file flag.
10739         (struct cgraph_local_info): new used_from_object_file flag.
10740         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
10741         (cgraph_clone_node): initialize used_from_object_file.
10742         (cgraph_create_virtual_clone): initialize used_from_object_file.
10743         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
10744         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
10745         when compiling with -fwhole-program.
10746         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
10747         internal resolver.
10748         * ipa.c (function_and_variable_visibility): Set externally_visible
10749         flag of varpool_node if used_from_object_file flag is set.
10750         (cgraph_externally_visible_p): check used_from_object_file flag.
10751         * doc/invoke.texi (-fwhole-program option): Change description of
10752         externally_visible attribute accordingly.
10753         * doc/extend.texi (externally_visible): Ditto.
10754
10755 2010-06-27  Jan Hubicka  <jh@suse.cz>
10756
10757         * params.def (max-inline-insns-auto): Default to 40.
10758         * doc/invoke.texi (max-inline-insns-auto): Document the change.
10759
10760 2010-06-27  Jan Hubicka  <jh@suse.cz>
10761
10762         PR middle-end/44671
10763         PR middle-end/44686
10764         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
10765         signature change.
10766         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
10767         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
10768
10769 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
10770
10771         * target.h (struct gcc_target): Add register_move_cost field.
10772         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
10773         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
10774         * targhooks.c (default_register_move_cost): New function.
10775         * targhooks.h (default_register_move_cost): Declare function.
10776         * defaults.h (REGISTER_MOVE_COST): Delete.
10777         * ira-int.h (ira_register_move_cost): Update comment.
10778         * ira.c (ira_register_move_cost): Update comment.
10779         * reload.h (register_move_cost): Declare.
10780         * reginfo.c (register_move_cost): New function.
10781         (move_cost): Update comment.
10782         (init_move_cost, memory_move_secondary_cost): Replace
10783         REGISTER_MOVE_COST with register_move_cost.
10784         * postreload.c (reload_cse_simplify_set): (Ditto.).
10785         * reload.c (find_valid_class, find_reloads): (Ditto.).
10786         * reload1.c (choose_reload_regs): (Ditto.).
10787         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
10788         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
10789         * doc/md.texi (can_create_pseudo_p): Update documentation.
10790
10791         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
10792         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
10793         * config/i386/i386.h (ix86_memory_move_cost): Make static.
10794         (TARGET_MEMORY_MOVE_COST): Define.
10795
10796         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
10797         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
10798         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
10799         (TARGET_MEMORY_MOVE_COST): Define.
10800
10801 2010-06-27  Richard Guenther  <rguenther@suse.de>
10802
10803         PR tree-optimization/44683
10804         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
10805         false edge from the inverted condition.
10806
10807 2010-06-27  Richard Guenther  <rguenther@suse.de>
10808
10809         PR middle-end/44684
10810         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
10811         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
10812         for register LHS.  Or non-store assignments.
10813
10814 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
10815
10816         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
10817         (sparc_emit_set_const64): Likewise.  Remove disabled code.
10818         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
10819         (sparc_emit_set_const64): Likewise.
10820
10821 2010-06-26  Catherine Moore  <clm@codesourcery.com>
10822
10823         * config/mips/mips.md (alu_type): New attribute.
10824         (type): Infer type from alu_type.
10825         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
10826         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
10827         *subsi3_extended, negsi2, negdi2, *low<mode>,
10828         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
10829         xor<mode>3, *nor<mode>3,
10830         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
10831         *zero_extendhi_truncqi):  Set alu_type instead of type.
10832
10833 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
10834
10835         * config/alpha/alpha.c (alpha_need_linkage): Adjust
10836         splay_tree_new_ggc call.
10837         (alpha_use_linkage): Likewise.
10838
10839 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
10840
10841         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
10842         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
10843         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
10844         (static_specs): Remove switches_need_spaces.
10845         (process_command, do_self_spec): Hardcode handling "-o" instead of
10846         checking switches_need_spaces.
10847         * system.h (SWITCHES_NEED_SPACES): Poison.
10848
10849 2010-06-26  Richard Guenther  <rguenther@suse.de>
10850
10851         PR tree-optimization/44393
10852         * tree-loop-distribution.c (generate_loops_for_partition): Fix
10853         stmt removal and VOP renaming.
10854         (generate_memset_zero): Remove redundant stmt updating.
10855         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
10856         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
10857
10858 2010-06-26  Jan Hubicka  <jh@suse.cz>
10859
10860         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
10861         edges comming from header are equivalent.
10862         (visit_bb): Handle PHIs correctly.
10863         * tree-inline.c (copy_phis_for_bb): Be able to copy
10864         PHI from entry edge.
10865         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
10866
10867 2010-06-26  Richard Guenther  <rguenther@suse.de>
10868
10869         PR middle-end/44674
10870         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
10871         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
10872
10873 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
10874
10875         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
10876         add_infile, alloc_switch): New.
10877         (process_command): Remove variable lang_n_infiles.  Process
10878         options in a single pass.  Use new functions for allocating
10879         infiles and switches arrays.  Properly skip operands of
10880         -Xpreprocessor and -Xassembler.
10881
10882 2010-06-26  Jan Hubicka  <jh@suse.cz>
10883
10884         PR middle-end/44671
10885         * cgraphunit.c (cgraph_function_versioning): Remove wrong
10886         cgraph_make_decl_local call; fix typo copying RTL data.
10887
10888 2010-06-25  DJ Delorie  <dj@redhat.com>
10889
10890         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
10891         (m32c_output_aligned_common): Likewise.
10892         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
10893         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
10894         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
10895         (m32c_register_pragmas): Register it.
10896         * config/m32c/m32c.c (m32c_get_pragma_address): New.
10897         (m32c_insert_attributes): Set #pragma address decls volatile.
10898         (pragma_entry_eq): New.
10899         (pragma_entry_hash): New.
10900         (m32c_note_pragma_address): New.
10901         (m32c_get_pragma_address): New.
10902         (m32c_output_aligned_common): New.
10903         * doc/extend.texi: Document the new pragma.
10904
10905         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
10906         also.
10907         * config/m32c/predicates.md (m32c_any_operand): Check the code
10908         instead of memory_operand so as to allow matching volatile MEMs.
10909         (m32c_nonimmediate_operand): Likewise.
10910         (mra_operand): Allow volatiles.
10911
10912 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
10913
10914         PR debug/44610
10915         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
10916         address if the offset is unknown.
10917
10918 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
10919
10920         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
10921         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
10922         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
10923         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
10924         to ia64_start_function. Invoke it.
10925         * config/ia64/ia64.c (ia64_start_function): Call new function
10926         dwarf2out_vms_debug_main_pointer.
10927
10928 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10929
10930         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
10931         statements computing the true predicate.
10932
10933 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10934
10935         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
10936         to boolean_true_node.
10937         (reset_bb_predicate): New.
10938         (predicate_bbs): Call reset_bb_predicate.
10939
10940 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10941
10942         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
10943         (tree_if_conversion): Returns true when something has been changed.
10944         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
10945         changed something.
10946
10947 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
10948
10949         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
10950         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
10951         * tree-if-conv.c: Include dbgcnt.h.
10952         (tree_if_conversion): Use if_conversion_tree to count the number of
10953         if-convertible loops.
10954
10955 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
10956
10957         * common.opt (fprefetch-loop-arrays): Re-define
10958         -fprefetch-loop-arrays as a tri-state option with the initial
10959         value of -1.
10960         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
10961         pass only when flag_prefetch_loop_arrays > 0.
10962         * toplev.c (process_options): Note that, with tri-states,
10963         flag_prefetch_loop_arrays>0 means prefetching is enabled.
10964         * config/i386/i386.c (override_options): Enable prefetching at -O3
10965         for a set of CPUs that sw prefetching is helpful.
10966         (software_prefetching_beneficial_p): New.  Return TRUE if software
10967         prefetching is beneficial for the given CPU.
10968
10969 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
10970
10971         PR rtl-optimization/44326
10972         * implicit-zee.c (find_removable_zero_extends): Replace
10973         INSN_P with NONDEBUG_INSN_P.
10974
10975 2010-06-25  Martin Jambor  <mjambor@suse.cz>
10976
10977         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
10978         (struct ipa_node_params): Removed the modification_analysis_done flag.
10979         (ipa_is_param_modified): Removed.
10980         (ipa_analyze_node): Declare.
10981         (ipa_compute_jump_functions): Remove declaration.
10982         (ipa_count_arguments): Likewise.
10983         (ipa_detect_param_modifications): Likewise.
10984         (ipa_analyze_params_uses): Likewise.
10985         * ipa-prop.c (struct param_analysis_info): New type.
10986         (visit_store_addr_for_mod_analysis): Removed.
10987         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
10988         moved down in the file.
10989         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
10990         (ipa_count_arguments): Made static.
10991         (mark_modified): New function.
10992         (is_parm_modified_before_call): New function.
10993         (compute_pass_through_member_ptrs): New parameter parms_info, call
10994         is_parm_modified_before_call instead of ipa_is_param_modified.
10995         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
10996         it to compute_pass_through_member_ptrs.
10997         (ipa_compute_jump_functions): New parameter parms_info, pass it to
10998         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
10999         on the callee if it is analyzed.  Made static.
11000         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
11001         is_parm_modified_before_call instead of ipa_is_param_modified.
11002         (ipa_analyze_call_uses): New parameter parms_info, pass it to
11003         ipa_analyze_indirect_call_uses.
11004         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
11005         ipa_analyze_call_uses.
11006         (ipa_analyze_params_uses): New parameter parms_info, pass it to
11007         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
11008         (ipa_analyze_node): New function.
11009         (ipa_print_node_params): Do not dump the modified flag.
11010         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
11011         it.  Do not stream the modified parameter flag.
11012         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
11013         it.  Do not stream the modified parameter flag.
11014         * ipa-cp.c (ipcp_analyze_node): Removed.
11015         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
11016         with only a call to ipa_analyze_node.
11017         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
11018         node with only a call to ipa_analyze_node.
11019
11020 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11021
11022         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
11023
11024 2010-06-25  Jan Hubicka  <jh@suse.cz>
11025
11026         * tree-pass.h (pass_split_functions): Declare.
11027         * opts.c (decode_options): Enable function splitting at -O2
11028         * timevar.def (TV_IPA_FNSPLIT): New macro.
11029         * ipa-split.c: New file.
11030         * common.opt (-fpartial-inlining): New flag.
11031         * Makefile.in (ipa-split.o): New object file.
11032         * passes.c (init_optimization_passes): Add ipa-split.
11033         * params.def (partial-inlining-entry-probability): New parameters.
11034         * doc/invoke.texi (-fpartial-inlining): New.
11035
11036 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11037
11038         PR 44665
11039         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
11040         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
11041         (gimplify_expr): Likewise.
11042
11043 2010-06-25  Martin Jambor  <mjambor@suse.cz>
11044
11045         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
11046         statements instead of bailing out on them.
11047         (ipa_analyze_indirect_call_uses): Do not require that loads from the
11048         parameter are in the same BB as the condition.  Update comments.
11049
11050 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
11051
11052         PR middle-end/43866
11053         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
11054         true or always false, return NULL_TREE.
11055         (tree_unswitch_single_loop): Optimize conditions even when reaching
11056         max-unswitch-level parameter.  If num > 0, optimize first all conditions
11057         using entry checks, then do still reachable block discovery and consider
11058         only conditions in still reachable basic blocks in the loop.
11059
11060         PR tree-optimization/44539
11061         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
11062         the call doesn't have LHS, but has VDEF.
11063
11064 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11065
11066         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
11067         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
11068         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
11069         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
11070         * system.h (MODIFY_TARGET_NAME): Poison.
11071
11072 2010-06-25  Alan Modra  <amodra@gmail.com>
11073
11074         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
11075         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
11076         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11077         CMODEL_LARGE as default.
11078         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
11079         (offsettable_ok_by_alignment): Delete.
11080         (rs6000_emit_move): Remove mcmodel=medium optimization.
11081
11082 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11083
11084         With large parts from Jim Wilson:
11085         PR target/43902
11086         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
11087         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11088         * optabs.c (optab_for_tree_code): Likewise.
11089         (expand_widen_pattern_expr): Likewise.
11090         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
11091         out of execute_optimize_widening_mul.
11092         (convert_plusminus_to_widen): New function.
11093         (execute_optimize_widening_mul): Use the two new functions.
11094         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
11095         Remove code to generate widening multiply-accumulate.  Add support
11096         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
11097         * gimple-pretty-print.c (dump_ternary_rhs): New function.
11098         (dump_gimple_assign): Call it when appropriate.
11099         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
11100         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
11101         (expand_gimple_stmt_1): Likewise.
11102         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
11103         WIDEN_MULT_MINUS_EXPR.
11104         * tree-ssa-operands.c (get_expr_operands): Likewise.
11105         * tree-inline.c (estimate_operator_cost): Likewise.
11106         * gimple.c (extract_ops_from_tree_1): Renamed from
11107         extract_ops_from_tree.  Add new arg for a third operand; fill it.
11108         (gimple_build_assign_stat): Support operations with three operands.
11109         (gimple_build_assign_with_ops_stat): Likewise.
11110         (gimple_assign_set_rhs_from_tree): Likewise.
11111         (gimple_assign_set_rhs_with_ops_1): Renamed from
11112         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
11113         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
11114         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
11115         WIDEN_MULT_MINUS_EXPR.
11116         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
11117         (extract_ops_from_tree_1): Adjust declaration.
11118         (gimple_assign_set_rhs_with_ops_1): Likewise.
11119         (gimple_build_assign_with_ops): Pass NULL for last operand.
11120         (gimple_build_assign_with_ops3): New macro.
11121         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
11122         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
11123         functions.
11124         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
11125         (verify_gimple_assign): Call it.
11126         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
11127         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
11128         functions for dealing with three-operand statements.
11129         * tree.c (commutative_ternary_tree_code): New function.
11130         * tree.h (commutative_ternary_tree_code): Declare it.
11131         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
11132         ternary statements.
11133         (gimple_assign_nonzero_warnv_p): Likewise.
11134         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
11135         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
11136         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
11137         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
11138         (struct hashtable_expr): New member ternary in the union.
11139         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
11140         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
11141         (iterative_hash_hashable_expr): Likewise.
11142         (print_expr_hash_elt): Handle EXPR_TERNARY.
11143         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
11144         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
11145         statements.  Handle GIMPLE_TERNARY_RHS.
11146
11147 2010-06-25  Jan Hubicka  <jh@suse.cz>
11148
11149         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
11150
11151 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
11152
11153         PR c/44517
11154         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
11155         parameters are not good.
11156         (c_parser_parameter_declaration): Error unknown type name if the type
11157         name can't start declaration specifiers.
11158
11159 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
11160
11161         * gcc.c (translate_options): Don't mention +e in comment.
11162         (process_command): Don't handle +e specially.
11163
11164 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
11165
11166         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
11167
11168         * ira-build.c (merge_hard_reg_conflicts): New function.
11169         (create_cap_allocno, copy_info_to_removed_store_destinations,
11170         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
11171         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
11172         (remove_unnecessary_allocnos, remove_low_level_allocnos)
11173         copy_nifo_to_removed_store_destination): Use them.
11174         * ira-lives.c (make_hard_regno_born): New function, split out of
11175         make_regno_born.
11176         (make_allocno_born): Likewise.
11177         (make_hard_regno_dead): New function, split out of make_regno_dead.
11178         (make_allocno_dead): Likewise.
11179         (inc_register_pressure): New function, split out of set_allocno_live.
11180         (dec_register_pressure): New function, split out of clear_allocno_live.
11181         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
11182         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
11183         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
11184         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
11185         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
11186         mark_pseudo_regno_live.
11187         (process_bb_node_lives): Use mark_pseudo_regno_live,
11188         make_hard_regno_born and make_allocno_dead.
11189         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
11190         set_allocno_live, clear_allocno_live): Delete functions.
11191
11192         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
11193         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
11194         functions.
11195         (ira_flattening): Use ira_parent_allocno.
11196         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
11197         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
11198
11199         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
11200         statement.
11201
11202         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
11203         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
11204         minmax_set_iter_cond, minmax_set_iter_next,
11205         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
11206         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
11207         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
11208         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
11209         uses changed.
11210
11211         * ira-int.h (struct live_range, live_range_t): Renamed from struct
11212         ira_allocno_live_range and allocno_live_range_t; all uses changed.
11213         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
11214         All uses changed.
11215
11216 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
11217
11218         * thumb2.md (thumb2_tlobits_cbranch): Delete.
11219         (peephole2 to convert zero_extract/compare of single bit to
11220          lshift/compare): New.
11221
11222 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
11223
11224         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
11225         recursive call and call to 'int_const_binop'.
11226         (build_range_check, fold_cond_expr_with_comparison, unextend,
11227         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
11228         multiple_of_p): Adjust call to const_binop.
11229
11230 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
11231
11232         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
11233         determine size of XFmode operand.
11234         (XFmode extended DFmode push splitter): Ditto.
11235         (XFmode extended SFmode push splitter): Ditto.
11236
11237 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
11238
11239         PR target/44588
11240         * config/i386/i386.md (extract_code): New.
11241         (<u>divmodqi4): Likewise.
11242         (divmodhiqi3): Likewise.
11243         (udivmodhiqi3): Likewise.
11244         (<u>divqi3): Remvoved.
11245
11246 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
11247
11248         PR middle-end/44492
11249         * recog.h (struct recog_data): Add is_asm field.
11250         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
11251         present in constraints of inline-asm operand and memory operand
11252         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
11253         (extract_insn): Initialize recog_data.is_asm.
11254         * doc/md.texi (Constraints): Document operand side-effect rules.
11255
11256 2010-06-24  Andi Kleen  <ak@linux.intel.com>
11257
11258         * c-parser.c (c_parser_conditional_expression): Call
11259         warn_for_omitted_condop.
11260         * doc/invoke.texi: Document omitted condop warning.
11261
11262 2010-06-24  Nick Clifton<nickc@redhat.com>
11263
11264         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
11265         insn in the sequence is a jump insn before setting its label.
11266
11267 2010-06-24  Alan Modra  <amodra@gmail.com>
11268
11269         * collect2.c (main): Match exactly --version and --help.
11270
11271 2010-06-24  DJ Delorie  <dj@redhat.com>
11272
11273         * config/m32c/m32c-pragma.c: Don't include rtl.h.
11274
11275 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
11276
11277         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
11278         using X87MODEF mode iterator.
11279         (pushsf splitter): Macroize splitter using P mode iterator.
11280         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
11281         mode iterator.
11282
11283         (*movxf_internal): Rename from *movxf_integer.
11284         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
11285         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
11286         (*movdf_internal): Rename from *movdf_integer.
11287         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
11288         (*movsf_internal): Rename from *movdf_1.
11289
11290 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
11291
11292         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
11293         (const_gimple_seq_node): Removed typedefs.
11294
11295         * gimple.h (gimple_seq_node_d, gimple_seq_node)
11296         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
11297
11298 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
11299
11300         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
11301         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
11302         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
11303         and CODE_FOR_vec_extract_lo_v4df.
11304
11305         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
11306         Changed to define_insn_and_split.
11307         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
11308         (vec_extract_lo_v16hi): Likewise.
11309         (vec_extract_lo_v32qi): Likewise.
11310         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
11311         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
11312
11313 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
11314
11315         PR target/44640
11316         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
11317         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
11318         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
11319         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
11320         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
11321
11322         PR target/44640
11323         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
11324
11325         PR other/44644
11326         * df-core.c (struct df): Rename to df_d.
11327         * df.h (struct df): Likewise.
11328         * dse.h (struct df): Remove forward declaration.
11329         * recog.h (struct insn_data): Rename to:
11330         (struct_insn_data_d).  Adjusted all users.
11331
11332 2010-06-23  Arnaud Charlet  <charlet@adacore.com
11333
11334         PR ada/22220
11335         * doc/install.texi: Update requirements to build GNAT.
11336
11337 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
11338
11339         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
11340         enum type.
11341         (m68k_sched_attr_opx_type): Remove unreachable return.
11342         (m68k_sched_attr_opy_type): Likewise.
11343         (m68k_sched_attr_size): Likewise.
11344         (sched_get_opxy_mem_type): Likewise.
11345         (m68k_sched_attr_op_mem): Likewise.
11346
11347 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
11348
11349         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
11350         new statement and adjust VDEF only if necessary.  Remove superfluous
11351         call to maybe_clean_or_replace_eh_stmt.
11352         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
11353         copy the flags.
11354         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
11355         * tree-inline.c (copy_bb): ...and not there.
11356
11357 2010-06-22  Cary Coutant  <ccoutant@google.com>
11358
11359         * dwarf2out.c (is_nested_in_subprogram): New function.
11360         (should_move_die_to_comdat): Use it.
11361         (copy_ancestor_tree): Don't mark DIEs here.
11362         (copy_decls_walk): Start walk from root of newly-added tree;
11363         mark DIEs here instead.
11364
11365 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
11366
11367         * config/i386/i386.md (unit): Also check sseishft1.
11368
11369 2010-06-22  Jan Hubicka  <jh@suse.cz>
11370
11371         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
11372         enabled.
11373
11374 2010-06-22  Jan Hubicka  <jh@suse.cz>
11375
11376         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
11377         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
11378         Return true if something changed.
11379         * df.h (df_confluence_function_n): Return bool.
11380         * df-core.c (df_worklist_propagate_forward,
11381         df_worklist_propagate_backward): Track changes and ages.
11382         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
11383         track ages.
11384         * dse.c (dse_confluence_n): Return always true.
11385
11386 2010-06-22  Jan Hubicka  <jh@suse.cz>
11387
11388         * bitmap.c (bitmap_clear_bit): Micro optimize.
11389
11390 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
11391
11392         * config/i386/i386.md (SWI1248x): New mode iterator.
11393         (SWI48x): Ditto.
11394         (SWI12): Ditto.
11395         (SWI24): Ditto.
11396
11397         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
11398         SWI1248x mode iterator.
11399         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
11400         using SWI124 mode iterator.
11401         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
11402         mode iterator.
11403         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
11404         *pushdi2_prologue_rex64 using P mode iterator.
11405         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
11406         using SWI48 mode iterator.
11407         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
11408         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
11409         using SWI1248x mode iterator.
11410         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
11411         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
11412         SWI48 mode iterator.
11413         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
11414         iterator.
11415         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
11416         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
11417         SWI12 mode iterator.
11418         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
11419         SWI12 mode iterator.
11420         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
11421         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
11422         SWI24 mode iterator.
11423         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
11424         SWI48 mode iterator.
11425         (mov<mode>_insn_1): New expander.
11426         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
11427         using SWI48x mode iterator.
11428
11429         (*movoi_internal_avx): Rename from *movoi_internal.
11430         (*movti_internal_rex64): Rename from *movti_rex64.
11431         (*movti_internal_sse): Rename from *movti_sse.
11432         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
11433         (*movdi_internal): Rename from *movdi_2.
11434         (*movsi_internal): Rename from *movsi_1.
11435         (*movhi_internal): Rename from *movhi_1.
11436         (*movqi_internal): Rename from *movqi_1.
11437
11438         (insv): Update the call to gen_movsi_insv_1 for rename.
11439         * config/i386/i386.c (promote_duplicated_reg): Ditto.
11440
11441 2010-06-22  Jan Hubicka  <jh@suse.cz>
11442
11443         * passes.c (execute_function_todo): Move call of statistics_fini_pass
11444         to ...
11445         (execute_todo) ... this one.
11446
11447 2010-06-22  Alan Modra  <amodra@gmail.com>
11448
11449         PR target/44364
11450         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
11451         * caller-save.c (insert_restore, insert_save): Use non-validate
11452         form of adjust_address.
11453
11454 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11455
11456         PR target/39690
11457         * config/pa/pa.c (override_options): Disable
11458         -freorder-blocks-and-partition.
11459
11460 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
11461
11462         PR target/44615
11463         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
11464
11465         * config/i386/i386.md (type): Add sseishft1
11466
11467         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
11468         (ppro_insn_load): Likewise.
11469         (ppro_insn_store): Likewise.
11470         (ppro_insn_both): Likewise.
11471
11472         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
11473         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
11474         for type.
11475         (*vec_extractv2di_1_avx): Likewise.
11476         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
11477         type.  Remove atom_unit.
11478         (*vec_extractv2di_1_sse2): Likewise.
11479
11480 2010-06-21  DJ Delorie  <dj@redhat.com>
11481
11482         * diagnostic.h (diagnostic_classification_change_t): New.
11483         (diagnostic_context): Add history and push/pop list.
11484         (diagnostic_push_diagnostics): Declare.
11485         (diagnostic_pop_diagnostics): Declare.
11486         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
11487         from pragmas in a history chain instead of the global table.
11488         (diagnostic_push_diagnostics): New.
11489         (diagnostic_pop_diagnostics): New.
11490         (diagnostic_report_diagnostic): Scan history chain to find state
11491         of diagnostics as of the diagnostic location.
11492         * opts.c (set_option): Pass UNKNOWN_LOCATION to
11493         diagnostic_classify_diagnostic.
11494         (enable_warning_as_error): Likewise.
11495         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
11496         use in the history chain.
11497         * doc/extend.texi: Document pragma GCC diagnostic changes.
11498
11499 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
11500
11501         * dwarf2out.c (add_linkage_name): New function.  Don't add
11502         anything to DW_TAG_member DIEs.
11503         (add_name_and_src_coords_attributes): Use it.
11504         (gen_variable_die): Call it for C++ static data members if
11505         specification is DW_TAG_member.
11506
11507         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
11508         C++ char16_t and char32_t.
11509
11510         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
11511         * genattrtab.c: Include vecprim.h.
11512         (cached_attrs, cached_attr_count, attrs_seen_once,
11513         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
11514         attrs_cached_after): New variables.
11515         (find_attrs_to_cache): New function.
11516         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
11517         (write_test_expr): Add attrs_cached argument, return it too,
11518         attempt to cache non-const attributes used more than once in
11519         a single case handling.
11520         (write_attr_get): Use find_attrs_to_cache, for caching candidates
11521         emit cached_* variables.  Adjust write_attr_set callers.
11522         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
11523         to find attributes that should be cached in this block.  Adjust
11524         write_test_expr callers.
11525         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
11526         callers.
11527         (make_automaton_attrs): Adjust write_test_expr caller.
11528
11529         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
11530         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
11531         (make_automaton_attrs): If find_tune_attr returns non-NULL,
11532         write separate internal_dfa_insn_code_* and insn_default_latency_*
11533         functions for each attribute's value and emit init_sched_attrs
11534         function and function pointers.
11535         * genattr.c (const_attrs, reservations): New variables.
11536         (gen_attr): Add const attributes to const_attrs vector.
11537         (check_tune_attr, find_tune_attr): New functions.
11538         (main): Add reservations to reservations vector.  If find_tune_attr
11539         returns true, add prototype for init_sched_attrs and make
11540         internal_dfa_insn_code and insn_default_latency function pointers,
11541         otherwise define init_sched_attrs as dummy macro.
11542         * cfgexpand.c: Include insn-attr.h.
11543         (gimple_expand_cfg): Call init_sched_attrs.
11544
11545         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
11546
11547         PR target/44575
11548         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
11549         va_arg from a set of register save slots into a temporary,
11550         if the container is bigger than type size, do the copying
11551         using smaller mode or using memcpy.
11552
11553         PR bootstrap/44426
11554         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
11555         prototype.
11556         (sel_print_to_dot): Remove macro.
11557         (sel_print): Likewise.  New prototype.
11558         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
11559         (sel_print): New function.
11560
11561 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11562
11563         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
11564         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
11565
11566 2010-06-21  Nick Clifton  <nickc@redhat.com>
11567
11568         * config/rx/rx.h (PTRDIFF_TYPE): Define.
11569         (SMALL_REGISTER_CLASS): Define (to zero).
11570         (PRINT_OPERAND): Delete.
11571         (PRINT_OPERAND_ADDRESS): Delete.
11572         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
11573         (rx_print_operand_address): Delete prototype.
11574         * config/rx/rx.c (rx_print_operand): Make static.
11575         Allow %H and %L to handle CONST_DOUBLEs.
11576         (rx_print_operand_address): Make static.
11577         (rx_gen_move_template): Rename local variable 'template' to
11578         out_template.
11579         (rx_function_arg): Do not pass unknown sized objects in registers.
11580         (TARGET_PRINT_OPERAND): Define.
11581         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11582
11583 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
11584
11585         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
11586
11587 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
11588
11589         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
11590         stack-alignment for simple leaf-functions.
11591
11592 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11593
11594         * doc/install.texi: Document bootstrap-lto.
11595
11596 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
11597
11598         PR debug/44248
11599         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
11600         (input_function): Drop them here, if VTA is disabled.
11601
11602 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
11603
11604         PR target/44546
11605         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
11606         New predicate.
11607         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
11608         ix86_swapped_fp_comparsion_operator instead of
11609         ix86_fp_comparison_operator.
11610
11611         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
11612         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
11613         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
11614         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
11615         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
11616         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
11617
11618 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
11619
11620         PR other/32998
11621         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
11622         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
11623         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
11624         (decode_cmdline_option): Update for this return value.  Set
11625         orig_option_with_args_text field.  Set arg field for unknown
11626         options.  Make static.
11627         (decode_cmdline_options_to_array): New.
11628         (prune_options): Update handling of find_opt return value.
11629         * opts.c (read_cmdline_option): Take decoded option.  Return void.
11630         (read_cmdline_options): Take decoded options.
11631         (decode_options): Add parameters for decoded options.  Use
11632         decode_cmdline_options_to_array.  Use decoded options for -O
11633         scan.  Use integral_argument for -O parameters.  Update call to
11634         read_cmdline_options.
11635         (enable_warning_as_error): Update handling of find_opt return value.
11636         * opts.h: Update comment on unknown options.
11637         (struct cl_decoded_option): Update comments on opt_index and arg.
11638         Add orig_option_with_args_text.
11639         (decode_cmdline_option): Remove.
11640         (decode_cmdline_options_to_array): Declare.
11641         (decode_options): Update prototype.
11642         * toplev.c (save_argv): Remove.
11643         (save_decoded_options, save_decoded_options_count): New.
11644         (read_integral_parameter): Remove.
11645         (print_switch_values): Use decoded options.
11646         (toplev_main): Don't set save_argv.  Update call to decode_options.
11647         * toplev.h (read_integral_parameter): Remove.
11648         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
11649
11650 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
11651
11652         PR target/44072
11653         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
11654         immediate.
11655         * constraints.md (Pw, Px): New constraints.
11656         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
11657
11658 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
11659
11660         * config/i386/sse.md (fma4modesuffixf4): Removed.
11661         (ssemodesuffixf2s): Likewise.
11662         (ssemodesuffixf4): Likewise.
11663         (ssemodesuffixf2c): Likewise.
11664         (ssescalarmodesuffix2s): Likewise.
11665         (avxmodesuffixf2c): Likewise.
11666         (ssemodesuffix): New.
11667         (ssescalarmodesuffix): Likewise.
11668         Update patterns with ssemodesuffix and ssescalarmodesuffix.
11669
11670 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
11671
11672         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
11673
11674 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
11675
11676         * stor-layout.c (debug_rli): Remove unused local variables.
11677
11678 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
11679
11680         PR rtl-optimization/40900
11681         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
11682         original expression for later reuse.
11683         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
11684         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
11685
11686 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
11687
11688         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
11689         double_int_fits_in_uhwi_p): Implement as static inline.
11690         (double_int_xor): New inline function.
11691         (double_int_lrotate, double_int_rrotate, double_int_max,
11692         double_int_umax, double_int_smax, double_int_min, double_int_umin,
11693         double_int_smin): Declare.
11694         (lrotate_double, rrotate_double): Remove declaration.
11695         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
11696         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
11697         (double_int_lrotate, double_int_rrotate, double_int_max,
11698         double_int_umax, double_int_smax, double_int_min, double_int_umin,
11699         double_int_smin): New function.
11700         * fold-const.c (int_const_binop): Clean up, use double_int_*
11701         functions.
11702         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
11703         double_int_* and immed_double_int_const functions.
11704
11705 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
11706
11707         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
11708         * function.c (types_used_by_cur_var_decl): Likewise.
11709         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
11710
11711 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
11712
11713         * tree.h (record_layout_info): Change type of pending_statics field
11714         to a VEC.
11715         * stor-layout.c (start_record_layout): Store NULL into
11716         pending_statics.
11717         (debug_rli): Call debug_vec_tree instead of debug_tree.
11718         (place_field): Likewise.
11719         (finish_record_layout): Likewise.
11720
11721 2010-06-18  Alan Modra  <amodra@gmail.com>
11722
11723         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
11724
11725 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11726
11727         PR target/43740
11728         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
11729         for SET source operand from SET destination operand.
11730
11731 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
11732
11733         PR rtl-optimization/39871
11734         * reload1.c (init_eliminable_invariants): For flag_pic, disable
11735         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
11736         (function_invariant_p): Rule out a plus of frame or arg pointer with
11737         a SYMBOL_REF.
11738         * ira.c (find_reg_equiv_invariant_const): Likewise.
11739
11740 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
11741
11742         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
11743         print_operand_address and puts to output the operand for CONST.
11744
11745 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
11746
11747         PR debug/44572
11748         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
11749         hook.
11750
11751 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11752
11753         * v850-protos.h (print_operand): Delete.
11754         (print_operand_address): Delete.
11755         * v850.h (PRINT_OPERAND): Delete.
11756         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11757         (PRINT_OPERAND_ADDRESS): Delete.
11758         * v850.c (print_operand_address): Rename to...
11759         (v850_print_operand_address): ...this.  Make static. Call
11760         v850_print_operand.
11761         (print_operand): Rename to...
11762         (v850_print_operand): ...this.  Make static.  Call
11763         v850_print_operand_address.
11764         (v850_print_operand_punct_valid_p): New function.
11765         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11766         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11767
11768 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11769
11770         * config/sh/sh-protos.h (print_operand): Delete.
11771         (print_operand_address): Delete.
11772         * config/sh/sh.h (PRINT_OPERAND): Delete.
11773         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11774         (PRINT_OPERAND_ADDRESS): Delete.
11775         * config/sh/sh.c (sh_print_operand_address): Make static.
11776         (sh_print_operand): Make static.  Call sh_print_operand_address
11777         and sh_print_operand.
11778         (sh_print_operand_punct_valid_p): New function.
11779         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11780         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11781
11782 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11783
11784         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
11785         (mcore_print_operand_address): Delete.
11786         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
11787         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11788         (PRINT_OPERAND_ADDRESS): Delete.
11789         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
11790         (mcore_print_operand): Make static.
11791         (mcore_print_operand_punct_valid_p): New function.
11792         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
11793         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
11794
11795 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11796
11797         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
11798         (print_operand_address): Delete.
11799         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
11800         (PRINT_OPERAND_ADDRESS): Delete.
11801         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
11802         static.
11803         (m68hc11_print_operand): Make static.
11804         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
11805
11806 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11807
11808         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
11809         (m32r_print_operand_address): Delete.
11810         * config/m32r/m32r.h (m32r_punct_chars): Delete.
11811         (PRINT_OPERAND): Delete.
11812         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11813         (PRINT_OPERAND_ADDRESS): Delete.
11814         * config/m32r/m32r.c (m32r_punct_chars): Make static.
11815         (m32r_print_operand_address): Make static.
11816         (m32r_print_operand): Make static.
11817         (m32r_print_operand_punct_valid_p): New function.
11818         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11819         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11820
11821 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11822
11823         * config/iq2000/iq2000-protos.h (print_operand): Delete.
11824         (print_operand_address): Delete.
11825         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
11826         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11827         (PRINT_OPERAND_ADDRESS): Delete.
11828         (iq2000_print_operand_punct): Delete.
11829         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
11830         (iq2000_print_operand_address): Make static.
11831         (iq2000_print_operand): Make static.
11832         (iq2000_print_operand_punct_valid_p): New function.
11833         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11834         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11835
11836 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11837
11838         * config/frv/frv-protos.h (frv_print_operand): Delete.
11839         (frv_print_operand_address): Delete.
11840         * config/frv/frv.h (PRINT_OPERAND): Delete.
11841         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11842         (PRINT_OPERAND_ADDRESS): Delete.
11843         * config/frv/frv.c (frv_print_operand_address): Make static.
11844         (frv_print_operand): Make static.
11845         (frv_print_operand_punct_valid_p): New function.
11846         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11847         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11848
11849 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
11850
11851         * tree.h (vec_member): Declare.
11852         * tree.c (vec_member): Define.
11853
11854 2010-06-17  Richard Guenther  <rguenther@suse.de>
11855
11856         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
11857         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
11858
11859 2010-06-17  Richard Guenther  <rguenther@suse.de>
11860
11861         * tree-inline.c (declare_return_variable): Remove bogus code.
11862
11863 2010-06-17  Richard Guenther  <rguenther@suse.de>
11864
11865         * gimplify.c (gimplify_bind_expr): Always promote complex
11866         and vector variables to registers if possible.
11867
11868 2010-06-17  Richard Guenther  <rguenther@suse.de>
11869
11870         * expr.c (get_inner_reference): Use double_int for bit_offset
11871         calculation.
11872
11873 2010-06-16  DJ Delorie  <dj@redhat.com>
11874
11875         * common.opt (-fstrict-volatile-bitfields): new.
11876         * doc/invoke.texi: Document it.
11877         * fold-const.c (optimize_bit_field_compare): For volatile
11878         bitfields, use the field's type to determine the mode, not the
11879         field's size.
11880         * expr.c (expand_assignment): Likewise.
11881         (get_inner_reference): Likewise.
11882         (expand_expr_real_1): Likewise.
11883         * expmed.c (store_fixed_bit_field): Likewise.
11884         (extract_bit_field_1): Likewise.
11885         (extract_fixed_bit_field): Likewise.
11886
11887 2010-06-16  Richard Guenther  <rguenther@suse.de>
11888
11889         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
11890
11891 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
11892
11893         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
11894         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
11895         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
11896         * debug.c: Likewise.
11897         * sdbout.c: Likewise.
11898         * vmsdbgout.c: Likewise.
11899         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
11900         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
11901         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
11902         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
11903         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
11904         * dwarf2out.c (dw_fde_struct): New fields
11905         dw_fde_vms_{end,begin}_prologue.
11906         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
11907         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
11908         (dwarf2out_vms_end_prologue): New function.
11909         (dwarf2out_vms_begin_epilogue): New function.
11910         (dw_val_struct): New value dw_val_class_vms_delta.
11911         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
11912         begin_epilogue for VMS.
11913         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
11914         new static functions.
11915         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
11916         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
11917         static functions.
11918         (print_die): New case dw_val_class_vms_delta.
11919         (attr_checksum): Likewise.
11920         (same_dw_val_p: Likewise.
11921         (size_of_die): Likewise.
11922         (value_format): Likewise.
11923         (output_die): Likewise.
11924         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
11925         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
11926         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
11927         dwarf2out_cfi_begin_epilogue
11928         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
11929
11930 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
11931
11932         * config/cris/cris-protos.h (cris_print_operand): Delete.
11933         (cris_print_operand_address): Delete.
11934         * config/cris/cris.h (PRINT_OPERAND): Delete.
11935         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11936         (PRINT_OPERAND_ADDRESS): Delete.
11937         * config/cris/cris.c (cris_print_operand_address): Make static.
11938         (cris_print_operand): Make static.
11939         (cris_print_operand_punct_valid_p): New function.
11940         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11941         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11942
11943 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
11944
11945         * config/arm/arm-protos.h (arm_print_operand): Delete.
11946         (arm_print_operand_address): Delete.
11947         * config/arm/arm.h (PRINT_OPERAND): Delete.
11948         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
11949         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
11950         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
11951         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
11952         (arm_print_operand): Make static.
11953         (arm_print_operand_punct_valid_p): New function.
11954         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
11955         (TARGET_PRINT_OPERAND_ADDRESS): Define.
11956
11957 2010-06-16  Nick Clifton  <nickc@redhat.com>
11958
11959         * config/rx/constraints.md (NEGint4): New constraint.
11960         * config/rx/rx.md (attr cc): Add set_zsc.
11961         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
11962         initialised.
11963         (cmpsf): Likewise.
11964         (call_internal): Clobber the cc0 register.
11965         (call_value_internal): Likewise.
11966         (cstoresi4): Likewise.
11967         (movsieq): Likewise.
11968         (movsine): Likewise.
11969         (addsi3): Add alternative to handle small negative constants.
11970         (sunsi3): Likewise.
11971         (addsi3): Do not set the O bit in the cc0 register.
11972         (adddi3): Likewise.
11973         (subsi3): Likewise.
11974         (subdi3): Likewise.
11975         (andsi3): Reorder alternatives to prefer shorter forms.
11976         (mulsi3): Likewise.
11977         (iorsi3): Likewise.
11978         (negsi2): Note that the cc0 flags are set.
11979         (rotlsi3): Note that only the Z and S bits are set in cc0.
11980         (lshrsi3): Likewise.
11981         (ashlsi3): Likewise.
11982         (subsf3): Use %Q for the MEM operand.
11983         (fix_truncsfsi2): Likewise.
11984         (floatsisf2): Likewise.
11985         (bitset): Remove early clobber from destination.
11986         (bitset_in_memory): Likewise.
11987         (lrintsf2): Clobber the cc0 register.
11988         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
11989         (rx_print_operand): Handle %N.
11990
11991 2010-06-16  Jan Hubicka  <jh@suse.cz>
11992
11993         * df-core.c (df_compact_blocks): Free problem_temps vector.
11994
11995 2010-06-16  Martin Jambor  <mjambor@suse.cz>
11996
11997         PR tree-optimization/43905
11998         * tree-sra.c: Include tree-inline.h.
11999         (create_abstract_origin): Removed.
12000         (modify_function): Version the call graph node instead of creating
12001         abstract origins and dealing with same_body aliases.
12002         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
12003         function is versionable.
12004         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
12005
12006 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
12007
12008         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
12009         (CHOOSE_DYNAMIC_LINKER): Update.
12010
12011 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
12012
12013         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
12014         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
12015         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
12016         *prefetch_3dnow_rex.
12017
12018 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
12019
12020         * target.h (struct asm_out):Add declare_constant_name field.
12021         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12022         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
12023         * output.h (default_asm_declare_constant_name): Declare.
12024         (assemble_label): Update prototype.
12025         * varasm.c (assemble_constant_contents): Use
12026         targetm.asm_out.declare_constant_name target hook.
12027         (assemble_label): Add 'file' argument.
12028         (default_asm_declare_constant_name): New function.
12029         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
12030         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
12031         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
12032
12033         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
12034         * config/darwin.c (darwin_asm_declare_constant_name): New function.
12035         (machopic_output_indirection): Update assemble_label argument list.
12036         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
12037         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
12038
12039 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
12040
12041         PR middle-end/44391
12042         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
12043         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
12044
12045 2010-06-15  Richard Guenther  <rguenther@suse.de>
12046
12047         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
12048
12049 2010-06-15  Paul Brook  <paul@codesourcery.com>
12050
12051         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
12052         hard-float ABI.
12053
12054 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
12055
12056         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
12057         don't get a vector type for output.
12058
12059 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
12060
12061         PR fortran/44536
12062         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
12063         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
12064         (LANG_HOOKS_DECLS): Add it.
12065         * gimplify.c (omp_notice_variable): Call
12066         lang_hooks.decls.omp_report_decl.
12067
12068 2010-06-15  Martin Jambor  <mjambor@suse.cz>
12069
12070         PR lto/44464
12071         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
12072         on the newly dead SSA name.
12073
12074 2010-06-15  Alan Modra  <amodra@gmail.com>
12075
12076         * doc/invoke.texi: Add mcmodel to powerpc options.
12077         * configure.ac: Add HAVE_LD_LARGE_TOC test.
12078         * configure: Regenerate.
12079         * config.in: Regenerate.
12080         * config/rs6000/linux64.opt (mcmodel): New.
12081         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
12082         (TARGET_CMODEL, SET_CMODEL): Define.
12083         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
12084         select CMODEL_MEDIUM default.
12085         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
12086         (TARGET_CMODEL): Define default.
12087         * config/rs6000/rs6000.c (cmodel): New variable.
12088         (rs6000_explicit_options): Add cmodel field.
12089         (rs6000_handle_option): Handle -mcmodel.
12090         (create_TOC_reference): Add largetoc_reg param.  Generate high,
12091         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
12092         (rs6000_delegitimize_address): Recognise new toc reference rtl
12093         and minimal-toc rtl.
12094         (rs6000_legitimize_reload_address): Handle new toc references.
12095         (print_operand_address): Handle legitimate_constant_pool_address_p
12096         match before lo_sum.
12097         (rs6000_eliminate_indexed_memrefs): Tidy.
12098         (rs6000_emit_move): Tweak threshold for inlining constants.
12099         Keep rs6000_emit_allocate_stack large stack frame offsets
12100         loaded into r0 inline.
12101         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
12102         (tocrel_base, tocrel_offset): New variables.
12103         (toc_relative_expr_p): Set them here.
12104         (print_operand_address): Skip over any offset on constant pool address.
12105         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
12106         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
12107         (offsettable_ok_by_alignment): New function.
12108         (rs6000_emit_move): Address suitably aligned local symbol_refs
12109         relative to the toc pointer for -mcmodel=medium.
12110         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
12111         strict param.  Allow lo_sum version of addressing.  Verify reg
12112         used for -mminimal-toc and -mcmodel != small.  Update all callers.
12113         * config/rs6000/constraints.md: Update for above change.
12114         * config/rs6000/predicates.md: Likewise.
12115         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
12116         code.
12117         (tls_gd): Split for -mcmodel=medium/large.
12118         (tls_gd_high, tls_gd_low): New.
12119         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
12120         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
12121         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
12122         (largetoc_high, largetoc_low): New.
12123         (cmptf_internal2): Add clobber.
12124         * config/rs6000/rs6000-protos.h: Update.
12125
12126 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
12127
12128         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
12129         true if no prefetch is going to be generated for a given group.
12130         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
12131         estimate the prefetch_count.
12132         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
12133         prefetch count by considering the unroll_factor and prefetch_mod
12134         for is_loop_prefetching_profitable.
12135
12136 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
12137
12138         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
12139         anything if the argument is not a MEM.
12140
12141 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12142
12143         PR debug/43650
12144         PR debug/44181
12145         PR debug/44247
12146         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
12147         debug stmts.
12148         (canonicalize_loop_ivs): Likewise.
12149
12150 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
12151
12152         PR debug/43656
12153         * haifa-sched.c (setup_insn_reg_pressure_info,
12154         update_register_pressure): Reject debug insns.
12155         (ready_sort): Don't setup reg pressure for debug insns.
12156         (schedule_insn): Don't update reg pressure for debug insns.
12157
12158 2010-06-14  Richard Guenther  <rguenther@suse.de>
12159
12160         * lto-streamer.c (cached_bp): Remove.
12161         (bitpack_delete): Likewise.
12162         (bitpack_create): Likewise.
12163         (bp_get_next_word): Likewise.
12164         (bp_pack_value, bp_unpack_value): Move ...
12165         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
12166         Re-implement.
12167         (struct bitpack_d): Likewise.
12168         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
12169         New inline functions.
12170         * lto-streamer-out.c (lto_output_bitpack): Remove.
12171         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12172         (pack_value_fields): Adjust.
12173         (lto_write_tree): Likewise.
12174         (output_gimple_stmt): Likewise.
12175         (output_function): Likewise.
12176         * lto-streamer-in.c (input_gimple_stmt): Adjust.
12177         (input_function): Likewise.
12178         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
12179         (lto_input_bitpack): Remove.
12180         (lto_materialize_tree): Adjust.
12181         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
12182         * lto-cgraph.c (lto_output_edge): Adjust.
12183         (lto_output_node): Likewise.
12184         (lto_output_varpool_node): Likewise.
12185         (lto_output_ref): Likewise.
12186         (input_node): Likewise.
12187         (input_varpool_node): Likewise.
12188         (input_ref): Likewise.
12189         (input_edge): Likewise.
12190         (output_node_opt_summary): Likewise.
12191         (input_node_opt_summary): Likewise.
12192         * ipa-pure-const.c (pure_const_write_summary): Likewise.
12193         (pure_const_read_summary): Likewise.
12194         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
12195         (ipa_read_indirect_edge_info): Likewise.
12196         (ipa_write_node_info): Likewise.
12197         (ipa_read_node_info): Likewise.
12198
12199 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
12200
12201         PR target/44534
12202         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
12203         (vec_extract_lo_v16hi): Likewise.
12204         (vec_extract_lo_v32qi): Likewise.
12205
12206 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12207
12208         PR bootstrap/44426
12209         * tree.h (build_call_expr): Don't define as vararg macro, instead
12210         add a prototype.
12211         * builtins.c (build_call_nofold): Remove.
12212         (expand_builtin_int_roundingfn, expand_builtin_pow,
12213         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
12214         expand_builtin_memset_args, expand_builtin_strcmp,
12215         expand_builtin_strncmp, expand_builtin_memory_chk): Use
12216         build_call_nofold_loc instead of build_call_nofold.
12217         (build_call_expr): New function.
12218
12219         PR tree-optimization/44508
12220         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
12221         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
12222         don't eliminate trivially dead stmts.
12223         * tree-vrp.c (vrp_finalize): Pass false as last argument
12224         to substitute_and_fold.
12225         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
12226         to substitute_and_fold.
12227         * tree-ssa-ccp.c (ccp_finalize): Likewise.
12228
12229         PR bootstrap/44509
12230         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
12231
12232 2010-06-14  Ira Rosen  <irar@il.ibm.com>
12233
12234         PR tree-optimization/44507
12235         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
12236         to build initial vector for BIT_AND_EXPR.
12237         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
12238
12239 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
12240
12241         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
12242         adjust z10prop set_attr.
12243
12244 2010-06-13  Jan Hubicka  <jh@suse.cz>
12245
12246         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
12247         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
12248         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
12249         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
12250         datastructure checks into checking asserts.
12251         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
12252         * tree-ssa-sccvn.c (VN_INFO): Likewise.
12253         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
12254         df_ref_create_structure): Likewise.
12255         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
12256         pool_free): Use gcc_checking_assert.
12257         * alias.c (get_alias_set): Likewise.
12258         * var-tracking.c (variable_htab_free, shared_hash_copy,
12259         canonicalize_values_mark, variable_merge_over_cur): Likewise.
12260         * lto-streamer.c (bp_unpack_value): Likewise.
12261
12262 2010-06-13  Richard Guenther  <rguenther@suse.de>
12263
12264         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
12265         Do not stream but initialize TYPE_CANONICAL to NULL.
12266         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
12267         * gimple.c (gimple_types_compatible_p): Disregard
12268         TYPE_STRUCTURAL_EQUALITY_P.
12269         (gimple_register_type): Use TYPE_CANONICAL as cache.
12270         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
12271         before registering common types.
12272         * config/i386/i386.c (ix86_function_arg_boundary): Do not
12273         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
12274         * tree.h (TYPE_CANONICAL): Clarify documentation.
12275
12276 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
12277
12278         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
12279         LIBCALL_VALUE): Remove macros.
12280         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
12281         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
12282         TARGET_FUNCTION_VALUE_REGNO_P): Define.
12283         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
12284         (ia64_function_value): Make static. Handle receiving the function
12285         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
12286
12287 2010-06-12  Jan Hubicka  <jh@suse.cz>
12288
12289         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
12290         at correct place.
12291
12292 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
12293
12294         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
12295
12296 2010-06-12  Jan Hubicka  <jh@suse.cz>
12297
12298         * df-core.c (df_clear_bb_info): New function.
12299         (df_set_blocks): bb_info is always allocated.
12300         (df_get_bb_info): Use block_info_elt_size.
12301         (df_set_bb_info): Likewise.
12302         (df_compact_blocks): Update for new block_info.
12303         (grow_bb_info): New function.
12304         * df-problems.c (df_grow_bb_info): Move to df-core.c
12305         (df_rd_set_bb_info): Remove.
12306         (df_rd_free_bb_info): Do not free block pool.
12307         (df_rd_alloc): Do not create pool, use check for
12308         obstack presence instead of NULL pointer for new blocks.
12309         (df_rd_free): DO not free alloc pool; clear block_info.
12310         (problem_RD): Add size of block info structure.
12311         (df_lr_set_bb_info): Remove.
12312         (df_lr_free_bb_info): Do not free block pool.
12313         (df_lr_alloc): Do not create pool, use check for
12314         obstack presence instead of NULL pointer for new blocks.
12315         (df_lr_free): DO not free alloc pool; clear block_info.
12316         (problem_LR): Add size of block info structure.
12317         (df_live_set_bb_info): Remove.
12318         (df_live_free_bb_info): Do not free block pool.
12319         (df_live_alloc): Do not create pool, use check for
12320         obstack presence instead of NULL pointer for new blocks.
12321         (df_live_free): DO not free alloc pool; clear block_info.
12322         (problem_LIVE): Add size of block info structure.
12323         (problem_CHAIN): Add size of block info structure.
12324         (df_byte_lr_set_bb_info): Remove.
12325         (df_byte_lr_free_bb_info): Do not free block pool.
12326         (df_byte_lr_alloc): Do not create pool, use check for
12327         obstack presence instead of NULL pointer for new blocks.
12328         (df_byte_lr_free): DO not free alloc pool; clear block_info.
12329         (problem_BYTE_LR): Add size of block info structure.
12330         (problem_NOTE): Add size of block info structure.
12331         (df_byte_MD_set_bb_info): Remove.
12332         (df_byte_MD_free_bb_info): Do not free block pool.
12333         (df_byte_MD_alloc): Do not create pool, use check for
12334         obstack presence instead of NULL pointer for new blocks.
12335         (df_byte_MD_free): DO not free alloc pool; clear block_info.
12336         (problem_BD): Add size of block info structure.
12337         * df-scan.c (df_scan_free_internal): Free block pool.
12338         (df_scan_set_bb_info): Remove.
12339         (df_scan_free_bb_info): Check for artificial_defs instead
12340         of bb_info being non-NULL.
12341         (df_scan_alloc): DO not create df_scan_block pool.
12342         (problem_SCAN): Set size of block info.
12343         (df_bb_refs_record): Do not allocate bb_info.
12344         * df.h (df_problem): Add block_info_elt_size.
12345         (struct dataflow): Change block_info to void *.
12346         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
12347         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
12348         in-line structures.
12349
12350 2010-06-12  Jan Hubicka  <jh@suse.cz>
12351
12352         PR tree-optimize/44485
12353         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
12354         containing use of return value of noreturn function.
12355
12356 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
12357
12358         * targhooks.c (default_function_value): Don't use
12359         FUNCTION_OUTGOING_VALUE.
12360         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
12361         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
12362
12363 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
12364
12365         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
12366         Add crtfastmath.o to extra_parts.
12367         * config/mips/crtfastmath.c: New.
12368         * config/mips/linux.h (ENDFILE_SPEC): New.
12369
12370 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
12371
12372         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
12373         old_type in parameter.
12374         (gcc_type_for_value): Update call to gcc_type_for_interval.
12375         (compute_type_for_level_1): Renamed compute_type_for_level.
12376         Update call to gcc_type_for_interval.
12377
12378 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12379
12380         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
12381         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
12382
12383 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
12384
12385         * opts-common.c: Include options.h.
12386         (integral_argument): Move from opts.c.
12387         (decode_cmdline_option): New.  Based on read_cmdline_option.
12388         * opts.c (integral_argument): Move to opts-common.c.
12389         (read_cmdline_option): Move most contents to
12390         decode_cmdline_option.  Use %qs in diagnostics.
12391         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
12392         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
12393         decode_cmdline_option): New.
12394
12395 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12396
12397         PR target/44481
12398         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
12399         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
12400         (partiysi2_cmp): Ditto.
12401         (*partiyhi2_cmp): Ditto.
12402         (*parityqi2_cmp): Remove.
12403
12404 2010-06-11  Jan Hubicka  <jh@suse.cz>
12405
12406         * bitmap.h (bmp_iter_next_bit): New.
12407         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
12408
12409 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
12410             Eric Botcazou  <ebotcazou@adacore.com>
12411
12412         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
12413         computed cost.
12414
12415 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12416
12417         * config/i386/i386.md (unspec): New define_c_enum.
12418         (unspecv): Ditto.
12419
12420 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
12421
12422         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
12423
12424 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
12425
12426         PR middle-end/44483
12427         * tree-if-conv.c (bb_predicate_s): New struct.
12428         (bb_predicate_p): New.
12429         (bb_has_predicate): New.
12430         (bb_predicate): New.
12431         (set_bb_predicate): New.
12432         (bb_predicate_gimplified_stmts): New.
12433         (set_bb_predicate_gimplified_stmts): New.
12434         (add_bb_predicate_gimplified_stmts): New.
12435         (init_bb_predicate): New.
12436         (free_bb_predicate): New.
12437         (is_predicated): Use bb_predicate.
12438         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
12439         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
12440         before processing their successors.
12441         (clean_predicate_lists): Removed.
12442         (find_phi_replacement_condition): Use bb_predicate.
12443         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
12444         computations.
12445         (insert_gimplified_predicates): New.
12446         (combine_blocks): Call insert_gimplified_predicates.
12447         (tree_if_conversion): Call free_bb_predicate instead of
12448         clean_predicate_lists.
12449
12450 2010-10-11  Paul Brook  <paul@codesourcery.com>
12451
12452         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
12453         * config/arm/arm.c (all_architectures): Change v7e-m default to
12454         cortexm4.
12455         * config/arm/arm-cores.def: Add cortex-m4.
12456         * config/arm/arm-tune.md: Regenerate.
12457
12458 2010-06-11  Jan Hubicka  <jh@suse.cz>
12459
12460         * ipa-pure-const.c (special_builtlin_state): New function.
12461         (check_call): Use it instead of special casign BUILT_IN_RETURN.
12462         (propagate_pure_const): Use it.
12463
12464 2010-06-11  Jan Hubicka  <jh@suse.cz>
12465
12466         * df-problems.c (df_live_scratch): Convert to bitmap_head.
12467         (df_live_alloc): Initialize df_live_scratch when initializing
12468         problem_data.
12469         (df_live_transfer_function): Update uses of df_live_scratch.
12470         (df_live_free): Free problem_data; clear df_live_scratch before
12471         releasing the obstack.
12472         (df_md_free): Free problem data.
12473
12474 2010-06-11  Jan Hubicka  <jh@suse.cz>
12475
12476         * doc/invoke.texi (Wsuggest-attribute): Document.
12477         (Wmissing-noreturn): Remove.
12478         * ipa-pure-const.c (warn_function_noreturn): New function.
12479         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
12480         warn_missing_noreturn.
12481         * common.opt (Wsuggest-attribute=noreturn): New.
12482         * tree-flow.h (warn_function_noreturn): Declare.
12483         * tree-cfg.c (execute_warn_function_noreturn): Use
12484         warn_function_noreturn.
12485         (gate_warn_function_noreturn): New.
12486         (pass_warn_function_noreturn): Update.
12487
12488 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12489
12490         * c-typeck.c (handle_warn_cast_qual): Add loc
12491         parameter. Improve warning message.
12492         (build_c_cast): Pass location to handle_warn_cast_qual.
12493
12494 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
12495
12496         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
12497         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
12498         insn mnemonic.
12499         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
12500
12501 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
12502
12503         Fix bootstap on mips
12504         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
12505         be naming typedefs.
12506
12507 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
12508
12509         * system.h (helper_const_non_const_cast): New inline for
12510         gcc version <= 4.0.
12511         (CONST_CAST2): For gcc version <= 4.0 use
12512         new helper to do const/non-const casting.
12513
12514 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12515
12516         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
12517         * Makefile.in (OBJS-common): Include insn-enums.o.
12518         (insn-enums.o): New rule.
12519         (simple_generated_c): Add insn-enums.c.
12520         (build/genenums.o): New rule.
12521         (genprogmd): Add "enums".
12522         * genconstants.c (print_enum_type): Declare a C string array
12523         for each enum.
12524         * genenums.c: New file.
12525         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
12526         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
12527         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
12528
12529 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12530
12531         * doc/md.texi (define_enum_attr): Document.
12532         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
12533         * read-md.h (lookup_enum_type): Declare.
12534         * read-md.c (lookup_enum_type): New function.
12535         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
12536         * genattrtab.c (attr_desc): Add an enum_name field.
12537         (evaluate_eq_attr): Take the associated attribute as argument.
12538         Get the enum prefix from the enum_name field, if defined.
12539         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
12540         (simplify_test_exp): Pass attr to evaluate_eq_attr.
12541         (add_attr_value): New function, split out from...
12542         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
12543         (write_test_expr): Pass attr to evaluate_eq_attr.
12544         (write_attr_get): Use the enum_name as the enum tag, if defined.
12545         (write_attr_valueq): Use the enum_name as a prefix, if defined.
12546         (find_attr): Initialize enum_name.
12547         (main): Handle DEFINE_ENUM_ATTR.
12548         * gensupport.c (process_rtx): Likewise.
12549         * config/mips/mips.h (mips_tune_attr): Delete.
12550         * config/mips/mips.md (cpu): Use define_attr_enum.
12551
12552 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12553
12554         * doc/md.texi (define_c_enum, define_enum): Document.
12555         * read-md.h (md_constant): Add a parent_enum field.
12556         (enum_value, enum_type): New structures.
12557         (upcase_string, traverse_enum_types): Declare.
12558         * read-md.c (enum_types): New variable.
12559         (upcase_string, add_constant): New functions.
12560         (handle_constants): Don't create the hash table here.
12561         Use add_constant.
12562         (traverse_md_constants): Don't check for a null md_constants.
12563         (decimal_string, handle_enum, traverse_enum_types): New functions.
12564         (read_md_files): Initialize md_constants and md_enums.
12565         * genconstants.c (print_md_constant): Ignore info argument.
12566         Only print constants that belong to no enum.
12567         (print_enum_type): New function.
12568         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
12569         for each defined enum type.
12570         * config/mips/mips.md (processor): New define_enum.
12571         (unspec): New define_c_enum.
12572         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
12573         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
12574         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
12575         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
12576         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
12577         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
12578         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
12579         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
12580         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
12581         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
12582         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
12583         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
12584         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
12585         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
12586         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
12587         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
12588         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
12589         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
12590         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
12591         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
12592         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
12593         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
12594         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12595         (UNSPEC_RDDSP): Move to mips-dsp.md.
12596         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
12597         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
12598         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
12599         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
12600         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
12601         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
12602         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
12603         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
12604         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
12605         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
12606         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
12607         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
12608         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
12609         Moved to mips-dspr2.md.
12610         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
12611         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
12612         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
12613         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
12614         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
12615         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
12616         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12617         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12618         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12619         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12620         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12621         UNSPEC_LOONGSON_PSADBH)
12622         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12623         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12624         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
12625         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12626         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12627         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12628         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
12629         (cpu): Update comment.
12630         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
12631         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
12632         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
12633         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
12634         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
12635         UNSPEC_LOONGSON_PCMPEQ)
12636         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
12637         UNSPEC_LOONGSON_PINSR_0)
12638         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
12639         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
12640         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
12641         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
12642         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
12643         UNSPEC_LOONGSON_PSADBH)
12644         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
12645         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
12646         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
12647         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
12648         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
12649         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
12650         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
12651         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
12652         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
12653         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
12654         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
12655         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
12656         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
12657         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
12658         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
12659         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
12660         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
12661         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
12662         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
12663         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
12664         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
12665         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
12666         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
12667         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
12668         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
12669         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
12670         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
12671         (UNSPEC_RDDSP): Moved from mips.md.
12672         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
12673         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
12674         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
12675         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
12676         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
12677         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
12678         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
12679         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
12680         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
12681         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
12682         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
12683         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
12684         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
12685         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
12686         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
12687         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
12688         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
12689         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
12690         (UNSPEC_SCC): Moved from mips.md.
12691         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
12692         "processor_type" to "processor".
12693         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
12694         * config/mips/mips.h (processor_type): Delete.
12695         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
12696         "processor_type" to "processor".
12697
12698 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12699
12700         * configure.ac (tm_include_list): Add insn-constants.h.
12701         * configure: Regenerate.
12702         * Makefile.in (GTM_H): Move insn-constants.h here from...
12703         (TM_H): ...here.
12704         * mkconfig.sh: Remove special handling for insn-constants.h.
12705
12706 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12707
12708         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
12709         (BUILD_MD): ...this new variable.
12710         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
12711         that include the old contents of simple_generated_h and
12712         simple_generated_c.
12713         (simple_generated_h, simple_generated_c): Include them.  Add
12714         insn-constants.h.
12715         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
12716         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
12717         Remove these dependencies from the main rule and include
12718         insn-conditions.md in the command line only if it appears
12719         in the dependency list.
12720         (insn-constants.h, s-constants): Delete.
12721         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
12722         or gensupport.h.
12723         (build/genmddeps.o): Likewise.
12724         (genprogrtl): New variable that contains everything from genprogmd
12725         except mddeps and constants.
12726         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
12727         depend on $(BUILD_MD)
12728         (genprog): New variable.  Make these programs depend on
12729         $(BUILD_ERRORS).
12730         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
12731         (main): Use read_md_files instead of init_rtx_reader_args.
12732         * genconstants.c: As for genmddeps.c.
12733         * read-md.h (read_skip_construct): Declare.
12734         * read-md.c (read_skip_construct): New function.
12735         (handle_file): Allow a null handle_directive, skipping the
12736         construct if so.
12737         (parse_include): Update the comment accordingly.
12738
12739 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12740
12741         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
12742         * genmddeps.c: Include read-md.h.
12743         (main): Call init_rtx_reader_args instead of init_md_reader_args.
12744         * genattr.c (main): Likewise.
12745         * genattrtab.c (main): Likewise.
12746         * genautomata.c (main): Likewise.
12747         * gencodes.c (main): Likewise.
12748         * genconditions.c (main): Likewise.
12749         * genconfig.c (main): Likewise.
12750         * genconstants.c (main): Likewise.
12751         * genemit.c (main): Likewise.
12752         * genextract.c (main): Likewise.
12753         * genflags.c (main): Likewise.
12754         * genopinit.c (main): Likewise.
12755         * genoutput.c (main): Likewise.
12756         * genpeep.c (main): Likewise.
12757         * genrecog.c (main): Likewise.
12758         * genpreds.c (main): Likewise.
12759         * gensupport.h (in_fname): Move to read-md.h.
12760         (init_md_reader_args_cb): Rename to...
12761         (init_rtx_reader_args_cb): ...this and return a bool.
12762         (init_md_reader_args): Rename to...
12763         (init_rtx_reader_args): ...this and return a bool.
12764         (include_callback): Move to read-md.h.
12765         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
12766         (file_name_list, first_dir_md_include): Move to read-md.c
12767         (first_bracket_include): Delete unused variable.
12768         (last_dir_md_include): Move to read-md.c.
12769         (process_include): Delete, moving code to read-md.c:handle_include.
12770         (process_rtx): Don't handle INCLUDE.
12771         (save_string): Delete.
12772         (rtx_handle_directive): New function.
12773         (init_md_reader_args_cb): Rename to...
12774         (init_rtx_reader_args_cb): ...this and return a boolean success value.
12775         Use read_md_args.
12776         (init_md_reader_args): Rename to...
12777         (init_rtx_reader_args): ...this and return a boolean success value.
12778         * rtl.def (INCLUDE): Delete.
12779         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
12780         argument.
12781         * read-rtl.c (read_conditions): Don't gobble ')' here.
12782         (read_mapping): Likewise.
12783         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
12784         Handle top-level non-rtx constructs here rather than in read_rtx_1.
12785         Store the whole queue in *X.  Remove call to init_md_reader.
12786         (read_rtx_1): Rename to...
12787         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
12788         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
12789         here.
12790         (read_nested_rtx): New function.  Handle (nil) here rather than
12791         in read_rtx_code.
12792         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
12793         gobble ')' here.
12794         * read-md.h (directive_handler_t): New type.
12795         (in_fname, include_callback): Moved from read-md.h.
12796         (read_constants, init_md_reader): Delete.
12797         (read_md_files): Declare.
12798         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
12799         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
12800         from gensupport.c.
12801         (read_constants): Rename to...
12802         (handle_constants): ...this.  Don't gobble ')' here.
12803         (handle_include, handle_file, handle_toplevel_file)
12804         (parse_include): New functions, mostly taken from gensupport.c.
12805         (init_md_reader): Subsume into...
12806         (read_md_files): ...this new function.
12807
12808 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12809
12810         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
12811         (unread_char): Decrement read_md_lineno after putting back '\n'.
12812         * read-md.c (fatal_with_file_and_line): Push back any characters
12813         that we decide not to add to the context.
12814         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
12815         fatal_expected_char in cases where '/' ends a line (for example).
12816         (read_name): Don't increment read_md_lineno here.
12817         (read_escape): Likewise.
12818         (read_quoted_string): Likewise.
12819         (read_braced_string): Likewise.
12820
12821 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12822
12823         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
12824         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
12825         * genconstants.c: Include read-md.h.
12826         * read-rtl.c (md_constants): Move to read-md.c.
12827         (md_name): Move to read-md.h.
12828         (initialize_iterators): Use leading_string_hash instead of def_hash
12829         and leading_string_eq_p instead of def_name_eq_p.
12830         (read_name): Move to read-md.c.
12831         (def_hash, def_name_eq_p): Delete.
12832         (read_constants, traverse_md_constants): Move to read-md.c.
12833         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
12834         * read-md.h: Include hashtab.h.
12835         (md_name): Moved from read-rtl.c.
12836         (md_constant): Moved from read-md.h.
12837         (leading_string_hash, leading_string_eq_p, read_name)
12838         (read_constants, traverse_md_constants): Declare.
12839         * read-md.c (md_constants): Moved from read-rtl.c.
12840         (leading_string_hash, leading_string_eq_p): New functions.
12841         (read_name, read_constants, traverse_md_constants): Moved from
12842         read-rtl.c.
12843
12844 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12845
12846         * read-rtl.c (md_name): New structure.
12847         (read_name): Take an md_name instead of a buffer pointer.
12848         Use the "string" field instead of strcpy when expanding constants.
12849         (read_constants): Remove the tmp_char argument.  Update the calls
12850         to read_name, using two local name buffers instead of the tmp_char
12851         argument.  Merge the constant-creation code.
12852         (read_conditions): Remove the tmp_char argument.  Update the calls
12853         to read_name, using a local name buffer instead of the tmp_char
12854         argument.
12855         (read_mapping): Replace tmp_char variable with a local name buffer.
12856         Update the calls to read_name.
12857         (read_rtx_1): Likewise.  Update the calls to read_constants and
12858         read_conditions.
12859
12860 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12861
12862         * Makefile.in (build/read-md.o): Depend on errors.h.
12863         * read-md.h (error_with_line): Declare.
12864         * read-md.c: Include errors.h.
12865         (message_with_line_1): New function, extracted from...
12866         (message_with_line): ...here.
12867         (error_with_line): New function.
12868         * genattrtab.c: If a call to message_with_line is followed by
12869         "have_error = 1;", replace both statements with a call to
12870         error_with_line.
12871         * genoutput.c: Likewise.
12872         * genpreds.c: Likewise.
12873         * genrecog.c: If a call to message_with_line is followed by
12874         "error_count++;", replace both statements with a call to
12875         error_with_line.
12876         (errorcount): Delete.
12877         (main): Don't check it.
12878         * gensupport.c: If a call to message_with_line is followed by
12879         "errors = 1;", replace both statements with a call to error_with_line.
12880         (errors): Delete.
12881         (process_define_cond_exec): Check have_error instead of errors.
12882         (init_md_reader_args_cb): Likewise.  Don't set errors.
12883
12884 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12885
12886         * read-md.h (read_md_file): Declare.
12887         (read_char, unread_char): New functions.
12888         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
12889         (read_quoted_string, read_string): Remove FILE * argument.
12890         * read-md.c (read_md_file): New variable.
12891         (read_md_filename, read_md_lineno): Update comments and remove
12892         unnecessary initialization.
12893         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
12894         (read_escape, read_quoted_string, read_braced_string, read_string):
12895         Remove FILE * argument.  Update calls accordingly, using read_char
12896         and unread_char instead of getc and ungetc.
12897         * rtl.h (read_rtx): Remove FILE * argument.
12898         * read-rtl.c (iterator_group): Remove FILE * argument from
12899         "find_builtin".
12900         (iterator_traverse_data): Remove "infile" field.
12901         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
12902         (add_mapping, read_name, read_constants, read_conditions)
12903         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
12904         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
12905         Remove file arguments from all calls, using read_char and unread_char
12906         instead of getc and ungetc.
12907         * gensupport.c (process_include): Preserve read_md_file around
12908         the include.  Set read_md_file to the handle of the included file.
12909         Update call to read_rtx.
12910         (init_md_reader_args_cb): Set read_md_file to the handle of the file
12911         and remove local FILE *.  Update calls to read_rtx.
12912
12913 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12914
12915         * read-md.h (read_rtx_lineno): Rename to...
12916         (read_md_lineno): ...this.
12917         (read_rtx_filename): Rename to...
12918         (read_md_filename): ...this.
12919         (copy_rtx_ptr_loc): Rename to...
12920         (copy_md_ptr_loc): ...this.
12921         (print_rtx_ptr_loc): Rename to...
12922         (print_md_ptr_loc): ...this.
12923         * read-md.c: Likewise.  Update references after renaming.
12924         (string_obstack): Replace RTL with MD in comment.
12925         (set_rtx_ptr_loc): Rename to...
12926         (set_md_ptr_loc): ...this.
12927         (get_rtx_ptr_loc): Rename to...
12928         (get_md_ptr_loc): ...this.
12929         * genconditions.c: Update references after renaming.
12930         * genemit.c: Likewise.
12931         * genoutput.c: Likewise.
12932         * genpreds.c: Likewise.
12933         * gensupport.c: Likewise.
12934         * read-rtl.c: Likewise.
12935
12936 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
12937
12938         * Makefile.in (READ_MD_H): New variable.
12939         (BUILD_RTL): Add build/read-md.o.
12940         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
12941         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
12942         (build/genattrtab.o, build/genconditions.o build/genemit.o)
12943         (build/genextract.o, build/genflags.o, build/genoutput.o)
12944         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
12945         (build/read-md.o): New rule.
12946         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
12947         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
12948         * coretypes.h: ...here.
12949         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
12950         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
12951         * genattr.c: Include read-md.h.
12952         * genattrtab.c: Likewise.
12953         * genconditions.c: Likewise.
12954         * genemit.c: Likewise.
12955         * genextract.c: Likewise.
12956         * genflags.c: Likewise.
12957         * genoutput.c: Likewise.
12958         * genpreds.c: Likewise.
12959         * genrecog.c: Likewise.
12960         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
12961         (join_c_conditions, print_c_condition, read_rtx_filename)
12962         (read_rtx_lineno): Move to read-md.h.
12963         * read-rtl.c: Include read-md.h.
12964         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
12965         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
12966         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
12967         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
12968         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
12969         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
12970         (read_braced_string, read_string): Move to read-md.c.
12971         (read_rtx): Move some initialization to init_md_reader and call
12972         init_md_reader here.
12973         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
12974         Move to read-md.h.
12975         * gensupport.c: Include read-md.h.
12976         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
12977         * read-md.h, read-md.c: New files.
12978
12979 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
12980
12981         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
12982         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12983         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
12984         * config/moxie/moxie.c (moxie_function_value): Make static.
12985         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
12986         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12987
12988 2010-06-10  Martin Jambor  <mjambor@suse.cz>
12989
12990         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
12991         * dbgcnt.def (tree_sra): New counter.
12992         * tree-sra.c: Include dbgcnt.h.
12993         (gate_intra_sra): Check tree_sra debug counter.
12994
12995 2010-06-10  Martin Jambor  <mjambor@suse.cz>
12996
12997         PR tree-optimization/44258
12998         * tree-sra.c (build_access_subtree): Return false iff there is a
12999         partial overlap.
13000         (build_access_trees): Likewise.
13001         (analyze_all_variable_accesses): Disqualify candidates if
13002         build_access_trees returns true for them.
13003
13004 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
13005
13006         PR debug/41371
13007         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
13008         tail-recurse into canonical node.  Fast-forward over
13009         non-canonical VALUEs.
13010
13011 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
13012
13013         PR boostrap/44470
13014         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
13015         (*addsi_1_zext) <TYPE_LEA>: Likewise.
13016         (add lea splitter): Likewise.
13017         (add_zext lea splitter): Likewise.
13018
13019 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
13020
13021         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
13022
13023 2010-06-10  Jan Hubicka  <jh@suse.cz>
13024
13025         * df-problems.c (df_live_problem_data): Add live_bitmaps.
13026         (df_live_alloc): Initialize problem data and live_osbtacks.
13027         (df_live_finalize): Remove obstack, problem data; do not
13028         clear all bitmaps.
13029         (df_live_top_dump, df_live_bottom_dump): Do not dump old
13030         data when not allocated.
13031         (df_live_verify_solution_start): Do not allocate problem data.
13032         (df_live_verify_solution_end): Check if out is allocated.
13033         (struct df_md_problem_data): New structure.
13034         (df_md_alloc): Allocate problem data.
13035         (df_md_free): Free problem data; do not clear bitmaps.
13036
13037 2010-06-10  Jan Beulich  <jbeulich@novell.com>
13038
13039         PR bootstrap/37304
13040         * configure.ac: Replace $() with ${} when intending to expand
13041         variables rather than invoking commands.
13042         * configure: Re-generate.
13043
13044 2010-06-10  Jan Hubicka  <jh@suse.cz>
13045
13046         PR rtl-optimization/44460
13047         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
13048         TYPE_NEEDS_CONSTRUCTING sanity check.
13049
13050 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
13051
13052         * doc/include/fdl.texi: Move to GFDL version 1.3.
13053
13054         * doc/cpp.texi: Move to GFDL version 1.3.
13055         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
13056         * doc/gccint.texi: Move to GFDL version 1.3.
13057         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
13058         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
13059         * doc/invoke.texi: Move to GFDL version 1.3.
13060
13061 2010-06-09  Jan Hubicka  <jh@suse.cz>
13062
13063         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
13064         Break out from ...
13065         (propagate) ... here; swap the order.
13066
13067 2010-06-09  Jan Hubicka  <jh@suse.cz>
13068
13069         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
13070         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
13071         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
13072         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
13073
13074 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13075
13076         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
13077         Do not the gather memory reference in the outer loop if the step
13078         is not a constant.
13079
13080 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
13081
13082         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
13083         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
13084         8 to 4.  Minor change of the related comments.
13085
13086 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13087
13088         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
13089         the scev analysis when the variable is not used outside the loop
13090         in a close phi node: call compute_overall_effect_of_inner_loop.
13091
13092 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13093
13094         * graphite-sese-to-poly.c (single_pred_cond): Renamed
13095         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
13096         (build_sese_conditions_before): Renamed call to single_pred_cond.
13097         (build_sese_conditions_after): Same.
13098
13099 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
13100
13101         * graphite-poly.h: Fix comments and indentation.
13102         * graphite-sese-to-poly.c: Same.
13103         (build_sese_conditions_before): Compute stmt and gbb only when needed.
13104         * tree-chrec.c: Fix comments and indentation.
13105         (tree-ssa-loop-niter.c): Same.
13106
13107 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
13108
13109         PR rtl-optimization/42461
13110         * dce.c (deletable_insn_p): Return true for const or pure calls again.
13111         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
13112
13113 2010-06-09  Jan Hubicka  <jh@suse.cz>
13114
13115         * bitmap.c (bitmap_and): Walk array forward.
13116         (bitmap_and_compl_into): Likewise.
13117         (bitmap_xor): Likewise.
13118         (bitmap_xor_into):  Likewise.
13119         (bitmap_equal_p): Likewise.
13120         (bitmap_intersect_p): Likewise.
13121         (bitmap_intersect_compl_p): Likewise.
13122         (bitmap_ior_and_into): Likewise.
13123         (bitmap_elt_copy): Likewise.
13124         (bitmap_and_compl): Likewise.
13125         (bitmap_elt_ior): Likewise.
13126
13127 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
13128
13129         * opts-common.c (prune_options): Ensure replacement argv array
13130         is correctly terminated by a NULL entry.
13131
13132 2010-06-09  Jan Hubicka  <jh@suse.cz>
13133
13134         * cgraph.h (varpool_first_static_initializer,
13135         varpool_next_static_initializer): Make checking only when
13136         checking enabled.
13137         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
13138         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
13139         gcc_assert to gcc_checking_assert.
13140         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
13141         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
13142         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
13143         op_iter_init_phiuse, op_iter_init_phidef,
13144         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
13145         gcc_checking_assert.
13146         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
13147         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
13148         partition_is_global, live_on_entry, live_on_exit,
13149         live_merge_and_clear): Likewise.
13150         * system.h (gcc_checking_assert): New macro.
13151         * gimple.h (set_bb_seq): Use gcc_checking_assert.
13152
13153 2010-06-09  Jason Merrill  <jason@redhat.com>
13154
13155         * Makefile.in (TAGS): Collect tags info from c-family.
13156
13157 2010-06-09  Jan Hubicka  <jh@suse.cz>
13158
13159         * gimple.h (gcc_gimple_checking_assert): New macro.
13160         (gimple_set_def_ops, gimple_set_use_ops,
13161         gimple_set_vuse, gimple_set_vdef,
13162         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
13163         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
13164         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
13165         gimple_asm_output_op, gimple_asm_output_op_ptr,
13166         gimple_asm_set_output_op, gimple_asm_clobber_op,
13167         gimple_asm_set_clobber_op, gimple_asm_label_op,
13168         gimple_asm_set_label_op, gimple_try_set_kind,
13169         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
13170         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
13171         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
13172         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
13173         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
13174         gimple_omp_for_set_initial, gimple_omp_for_final,
13175         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
13176         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
13177         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
13178         conditional with ENABLE_GIMPLE_CHECKING.
13179         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
13180
13181 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
13182
13183         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
13184         (get_computation_cost_at): Use it.
13185         (determine_use_iv_cost_condition): Likewise.
13186         (determine_iv_cost): Likewise.
13187
13188 2010-06-09  Richard Guenther  <rguenther@suse.de>
13189
13190         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
13191         replace constants.
13192
13193 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
13194
13195         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
13196
13197 2010-06-09  Martin Jambor  <mjambor@suse.cz>
13198
13199         PR tree-optimization/44423
13200         * tree-sra.c (dump_access): Dump also grp_assignment_read.
13201         (analyze_access_subtree): Pass negative allow_replacements to children
13202         if the current type is scalar.
13203
13204 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13205
13206         PR testsuite/42843
13207         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
13208         * doc/plugins.texi (Plugin license check): Update information
13209         on type of plugin_is_GPL_compatible.
13210         * Makefile.in (PLUGINCC): Define as $(COMPILER).
13211         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
13212
13213 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
13214
13215         * config/arm/arm.c (thumb2_reorg): New function.
13216         (arm_reorg): Call it.
13217         * config/arm/thumb2.md (define_peephole2 for flag clobbering
13218         arithmetic operations): Delete.
13219
13220 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
13221
13222         PR target/44067
13223         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
13224         e500v2 target.
13225
13226 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
13227
13228         PR plugins/44459
13229         * gcc-plugin.h: Encapsulate all declarations in extern "C".
13230
13231 2010-06-08  Jan Hubicka  <jh@suse.cz>
13232
13233         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
13234         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
13235
13236 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
13237
13238         PR tree-optimization/39874
13239         PR middle-end/28685
13240         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
13241         Declare.
13242         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
13243         same_bool_result_p): New.
13244         (and_var_with_comparison, and_var_with_comparison_1,
13245         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
13246         (or_var_with_comparison, or_var_with_comparison_1,
13247         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
13248         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
13249         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
13250         of combine_comparisons.
13251         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
13252
13253 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
13254
13255         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13256         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13257         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
13258         pdp11_function_value_regno_p): New functions.
13259         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13260         TARGET_FUNCTION_VALUE_REGNO_P): Define.
13261
13262 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
13263
13264         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
13265         Thumb-2 in the MINUS case.
13266
13267 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
13268
13269         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
13270
13271         * doc/gty.texi (GTY Options): Document typed GC allocation and
13272         variable_size GTY option.
13273
13274         * ggc-internal.h: New.
13275
13276         * ggc.h: Update copyright year.
13277         (digit_string): Move to stringpool.c.
13278         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
13279         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
13280         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
13281         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
13282         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
13283         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
13284         (ggc_force_collect, ggc_get_size, ggc_statistics)
13285         (ggc_print_common_statistics): Move to ggc-internal.h.
13286         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
13287         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
13288         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
13289         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
13290         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
13291         (ggc_alloc_zone_pass_stat): Remove.
13292         (ggc_internal_alloc_stat, ggc_internal_alloc)
13293         (ggc_internal_cleared_alloc_stat): New.
13294         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
13295         (ggc_internal_vec_alloc_stat)
13296         (ggc_internal_cleared_vec_alloc_stat)
13297         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
13298         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
13299         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
13300         (ggc_cleared_alloc_ptr_array_two_args): New.
13301         (htab_create_ggc, splay_tree_new_ggc): Redefine.
13302         (ggc_splay_alloc): Change the type of the first argument to
13303         enum gt_types_enum.
13304         (ggc_alloc_string): Make macro.
13305         (ggc_alloc_string_stat): New.
13306         (ggc_strdup): Redefine.
13307         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
13308         (ggc_alloc_rtvec_sized): New.
13309         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
13310         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
13311         (ggc_internal_cleared_alloc_zone_stat)
13312         (ggc_internal_zone_alloc_stat)
13313         (ggc_internal_zone_cleared_alloc_stat)
13314         (ggc_internal_zone_vec_alloc_stat)
13315         (ggc_alloc_zone_rtx_def_stat)
13316         (ggc_alloc_zone_tree_node_stat)
13317         (ggc_alloc_zone_cleared_tree_node_stat)
13318         (ggc_alloc_cleared_gimple_statement_d_stat): New.
13319
13320         * ggc-common.c: Include ggc-internal.h.
13321         (ggc_internal_cleared_alloc_stat): Rename from
13322         ggc_alloc_cleared_stat.
13323         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
13324         (ggc_calloc): Remove.
13325         (ggc_cleared_alloc_htab_ignore_args): New.
13326         (ggc_cleared_alloc_ptr_array_two_args): New.
13327         (ggc_splay_alloc): Add obj_type parameter.
13328         (init_ggc_heuristics): Formatting fixes.
13329
13330         * ggc-none.c: Update copyright year.
13331         (ggc_alloc_stat): Rename to ggc_alloc_stat.
13332         (ggc_alloc_cleared_stat): Rename to
13333         ggc_internal_cleared_alloc_stat.
13334         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13335
13336         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
13337         Remove references to ggc_alloc in comments.
13338         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
13339         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
13340         (new_ggc_zone, destroy_ggc_zone): Remove.
13341         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
13342
13343         * ggc-zone.c: Include ggc-internal.h.  Remove references to
13344         ggc_alloc in comments.
13345         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
13346         (ggc_internal_alloc_zone_pass_stat): New.
13347         (ggc_internal_cleared_alloc_zone_stat): New.
13348         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
13349         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
13350         (new_ggc_zone, destroy_ggc_zone): Remove.
13351
13352         * stringpool.c: Update copyright year.  Include ggc-internal.h
13353         (digit_vector): Make static.
13354         (digit_string): Moved from ggc.h.
13355         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
13356         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
13357
13358         * Makefile.in (GGC_INTERNAL_H): New.
13359         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
13360         $(GGC_INTERNAL_H) to dependencies.
13361
13362         * gentype.c: Update copyright year.
13363         (walk_type): Accept variable_size GTY option.
13364         (USED_BY_TYPED_GC_P): New macro.
13365         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
13366         whitespace at the end of strings.
13367         (get_type_specifier, variable_size_p): New functions.
13368         (alloc_quantity, alloc_zone): New enums.
13369         (write_typed_alloc_def): New function.
13370         (write_typed_struct_alloc_def): Likewise.
13371         (write_typed_typed_typedef_alloc_def): Likewise.
13372         (write_typed_alloc_defns): Likewise.
13373         (output_typename, write_splay_tree_allocator_def): Likewise.
13374         (write_splay_tree_allocators): Likewise.
13375         (main): Call write_typed_alloc_defns and
13376         write_splay_tree_allocators.
13377
13378         * lto-streamer.h (lto_file_decl_data_ptr): New.
13379
13380         * passes.c (order): Define using cgraph_node_ptr.
13381
13382         * strinpool.c (struct string_pool_data): Declare nested_ptr using
13383         ht_identifier_ptr.
13384
13385         * gimple.h (union gimple_statement_d): Likewise.
13386
13387         * rtl.h (struct rtx_def): Likewise.
13388         (struct rtvec_def): Likewise.
13389
13390         * tree.h (union tree_node): Likewise.
13391
13392         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
13393
13394         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
13395
13396         * tree-scalar-evolution.c (scev_initialize): Likewise.
13397
13398         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
13399
13400         * dwarf2asm.c (dw2_force_const_mem): Likewise.
13401
13402         * omp-low.c (lower_omp_critical): Likewise.
13403
13404         * bitmap.h (struct bitmap_head_def): Update comment to not
13405         reference ggc_alloc.
13406
13407         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
13408
13409         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
13410
13411         * ipa-prop.c (duplicate_ggc_array): Rename to
13412         duplicate_ipa_jump_func_array.  Use typed GC allocation.
13413         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
13414
13415         * gimple.c (gimple_alloc_stat): Use
13416         ggc_alloc_cleared_gimple_statement_d_stat.
13417
13418         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
13419
13420         * tree.c (make_node_stat): Use
13421         ggc_alloc_zone_cleared_tree_node_stat.
13422         (make_tree_vec_stat): Likewise.
13423         (build_vl_exp_stat): Likewise.
13424         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
13425         (make_tree_binfo_stat): Likewise.
13426         (tree_cons_stat): Likewise.
13427
13428         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
13429         (shallow_copy_rtx_stat): Likewise.
13430         (make_node_stat): Likewise.
13431
13432         * lto-symtab.c: Fix comment.
13433
13434         * tree-cfg.c (create_bb): Update comment to not reference
13435         ggc_alloc_cleared.
13436         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
13437
13438         * varpool.c (varpool_node): Use typed GC allocation.
13439         (varpool_extra_name_alias): Likewise.
13440
13441         * varasm.c (emutls_decl): Likewise.
13442         (get_unnamed_section): Likewise.
13443         (get_noswitch_section): Likewise.
13444         (get_section): Likewise.
13445         (get_block_for_section): Likewise.
13446         (build_constant_desc): Likewise.
13447         (create_constant_pool): Likewise.
13448         (force_const_mem): Likewise.
13449
13450         * tree.c (build_vl_exp_stat): Likewise.
13451         (build_real): Likewise.
13452         (build_string): Likewise.
13453         (decl_debug_expr_insert): Likewise.
13454         (decl_value_expr_insert): Likewise.
13455         (type_hash_add): Likewise.
13456         (build_omp_clause): Likewise.
13457
13458         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
13459
13460         * tree-ssa.c (init_tree_ssa): Likewise.
13461
13462         * tree-ssa-structalias.c (heapvar_insert): Likewise.
13463
13464         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
13465
13466         * tree-ssa-loop-niter.c (record_estimate): Likewise.
13467
13468         * tree-ssa-alias.c (get_ptr_info): Likewise.
13469
13470         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
13471
13472         * tree-phinodes.c (allocate_phi_node): Likewise.
13473
13474         * tree-iterator.c (tsi_link_before): Likewise.
13475         (tsi_link_after): Likewise.
13476
13477         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
13478
13479         * tree-dfa.c (create_var_ann): Likewise.
13480
13481         * tree-cfg.c (create_bb): Likewise.
13482
13483         * toplev.c (alloc_for_identifier_to_locale): Likewise.
13484         (general_init): Likewise.
13485
13486         * stringpool.c (stringpool_ggc_alloc): Likewise.
13487         (gt_pch_save_stringpool): Likewise.
13488
13489         * sese.c (if_region_set_false_region): Likewise.
13490
13491         * passes.c (do_per_function_toporder): Likewise.
13492
13493         * optabs.c (set_optab_libfunc): Likewise.
13494         (set_conv_libfunc): Likewise.
13495
13496         * lto-symtab.c (lto_symtab_register_decl): Likewise.
13497
13498         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
13499         (input_eh_region): Likewise.
13500         (input_eh_lp): Likewise.
13501         (make_new_block): Likewise.
13502         (unpack_ts_real_cst_value_fields): Likewise.
13503
13504         * lto-section-in.c (lto_new_in_decl_state): Likewise.
13505
13506         * lto-cgraph.c (input_node_opt_summary): Likewise.
13507
13508         * loop-init.c (loop_optimizer_init): Likewise.
13509
13510         * lambda.h (lambda_vector_new): Likewise.
13511
13512         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
13513
13514         * ira.c (update_equiv_regs): Likewise.
13515
13516         * ipa.c (cgraph_node_set_new): Likewise.
13517         (cgraph_node_set_add): Likewise.
13518         (varpool_node_set_new): Likewise.
13519         (varpool_node_set_add): Likewise.
13520
13521         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
13522         (duplicate_ipa_jump_func_array): Likewise.
13523         (ipa_read_node_info): Likewise.
13524
13525         * ipa-cp.c (ipcp_create_replace_map): Likewise.
13526
13527         * integrate.c (get_hard_reg_initial_val): Likewise.
13528
13529         * gimple.c (gimple_alloc_stat): Likewise.
13530         (gimple_build_omp_for): Likewise.
13531         (gimple_seq_alloc): Likewise.
13532         (gimple_copy): Likewise.
13533
13534         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
13535         (gsi_insert_after_without_update): Likewise.
13536
13537         * function.c (add_frame_space): Likewise.
13538         (insert_temp_slot_address): Likewise.
13539         (assign_stack_temp_for_type): Likewise.
13540         (allocate_struct_function): Likewise.
13541         (types_used_by_var_decl_insert): Likewise.
13542
13543         * except.c (init_eh_for_function): Likewise.
13544         (gen_eh_region): Likewise.
13545         (gen_eh_region_catch): Likewise.
13546         (gen_eh_landing_pad): Likewise.
13547         (add_call_site): Likewise.
13548
13549         * emit-rtl.c (get_mem_attrs): Likewise.
13550         (get_reg_attrs): Likewise.
13551         (start_sequence): Likewise.
13552         (init_emit): Likewise.
13553
13554         * dwarf2out.c (new_cfi): Likewise.
13555         (queue_reg_save): Likewise.
13556         (dwarf2out_frame_init): Likewise.
13557         (new_loc_descr): Likewise.
13558         (find_AT_string): Likewise.
13559         (new_die): Likewise.
13560         (add_var_loc_to_decl): Likewise.
13561         (clone_die): Likewise.
13562         (clone_as_declaration): Likewise.
13563         (break_out_comdat_types): Likewise.
13564         (new_loc_list): Likewise.
13565         (loc_descriptor): Likewise.
13566         (add_loc_descr_to_each): Likewise.
13567         (add_const_value_attribute): Likewise.
13568         (tree_add_const_value_attribute): Likewise.
13569         (add_comp_dir_attribute): Likewise.
13570         (add_name_and_src_coords_attributes): Likewise.
13571         (lookup_filename): Likewise.
13572         (store_vcall_insn): Likewise.
13573         (dwarf2out_init): Likewise.
13574
13575         * dbxout.c (dbxout_init): Likewise.
13576
13577         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
13578
13579         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
13580
13581         * config/score/score7.c (score7_output_external): Likewise.
13582
13583         * config/score/score3.c (score3_output_external): Likewise.
13584
13585         * config/s390/s390.c (s390_init_machine_status): Likewise.
13586
13587         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
13588         (rs6000_init_machine_status): Likewise.
13589         (output_toc): Likewise.
13590
13591         * config/pa/pa.c (pa_init_machine_status): Likewise.
13592         (get_deferred_plabel): Likewise.
13593
13594         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
13595
13596         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
13597
13598         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
13599
13600         * config/mep/mep.c (mep_init_machine_status): Likewise.
13601         (mep_note_pragma_flag): Likewise.
13602
13603         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
13604
13605         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
13606
13607         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
13608
13609         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
13610         (i386_pe_maybe_record_exported_symbol): Likewise.
13611
13612         * config/i386/i386.c (get_dllimport_decl): Likewise.
13613         (ix86_init_machine_status): Likewise.
13614         (assign_386_stack_local): Likewise.
13615
13616         * config/frv/frv.c (frv_init_machine_status): Likewise.
13617
13618         * config/darwin.c (machopic_indirection_name): Likewise.
13619
13620         * config/cris/cris.c (cris_init_machine_status): Likewise.
13621
13622         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
13623
13624         * config/avr/avr.c (avr_init_machine_status): Likewise.
13625
13626         * config/arm/arm.c (arm_init_machine_status): Likewise.
13627
13628         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
13629         (alpha_need_linkage): Likewise.
13630         (alpha_use_linkage): Likewise.
13631
13632         * cgraph.c (cgraph_allocate_node): Likewise.
13633         (cgraph_create_edge_1): Likewise.
13634         (cgraph_create_indirect_edge): Likewise.
13635         (cgraph_add_asm_node): Likewise.
13636
13637         * cfgrtl.c (init_rtl_bb_info): Likewise.
13638
13639         * cfgloop.c (alloc_loop): Likewise.
13640         (rescan_loop_exit): Likewise.
13641
13642         * cfg.c (init_flow): Likewise.
13643         (alloc_block): Likewise.
13644         (unchecked_make_edge): Likewise.
13645
13646         * c-parser.c (c_parse_init): Likewise.
13647         (c_parse_file): Likewise.
13648
13649         * c-decl.c (bind): Likewise.
13650         (record_inline_static): Likewise.
13651         (push_scope): Likewise.
13652         (make_label): Likewise.
13653         (lookup_label_for_goto): Likewise.
13654         (finish_struct): Likewise.
13655         (finish_enum): Likewise.
13656         (c_push_function_context): Likewise.
13657
13658         * bitmap.c (bitmap_element_allocate): Likewise.
13659         (bitmap_gc_alloc_stat): Likewise.
13660
13661         * alias.c (record_alias_subset): Likewise.
13662         (init_alias_analysis): Likewise.
13663
13664 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
13665
13666         * fold-const.c (fold_comparison): Remove redundant parenthesis.
13667         * tree-inline.c (expand_call_inline): Pass translated return value of
13668         cgraph_inline_failed_string to diagnostic function.
13669
13670 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
13671             Shujing Zhao  <pearly.zhao@oracle.com>
13672
13673         PR c/37724
13674         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
13675         implicit bad conversions is initialization.
13676         (error_init): Use gmsgid instead of msgid for argument name and change
13677         the call for error.
13678         (pedwarn_init): Use gmsgid instead of msgid for argument name and
13679         change the call for pedwarn.
13680         (warning_init): Use gmsgid instead of msgid for argument name and
13681         change the call for warning.
13682
13683 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
13684
13685         * config/mips/mips-protos.h (mips_print_operand): Delete.
13686         (mips_print_operand_address): Delete.
13687         * config/mips/mips.h (mips_print_operand_punct): Delete.
13688         (PRINT_OPERAND): Delete.
13689         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
13690         (PRINT_OPERAND_ADDRESS): Delete.
13691         * config/mips/mips.c (mips_print_operand_punct): Make static.
13692         (mips_print_operand_address): Make static.
13693         (mips_print_operand): Make static.  Call
13694         mips_print_operand_punct_valid_p.
13695         (mips_print_operand_punct_valid_p): New function.
13696         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13697         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
13698
13699 2010-06-07  Jan Hubicka  <jh@suse.cz>
13700
13701         PR middle-end/44454
13702         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
13703         are allocated.
13704
13705 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
13706
13707         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
13708         name of RECORD.
13709
13710 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13711
13712         * doc/sourcebuild.texi (Effective-Target Keywords, Other
13713         attributes): Document gas.
13714
13715 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
13716
13717         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
13718         <TYPE_LEA>: Split instruction.
13719         <default>: Remove alternative 2 handling.
13720         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
13721         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
13722         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
13723
13724         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
13725         (ashift_zext lea splitter): Use DImode for multiplication.
13726
13727         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
13728         to generate addition.
13729
13730 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
13731
13732         * common.opt (fira-verbose): Use Var.
13733         (fpcc-struct-return): Use Init instead of VarExists.
13734         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
13735         toplev.c.
13736         * flags.h (flag_signed_char, flag_short_enums,
13737         flag_pcc_struct_return, flag_ira_verbose,
13738         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
13739         * toplev.c (flag_detailed_statistics, flag_signed_char,
13740         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
13741         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
13742         * toplev.h (flag_crossjumping, flag_if_conversion,
13743         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
13744         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
13745         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
13746         flag_cprop_registers, time_report, flag_ira_loop_pressure,
13747         flag_ira_coalesce, flag_ira_move_spills,
13748         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
13749
13750 2010-06-07  Jan Hubicka  <jh@suse.cz>
13751
13752         * df-core.c (df_analyze_problem): Do verification after allocation.
13753
13754         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
13755         (df_lr_alloc): Initialize problem data; move bitmaps to
13756         lr_bitmaps obstack.
13757         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
13758         (df_lr_verify_solution_start): Do not initialize problem data;
13759         allocate bitmaps in lr_bitmaps.
13760         (df_lr_verify_solution_end): Do not free problem data.
13761
13762 2010-06-07  Jan Hubicka  <jh@suse.cz>
13763
13764         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
13765         if caller is noreturn.
13766         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
13767         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
13768         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
13769         * ipa-pure-const.c (check_decl): Add IPA parameter.
13770         (state_from_flags): New function.
13771         (better_state, worse_state): New functions.
13772         (check_call): When in IPA mode, do not care about callees.
13773         (check_load, check_store): Update.
13774         (check_ipa_load, check_ipa_store): New.
13775         (check_stmt): When in IPA mode, use IPA checkers.
13776         (analyze_function): Use state_from_flags.
13777         (propagate): Check indirect edges and references.
13778
13779 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
13780
13781         PR rtl-optimization/44404
13782         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
13783         of count_occurrences to see if it's safe to modify mem_insn.
13784
13785 2010-06-07  Richard Guenther  <rguenther@suse.de>
13786
13787         * gimplify.c (gimplify_cleanup_point_expr): For empty body
13788         and EH-only cleanup drop the cleanup instead of inserting it
13789         unconditionally.
13790
13791 2010-06-07  Ira Rosen  <irar@il.ibm.com>
13792
13793         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
13794         documentation.
13795         * targhooks.c (default_builtin_vectorization_cost): New function.
13796         * targhooks.h (default_builtin_vectorization_cost): Declare.
13797         * target.h (enum vect_cost_for_stmt): Define.
13798         (builtin_vectorization_cost): Change argument and comment.
13799         * tree-vectorizer.h: Remove cost model macros.
13800         * tree-vect-loop.c: Include target.h.
13801         (vect_get_cost): New function.
13802         (vect_estimate_min_profitable_iters): Replace cost model macros with
13803         calls to vect_get_cost.
13804         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
13805         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
13806         default implementation.
13807         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
13808         calls to target hook builtin_vectorization_cost.
13809         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
13810         Likewise.
13811         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
13812         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
13813         implementation to return costs.
13814         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
13815         * config/spu/spu.h: Remove vectorizer cost model macros.
13816         * config/i386/i386.h: Likewise.
13817         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
13818         a call to target hook builtin_vectorization_cost.
13819
13820 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
13821
13822         PR target/44319
13823         * config/i386/i386.c (override_options): Turn zee pass on for level 2
13824         and above and defer till target is known.
13825         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
13826         turn off otherwise.
13827
13828 2010-05-25  Jan Hubicka  <jh@suse.cz>
13829
13830         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
13831         (df_compact_blocks): Likewise.
13832         * df.h (struct df): Turn hardware_regs_used,
13833         regular_block_artificial_uses, eh_block_artificial_uses,
13834         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
13835         bitmap_head.
13836         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
13837         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
13838         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
13839         df_scan_blocks, df_insn_delete, df_insn_rescan,
13840         df_insn_rescan_debug_internal, df_insn_rescan_all,
13841         df_process_deferred_rescans, df_process_deferred_rescans,
13842         df_notes_rescan, df_get_call_refs, df_get_call_refs,
13843         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
13844         df_record_entry_block_defs, df_record_exit_block_uses,
13845         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
13846         df_scan_verify): Update.
13847
13848 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
13849
13850         PR c++/44188
13851         * c-common.c (is_typedef_decl): Move this definition ...
13852         * tree.c (is_typedef_decl): ... here.
13853         (typdef_variant_p): Move definition here from cp/tree.c.
13854         * c-common.h (is_typedef_decl): Move this declaration ...
13855         * tree.h (is_typedef_decl): ... here.
13856         (typedef_variant_p): Move declaration here from cp/cp-tree.h
13857         * dwarf2out.c (is_naming_typedef_decl): New function.
13858         (gen_tagged_type_die): Split out of ...
13859         (gen_type_die_with_usage): ... this function. When an anonymous
13860         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
13861         is emitted for the typedef.
13862         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
13863         anonymous tagged types.
13864
13865 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13866
13867         PR c/20000
13868         * c-decl.c (grokdeclarator): Delete warning.
13869
13870 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
13871
13872         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
13873         newly built CALL_EXPR.
13874         * tree-profile.c (tree_profiling): Don't profile functions produced
13875         for built-in stuff.
13876
13877 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
13878
13879         PR bootstrap/44427
13880         PR bootstrap/44428
13881         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
13882         endianness-independent.
13883
13884 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
13885
13886         * c-common.c: Move to c-family/.
13887         * c-common.def: Likewise.
13888         * c-common.h: Likewise.
13889         * c-cppbuiltin.c: Likewise.
13890         * c-dump.c: Likewise.
13891         * c-format.c: Likewise.
13892         * c-format.h : Likewise.
13893         * c-gimplify.c: Likewise.
13894         * c-lex.c: Likewise.
13895         * c-omp.c: Likewise.
13896         * c.opt: Likewise.
13897         * c-opts.c: Likewise.
13898         * c-pch.c: Likewise.
13899         * c-ppoutput.c: Likewise.
13900         * c-pragma.c: Likewise.
13901         * c-pragma.h: Likewise.
13902         * c-pretty-print.c: Likewise.
13903         * c-pretty-print.h: Likewise.
13904         * c-semantics.c: Likewise.
13905         * stub-objc.c: Likewise.
13906
13907         * gengtype.c (get_file_langdir): Special-case files in c-family/.
13908         (get_output_file_with_visibility): Fix name for c-common.h.
13909         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
13910
13911         * c-tree.h: Update include path for moved files.
13912         * c-lang.c: Likewise.
13913         * c-lang.h: Likewise.
13914         * c-parser.c: Likewise.
13915         * c-convert.c: Likewise.
13916         * c-decl.c: Likewise.
13917         * c-objc-common.c: Likewise.
13918         * configure.ac: Make sure c-family/ exists in the build directory.
13919         * configure: Regenerate.
13920         * Makefile.in: Update paths for moved files.  Regroup files per
13921         location and update dependencies.  Move generated_files down after
13922         ALL_GTFILES_H.
13923
13924         * config/spu/spu-c.c: Update paths for moved files.
13925         * config/mep/mep-pragma.c: Likewise.
13926         * config/darwin-c.c: Likewise.
13927         * config/i386/msformat-c.c: Likewise.
13928         * config/i386/i386-c.c: Likewise.
13929         * config/avr/avr-c.c: Likewise.
13930         * config/sol2-c.c: Likewise.
13931         * config/ia64/ia64-c.c: Likewise.
13932         * config/rs6000/rs6000-c.c: Likewise.
13933         * config/arm/arm.c: Likewise.
13934         * config/arm/arm-c.c: Likewise.
13935         * config/h8300/h8300.c: Likewise.
13936         * config/v850/v850-c.c: Likewise.
13937
13938         * config/t-darwin: Fix dependencies for moved files.
13939         * config/t-sol2: Fix dependencies for moved files.
13940         * config/mep/t-mep: Fix dependencies for moved files.
13941         * config/ia64/t-ia64: Fix dependencies for moved files.
13942         * config/rs6000/t-rs6000: Fix dependencies for moved files.
13943         * config/v850/t-v850: Fix dependencies for moved files.
13944         * config/v850/t-v850e: Fix dependencies for moved files.
13945
13946         * config/m32c/m32c-pragma.c
13947
13948         * po/exgettext: Look in c-family/ also.
13949
13950 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
13951
13952         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
13953         (mark_control_dependent_edges_necessary): Call it instead of marking
13954         the last statement manually.
13955         (propagate_necessity): Likewise.
13956
13957 2010-06-05  Jan Hubicka  <jh@suse.cz>
13958
13959         * basic-block.h (compute_dominance_frontiers): Updated.
13960         (compute_idf): Likewise.
13961
13962         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
13963         for dominance frontiers.
13964         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
13965         (insert_updated_phi_nodes_for): Likewise.
13966         (update_ssa): Likewise.
13967         * cfganal.c (compute_dominance_frontiers_1): Likewise.
13968         (compute_dominance_frontiers): Likewise.
13969         (compute_idf): Likewise.
13970         * df-problems.c (df_md_local_compute): Likewise.
13971
13972 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
13973
13974         * target.h (struct gcc_target): Add memory_move_cost field.
13975         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
13976         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
13977         * targhooks.c (default_memory_move_cost): New function.
13978         * targhooks.h (default_memory_move_cost): Declare function.
13979         * reload.h (memory_move_cost): Declare.
13980         (memory_move_secondary_cost): Change type of 'in' argument to bool.
13981         * reginfo.c (memory_move_cost): New function.
13982         (memory_move_secondary_cost): Change type of 'in' argument to bool.
13983         * ira.h (ira_memory_move_cost): Update comment.
13984         * ira.c (ira_memory_move_cost): Update comment.
13985         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
13986         with memory_move_cost.
13987         * postreload.c (reload_cse_simplify_set): (Ditto.).
13988         * reload1.c (choose_reload_regs): (Ditto.).
13989         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
13990         (MEMORY_MOVE_COST):  Revise documentation.
13991
13992         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
13993         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
13994         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
13995         type of 'in' argument to bool.
13996         (TARGET_MEMORY_MOVE_COST): Define.
13997
13998 2010-06-05  Jan Hubicka  <jh@suse.cz>
13999
14000         * ipa-pure-const.c (propagate): Fix typo in handling of functions
14001         that cannot return.  Be more careful when merging the results with
14002         previously known ones.
14003
14004 2010-06-05  Matthias Klose  <doko@ubuntu.com>
14005
14006         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
14007         function to add the -iplugindir option.
14008         (find_plugindir_spec_function): Add new declaration and function.
14009         (static_spec_func): Use it for "find-plugindir".
14010
14011 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
14012
14013         PR c++/44361
14014         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
14015         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
14016         statement expression.
14017
14018 2010-06-05  Jan Hubicka  <jh@suse.cz>
14019
14020         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
14021         (df_rd_problem_data): Convert sparse_invalidated_by_call,
14022         dense_invalidated_by_call to bitmap head.
14023         (df_rd_alloc, df_rd_bb_local_compute_process_def,
14024         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
14025         df_rd_start_dump, df_lr_verify_transfer_functions,
14026         df_live_verify_transfer_functions, df_chain_create_bb,
14027         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
14028         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
14029         df_simulate_one_insn_forwards, df_md_alloc,
14030         df_md_bb_local_compute_process_def,
14031         df_md_bb_local_compute_process_def, df_md_local_compute,
14032         df_md_transfer_function df_md_free): Update.
14033
14034 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
14035
14036         PR c/44322
14037         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
14038         target type for ADDR_EXPR; require no changes to qualifiers except
14039         for function types.
14040         * c-tree.h (c_build_type_variant): Remove.
14041
14042 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14043
14044         * genautomata.c (get_excl_set): Do work per element, not per char.
14045         (check_presence_pattern_sets): Similar.
14046         (check_absence_pattern_sets): Similar.
14047
14048 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
14049
14050         * genautomata.c (curr_state_pass_num): Delete.
14051         (min_issue_delay_pass_states): Delete.
14052         (min_issue_delay): Delete.
14053         (initiate_min_issue_delay_pass_states): Delete.
14054         (output_min_issue_delay_table): Compute min_issue_delay_vect
14055         using a breadth-first search variant.
14056         (output_tables): Don't call initiate_min_issue_delay_pass_states.
14057
14058 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
14059
14060         PR boostrap/44421
14061         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
14062         (df_byte_lr_bb_local_compute): Likewise.
14063
14064 2010-06-03  Jason Merrill  <jason@redhat.com>
14065
14066         Implement noexcept operator (5.3.7)
14067         * c-common.c (c_common_reswords): Add noexcept.
14068         * c-common.h (enum rid): Add RID_NOEXCEPT.
14069
14070 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
14071
14072         * config/darwin-driver.c (darwin_default_min_version): Use
14073         GCC-specific formats in diagnostics.
14074         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
14075         diagnostics.
14076         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
14077         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
14078         eval_spec_function, handle_braces, process_brace_body, main,
14079         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
14080         getenv_spec_function, compare_version_strings,
14081         version_compare_spec_function): Use GCC-specific formats in
14082         diagnostics.
14083
14084 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14085
14086         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
14087         that operand 0 and operand 1 are equal.
14088         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
14089         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
14090         and operand 1 are equal.
14091         <default>: Ditto.  Remove ??? comment.
14092         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
14093         and operand 1 are equal.
14094         <default>: Ditto.  Remove ??? comment.
14095         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
14096         are equal.
14097         (*add<mode>_4) <default>: Ditto.
14098         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
14099
14100 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
14101
14102         * config/i386/i386-protos.h (ix86_print_operand): Declare.
14103         * config/i386/i386.c (ix86_print_operand): Make non-static.
14104         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
14105         * output.h (output_operand): Declare.
14106         * final.c (output_operand): Make non-static.
14107
14108 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
14109
14110         PR rtl-optimization/44013
14111         * sched-deps.c (add_dependence_list_and_free): Don't free lists
14112         when processing debug insns.
14113
14114         PR debug/41371
14115         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
14116         recursing.  Check that recursion is bounded.  Rename inner var
14117         to avoid hiding incoming argument.
14118
14119 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14120
14121         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
14122         operands[2] == 255.
14123         (*addqi_3): Ditto.
14124         (*addqi_4): Ditto.
14125         (*addqi_5): Ditto.
14126         (*addqi_ext_1_rex64): Ditto.
14127         (*addqi_ext_1): Ditto.
14128
14129         (*addqi_4): Check for incdec_operand in QImode.
14130
14131         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
14132         using SWI mode iterator.
14133         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
14134         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
14135         mode iterator.
14136         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
14137         using SWI mode iterator.
14138
14139 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14140
14141         PR c/25880
14142         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
14143         * c-format.c (gcc_diag_flag_specs): Add hash.
14144         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
14145         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
14146         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
14147         pp_c_cv_qualifiers. Handle qualifiers spelling here.
14148         (pp_c_type_qualifier_list): Call the function above.
14149         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
14150         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
14151         (WARN_FOR_QUALIFIERS): New macro.
14152         (convert_for_assignment): Use it.
14153
14154 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
14155
14156         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
14157
14158 2010-06-04  Jan Hubicka  <jh@suse.cz>
14159
14160         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
14161         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
14162         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
14163         DF_BYTE_LR_OUT): Update for embedded bitmaps.
14164         * fwprop.c (single_def_use_enter_block): Likewise.
14165         * ddg.c (create_ddg_dep_from_intra_loop_link,
14166         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
14167         * loop-iv.c (latch_dominating_def): Likewise.
14168         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
14169         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
14170         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
14171         df_rd_transfer_function, df_rd_top_dump,
14172         df_rd_bottom_dump): Update.
14173         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
14174         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
14175         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
14176         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
14177         df_lr_verify_solution_start, df_lr_verify_solution_end,
14178         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
14179         df_live_free_bb_info, df_live_alloc, df_live_reset,
14180         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
14181         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
14182         df_live_verify_solution_start, df_live_verify_solution_end,
14183         df_live_verify_transfer_functions, df_chain_create_bb,
14184         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
14185         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14186         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
14187         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
14188         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
14189         df_byte_lr_transfer_function, df_byte_lr_top_dump,
14190         df_byte_lr_bottom_dump, df_create_unused_note,
14191         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
14192         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
14193         df_md_transfer_function, df_md_init, df_md_confluence_0,
14194         df_md_confluence_n,
14195         df_md_top_dump, df_md_bottom_dump): Update.
14196         (struct df_lr_problem_data): Embedd bitmap headers.
14197
14198 2010-06-04  Jan Hubicka  <jh@suse.cz>
14199
14200         * dce.c (dce_process_block): Do not re-scan already marked
14201         instructions.
14202
14203 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
14204
14205         PR rtl-optimization/39871
14206         PR rtl-optimization/40615
14207         PR rtl-optimization/42500
14208         PR rtl-optimization/42502
14209         * ira.c (init_reg_equiv_memory_loc: New function.
14210         (ira): Call it twice.
14211         * reload.h (calculate_elim_costs_all_insns): Declare.
14212         * ira-costs.c: Include "reload.h".
14213         (regno_equiv_gains): New static variable.
14214         (init_costs): Allocate it.
14215         (finish_costs): Free it.
14216         (ira_costs): Call calculate_elim_costs_all_insns.
14217         (find_costs_and_classes): Take estimated elimination costs
14218         into account.
14219         (ira_adjust_equiv_reg_cost): New function.
14220         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
14221         * reload1.c (init_eliminable_invariants, free_reg_equiv,
14222         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
14223         (elim_bb): New static variable.
14224         (reload): Move code out of here into init_eliminable_invariants and
14225         free_reg_equiv.  Call them.
14226         (calculate_elim_costs_all_insns): New function.
14227         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
14228         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
14229         but call note_reg_elim_costly if we turned a valid memory address
14230         into an invalid one.
14231         * Makefile.in (ira-costs.o): Depend on reload.h.
14232
14233 2010-06-04  Julian Brown  <julian@codesourcery.com>
14234
14235         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
14236         for pool ranges.
14237
14238 2010-06-04  Richard Guenther  <rguenther@suse.de>
14239
14240         PR lto/41584
14241         * cgraph.h (struct varpool_node): Add lto_file_data field.
14242         * lto-cgraph.c (input_varpool_node): Initialize it.
14243
14244 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
14245
14246         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
14247         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
14248         predicate in "type" attribute calculation.
14249         (*addsi_1_zext): Ditto.
14250         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
14251         (*addsi_2_zext): Ditto.
14252         (*add<mode>_3): Ditto.
14253         (*addsi_3_zext): Ditto.
14254         (*add<mode>_5): Ditto.
14255
14256 2010-06-03  Jan Hubicka  <jh@suse.cz>
14257
14258         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
14259         of bitmap_bit_p.
14260         * cfganal.c (compute_dominance_frontiers_1): Likewise.
14261
14262 2010-06-03  Jan Hubicka  <jh@suse.cz>
14263
14264         * df-problems.c (df_create_unused_note, df_note_bb_compute):
14265         micro-optimize the checks when to add new note.
14266
14267 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
14268
14269         * final.c (output_asm_insn): Call
14270         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
14271         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
14272         (output_address): Call targetm.asm_out.print_operand_address.
14273         Update comments.
14274         * target.h (struct gcc_target): Add print_operand,
14275         print_operand_address, and print_operand_punct_valid_p fields.
14276         * targhooks.h (default_print_operand): Declare.
14277         (default_print_operand_address): Declare.
14278         (default_print_operand_punct_valid_p): Declare.
14279         * targhooks.c (default_print_operand): Define.
14280         (default_print_operand_address): Define.
14281         (default_print_operand_punct_valid_p): Define.
14282         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
14283         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
14284         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
14285         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
14286         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
14287         * vmsdbgout.c (addr_const_to_string): Update comment.
14288         * config/i386/i386.c (print_operand): Rename to...
14289         (ix86_print_operand): ...this.  Make static.
14290         (print_operand_address): Rename to...
14291         (ix86_print_operand_address): ...this.  Make static.  Call
14292         ix86_print_operand instead of PRINT_OPERAND.
14293         (ix86_print_operand_punct_valid_p): New function.
14294         (TARGET_PRINT_OPERAND): Define.
14295         (TARGET_PRINT_OPERAND_ADDRESS): Define.
14296         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
14297         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
14298         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
14299         (PRINT_OPERAND): Delete.
14300         (PRINT_OPERAND_ADDRESS): Delete.
14301         * config/i386/i386-protos.h (print_operand): Delete prototype.
14302         (print_operand_address): Delete prototype.
14303
14304 2010-06-03  Richard Guenther  <rguenther@suse.de>
14305
14306         PR tree-optimization/44403
14307         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
14308         Preserve pointer qualifiers.
14309         (vect_create_data_ref_ptr): Likewise.
14310
14311 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
14312
14313         PR c++/44294
14314         * defaults.h (MAX_FIXED_MODE_SIZE): New.
14315
14316         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
14317
14318 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
14319
14320         PR debug/44375
14321         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
14322         return false if merging the bbs would lead to goto_locus
14323         location being lost from the IL.
14324
14325 2010-06-03  Jan Hubicka  <jh@suse.cz>
14326             Jakub Jelinek  <jakub@redhat.com>
14327
14328         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
14329         set->regs[i] is NULL or has just one entry.
14330
14331 2010-06-03  Jan Hubicka  <jh@suse.cz>
14332
14333         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
14334         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
14335
14336 2010-06-03  Paul Brook  <paul@codesourcery.com>
14337
14338         * config/arm/arm.c (FL_TUNE): Define.
14339         (arm_default_cpu, arm_cpu_select): Remove.
14340         (all_cores): Populate core field.
14341         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
14342         (arm_find_cpu): New function.
14343         (arm_handle_option): Lookup cpu/architecture names.
14344         (arm_override_options): Cleanup mcpu/march/mtune handling.
14345         (arm_file_start): Ditto.
14346
14347 2010-06-03  Alan Modra  <amodra@gmail.com>
14348
14349         PR target/44169
14350         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
14351         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
14352         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
14353         (rs6000_emit_load_toc_table): Likewise.
14354
14355 2010-06-02  Jan Hubicka  <jh@suse.cz>
14356
14357         * passes.c (init_optimization_passes): Put ipa reference
14358         after ipa pure-const.
14359
14360 2010-06-02  Jan Hubicka  <jh@suse.cz>
14361
14362         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
14363         calls_read_all and calls_write_all.
14364         (get_reference_optimization_summary): Fix formatting.
14365         (is_proper_for_analysis): Check that decl is not readonly.
14366         (propagate_bits): Check CONST/PURE/noreturn flags.
14367         (ipa_init): Move all_module_statics to optimization_summary_obstack.
14368         (analyze_function): Ignore indirect edges.
14369         (copy_global_bitmap): For all module statics, do nothing.
14370         (generate_summary): Do not print calls_read_all/calls_write_all.
14371         (read_write_all_from_decl): Take node as argument; check
14372         cgraph_node_cannot_return.
14373         (propagate): Reorganize read_all/write_all computation;
14374         check indirect edges; check ecf flags; use all_module_statics
14375         in the results; do not free all_module_statics.
14376         (stream_out_bitmap): Handle all_module_statics.
14377         (ipa_reference_write_optimization_summary): Likewise; use
14378         varpool/cgraph encoders to get boundaries.
14379         (ipa_reference_read_optimization_summary): Read in all_module_statics;
14380         use it when possible.
14381
14382 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
14383
14384         PR target/44218
14385         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
14386         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
14387
14388         * doc/extend.texi (powerpc builtins): Document vec_recip,
14389         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
14390
14391         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
14392         (rs6000_emit_swrsqrt): Ditto.
14393         (rs6000_emit_swdivsf): Delete.
14394         (rs6000_emit_swdivdf): Ditto.
14395         (rs6000_emit_swrsqrtsf): Ditto.
14396
14397         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
14398         describe the reciprocal estimate support for each type.
14399         (recip_options): Map -mrecip=<opt> into option bits.
14400         (gen_2arg_fn_t): New typedef for binary rtx gen function.
14401         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
14402         reciprocal estimate instructions.
14403         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
14404         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
14405         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
14406         cost information if -mdebug=cost or -mdebug=reg.
14407         (rs6000_override_options): Set -mrecip-precision for power6, and
14408         power7 machines.  If -mvsx or -mdfp, enable various options that
14409         came in previous instruction set ISAs, unless the option was
14410         explicitly disabled by the command line option.  Parse
14411         -mrecip=<opt> options.
14412         (rs6000_builtin_vectorized_function): Add support for vectorizing
14413         the reciprocal estimate builtins and expansions.
14414         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
14415         (bdesc_2arg): Add reciprocal estimate builtins.
14416         (bdesc_1arg): Add reciprocal square root estimate builtins.
14417         (rs6000_expand_builtin): Rewrite to use a switch statement,
14418         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
14419         (rs6000_init_builtins): Create declarations for reciprocal
14420         estimate builtins.
14421         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
14422         sized, prefer traditional floating point registers, if integer
14423         vector types, prefer altivec registers.  Don't actually look at
14424         the memory address any more.
14425         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
14426         builtins.
14427         (rs6000_load_constant_and_splat): New helper function to load up
14428         the constant for reciprocal estimate instructions.
14429         (rs6000_emit_madd): New helper function for generating
14430         multiply/add type instructions, based on the current switches.
14431         (rs6000_emit_msub): Ditto.
14432         (rs6000_emit_mnsub): Ditto.
14433         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
14434         replace a divide with a reciprocal estimate and fixup, adding
14435         support for machines with high precision and vectors.
14436         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
14437         low precision machines.
14438         (rs6000_emit_swdiv): New common function to be called to replace a
14439         division with reciprocal estimate and fixup.
14440         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
14441         for double and vector types.  Add support for high precision machines.
14442
14443         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
14444         the reciprocal estimate instructions can be generated.
14445         (TARGET_FRE): Ditto.
14446         (TARGET_FRSQRTES): Ditto.
14447         (TARGET_FRSQRTE): Ditto.
14448         (RS6000_RECIP_*): New macros for reciprocal estimate support.
14449
14450         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
14451         square root estimate on vectors.
14452         (re<mode>2): New insn for reciprocal division estimate on vectors.
14453
14454         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
14455         New builtin.
14456         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
14457         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
14458         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
14459         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
14460         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
14461         (RS6000_BUILTIN_RSQRT): Ditto.
14462         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
14463         floating point builtin.
14464
14465         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
14466         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
14467         __RECIP_PRECISION__ based on the command line switches.
14468         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
14469
14470         * config/rs6000/rs6000.opt (-mrecip): Document add support for
14471         replacing division instructions with reciprocal estimate and fixup.
14472         (-mrecip=<opt>): New option.
14473         (-mrecip-precision): Ditto.
14474
14475         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
14476         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
14477         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
14478         precision scalar.
14479
14480         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
14481         (UNSPEC_VREFP): Ditto.
14482         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
14483         conterparts with regard to support of -mno-fused-madd and -ffast-math.
14484         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
14485         reciprocal estimate instructions to be generated.
14486         (altivec_vrefp): Ditto.
14487
14488         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
14489         estimate support.
14490         (rreg): New mode attribute for reciprocal estimate support.
14491         (recip<mode>3): New insn for division using reciprocal estimate
14492         and fixup builtins.
14493         (divide define_split): New define_split to convert floating point
14494         division to use reciprocal estimate if the user used the
14495         appropriate options and the split is run when we can add new
14496         pseudo registers for the fixup.
14497         (rsqrt<mode>2): New insn for reciprocal square root support.
14498         (recipsf3): Move into recip<mode>3.
14499         (recipdf3): Ditto.
14500         (fres): Use TARGET_FRES.
14501         (rsqrtsf2): Move into rsqrt<mode>2.
14502         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
14503         (copysignsf3): Add support for VSX.
14504         (fred): Use TARGET_FRE.
14505         (fred_fpr): Ditto.
14506         (rsqrtdf_internal1): New function for frsqrte instruciton.
14507
14508         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
14509         (vec_rsqrt): Ditto.
14510
14511 2010-06-03  Richard Guenther  <rguenther@suse.de>
14512
14513         PR middle-end/44291
14514         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
14515         (set_user_assembler_libfunc): Likewise.
14516
14517 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14518
14519         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
14520         defaults.h.
14521         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
14522         to defaults.h
14523         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
14524         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
14525         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
14526         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
14527         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
14528         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
14529         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
14530         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
14531         * defaults.h: Updated for above mentioned changes.
14532
14533 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
14534
14535         * c-common.c: Remove header include of tm_p.h.
14536         * Makefile.in (c-common.o): Remove TM_P_H dependency.
14537
14538 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
14539
14540         * tree.h (struct tree_decl_map): New type.
14541         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
14542         (tree_decl_map_hash): New prototype.
14543         (debug_expr_for_decl, value_expr_for_decl): Change into
14544         tree_decl_map hashtab from tree_map.
14545         (init_ttree): Adjust initialization.
14546         (tree_decl_map_hash): New function.
14547         (decl_debug_expr_lookup, decl_debug_expr_insert,
14548         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
14549
14550 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14551
14552         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
14553         linker emulations.
14554         * configure: Regenerate.
14555         * config.in: Regenerate.
14556
14557         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
14558         (X86_64_EMULATION): Define.
14559         (TARGET_LD_EMULATION): Use them.
14560
14561         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
14562         (SPARC64_EMULATION): Define.
14563         (LINK_ARCH_SPEC): Use them.
14564
14565 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14566
14567         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
14568         smallest_mode_for_size for computing the precision types of new
14569         graphite IVs.  Do not call lang_hooks.types.type_for_size.
14570
14571 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14572
14573         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
14574         information.
14575         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
14576
14577 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
14578
14579         PR middle-end/44363
14580         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
14581         return false instead.
14582
14583 2010-06-02  Jan Hubicka  <jh@suse.cz>
14584
14585         PR middle-end/44295
14586         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
14587         create new cgraph node to check callee.
14588
14589 2010-06-02  Richard Guenther  <rguenther@suse.de>
14590
14591         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
14592
14593 2010-06-02  Richard Guenther  <rguenther@suse.de>
14594
14595         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
14596         (lto_wrapper_cleanup): ... this.  Do not exit.
14597         (fatal): Adjust.  Exit here.
14598         (fatal_perror): Likewise.
14599         (fatal_signal): New function.
14600         (main): Set up signal handlers to cleanup temporary files.
14601         * Makefile.in (lto-wrapper.o): Adjust dependencies.
14602
14603 2010-06-02  Richard Guenther  <rguenther@suse.de>
14604
14605         PR tree-optimization/44377
14606         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
14607
14608 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14609
14610         * config/s390/2097.md (z10_fhex): Remove insn reservation.
14611         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
14612         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
14613         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
14614         instruction.
14615         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
14616
14617 2010-06-02  Jan Hubicka  <jh@suse.cz>
14618
14619         * bitmap.c (bitmap_descriptor): Add search_iter.
14620         (bitmap_find_bit): Increment it.
14621         (print_statistics): Print it.
14622
14623 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
14624
14625         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
14626         instead of gimple_build_call_vec.  Delete unnecessary local variable.
14627
14628 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14629
14630         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
14631         change from yesterday.
14632
14633 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
14634
14635         * c-ada-spec.c: Clean up redundant includes.
14636
14637 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
14638
14639         * gimplify.c: Do not include except.h and optabs.h.
14640         (gimplify_body): Do not initialize RTL profiling.
14641         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
14642         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
14643         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
14644         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
14645         langhooks.h.
14646
14647         * tree-pretty-print.h: Include pretty-print.h.
14648         * gimple-pretty-print.h: Include pretty-print.h.
14649
14650         * tree-pretty-print.c: Do not include diagnostic.h.
14651         * tree-vrp.c: Likewise.
14652         * tree-tailcall.c: Likewise
14653         * tree-scalar-evolution.c: Likewise
14654         * tree-ssa-dse.c: Likewise
14655         * tree-chrec.c: Likewise
14656         * tree-ssa-sccvn.c: Likewise
14657         * tree-ssa-copyrename.c: Likewise
14658         * tree-nomudflap.c: Likewise
14659         * tree-call-cdce.c: Likewise
14660         * tree-stdarg.c: Likewise
14661         * tree-ssa-math-opts.c: Likewise
14662         * tree-nrv.c: Likewise
14663         * tree-ssa-sink.c: Likewise
14664         * tree-browser.c: Likewise
14665         * tree-ssa-loop-ivcanon.c: Likewise
14666         * tree-ssa-loop.c: Likewise
14667         * tree-parloops.c: Likewise
14668         * tree-ssa-address.c: Likewise
14669         * tree-ssa-ifcombine.c: Likewise
14670         * tree-if-conv.c: Likewise
14671         * tree-data-ref.c: Likewise
14672         * tree-affine.c: Likewise
14673         * tree-ssa-phiopt.c: Likewise
14674         * tree-ssa-coalesce.c: Likewise
14675         * tree-ssa-pre.c: Likewise
14676         * tree-ssa-live.c: Likewise
14677         * tree-predcom.c: Likewise
14678         * tree-ssa-forwprop.c: Likewise
14679         * tree-ssa-dce.c: Likewise
14680         * tree-ssa-ter.c: Likewise
14681         * tree-ssa-loop-prefetch.c: Likewise
14682         * tree-optimize.c: Likewise
14683         * tree-ssa-phiprop.c: Likewise
14684         * tree-object-size.c: Likewise
14685         * tree-outof-ssa.c: Likewise
14686         * tree-ssa-structalias.c: Likewise
14687         * tree-switch-conversion.c: Likewise
14688         * tree-ssa-reassoc.c: Likewise
14689         * tree-ssa-operands.c: Likewise
14690         * tree-vectorizer.c: Likewise
14691         * tree-vect-data-refs.c: Likewise
14692         * tree-vect-generic.c: Likewise
14693         * tree-vect-stmts.c: Likewise
14694         * tree-vect-patterns.c: Likewise
14695         * tree-vect-slp.c: Likewise
14696         * tree-vect-loop.c: Likewise
14697         * tree-ssa-loop-ivopts.c: Likewise
14698         * tree-ssa-loop-im.c: Likewise
14699         * tree-ssa-loop-niter.c: Likewise
14700         * tree-ssa-loop-unswitch.c: Likewise
14701         * tree-ssa-loop-manip.c: Likewise
14702         * tree-ssa-loop-ch.c: Likewise
14703         * tree-dump.c: Likewise
14704         * tree-complex.c: Likewise
14705
14706         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
14707         * tree-ssa-uninit.c: Likewise
14708         * tree-ssa-threadupdate.c: Likewise
14709         * tree-ssa-uncprop.c: Likewise
14710         * tree-ssa-ccp.c: Likewise
14711         * tree-ssa-dom.c: Likewise
14712         * tree-ssa-propagate.c: Likewise
14713         * tree-ssa-alias.c: Likewise
14714         * tree-dfa.c: Likewise
14715         * tree-cfgcleanup.c: Likewise
14716         * tree-sra.c: Likewise
14717         * tree-ssa-copy.c: Likewise
14718         * tree-ssa.c: Likewise
14719         * tree-profile.c: Likewise
14720         * tree-cfg.c: Likewise
14721         * tree-ssa-threadedge.c: Likewise
14722         * tree-vect-loop-manip.c: Likewise
14723
14724         * tree-inline.c: Do not include diagnostic.h and expr.h.
14725         Include rtl.h.
14726         (copy_decl_for_dup_finish): Do not use NULL_RTX.
14727
14728         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
14729         * tree-loop-distribution.c: Likewise.
14730
14731 2010-06-01  Jan Hubicka  <jh@suse.cz>
14732
14733         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
14734
14735 2010-06-01  Jan Hubicka  <jh@suse.cz>
14736
14737         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
14738         remove return value.
14739         (split_bbs_on_noreturn_calls) .... here.
14740         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
14741         * tree-flow.h (fixup_noreturn_call): New.
14742
14743 2010-06-01  Jan Hubicka  <jh@suse.cz>
14744
14745         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
14746
14747 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
14748
14749         * tree.h (build_nt_call_list): Delete.
14750         * tree.c (build_nt_call_list): Delete.
14751
14752 2010-06-01  Jan Hubicka  <jh@suse.cz>
14753
14754         * fwprop.c: Make emit-rtl.h include last.
14755         * rtlanal.c: Include emit-rtl.h.
14756         * genautomata.c: Output emit-rtl include into insn-automata.c
14757         * df-scan.c: Include emit-rtl.h.
14758         * haifa-sched.c: Indlude emit-rtl.h.
14759         * mode-switching.c: Indlude emit-rtl.h.
14760         * graph.c: Indlude emit-rtl.h.
14761         * sel-sched.c: Include emit-rtl.h.
14762         * sel-sched-ir.c: Include emit-rtl.h.
14763         * ira-build.c: Include emit-rtl.h.
14764         * emit-rtl.c (first_insn, last_insn): Remove defines.
14765         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
14766         Move to emit-rtl.h.
14767         (set_new_first_and_last_insn, get_last_insn_anywhere,
14768         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
14769         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
14770         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
14771         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
14772         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
14773         Use accessor functions.
14774         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
14775          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
14776         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
14777         mem_expr_equal_p): Move here from rtl.h.
14778         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
14779         Move here from emit-rtl.c; make inline.
14780         * cfglayout.h: Include emit-rtl.h.
14781         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
14782          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
14783         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
14784         mem_expr_equal_p, get_insns, set_first-insn,
14785         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
14786         * reg-stack.c: Include emit-rtl.h.
14787         * dce.c: Likewise.
14788
14789 2010-06-01  Jan Hubicka  <jh@suse.cz>
14790
14791         * cgraph.h (tree_function_versioning): Update prototype.
14792         (cgraph_function_versioning): Update prototype.
14793         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
14794         bitmap.
14795         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
14796         (cgraph_materialize_clone, save_inline_function_body): Update use of
14797         tree_function_versioning.
14798         * tree-inline.c (copy_bb): Look for previous copied block to link
14799         after; fix debug output.
14800         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
14801         (copy_body): Likewise.
14802         (expand_call_inline): Update use of copy_body.
14803         (tree_function_versioning): Update use of copy body; accept
14804         blocks_to_copy and new_entry.
14805
14806 2010-06-01  Jan Hubicka  <jh@suse.cz>
14807
14808         * gegenrtl.c: Remove unnecesary prototypes.
14809         (gendecl): Remove.
14810         (gendef): Produce static inline.
14811         (gencode): Remove.
14812         (main): Do not decode parameters; generate header only.
14813         * Makefile.in (genrtl.c): Remove.
14814
14815 2010-06-01  Jan Hubicka  <jh@suse.cz>
14816
14817         * tree-switch-conversion.c (build_one_array): Make it readonly.
14818
14819 2010-06-01  Richard Guenther  <rguenther@suse.de>
14820
14821         * optabs.c (init_optabs): Guard all accesses to reinit.
14822         * ipa-pure-const.c (propagate): Fix another typo.
14823         * opts.c (common_handle_option): Split assignment to bool.
14824         * c-opts.c (c_common_handle_option): Likewise.
14825
14826 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
14827             Matthew Gingell  <gingell@adacore.com>
14828
14829         * doc/invoke.texi: Mention -fdump-ada-spec.
14830         * tree-dump.c (dump_files): Add ada-spec.
14831         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
14832         * tree-pass.h (tree_dump_index): Add TDI_ada.
14833         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
14834         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
14835         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
14836         * c-decl.c: Include c-ada-spec.h.
14837         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
14838         functions.
14839         (c_write_global_declarations): Add handling of -fdump-ada-spec.
14840         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
14841         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
14842         * c-ada-spec.h, c-ada-spec.c: New files.
14843
14844 2010-06-01  Richard Guenther  <rguenther@suse.de>
14845
14846         PR lto/43853
14847         * ipa-pure-const.c (get_function_state): Hand back varying state
14848         if we do not have one.
14849         (has_function_state): New function.
14850         (duplicate_node_data): Adjust.
14851         (remove_node_data): Likewise.
14852         (pure_const_write_summary): Likewise.
14853         (propagate): Likewise.  Fix typo.
14854
14855 2010-06-01  Jan Hubicka  <jh@suse.cz>
14856
14857         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
14858         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
14859         (execute_all_ipa_transforms): Do not play with the states.
14860
14861 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
14862
14863         * config/arm/t-linux-androideabi: New.
14864         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
14865
14866 2010-06-01  Jan Hubicka  <jh@suse.cz>
14867
14868         * tree-inline.c (estimate_num_insns): For stdarg functions look
14869         into call statement to count cost of argument passing.
14870
14871 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
14872
14873         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
14874         argument for fprintf.
14875         (ix86_output_addr_diff_elt): Likewise.
14876         (x86_function_profiler): Likewise.
14877         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
14878         (LPREFIX): Likewise.
14879         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
14880
14881 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
14882
14883         PR target/44338
14884         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
14885         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
14886         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
14887         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
14888         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
14889         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
14890         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
14891         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
14892         TARGET_FUSED_MADD.
14893
14894 2010-05-31  Jan Hubicka  <jh@suse.cz>
14895
14896         * tree.h (tree_range_check_failed): Declare noreturn.
14897
14898 2010-05-31  Jan Hubicka  <jh@suse.cz>
14899
14900         * gimple.c (gimple_call_builtin_p): New function.
14901         * gimple.h (gimple_call_builtin_p): Declare.
14902         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
14903         to exit.
14904         (execute_warn_function_return): BUILT_IN_RETURN is return.
14905         (split_critical_edges): Return edges are not critical.
14906         (is_ctrl_altering_stmt): Builtin_in_return is altering.
14907         (gimple_verify_flow_info): Handle built_in_return.
14908         (execute_warn_function_return): Handle built_in_return.
14909         * ipa-pure-const.c (check_call): Ignore builtin_return.
14910
14911 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
14912
14913         PR middle-end/44337
14914         * expr.c (expand_assignment): Don't store anything for out-of-bounds
14915         array accesses with non-MEM.
14916
14917         PR tree-optimization/44182
14918         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
14919         newly needs to end a bb is followed by debug stmts, instead return
14920         true from the function at the end.
14921         (maybe_move_debug_stmts_to_successors): New function.
14922         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
14923
14924 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
14925
14926         PR target/44161
14927         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
14928
14929 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
14930
14931         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
14932         for nested functions in non-optimized compilation.
14933
14934 2010-05-31  Richard Guenther  <rguenther@suse.de>
14935
14936         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
14937
14938 2010-05-30  Jan Hubicka  <jh@suse.cz>
14939
14940         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
14941
14942 2010-05-30  Richard Guenther  <rguenther@suse.de>
14943
14944         PR lto/42975
14945         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
14946         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
14947         no longer needed.
14948
14949 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
14950
14951         * config/darwin.c (output_objc_section_asm_op): Add comment.
14952         (name_needs_quotes): Add '_' to list of valid comment chars.
14953         (machopic_output_function_base_name): Remove unneeded quotes.
14954         (darwin_encode_section_info): Adjust asm whitespace.
14955         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
14956         (ASM_OUTPUT_LOCAL): Ditto.
14957         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
14958         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
14959         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
14960
14961 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
14962
14963         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
14964         RS6000_OUTPUT_BASENAME unconditionally.
14965         (rs6000_output_function_epilogue): Likewise.
14966
14967 2010-05-30  Jan Hubicka  <jh@suse.cz>
14968
14969         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
14970         nodes.
14971
14972 2010-05-30  Richard Guenther  <rguenther@suse.de>
14973
14974         * tree-cfg.c (verify_gimple_assign_single): Implement
14975         verification for COND_EXPR rhs.
14976
14977 2010-05-30  Jan Hubicka  <jh@suse.cz>
14978
14979         * cgraph.h (cgraph_dump_file): Declare.
14980         * cgraphunit.c (cgraph_dump_file): Export.
14981         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
14982
14983 2010-05-30  Jan Hubicka  <jh@suse.cz>
14984
14985         * dwarf2out.c (reference_to_unused,
14986         premark_types_used_by_global_vars_helper): Avoid creation of new
14987         varpool nodes.
14988
14989 2010-05-30  Jan Hubicka  <jh@suse.cz>
14990
14991         * cgraph.h (cgraph_node_cannot_return,
14992         cgraph_edge_cannot_lead_to_return): New functions.
14993         * cgraph.c (cgraph_node_cannot_return,
14994         cgraph_edge_cannot_lead_to_return): Use them.
14995         * ipa-pure-const.c (pure_const_names): New static var.
14996         (check_call): Handle calls not leading to return.
14997         (pure_const_read_summary): Dump info read.
14998         (propagate): Dump info about propagation process; ignore side effects
14999         of functions not leading to exit; fix handling of pure functions.
15000
15001 2010-05-30  Jan Hubicka  <jh@suse.cz>
15002
15003         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
15004         for tail call epilogues.
15005
15006 2010-05-30  Jan Hubicka  <jh@suse.cz>
15007
15008         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
15009         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
15010         dump files.
15011
15012 2010-05-29  Jan Hubicka  <jh@suse.cz>
15013
15014         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
15015         node; remove references in node we no longer keep in cgrpah but need
15016         body of.
15017
15018 2010-05-29  Jan Hubicka  <jh@suse.cz>
15019
15020         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
15021
15022 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15023
15024         PR target/44165
15025         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
15026
15027 2010-05-29  Jan Hubicka  <jh@suse.cz>
15028
15029         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
15030         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
15031         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
15032         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
15033         debug_names_replaced_by, debug_update_ssa): Likewise.
15034         * sbitmap.c (debug_sbitmap): Likewise.
15035         * genrecog.c (debug_decision, debug_decision_list): Likewise.
15036         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
15037         debug_tree_chain): Likewise.
15038         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
15039         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
15040         * optabs.c (debug_optab_libfuncs): Likewise.
15041         (verify_loop_closed_ssa): Likewise.
15042         * value-prof.c (verify_histograms): Likewise.
15043         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
15044         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
15045         * cfghooks.c (verify_flow_info): Likewise.
15046         * fold-const.c (debug_fold_checksum): Likewise.
15047         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
15048         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
15049         Likewise.
15050         * omega.c (debug_omega_problem): Likewise.
15051         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
15052         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
15053         * dominance.c (verify_dominators, debug_dominance_info,
15054         debug_dominance_tree): Likewise.
15055         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
15056         * df_regno_debug, df_ref_debug,
15057         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
15058         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
15059         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
15060         * sel-sched.c (debug_state): Likewise.
15061         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
15062         Likewise.
15063         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
15064         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
15065         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
15066         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
15067         Likewise.
15068         * c-pretty-print.c (debug_c_tree): Likewise.
15069         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
15070         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
15071         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
15072         * ebitmap.c (debug_ebitmap): Likewise.
15073         * function.c (debug_find_var_in_block_tree): Likewise.
15074         * print-rtl.c (debug_rtx): Likewise.
15075         (debug_rtx_count): Likewise.
15076         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
15077         * stor-layout.c (debug_rli): Likewise.
15078         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
15079         * tree-data-ref.c (debug_data_references,
15080         debug_data_dependence_relations, debug_data_reference,
15081         debug_data_dependence_relation, debug_rdg_vertex,
15082         debug_rdg_component, debug_rdg): Likewise.
15083         * tree-affine.c (debug_aff): Likewise.
15084         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
15085         Likewise.
15086         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
15087         * emit-rtl.c (verify_rtl_sharing): Likewise.
15088         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
15089         debug_value_expressions): Likewise.
15090         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
15091         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
15092         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
15093         * cfglayout.c (verify_insn_chain): Likewise.
15094         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
15095         debug_clast_stmt, debug_generated_program): Likewise.
15096         * ggc-page.c (debug_print_page_list): Likewise.
15097         * tree-ssa-ter.c (debug_ter): Likewise.
15098         * graphite-dependences.c (debug_pddr): Likewise.
15099         * sched-deps.c (debug_ds): Likewise.
15100         * tree-ssa.c (verify_ssa): Likewise.
15101         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
15102         debug_scattering_functions, debug_iteration_domains, debug_pdr,
15103         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
15104         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
15105         * tree-inline.c (debug_find_tree): Likewise.
15106         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
15107         debug_ppl_powerset_matrix): Likewise.
15108         * var-tracking.c (debug_dv): Likewise.
15109         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
15110         * cfgloop.c (verify_loop_structure): Likewise.
15111         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
15112         * c-common.c (verify_sequence_points): Likewise.
15113         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
15114         debug_candidates, debug_rgn_dependencies): Likewise.
15115         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
15116         * debug_constraint_graph, debug_solution_for_var,
15117         debug_sa_points_to_info): Likewise.
15118         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
15119         Likewie.
15120         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
15121         debug_loops, debug_loop, debug_loop_num): Likewise.
15122         * passes.c (debug_pass): Likewise.
15123         (dump_properties): Likewise; add cfglayout property.
15124         (debug_properties): Likewise.
15125         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
15126         * varpool.c (debug_varpool): Likewise.
15127         * regcprop.c (debug_value_data): Likewise.
15128         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
15129         debug_immediate_uses_for): Likewise.
15130
15131 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15132
15133         PR bootstrap/44315
15134         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
15135         Filter out insn-flags.h.
15136
15137 2010-05-29  Jan Hubicka  <jh@suse.cz>
15138
15139         * cgraph.h (struct varpool_node_set_def,
15140         struct cgraph_node_set_def): Remove unused AUX pointer.
15141         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
15142         VEC_empty macro.
15143
15144 2010-05-29  Jan Hubicka  <jh@suse.cz>
15145
15146         PR middle-end/44324
15147         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
15148
15149 2010-05-29  Richard Guenther  <rguenther@suse.de>
15150
15151         * lto-streamer.c (cached_bp): New global variable.
15152         (bitpack_create): Return the cached bitpack, if available.
15153         (bitpack_delete): Clear and cache the bitpack, if appropriate.
15154         (bp_pack_value): Remove redundant asserts.
15155
15156 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15157
15158         PR middle-end/44306
15159         * tree-if-conv.c (is_true_predicate): New.
15160         (is_predicated): Use is_true_predicate.
15161         (add_to_predicate_list): Same.  Do not use unshare_expr.
15162         (add_to_dst_predicate_list): Same.
15163
15164 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
15165
15166         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
15167         field on edges.
15168         (predicate_bbs): Same.
15169         (clean_predicate_lists): Same.
15170         (find_phi_replacement_condition): Do not AND the predicate from
15171         edge->aux.
15172
15173 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
15174
15175         PR bootstrap/44315
15176         * Makefile.in (build/gencondmd.o): Add a missing `\'.
15177
15178 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15179
15180         PR target/44261
15181         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
15182         (negdf2): Adjust expander pattern and use negdf2_slow.
15183         (negsf2): Likewise.
15184
15185 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
15186
15187         * basic-block.h (struct control_flow_graph): Move last_label_uid field
15188         up.
15189         * df.h (struct df_base_ref): Move regno field up.
15190         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
15191         * expr.h (struct separate_ops): Move location field up.
15192         * optabs.h (struct optab_d): Move libcall_basename field down.
15193         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
15194         * config/i386/i386.h (struct machine_function): Convert call_abi field
15195         into a bitfield.  Move cfa field to the end of the structure.
15196
15197 2010-05-29  Jan Hubicka  <jh@suse.cz>
15198
15199         * varpool.c (varpool_get_node): Fix lookup.
15200
15201 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15202
15203         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
15204         RTL specific prototypes with #ifdef RTX_CODE.
15205         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
15206         * config/spu/t-spu-elf: Fix dependencies.
15207
15208         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
15209
15210 2010-05-29  Mike Stump  <mikestump@comcast.net>
15211
15212         PR bootstrap/44315
15213         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
15214         TM_H when building to avoid dependency loops.
15215
15216 2010-05-29  Jan Hubicka  <jh@suse.cz>
15217
15218         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
15219         refs and body; not the whole node for masters of materialized clones.
15220
15221 2010-05-29  Mike Stump  <mikestump@comcast.net>
15222
15223         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
15224
15225 2010-05-29  Jan Hubicka  <jh@suse.cz>
15226
15227         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
15228         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
15229         use of clone_function_name.
15230         * cgraph.h (cgraph_create_virtual_clone,
15231         cgraph_function_versioning): update prototypes.
15232         (clone_function_name): Declare.
15233         * ipa-cp.c (ipcp_insert_stage): Update call of
15234         cgraph_create_virtual_clone.
15235         * omp-low.c (create_omp_child_function_name): Use
15236         cgraph_create_virtual_clone.
15237         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
15238         (cgraph_function_versioning): Take SUFFIX argument; produce new name
15239         and make decl local.
15240
15241 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15242
15243         * vec.h: Include statistics.h
15244         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
15245         with VEC_H.
15246
15247 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15248
15249         * c-lex.c: Do not include c-tree.h.
15250         * c-pretty-print.c: Likewise.
15251         * c-opts.c: Likewise.
15252         * c-gimplify.c: Likewise.
15253         * c-common.c: Likewise.
15254         * c-dump.c: Likewise.  Include c-common.h.
15255
15256 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15257
15258         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
15259         before including diagnostic-core.h.
15260         (c_cpp_error): New prototype moved from c-tree.h.
15261         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
15262         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
15263         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
15264         (c_cpp_error): Prototype moved to c-common.h.
15265         * Makefile.in: Update dependency for C_COMMON_H.
15266
15267 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
15268
15269         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
15270         * c-common.c (c_register_addr_space): Remove here.
15271         * c-decl.c (c_register_addr_space): Re-add here.
15272
15273 2010-05-28  Mike Stump  <mikestump@comcast.net>
15274
15275         * config/darwin-c.c: Remove c-tree.h include.
15276
15277 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15278
15279         * gcc.c: Include diagnostic.h.
15280         (error_count): Remove.  All users changed to use errorcount.
15281         (programname): Remove.  All users changed to use progname.
15282         (fancy_abort, internal_error, fatal_error, error, warning, inform,
15283         fnotice): Remove.
15284         (execute): Don't include "Internal error" and bug reporting
15285         information in argument of internal_error call.
15286         (process_command): Don't increment error_count after calling
15287         perror_with_name.
15288         (input_filename): Rename to gcc_input_filename.  All users
15289         changed.
15290         (main): Call diagnostic_initialize.  Register delete_temp_files
15291         with atexit.  Use seen_error to test for errors.
15292         * gcc.h: Include diagnostic-core.h.
15293         (fatal_error, error, warning): Remove.
15294         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
15295         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
15296         (gcc.o): Update dependencies.
15297
15298 2010-05-28  Jeff Law  <law@redhat.com>
15299
15300         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
15301         functions.
15302         * ira.h (ira_bad_reload_regno): Declare
15303         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
15304
15305         * ira-color.c (update_curr_costs): Free updated hard reg costs.
15306         (ira_reassign_conflict_allocnos): Remove bogus asserts.
15307         (allocno_reload_assign): Likewise.
15308
15309 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
15310
15311         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
15312         build1_stat.
15313
15314 2010-05-28  Richard Guenther  <rguenther@suse.de>
15315
15316         PR lto/44312
15317         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
15318         Stream fixed-point constants mode.
15319         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
15320         and TYPE_PRECISION.
15321         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
15322         Stream fixed-point constants mode.
15323         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
15324         and TYPE_PRECISION.
15325
15326 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15327
15328         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
15329         only place it was called from.
15330         (number_of_latch_executions): Do not return chrec_dont_know when the
15331         may_be_zero is a runtime condition: instead, return a COND_EXPR
15332         including the may_be_zero condition.
15333         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
15334         of nb_iterations.
15335         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
15336         COND_EXPRs.
15337
15338 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15339
15340         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
15341         generate COND_EXPRs for degenerate_phi_result.
15342
15343 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
15344
15345         PR middle-end/44293
15346         * tree-if-conv.c (if_convertible_loop_p): Check the
15347         if-convertibility of phi nodes in non predicated BBs.
15348
15349 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15350
15351         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
15352
15353 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15354
15355         PR driver/15303
15356         * gcc.c (inform, warning, inform): New functions.
15357         (fatal_ice): Rename to internal_error; change cmsgid parameter to
15358         gmsgid.  All callers changed.
15359         (notice): Rename to fnotice; add parameter fp.  All callers changed.
15360         (fatal_error): Rename to fatal_signal.  All users changed.
15361         (fatal): Rename to fatal_error; change cmsgid parameter to
15362         gmsgid.  All callers changed.
15363         (process_command): Use warning instead of error for warnings.
15364         (end_going_arg): Don't use _() around argument of error.
15365         (do_spec_1): Use inform for message from %n specs.  Use warning
15366         instead of error for warnings.
15367         (main): Use inform for comparison messages.  Use warning for
15368         message about unused linker input.
15369         (error): Increment error_count.  Print "error: ".
15370         * gcc.h (fatal): Change to fatal_error.
15371         (warning): Declare.
15372         * config/darwin-driver.c (darwin_default_min_version): Use warning
15373         instead of fprintf for warnings.
15374         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
15375
15376 2010-05-28  Julian Brown  <julian@codesourcery.com>
15377
15378         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
15379         (*thumb2_addsi3_compare0_scratch): New.
15380         * config/arm/constraints.md (Pv): New.
15381         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
15382         for ARM mode only.
15383         (*addsi3_compare0_scratch): Likewise.
15384
15385 2010-05-28  Jan Hubicka  <jh@suse.cz>
15386
15387         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
15388         check.
15389         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
15390         only on local statics.
15391
15392 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
15393
15394         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
15395
15396 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
15397
15398         PR bootstrap/44314
15399         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
15400         (OPTION_GLIBC): Define.
15401
15402 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15403
15404         PR debug/41048
15405         * dwarf2out.c (double_int_type_size_in_bits): New function.
15406         (round_up_to_align): Change first argument and return value to
15407         double_int.
15408         (field_byte_offset): Work internally on double_ints.
15409
15410         PR target/43636
15411         * builtins.c (expand_movstr): Use a temporary pseudo instead
15412         of target even when target is not NULL and not const0_rtx, but
15413         fails movstr predicate.
15414         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
15415
15416 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
15417
15418         * final.c (rest_of_clean_state): Use %m in errors instead of
15419         strerror (errno).
15420         * gengtype.c (read_input_list, close_output_files): Use xstrerror
15421         instead of strerror.
15422         * toplev.c (process_options): Use %m in errors instead of strerror
15423         (errno).
15424         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
15425         (errno).
15426
15427 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
15428
15429         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
15430         (ix86_canonical_va_list_type): Make static.  Add declaration.
15431         (ix86_enum_va_list): Make static.  Reindent.
15432         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
15433         (ix86_canonical_va_list_type): Ditto.
15434         (ix86_enum_va_list): Ditto.
15435
15436 2010-05-28  Richard Guenther  <rguenther@suse.de>
15437
15438         * lto-wrapper.c (run_gcc): With -save-temps generate a
15439         user-visible ltrans filename.  Fixup ltrans unit numbering.
15440
15441 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
15442
15443         * c-common.c (c_common_nodes_and_builtins): Replace use
15444         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
15445         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
15446         to ix86_enum_va_list.
15447         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
15448         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
15449         (TARGET_ENUM_VA_LIST_P): Add hook description.
15450         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
15451         * target.h (gcc_target): Add enum_va_list hook.
15452
15453         PR bootstrap/44299
15454         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
15455         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
15456         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
15457
15458 2010-05-28  Alan Modra  <amodra@gmail.com>
15459
15460         PR target/44266
15461         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
15462         emit_library_call machinery to set up __tls_get_addr calls.
15463
15464 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15465
15466         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
15467
15468 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
15469
15470         Revert fix for PR c++/44188
15471         * c-common.c (is_typedef_decl): Revert the moving of  this
15472         definition ...
15473         * tree.c (is_typedef_decl): ... here.
15474         (typdef_variant_p): Revert the moving of this  definition
15475         here from cp/tree.c.
15476         * c-common.h (is_typedef_decl): Revert the moving of this
15477         declaration ...
15478         * tree.h (is_typedef_decl): ... here.
15479         (typedef_variant_p): Revert the moving of this  declaration here
15480         from cp/cp-tree.h
15481         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
15482         (gen_tagged_type_die): Revert the splitting out of ...
15483         (gen_type_die_with_usage): ... this function. Revert the anonymous
15484         tagged type handling.
15485         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
15486         typedefs naming anonymous tagged types.
15487
15488 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15489
15490         * config/rs6000/rs6000-modes.def (PSImode): Delete.
15491
15492 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
15493
15494         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
15495         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
15496         throughout.
15497         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
15498         "xer" to "ca".
15499         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
15500         XER_REGS to CA_REGS throughout.
15501         * config/rs6000/rs6000.h: Same.
15502         (ADDITIONAL_REGISTER_NAMES): Add "xer".
15503         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
15504         that mode_iterator "P" is the size for arithmetic carries as well.
15505         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
15506
15507 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
15508
15509         PR bootstrap/44255
15510         * combine.c (struct rtx_subst_pair): Define unconditionally.
15511         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
15512         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
15513         Call make_compound_operation on pair->to.
15514         (propagate_for_debug): Don't call make_compound_operation here.
15515         Always use simplify_replace_fn_rtx.
15516
15517 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
15518
15519         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
15520         * config/xtensa/xtensa.c (override_options): Check
15521           TARGET_FORCE_NO_PIC and set flag_pic.
15522         * config/xtensa/xtensa.opt: Document -mforce-no-pic
15523
15524 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15525
15526         PR bootstrap/44299
15527         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
15528         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
15529
15530 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15531
15532         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
15533         toplev.h.
15534         * diagnostic.c: Don't include toplev.h.
15535         (progname): Define.  Moved from toplev.c.
15536         (seen_error): New function.
15537         * diagnostic.h: Include diagnostic-core.h.
15538         (diagnostic_t, emit_diagnostic): Don't declare here.
15539         * toplev.c (progname): Move to toplev.c.
15540         (emit_debug_global_declarations, compile_file, finalize,
15541         do_compile, toplev_main): Use seen_error.
15542         * toplev.h: Include diagnostic-core.h.
15543         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
15544         internal_error, warning, warning_at, error, error_n, error_at,
15545         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
15546         verbatim, fnotice, progname): Move to diagnostic-core.h.
15547         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
15548         (expand_builtin_expect): Use seen_error.
15549         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
15550         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
15551         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
15552         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
15553         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
15554         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
15555         errorcount for errors.
15556         * c-opts.c (c_common_finish): Use seen_error.
15557         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15558         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
15559         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
15560         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
15561         (get_coverage_counts): Use seen_error.
15562         * dwarf2out.c (dwarf2out_finish): Use seen_error.
15563         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
15564         gimplify_body): Use seen_error.
15565         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
15566         * ipa-pure-const.c (gate_pure_const): Use seen_error.
15567         * ipa-reference.c (gate_reference): Use seen_error.
15568         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
15569         * lambda-code.c: Include diagnostic-core.h instead of
15570         diagnostic.h.
15571         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
15572         * lto-compress.c: Include diagnostic-core.h instead of
15573         diagnostic.h.
15574         * lto-section-in.c: Include diagnostic-core.h instead of
15575         diagnostic.h.
15576         * lto-streamer-out.c: Include diagnostic-core.h instead of
15577         diagnostic.h.
15578         * lto-streamer.c: Include diagnostic-core.h instead of
15579         diagnostic.h.
15580         (gate_lto_out): Use seen_error.
15581         * matrix-reorg.c: Include diagnostic-core.h instead of
15582         diagnostic.h.
15583         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
15584         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
15585         (gate_expand_omp, lower_omp_1): Use seen_error.
15586         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
15587         (rest_of_decl_compilation, rest_of_type_compilation,
15588         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
15589         * tree-cfg.c (label_to_block_fn): Use seen_error.
15590         * tree-inline.c (optimize_inline_calls): Use seen_error.
15591         * tree-mudflap.c (mudflap_finish_file): Use
15592         seen_error.
15593         * tree-optimize.c (gate_all_optimizations,
15594         gate_all_early_local_passes, gate_all_early_optimizations): Use
15595         seen_error.
15596         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
15597         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
15598         (varpool_remove_unreferenced_decls,
15599         varpool_assemble_pending_decls): Use seen_error.
15600         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
15601         (TOPLEV_H, DIAGNOSTIC_H): Update.
15602         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
15603         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
15604         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
15605         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
15606         coverage.o, lambda-code.o): Update dependencies.
15607
15608 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
15609
15610         PR c++/44188
15611         * c-common.c (is_typedef_decl): Move this definition ...
15612         * tree.c (is_typedef_decl): ... here.
15613         (typdef_variant_p): Move definition here from cp/tree.c.
15614         * c-common.h (is_typedef_decl): Move this declaration ...
15615         * tree.h (is_typedef_decl): ... here.
15616         (typedef_variant_p): Move declaration here from cp/cp-tree.h
15617         * dwarf2out.c (is_naming_typedef_decl): New function.
15618         (gen_tagged_type_die): Split out of ...
15619         (gen_type_die_with_usage): ... this function. When an anonymous
15620         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
15621         is emitted for the typedef.
15622         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
15623         anonymous tagged types.
15624
15625 2010-05-27  Jason Merrill  <jason@redhat.com>
15626
15627         * print-tree.c (debug_vec_tree): New fn.
15628         (print_vec_tree): New fn.
15629         * tree.h: Declare them.
15630         * gdbinit.in (pvt): New command.
15631
15632         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
15633
15634         * gdbinit.in (pdd): New command.
15635
15636 2010-05-27  Jan Hubicka  <jh@suse.cz>
15637
15638         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
15639         (update_caller_keys): Return early if there are no callers;
15640         only update fibheap when decresing the key.
15641         (update_callee_keys): Avoid recursion.
15642         (decide_inlining_of_small_functions): When badness does not match;
15643         re-insert into fibheap.
15644
15645 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
15646
15647         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
15648         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
15649         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
15650         (ALL_HOST_OBJS): Now a union of the above two.
15651         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
15652         all files in ALL_HOST_FRONTEND_OBJS.
15653         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
15654
15655         * c-common.c: Pretend to be a backend file by undefining
15656         IN_GCC_FRONTEND (still need rtl.h here).
15657
15658 2010-05-27  Jan Hubicka  <jh@suse.cz>
15659
15660         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
15661         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
15662
15663 2010-05-27  Jan Hubicka  <jh@suse.cz>
15664
15665         * sched-ebb.c: Rename struct deps to struct deps_desc.
15666         * ddg.c: Likewise.
15667         * sel-sched-ir.c: Likewise.
15668         * sched-deps.c: Likewise.
15669         * sched-int.h: Likewise.
15670         * sched-rgn.c: Likewise.
15671
15672 2010-05-27  Jon Beniston  <jon@beniston.com>
15673
15674         PR 43726
15675         * config/lm32/lm32.h: Remove definition of
15676         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
15677
15678 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
15679
15680         PR lto/44230
15681         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
15682
15683 2010-05-27  Richard Guenther  <rguenther@suse.de>
15684
15685         PR tree-optimization/44284
15686         * tree-vect-stmts.c (vectorizable_assignment): Handle
15687         sign-changing conversions as simple copy.
15688
15689 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15690
15691         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
15692         Bionic C library.
15693         (__gthread_active_p): Check for pthread_create if compiling against
15694         Bionic C library.
15695
15696 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15697
15698         Support compilation for Android platform.  Reimplement -mandroid.
15699
15700         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
15701         (*android*): Set ANDROID_DEFAULT.
15702         (arm*-*-linux*): Include linux-android.h.
15703         (arm*-*-eabi*): Don't include previous -mandroid implementation.
15704         * config/arm/eabi.h: Remove, move Android-specific parts ...
15705         * config/linux-android.h: ... here.  New file.
15706         * config/arm/eabi.opt: Rename to ...
15707         * config/linux-android.opt: ... this.
15708         (mandroid): Allow -mno-android option.  Initialize based on
15709         ANDROID_DEFAULT.
15710         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
15711         Move logic to corresponding LINUX_TARGET_* macros.
15712         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
15713         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
15714         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
15715         Android definitions.
15716         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
15717         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
15718         Document.
15719
15720 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
15721
15722         Add support for Bionic C library
15723
15724         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
15725         macro.
15726         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
15727         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
15728
15729         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
15730         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
15731         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
15732         to support multiple C libraries.  Handle Bionic.
15733         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
15734         (BIONIC_DYNAMIC_LINKER64): Define.
15735         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
15736         Update.
15737         (TARGET_HAS_SINCOS): Enable for Bionic.
15738
15739         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
15740         the last option specified on command line take effect.
15741         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
15742         (mbionic): New.
15743         (mglibc, muclibc): Update.
15744
15745         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
15746         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
15747         DEFAULT_LIBC.
15748
15749         * doc/invoke.texi (-mglibc, -muclibc): Update.
15750         (-mbionic): Document.
15751
15752 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15753
15754         * c-common.h (c_register_addr_space): Add prototype.
15755         (ADDR_SPACE_KEYWORD): Remove.
15756         * c-common.c (c_register_addr_space): New function.
15757         (c_addr_space_name): Reimplement.
15758         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
15759
15760         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
15761         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
15762
15763         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
15764         Remove TARGET_ADDR_SPACE_KEYWORDS.
15765
15766 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
15767
15768         * input.c: New file.
15769         * input.h (main_input_filename): Move declaration to toplev.h.
15770         * toplev.c (input_location, line_table): Move to input.c
15771         * toplev.h (main_input_filename): Move declaration from input.h.
15772         * tree.c (expand_location): Move to input.c.
15773         * Makefile.in (OBJS-common): Add input.o.
15774         (input.o): Add dependencies.
15775
15776 2010-05-27  Richard Guenther  <rguenther@suse.de>
15777
15778         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
15779         for non-existant files.
15780         (fork_execute): Mark args_name file as deleted.
15781
15782 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
15783
15784         PR bootstrp/44287
15785         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
15786         (narrow_signed_type): Likewise.
15787
15788 2010-05-26  Jan Hubicka  <jh@suse.cz>
15789
15790         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
15791         edge only when checking is enabled; check using former_clone_of;
15792         check inline clones too.
15793         (cgraph_materialize_clone): Record former_clone_of pointer.
15794         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
15795         combining redirections; dump args_to_skip bitmap
15796         (cgraph_materialize_all_clones): Do no redirection here.
15797         * ipa-inline.c (inline_transform): Do redirection here.
15798         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
15799         cheking only).
15800
15801 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15802
15803         * config/avr/avr-c.c: Do not include regs.h.
15804         Include cpplib.h for cpp_define and tree.h for c-common.h.
15805         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
15806         * config/avr/t-avr: Fix dependencies for avr-c.o.
15807
15808 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15809
15810         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
15811         string instead of SYMBOL_REF rtx.
15812         * rtl.h (set_stack_check_libfunc): Move prototype from here...
15813         * libfuncs.h: ...to here.  Adjust for explow.c change.
15814
15815 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
15816
15817         * pretty-print.c: Don't include ggc.h.
15818         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
15819         (identifier_to_locale): Use them for allocation.
15820         * pretty-print.h (identifier_to_locale_alloc,
15821         identifier_to_locale_free): Declare.
15822         * toplev.c (alloc_for_identifier_to_locale): New.
15823         (general_init): Set identifier_to_locale_alloc and
15824         identifier_to_locale_free.
15825         * Makefile.in (pretty-print.o): Update dependencies.
15826
15827 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15828
15829         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
15830         pointer types if they have different alignment or mode.
15831
15832 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
15833
15834         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
15835         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
15836         * config/sparc/sparc-protos.h (function_value): Remove declaration.
15837         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
15838         sparc_function_value_regno_p): New functions.
15839         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15840         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15841         (function_value): Rename to...
15842         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
15843         argument to 'outgoing'.
15844         (function_arg_record_value, function_arg_union_value,
15845         function_arg_vector_value): Update comment.
15846
15847 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
15848
15849         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
15850         (fde_needed_for_eh_p): New predicate.
15851         (output_call_frame_info): Use it throughout to decide whether FDEs
15852         are needed for EH purpose.
15853         (dwarf2out_begin_prologue): Reorder assignments.
15854
15855 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15856
15857         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
15858         special case loop->header.
15859         (is_predicated): New.
15860         (if_convertible_loop_p): Call it.
15861
15862 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15863
15864         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
15865         iterator in parameter.  Do not generate code during the analysis.
15866         (tree_if_convert_cond_stmt): Removed.
15867         (tree_if_convert_stmt): Removed.
15868         (predicate_bbs): New.
15869         (if_convertible_loop_p): Call predicate_bbs.
15870         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
15871         now contains all the analysis part.
15872
15873 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15874
15875         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
15876         statements in the analysis part.
15877         (tree_if_convert_stmt): Update comment.
15878         (remove_conditions_and_labels): New.
15879         (combine_blocks): Call remove_conditions_and_labels.
15880         (tree_if_conversion): Update comment.
15881
15882 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15883
15884         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
15885         than 2 predecessors or more than 2 successors.
15886
15887 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15888
15889         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
15890         of loops in which the data dependence analysis fails.
15891
15892 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15893
15894         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
15895         CDI_POST_DOMINATORS.
15896         (tree_if_conversion): Same.
15897
15898 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15899
15900         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
15901
15902 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
15903
15904         * tree-if-conv.c: Update copyright years.  Fix comments.
15905         Fix indentation.
15906
15907 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
15908
15909         * builtin-types.def (BT_INT128): New primitive type.
15910         (BT_UINT128): Likewise.
15911         * c-common.c (c_common_r): Add __int128 keyword.
15912         (c_common_type_for_size): Handle __int128.
15913         (c_common_type_for_mode): Likewise.
15914         (c_common_signed_or_unsigned_type): Likewise.
15915         (c_common_nodes_and_builtins): Add builtin type
15916         if target supports 128-bit integer scalar.
15917         * c-common.h (enum rid): Add RID_INT128.
15918         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
15919         if target supports 128-bit integer scalar.
15920         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
15921         (finish_declspecs): Likewise.
15922         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
15923         (c_token_starts_declspecs): Likewise.
15924         (c_parser_declspecs): Likewise.
15925         (c_parser_attributes): Likewise.
15926         (c_parser_objc_selector): Likewise.
15927         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
15928         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
15929         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
15930         * tree.c (make_or_reuse_type): Likewise.
15931         (make_unsigned_type): Likewise.
15932         (build_common_tree_nodes_2): Likewise.
15933         * tree.h (enum integer_type_kind): Add itk_int128 and
15934         itk_unsigned_int128.
15935         (int128_integer_type_node): New define.
15936         (int128_unsigned_type_node): New define.
15937         * doc/extend.texi: Add documentation about __int128 type.
15938
15939 2010-05-26  Richard Guenther  <rguenther@suse.de>
15940
15941         * tree-ssa-sccvn.c (copy_nary): Adjust.
15942         (copy_phis): Rename to ...
15943         (copy_phi): ... this.  Adjust.
15944         (copy_references): Rename to ...
15945         (copy_reference): ... this.  Adjust.
15946         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
15947         result into the valid table.
15948
15949 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
15950
15951         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
15952         insn-config.h, insn-codes.h, recog.h, and optabs.h.
15953
15954 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
15955
15956         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
15957
15958 2010-05-26  Richard Guenther  <rguenther@suse.de>
15959
15960         * opts.c (common_handle_option): Handle OPT_Ofast.
15961
15962 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
15963
15964         * diagnostic.c: Don't include opts.h.
15965         (permissive_error_option): Define.
15966         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
15967         for classify_diagnostic.  Don't use memset for
15968         classify_diagnostic.  Initialize new and recently added fields.
15969         (diagnostic_classify_diagnostic): Use context->n_opts instead of
15970         N_OPTS.
15971         (diagnostic_report_diagnostic): Pass context parameter to
15972         diagnostic_report_warnings_p.  Use option_enabled and option_name
15973         hooks from context.
15974         (emit_diagnostic): Use permissive_error_option.
15975         (permerror): Likewise.
15976         * diagnostic.h: Don't include options.h.
15977         (struct diagnostic_context): Add n_opts, opt_permissive,
15978         inhibit_warnings, warn_system_headers, option_enabled and
15979         option_name fields.  Change classify_diagnostic to a pointer.
15980         * opts-diagnostic.h: New file.
15981         * opts.c: Include opts-diagnostic.h.
15982         (common_handle_option): Set global_dc fields for -Wfatal-errors,
15983         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
15984         (option_name): New function.
15985         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
15986         (c_common_handle_option): Set global_dc->permissive for
15987         -fpermissive.
15988         * c-common.c (c_cpp_error): Save and restore
15989         global_dc->warn_system_headers, not variable warn_system_headers.
15990         * toplev.c: Include opts-diagnostic.h.
15991         (general_init): Update call to diagnostic_initialize.  Set
15992         global_dc->show_column, global_dc->option_enabled and
15993         global_dc->option_name.
15994         (process_options): Don't set global_dc fields here.
15995         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
15996         (diagnostic.o, opts.o, toplev.o): Update dependencies.
15997
15998 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15999
16000         * config/picochip/picochip.md (movsi): Split a movsi from a
16001         const after reload.
16002
16003 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16004
16005         * ggc-zone.c: Update copyright year.
16006         (poison_region): Mark memory for Valgrind as undefined before
16007         memset () call and inaccessible afterwards.
16008         (ggc_pch_total_size): Change type of i to int.
16009
16010 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16011
16012         * ggc-common.c (ggc_free_overhead): Allow empty slot.
16013
16014 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16015
16016         * ggc-common.c: Update copyright year.
16017         (ggc_rlimit_bound): Remove prototype.  Compile only if
16018         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
16019         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
16020         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
16021         (ggc_min_heapsize_heuristic): Likewise.
16022
16023 2010-05-26  Richard Guenther  <rguenther@suse.de>
16024
16025         PR rtl-optimization/44164
16026         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
16027         no-common access-path disambiguation.
16028         (indirect_ref_may_alias_decl_p): Adjust.
16029         (indirect_refs_may_alias_p): Likewise.
16030         (refs_may_alias_p_1): Likewise.
16031
16032 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16033
16034         * c-typeck.c: Do not include expr.h.
16035
16036 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
16037
16038         * rtl.h (decl_default_tls_model): Move prototype from here...
16039         * output.h: ...to here.
16040         * c-decl.c: Do not include rtl.h.
16041         * c-pragma.c: Likewise.
16042         * c-parser.c: Likewise.
16043         * c-gimplify.c: Likewise.  And also not hard-reg-set.
16044         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
16045         FIXME note for it.  Add a FIXME note for expr.h.
16046         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
16047         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
16048         defined.
16049
16050 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
16051
16052         PR target/44199
16053         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
16054         or total_size is larger than red zone size for non-V4 ABI, emit a
16055         stack_tie resp. frame_tie insn before stack pointer restore.
16056         * config/rs6000/rs6000.md (frame_tie): New insn.
16057
16058 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
16059
16060         * function.h (struct function): Add can_throw_non_call_exceptions bit.
16061         * lto-streamer-in.c (input_function): Stream it in.
16062         * lto-streamer-out.c (output_function): Stream it out.
16063         * function.c (allocate_struct_function): Set it.
16064         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
16065         for flag_non_call_exceptions.
16066         * cfgbuild.c (control_flow_insn_p): Likewise.
16067         (make_edges): Likewise.
16068         * cfgexpand.c (expand_stack_alignment): Likewise.
16069         * combine.c (distribute_notes): Likewise.
16070         * cse.c (cse_extended_basic_block): Likewise.
16071         * except.c (insn_could_throw_p): Likewise.
16072         * gcse.c (simple_mem): Likewise.
16073         * ipa-pure-const.c (check_call): Likewise.
16074         (check_stmt ): Likewise.
16075         * lower-subreg.c (lower-subreg.c): Likewise.
16076         * optabs.c (emit_libcall_block): Likewise.
16077         (prepare_cmp_insn): Likewise.
16078         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
16079         * postreload.c (rest_of_handle_postreload): Likewise.
16080         * reload1.c (reload_as_needed): Likewise.
16081         (emit_input_reload_insns): Likewise.
16082         (emit_output_reload_insns): Likewise.
16083         (fixup_abnormal_edges): Likewise.
16084         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
16085         * store-motion.c (find_moveable_store): Likewise.
16086         * tree-eh.c (stmt_could_throw_p): Likewise.
16087         (tree_could_throw_p): Likewise.
16088         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
16089         * config/arm/arm.c (arm_expand_prologue): Likewise.
16090         (thumb1_expand_prologue): Likewise.
16091         * config/rx/rx.md (cbranchsf4): Likewise.
16092         (cmpsf): Likewise.
16093         * config/s390/s390.c (s390_emit_prologue): Likewise.
16094         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
16095         (inline_forbidden_into_p): New predicate.
16096         (expand_call_inline): Use it to forbid inlining.
16097         (tree_can_inline_p): Likewise.
16098
16099 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16100
16101         * config/i386/i386-c.c: Do not include rtl.h.
16102         * config/i386/t-i386: Update dependencies.
16103
16104 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16105
16106         * attribs.c: Do not include rtl.h.
16107         * Makefile.in: Update dependencies.
16108
16109 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
16110
16111         * double-int.h (double_int_and): New.
16112         * combine.c (try_combine): Clean up, use double_int_* and
16113         immed_double_int_const functions.
16114
16115 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16116
16117         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
16118         stderr to /dev/null instead of grep -q.
16119         * configure: Regenerate.
16120
16121 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
16122
16123         * Makefile.in (EXCEPT_H): Fix typo.
16124
16125 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
16126
16127         * ira-build.c (update_conflict_hard_reg_costs): New.
16128         (ira_build): Call update_conflict_hard_reg_costs.
16129
16130 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16131
16132         PR debug/41371
16133         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
16134         ENABLE_CHECKING.
16135         (intersect_loc_chains): Walk the s2var's loc_chain together
16136         with s1node chain as long as the locations are equal, don't
16137         call find_loc_in_1pdv in that case.
16138
16139         PR debug/42801
16140         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
16141         (copy_bind_expr): ... instead of here.
16142         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
16143         if the block hasn't been remapped.
16144         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
16145         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
16146
16147 2010-05-25  Richard Guenther  <rguenther@suse.de>
16148
16149         PR middle-end/44069
16150         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
16151         out-of-bounds array accesses.
16152
16153 2010-05-25  Richard Guenther  <rguenther@suse.de>
16154
16155         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
16156         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
16157         (run_gcc): Re-organize to make cleanup easier.
16158
16159 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16160
16161         * config/s390/s390.c (optimization_options): Fix and move the
16162         flag_prefetch_loop_arrays override ...
16163         (override_options): ... here.
16164
16165 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
16166
16167         * diagnostic.c: Don't include plugin.h.
16168         (diagnostic_report_diagnostic): Don't handle plugins specially
16169         here.  Pass context to internal_error callback.
16170         * diagnostic.h (struct diagnostic_context): Add context parameter
16171         to internal_error callback.
16172         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
16173         * plugin.h (struct diagnostic_context): Declare.
16174         (warn_if_plugins, plugins_internal_error_function): Declare.
16175         * toplev.c (general_init): Set global_dc->internal_error.
16176         * Makefile.in (diagnostic.o): Update dependencies.
16177
16178 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
16179
16180         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
16181         * config/rs6000/t-darwin64: New.
16182         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
16183         build crt2.
16184
16185 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
16186
16187         PR 44203
16188         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
16189         match the original (and intended) behaviour before r159557.  This
16190         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
16191         in two ways.
16192
16193 2010-05-25  Richard Guenther  <rguenther@suse.de>
16194
16195         * doc/invoke.texi: Document -Ofast.
16196         * target.h (struct gcc_target): Add handle_ofast.
16197         * target-def.h (TARGET_HANDLE_OFAST): Add.
16198         (TARGET_INITIALIZER): Adjust.
16199         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
16200         * common.opt (Ofast): Add.
16201
16202 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16203
16204         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
16205         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
16206
16207 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
16208
16209         PR target/43610
16210         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
16211         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
16212         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
16213         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
16214
16215 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
16216
16217         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
16218         DW_OP_minus with negated offset instead of DW_OP_plus.
16219         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
16220
16221 2010-05-25  Wei Guozhi  <carrot@google.com>
16222
16223         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
16224         tst instruction and a new alternative.
16225         * config/arm/constraints.md (Pu): New constraint.
16226
16227 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
16228
16229         * function.c (assign_stack_local_1): Initialize variable
16230         to avoid warning when bootstrapping at -O3.
16231
16232 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
16233
16234         * configure.ac (all_lang_makefiles): Remove everything related to it.
16235         * configure: Regenerate.
16236         * Makefile.in: Fix reference to ada Make-lang.in.
16237         Remove support for LANG_MAKEFILES.
16238
16239 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
16240             Sandra Loosemore  <sandra@codesourcery.com>
16241
16242         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
16243         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
16244         description.  Add arm_neon_fp16_ok.
16245         (Add Options): Add arm_neon and arm_neon_fp16.
16246
16247 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
16248
16249         * diagnostic.c: Don't include flags.h.
16250         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
16251         context parameters.  Check flags in the context passed as a parameter.
16252         (diagnostic_build_prefix): Add context parameter.  Check
16253         show_column flag in context.
16254         (diagnostic_action_after_output): Check fatal_errors flag in context.
16255         (diagnostic_report_current_module): Check show_column flag in context.
16256         (default_diagnostic_starter): Update call to
16257         diagnostic_build_prefix.
16258         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
16259         (emit_diagnostic): Pass context to permissive_error_kind.
16260         (permerror): Pass context to permissive_error_kind.
16261         * diagnostic.h (struct diagnostic_context): Add show_column,
16262         pedantic_errors, permissive and fatal_errors fields.
16263         (diagnostic_build_prefix): Update prototype.
16264         * langhooks.c
16265         * toplev.c (process_options): Set flags in global_dc from
16266         flag_show_column, flag_pedantic_errors, flag_permissive,
16267         flag_fatal_errors.
16268         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
16269         to diagnostic_build_prefix.
16270         * Makefile.in (diagnostic.o): Update dependencies.
16271
16272 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
16273
16274         * config/i386/ia32intrin.h (__crc32q): Define only if
16275         __SSE4_2__ is defined.
16276
16277 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
16278
16279         PR target/44132
16280         PR middle-end/43602
16281         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
16282         DECL_VISIBILITY_SPECIFIED.
16283         (emutls_decl): Set DECL_PRESERVE_P and copy
16284         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
16285         (emutls_finalize_control_var): New callback.
16286         (emutls_finish): Finalize emutls control variables.
16287         * toplev.c (compile_file): Move the call to emutls_finish ()
16288         before varpool_assemble_pending_decls ().
16289
16290 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
16291
16292         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
16293         added to the preprocessor condition.
16294
16295 2010-05-24  Paul Brook  <paul@codesourcery.com>
16296
16297         * gengtype-lex.l: Add HARD_REG_SET.
16298         * expr.c (expand_expr_real_1): Record writes to hard registers.
16299         * function.c (rtl_data): Add asm_clobbers.
16300         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
16301         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
16302         Use crtl->asm_clobbers.
16303
16304 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16305
16306         * doc/makefile.texi (Makefile): Mention stages 'profile'
16307         and 'feedback' for profiledbootstrap.
16308
16309 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
16310
16311         PR target/44245
16312         * config/i386/i386.c (def_builtin): Properly check
16313         OPTION_MASK_ISA_64BIT.
16314
16315 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
16316
16317         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
16318         typedefs with different but compatible types.  Allow duplicate
16319         typedefs with the same type except for pedantic non-C1X, but give
16320         warning for variably modified types.
16321         * c-typeck.c (tagged_types_tu_compatible_p,
16322         function_types_compatible_p, type_lists_compatible_p,
16323         comptypes_internal): Add parameter different_types_p; set
16324         *different_types_p for different but compatible types.  All
16325         callers changed.
16326         (comptypes_check_different_types): New.
16327         * c-tree.h (comptypes_check_different_types): Declare.
16328
16329 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16330
16331         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
16332         * jump.c: Include basic-block.h.
16333         * profile.c: Likewise.
16334         * tree-profile.c: Likewise.
16335         * coverage.c: Likewise.
16336         * basic-block.h (optimize_function_for_size_p): Move to function.h.
16337         (optimize_function_for_speed_p): Likewise.
16338         * function.h (optimize_function_for_size_p,
16339         optimize_function_for_speed_p): Moved here from basic-block.h.
16340         * Makefile.in: Update dependencies.
16341
16342 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16343
16344         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
16345         before calling make; allow override through $MAKE.
16346         * doc/invoke.texi (Optimize Options): Document override.
16347
16348 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
16349
16350         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
16351         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16352         (rs6000_mode_dependent_address_ptr): Make static.
16353         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16354         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
16355         Remove.
16356
16357 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
16358
16359         PR target/43869
16360         * config/i386/i386.c: Make sure that the correct regparm is passed.
16361
16362 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
16363
16364         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
16365         * sbitmap.c: ...to here to internalize sbitmap element access.
16366         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
16367         Explain why basic-block.h is included.
16368         * function.h: Include tm.h for CUMULATIVE_ARGS.
16369         * Makefile.in: Update dependencies.
16370
16371 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16372
16373         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
16374         New core types.
16375         * sbitmap.h (struct sbitmap_def): Do not typedef here.
16376         * sbitmap.c: Include sbitmap.h.
16377         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
16378         hard-reg-set.h.  Split everything related to regsets out from here...
16379         * regset.h: ...to here.  New file.
16380         * df.h: Include regset.h and sbitmap.h.
16381         * tree-flow.h: Likewise.
16382         * cfgloop.h: Likewise.
16383         * except.h: Do not include sbitmap.h.  Include hashtab.h.
16384         * cgraph.h: Include vec.h and function.h.
16385         * reload.h (struct insn_chain): Change types of live_throughout
16386         and dead_or_set from regset_head to bitmap_head.
16387         (compute_use_by_pseudos): Be defined also if regset.h is not included.
16388         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
16389         spilled_regs from regset_head to bitmap_head to avoid dependency
16390         in regset.h.
16391         * sel-sched-ir.h: Include regset.h.
16392         * reload.c: Include df.h before reload.h.
16393         * caller-save.c: Likewise.
16394         * reload1.c: Likewise.
16395         * ira.c: Likewise.
16396         (mark_elimination): Update type of r to bitmap, consistent with
16397         DF_LR_IN.
16398         * dominance.c: Include bitmap.h.
16399         * modulo-sched.c: Include df.h.
16400         * cfganal.c: Include bitmap.h and sbitmap.h.
16401         * cfgbuild.c: Include sbitmap.h.
16402         * lcm.c: Include sbitmap.h.
16403         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
16404         * domwalk.c: Include sbitmap.h, exclude ggc.h.
16405         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
16406         * cselib.c: Include bitmap.h.
16407         * tree-optimize.c: Include regset.h.
16408         * stmt.c: Include bitmap.h.
16409         * Makefile.in: Update dependencies.
16410
16411 2010-05-22  Jan Hubicka  <jh@suse.cz>
16412
16413         * cgraph.h (struct varpool_node): Add same_comdat_group.
16414         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
16415         pointer.
16416         (output_varpool): Update call of lto_output_varpool_node.
16417         (input_varpool): Read same_comdat_group pointer.
16418         (input_varpool_1): Fixup same_comdat_group pointer.
16419         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
16420         group is needed, all are.
16421         * varpool.c (varpool_remove_node): Remove node from same comdat group
16422         linklist too.
16423         (varpool_analyze_pending_decls): Walk same comdat groups.
16424
16425 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
16426
16427         * rtl.h (union rtunion_def): Remove rt_bit member.
16428         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
16429         * print-rtl (print_rtx): Do not print the member.
16430         * gengtype.c (adjust_field_rtx_def): Do not handle it.
16431         * gengenrtl.c (type_from_format): Likewise.
16432         (accessor_from_format): Likewise.
16433
16434 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
16435
16436         * dbgcnt.c: Include toplev.h instead of errors.h.
16437         * ira-emit.c: Don't include errors.h.
16438         * ira.c: Include toplev.h instead of errors.h.
16439         * lto-compress.c: Include toplev.h instead of errors.h.
16440         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
16441         ira.o, dbgcnt.o): Update dependencies.
16442
16443 2010-05-22  Richard Guenther  <rguenther@suse.de>
16444
16445         * gimple.c (gimple_types_compatible_p): Check type qualifications
16446         before merging pointer to complete and pointer to incomplete type.
16447         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
16448         we use our own resolution algorithm.  The gold linker plugin
16449         doesn't do the job we want it to do here.
16450
16451 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
16452
16453         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
16454         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
16455         (sparc_mode_dependent_address_p): New function.
16456
16457 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16458
16459         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
16460
16461         * timevar.c: Do not include any core headers.
16462         (timevar_print): De-i18n-ize.
16463         (print_time): Likewise.
16464         * timevar.h (timevar_push, timevar_pop): Make inline functions.
16465
16466 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
16467
16468         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
16469         langhooks-def.h.
16470         (diagnostic_initialize): Initialize x_data not last_function.
16471         (diagnostic_report_current_function): Move to tree-diagnostic.c.
16472         (default_diagnostic_starter): Call
16473         diagnostic_report_current_module not
16474         diagnostic_report_current_function.
16475         (diagnostic_report_diagnostic): Initialize x_data not
16476         abstract_origin.
16477         (verbatim): Likewise.
16478         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
16479         x_data.
16480         (struct diagnostic_context): Change last_function to x_data.
16481         (diagnostic_auxiliary_data): Replace with
16482         diagnostic_context_auxiliary_data and
16483         diagnostic_info_auxiliary_data.
16484         (diagnostic_last_function_changed, diagnostic_set_last_function,
16485         diagnostic_report_current_function): Move to tree-diagnostic.h.
16486         (print_declaration, dump_generic_node, print_generic_stmt,
16487         print_generic_stmt_indented, print_generic_expr,
16488         print_generic_decl, debug_c_tree, dump_omp_clauses,
16489         print_call_name, debug_generic_expr, debug_generic_stmt,
16490         debug_tree_chain, default_tree_printer): Move to
16491         tree-pretty-print.h.
16492         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
16493         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
16494         gimple-pretty-print.h.
16495         * pretty-print.c: Don't include tree.h
16496         (pp_base_format): Don't handle %K here.
16497         (pp_base_tree_identifier): Move to tree-pretty-print.c.
16498         * pretty-print.h (text_info): Change abstract_origin to x_data.
16499         (pp_tree_identifier, pp_unsupported_tree,
16500         pp_base_tree_identifier): Move to tree-pretty-print.h.
16501         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
16502         tree-pretty-print.h: New files.
16503         * tree-pretty-print.c: Include tree-pretty-print.h.
16504         (percent_K_format): New.  Moved from pretty-print.c.
16505         (pp_base_tree_identifier): Move from pretty-print.c.
16506         * c-objc-common.c: Include tree-pretty-print.h.
16507         (c_tree_printer): Handle %K here.
16508         * langhooks.c: Include tree-diagnostic.h.
16509         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
16510         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
16511         (default_tree_printer): Handle %K using percent_K_format.
16512         (general_init): Use default_tree_diagnostic_starter.
16513         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
16514         (free_lang_data): Use default_tree_diagnostic_starter.
16515         * c-pretty-print.c: Include tree-pretty-print.h.
16516         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16517         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16518         * dwarf2out.c: Include tree-pretty-print.h.
16519         * except.c: Include tree-pretty-print.h.
16520         * gimple-pretty-print.c: Include tree-pretty-print.h and
16521         gimple-pretty-print.h.
16522         * gimplify.c: Include tree-pretty-print.h.
16523         * graphite-poly.c: Include tree-pretty-print.h and
16524         gimple-pretty-print.h.
16525         * ipa-cp.c: Include tree-pretty-print.h.
16526         * ipa-inline.c: Include gimple-pretty-print.h.
16527         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16528         * ipa-pure-const.c: Include gimple-pretty-print.h.
16529         * ipa-struct-reorg.c: Include tree-pretty-print.h and
16530         gimple-pretty-print.h.
16531         * ipa-type-escape.c: Include tree-pretty-print.h.
16532         * print-rtl.c: Include tree-pretty-print.h.
16533         * print-tree.c: Include gimple-pretty-print.h.
16534         * sese.c: Include tree-pretty-print.h.
16535         * tree-affine.c: Include tree-pretty-print.h.
16536         * tree-browser.c: Include tree-pretty-print.h.
16537         * tree-call-cdce.c: Include gimple-pretty-print.h.
16538         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
16539         * tree-chrec.c: Include tree-pretty-print.h.
16540         * tree-data-ref.c: Include tree-pretty-print.h and
16541         gimple-pretty-print.h.
16542         * tree-dfa.c: Include tree-pretty-print.h.
16543         * tree-if-conv.c: Include tree-pretty-print.h and
16544         gimple-pretty-print.h.
16545         * tree-inline.c: Include tree-pretty-print.h.
16546         * tree-into-ssa.c: Include tree-pretty-print.h and
16547         gimple-pretty-print.h.
16548         * tree-nrv.c: Include tree-pretty-print.h.
16549         * tree-object-size.c: Include tree-pretty-print.h and
16550         gimple-pretty-print.h.
16551         * tree-outof-ssa.c: Include tree-pretty-print.h and
16552         gimple-pretty-print.h.
16553         * tree-parloops.c: Include tree-pretty-print.h and
16554         gimple-pretty-print.h.
16555         * tree-predcom.c: Include tree-pretty-print.h and
16556         gimple-pretty-print.h.
16557         * tree-scalar-evolution.c: Include tree-pretty-print.h and
16558         gimple-pretty-print.h.
16559         * tree-sra.c: Include tree-pretty-print.h.
16560         * tree-ssa-address.c: Include tree-pretty-print.h.
16561         * tree-ssa-alias.c: Include tree-pretty-print.h.
16562         * tree-ssa-ccp.c: Include tree-pretty-print.h and
16563         gimple-pretty-print.h.
16564         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
16565         * tree-ssa-copy.c: Include tree-pretty-print.h and
16566         gimple-pretty-print.h.
16567         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
16568         * tree-ssa-dce.c: Include tree-pretty-print.h and
16569         gimple-pretty-print.h.
16570         * tree-ssa-dom.c: Include tree-pretty-print.h and
16571         gimple-pretty-print.h.
16572         * tree-ssa-dse.c: Include gimple-pretty-print.h.
16573         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
16574         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
16575         * tree-ssa-live.c: Include tree-pretty-print.h and
16576         gimple-pretty-print.h.
16577         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
16578         gimple-pretty-print.h.
16579         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
16580         gimple-pretty-print.h.
16581         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
16582         gimple-pretty-print.h.
16583         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
16584         gimple-pretty-print.h.
16585         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
16586         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
16587         * tree-ssa-operands.c: Include tree-pretty-print.h and
16588         gimple-pretty-print.h.
16589         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
16590         gimple-pretty-print.h.
16591         * tree-ssa-pre.c: Include tree-pretty-print.h and
16592         gimple-pretty-print.h.
16593         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
16594         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
16595         gimple-pretty-print.h.
16596         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
16597         gimple-pretty-print.h.
16598         * tree-ssa-sink.c: Include gimple-pretty-print.h.
16599         * tree-ssa-ter.c: Include tree-pretty-print.h and
16600         gimple-pretty-print.h.
16601         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
16602         * tree-ssa.c: Include tree-pretty-print.h and
16603         gimple-pretty-print.h.
16604         * tree-stdarg.c: Include gimple-pretty-print.h.
16605         * tree-switch-conversion.c: Include gimple-pretty-print.h.
16606         * tree-tailcall.c: Include tree-pretty-print.h and
16607         gimple-pretty-print.h.
16608         * tree-vect-data-refs.c: Include tree-pretty-print.h and
16609         gimple-pretty-print.h.
16610         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
16611         gimple-pretty-print.h.
16612         * tree-vect-loop.c: Include tree-pretty-print.h and
16613         gimple-pretty-print.h.
16614         * tree-vect-patterns.c: Include gimple-pretty-print.h.
16615         * tree-vect-slp.c: Include tree-pretty-print.h and
16616         gimple-pretty-print.h.
16617         * tree-vect-stmts.c: Include tree-pretty-print.h and
16618         gimple-pretty-print.h.
16619         * tree-vectorizer.c: Include tree-pretty-print.h.
16620         * tree-vrp.c: Include tree-pretty-print.h and
16621         gimple-pretty-print.h.
16622         * value-prof.c: Include tree-pretty-print.h and
16623         gimple-pretty-print.h.
16624         * var-tracking.c: Include tree-pretty-print.h.
16625         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
16626         (tree-diagnostic.o): New dependencies.
16627         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
16628         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
16629         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
16630         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
16631         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
16632         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
16633         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
16634         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
16635         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
16636         tree-ssa-address.o, tree-ssa-loop-niter.o,
16637         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
16638         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
16639         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
16640         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
16641         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
16642         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
16643         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
16644         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
16645         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
16646         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
16647         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
16648         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
16649         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
16650         tree-switch-conversion.o, var-tracking.o, value-prof.o,
16651         cfgexpand.o, pretty-print.o): Update dependencies.
16652
16653 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
16654
16655         * tree-ssa-structalias.c: Remove tm_p.h from include.
16656
16657 2010-05-21  Jeff Law  <law@redhat.com>
16658
16659         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
16660
16661 2010-05-21  Jason Merrill  <jason@redhat.com>
16662
16663         * tree-eh.c (cleanup_is_dead_in): New.
16664         (lower_try_finally): Don't generate a dead cleanup region.
16665         (lower_cleanup): Likewise.
16666
16667 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16668
16669         PR debug/44223
16670         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
16671         unchain each use from the cyclic next_regno_use chain first.
16672
16673 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16674
16675         * real: Do not include gmp.h, mpfr.h, and mpc.h.
16676         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
16677         (real_value_negate, real_value_abs): New prototypes.
16678         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
16679         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
16680         new include file for interface between MPFR and REAL_VALUE_TYPE.
16681         * real.c: Include realmpfr.h.
16682         (real_arithmetic2): Remove legacy function.
16683         (real_value_negate): New.
16684         (real_value_abs): New.
16685         (mfpr_from_real, real_from_mpfr): Move from here...
16686         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
16687         * builtins.c: Include realmpfr.h.
16688         * fold-const.c: Include realmpfr.h.
16689         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
16690         (fold_negate_const): Likewise.
16691         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
16692         * toplev.c: Include realmpfr.h.
16693         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
16694         and real_value_negate.
16695         * fixed-value.c (check_real_for_fixed_mode): Likewise.
16696         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
16697         (vfp3_const_double_index): Likewise.
16698         (arm_print_operand): Likewise.
16699         * Makefile.in: Update dependencies.
16700
16701 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16702
16703         * config/s390/s390.c (override_options): Increase the default
16704         of max-completely-peel-times.
16705
16706 2010-05-21  Julian Brown  <julian@codesourcery.com>
16707             Mark Mitchell  <mark@codesourcery.com>
16708
16709         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
16710         sibling calls for Thumb-1.
16711         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
16712         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
16713         Thumb-2.
16714         (*call_insn, *call_value_insn): Don't use for Thumb-2.
16715         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
16716         for Thumb-2.
16717         (return): New expander.
16718         (*arm_return): New name for ARM return insn.
16719         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
16720
16721 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
16722
16723         * config.gcc (sparc64-*-rtems*): New target.
16724
16725 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
16726
16727         * tree.c (build_function_decl_skip_args): Fix grammar.
16728         (build_function_type_list_1): Fix typos, adjust formatting.
16729
16730 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
16731
16732         * tree.h: Include real.h and fixed-value.h as basic datatypes.
16733         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
16734         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
16735         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
16736         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
16737         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
16738         tree-pretty-print.c, tree-loop-distribution.c,
16739         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
16740         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
16741         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
16742         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
16743         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
16744         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
16745         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
16746         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
16747         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
16748         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
16749         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
16750         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
16751         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
16752         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
16753         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
16754         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
16755         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
16756         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
16757         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
16758         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
16759         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
16760         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
16761         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
16762         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
16763         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
16764         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
16765         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
16766         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
16767         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
16768         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
16769         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
16770         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
16771         config/score/score7.c, config/score/score.c, config/arm/arm.c,
16772         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
16773         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
16774         config/bfin/bfin.c: Clean up redundant includes.
16775         * Makefile.in: Update accordingly.
16776
16777 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
16778
16779         PR middle-end/44204
16780         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
16781         statement has no arguments.
16782
16783 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
16784
16785         PR/44139
16786         * varasm.c (emutls_decl): Merge attributes to new decl.
16787
16788 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
16789
16790         PR middle-end/44101
16791         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
16792         around the uniquized constructor if its type requires a conversion.
16793
16794 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
16795
16796         PR debug/44205
16797         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
16798         at -O0 goto_locus of any of the incoming edges differs from
16799         goto_locus of outgoing edge, or gimple_location of any of the
16800         labels differs.
16801
16802 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
16803
16804         * ira.c (ira_non_ordered_class_hard_regs): Define.
16805         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
16806         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
16807         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
16808         cost of unaligned hard regs when allocating multi-reg pseudos.
16809
16810 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
16811
16812         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
16813         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
16814         for TARGET_NO_FLOAT.
16815         * config/mips/mips.c (mips_file_start): Expand conditional expression
16816         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
16817         (mips_override_options): Move -mno-float override -msoft-float and
16818         -mhard-float.
16819         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
16820         Condition(TARGET_SUPPORTS_NO_FLOAT).
16821         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
16822         __mips_no_float here.
16823         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
16824         (TARGET_SUPPORTS_NO_FLOAT): Define.
16825         * config/mips/sdemtk.opt: Delete.
16826
16827 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
16828
16829         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
16830
16831 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
16832
16833         PR target/43733
16834         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
16835         * configure: Regenerate.
16836         * config.in: Regenerate.
16837         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
16838         instead of sahf only for 64bit targets.
16839
16840 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
16841
16842         PR debug/44178
16843         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
16844         setup_ref_regs for DEBUG_INSNs.
16845
16846 2010-05-20  Jan Hubicka  <jh@suse.cz>
16847
16848         PR middle-end/44197
16849         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
16850
16851 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
16852
16853         PR bootstrap/43870
16854         * df-scan.c (df_ref_compare): Stabilize sort.
16855
16856 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
16857
16858         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
16859         argument.  Don't use DW_OP_piece if offset is non-zero,
16860         put offset into second DW_OP_bit_piece argument.
16861         (dw_sra_loc_expr): Adjust callers.  For memory expressions
16862         compute offset.
16863
16864 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
16865
16866         PR target/44202
16867         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
16868         settings for 16-bit-constant "addo" alternative.
16869
16870 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
16871
16872         * config/mips/mips-dsp.md (add<DSPV:mode>3,
16873         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
16874
16875         PR target/43764
16876         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
16877         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
16878         Use it.
16879
16880 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
16881
16882         * diagnostic.c (FLOAT, FFS): Don't undefine.
16883         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
16884         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
16885         include ordering.
16886
16887 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
16888
16889         * combine.c (propagate_for_debug): Call make_compound_operation
16890         on the source value.
16891         (try_combine): When implementing a split chosen by find_split_point,
16892         either copy i2src or set it to null.  Assert that i2src is not null
16893         before substituting into CALL_INSN_FUNCTION_USAGE.
16894
16895 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
16896
16897         * double-int.h (double_int_ior): New function.
16898         * tree.h (build_int_cst_wide_type): Remove.
16899         * tree.c (build_int_cst_wide_type): Remove.
16900         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
16901         of build_int_cst_wide_type.
16902         * stor-layout.c (set_sizetype): (Ditto.).
16903         * dojump.c (do_jump): Use build_int_cstu instead of
16904         build_int_cst_wide_type.
16905
16906 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
16907
16908         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
16909         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
16910         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
16911         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
16912         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
16913         propagate the 'data' argument to copy_tree_r.
16914         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
16915         Propagate 'data' argument to walk_tree.
16916         (copy_if_shared): New function.
16917         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
16918         (unmark_visited): New function.
16919         (unshare_body): Call copy_if_shared instead of doing it manually.
16920         (unvisit_body): Call unmark_visited instead of doing it manually.
16921
16922 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
16923
16924         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
16925         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
16926         * hooks.c: Likewise.
16927         * target-def.h (TARGET_FOLD_BUILTIN): Define to
16928         hook_tree_tree_int_treep_bool_null.
16929         * target.h (struct gcc_target): Update signature of fold_builtin
16930         field.
16931         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
16932         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
16933         instead of the call expression.
16934         (fold_builtin_call_array): Pass n and argarray directly.
16935         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
16936         consing a list.
16937         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
16938         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
16939         `i' and use it in place of `arity'.
16940         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
16941         Dereference `args' directly.
16942         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
16943
16944 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16945
16946         * doc/sourcebuild.texi (Effective-Target Keywords): Document
16947         3dnow, sse3, sse2.
16948         (Directives): Document optional dg-require-effective-target
16949         selector.
16950
16951 2010-05-19  Richard Guenther  <rguenther@suse.de>
16952
16953         PR lto/44196
16954         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
16955
16956 2010-05-19  Richard Guenther  <rguenther@suse.de>
16957
16958         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
16959         * common.opt (fwhopr=): New.
16960         * opts.c (common_handle_option): Handle OPT_fwhopr.
16961         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
16962         * collect2.c (main): Match -fwhopr*.
16963         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
16964         Execute ltrans stage in parallel when jobs is bigger than 1.
16965
16966 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16967
16968         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
16969         pentiumpro on Solaris 8/x86 with Sun as.
16970         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
16971         hidden alias bug.
16972         (gcc_cv_as_ix86_quad): Check for .quad directive.
16973         * configure: Regenerate.
16974         * config.in: Regenerate.
16975         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
16976
16977 2010-05-19  Martin Jambor  <mjambor@suse.cz>
16978
16979         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
16980         also for indirect edges.  Actual printing moved...
16981         (ipa_print_node_jump_functions_for_edge): ...here.
16982         (ipa_compute_jump_functions): Renamed to
16983         ipa_compute_jump_functions_for_edge and made static.
16984         (ipa_compute_jump_functions): New function.
16985         (make_edge_direct_to_target): Check if the number of arguments on
16986         the newly direct edge is the same as the number of parametrs of
16987         the callee.
16988         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
16989         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
16990         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
16991         analysis functions unconditionally, call the new
16992         ipa_analyze_params_uses on the node instead of every edge.
16993
16994 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
16995
16996         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
16997         to tree.
16998         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
16999         also checks for a constant int vs.  non-constant but
17000         loop-invariant steps.
17001         (find_or_create_group): Change the sort algorithm to only consider
17002         steps that are constant ints.
17003         (idx_analyze_ref): Adopt code to handle a tree instead of a
17004         HOST_WIDE_INT for step.
17005         (gather_memory_references_ref): Handle tree instead of int and be
17006         prepared to see a NULL_TREE.
17007         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
17008         prefetches if the step cannot be calculated at compile time.
17009         (issue_prefetch_ref): Issue prefetches for non-constant but
17010         loop-invariant steps.
17011
17012 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17013
17014         Revert:
17015         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17016
17017         * tree.h (build_call_list): Remove.
17018         * tree.c (build_call_list): Remove.
17019
17020 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
17021
17022         * tree.h (build_call_list): Remove.
17023         * tree.c (build_call_list): Remove.
17024
17025 2010-05-18  Jan Hubicka  <jh@suse.cz>
17026
17027         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
17028
17029 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
17030
17031         PR rtl-optimization/43332
17032         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
17033
17034 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
17035
17036         * tree.h (build_int_cstu): Implement as static inline.
17037         * tree.c (build_int_cstu): Remove function.
17038         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
17039         sign extended.
17040
17041 2010-05-18  Richard Guenther  <rguenther@suse.de>
17042
17043         PR lto/44143
17044         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
17045         (debug): Initialize from -save-temps.
17046         (collect_execute): Print command-line when verbose.
17047         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
17048         for ltrans invocation.  Produce -dumpbase flag again.
17049         (process_args): Remove.
17050         (main): Simplify.
17051         * collect2.c (maybe_run_lto_and_relink): Only pass object
17052         files to lto-wrapper.
17053         * gcc.c (LINK_COMMAND_SPEC): Likewise.
17054
17055 2010-05-18  Jan Hubicka  <jh@suse.cz>
17056
17057         * opts.c (decode_options): Do not disable whopr at ipa_cp.
17058         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
17059
17060 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17061
17062         PR lto/44184
17063         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
17064         in a GIMPLE_ASM.
17065         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
17066         in a GIMPLE_ASM.
17067
17068 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
17069
17070         PR debug/41371
17071         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
17072         rtx_equal_p inline.
17073
17074 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
17075
17076         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
17077         lto-macho as lto_binary_reader.
17078
17079         * darwin.c (darwin_asm_named_section): Do not add assembler comment
17080         after .section directive; just print it before the directive instead.
17081
17082 2010-05-17  Jan Hubicka  <jh@suse.cz>
17083
17084         * cgraph.c (cgraph_create_virtual_clone): Only check
17085         versionable_function_p when not in wpa and checking is enabled.
17086         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
17087         there are no more functions to materialize.
17088
17089 2010-05-17  Jan Hubicka  <jh@suse.cz>
17090
17091         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
17092         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
17093         New functions.
17094         (output_cgraph): Call output_cgraph_opt_summary.
17095         (input_cgrpah): Call input_cgraph_opt_summary.
17096         (output_cgraph_opt_summary_p, output_node_opt_summary,
17097         input_node_opt_summary, input_cgraph_opt_section): New functions.
17098         * lto-section-in.c (lto_section_name): Add cgraphopt.
17099         * tree-inline.c (tree_function_versioning): Handle parm_num.
17100         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
17101         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
17102
17103 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17104
17105         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
17106         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
17107         the insn to prefetch ratio heuristic to loops with known trip count.
17108
17109 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
17110
17111         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
17112         (schedule_prefetches): Do not generate a prefetch if the unroll factor
17113         is far from what is required by the prefetch.
17114
17115 2010-05-17  Jan Hubicka  <jh@suse.cz>
17116
17117         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
17118         (ipcp_estimate_growth): Likewise.
17119         (ipcp_const_param_count): Likewise.
17120         (ipcp_insert_stage): Likewise.
17121         * ipa-prop.c (visit_load_for_mod_analysis): New function.
17122         (visit_store_addr_for_mod_analysis): Set used flag.
17123         (ipa_detect_param_modifications): Set used flag for SSE params;
17124         update use of walk_stmt_load_store_addr_ops.
17125         (ipa_print_node_params): Print used flag.
17126         (ipa_write_node_info): Stream used flag.
17127         (ipa_read_node_info): Likewise.
17128         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
17129         (ipa_is_param_used): New function.
17130         (lto_ipa_fixup_call_notes): Remove unused declaration.
17131
17132 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17133
17134         PR target/44074
17135         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
17136         * configure: Regenerate.
17137         * config.in: Regenerate.
17138         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
17139         !HAVE_AS_IX86_REP_LOCK_PREFIX.
17140         Don't emit whitespace.
17141         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
17142         (*rep_movsi): Likewise.
17143         (*rep_movsi_rex64): Likewise.
17144         (*rep_movqi): Likewise.
17145         (*rep_movqi_rex64): Likewise.
17146         (*rep_stosdi_rex64): Likewise.
17147         (*rep_stossi): Likewise.
17148         (*rep_stossi_rex64): Likewise.
17149         (*rep_stosqi): Likewise.
17150         (*rep_stosqi_rex64): Likewise.
17151         (*cmpstrnqi_nz_1): Use {%;} after repz.
17152         (*cmpstrnqi_nz_rex_1): Likewise.
17153         (*cmpstrnqi_1): Likewise.
17154         (*cmpstrnqi_rex_1): Likewise.
17155         (*strlenqi_1): Use {%;} after repnz.
17156         (*strlenqi_rex_1): Likewise.
17157         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
17158         (*sync_compare_and_swap<mode>): Likewise.
17159         (sync_double_compare_and_swap<mode>): Likewise.
17160         (*sync_double_compare_and_swapdi_pic): Likewise.
17161         (sync_old_add<mode>): Likewise.
17162         (sync_add<mode>): Likewise.
17163         (sync_sub<mode>): Likewise.
17164         (sync_<code><mode>): Likewise.
17165
17166 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17167
17168         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
17169         otr_token and polymorphic.
17170         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
17171         (cgraph_clone_edge): Copy the above fields.
17172         * tree.c (get_binfo_at_offset): New function.
17173         * tree.h (get_binfo_at_offset): Declare.
17174         * ipa-prop.h (enum jump_func_type): Added known_type jump function
17175         type, reordered items, updated comments.
17176         (union jump_func_value): Added base_type field, reordered fields.
17177         (enum ipa_lattice_type): Moved down in the file.
17178         (struct ipa_param_descriptor): New field polymorphic.
17179         (ipa_is_param_polymorphic): New function.
17180         * ipa-prop.c: Include gimple.h and gimple-fold.h.
17181         (ipa_print_node_jump_functions): Print known type jump functions.
17182         (compute_complex_pass_through): Renamed to...
17183         (compute_complex_assign_jump_func): this.
17184         (compute_complex_ancestor_jump_func): New function.
17185         (compute_known_type_jump_func): Likewise.
17186         (compute_scalar_jump_functions): Create known type and complex ancestor
17187         jump functions.
17188         (ipa_note_param_call): New parameter polymorphic, set the corresponding
17189         flag in the call note accordingly.
17190         (ipa_analyze_call_uses): Renamed to...
17191         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
17192         variable var only in the block where it is used.
17193         (ipa_analyze_virtual_call_uses): New function.
17194         (ipa_analyze_call_uses): Likewise.
17195         (combine_known_type_and_ancestor_jfs): Likewise.
17196         (update_jump_functions_after_inlining): Implemented handling of a
17197         number of new jump function types combination.
17198         (print_edge_addition_message): Removed.
17199         (make_edge_direct_to_target): New function.
17200         (try_make_edge_direct_simple_call): Likewise.
17201         (try_make_edge_direct_virtual_call): Likewise.
17202         (update_call_notes_after_inlining): Renamed to...
17203         (update_indirect_edges_after_inlining): this.  Moved edge creation for
17204         indirect calls to try_make_edge_direct_simple_call, also calls
17205         try_make_edge_direct_virtual_call for virtual calls.
17206         (ipa_print_node_params): Changed the header message.
17207         (ipa_write_jump_function): Stream also known type jump functions.
17208         (ipa_read_jump_function): Likewise.
17209         (ipa_write_indirect_edge_info): Stream new fields in
17210         cgraph_indirect_call_info.
17211         (ipa_read_indirect_edge_info): Likewise.
17212         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
17213         GIMPLE_FOLD_H.
17214
17215 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17216
17217         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
17218
17219 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17220
17221         * tree.h (CALL_EXPR_ARGS): Delete.
17222         (call_expr_arglist): Delete.
17223         * tree.c (call_expr_arglist): Delete.
17224         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
17225         targetm.fold_builtin.
17226         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
17227         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
17228         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
17229         arglist parameter.  Use CALL_EXPR_ARG.
17230         (picochip_expand_builtin_3op): Likewise.
17231         (picochip_expand_builtin_2opvoid): Likewise.
17232         (picochip_expand_array_get): Likewise.
17233         (picochip_expand_array_put): Likewise.
17234         (picochip_expand_array_testport): Likewise.
17235         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
17236         rather than arglist.
17237         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
17238         CALL_EXPR_ARGS.
17239         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
17240         than TREE_VALUE and TREE_CHAIN.
17241         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
17242         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
17243         the arglist.
17244
17245 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17246
17247         PR bootstrap/42347
17248         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
17249         to have no fallthru edge.
17250
17251         PR middle-end/44102
17252         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
17253         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
17254         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
17255         add BARRIER after previous bb if needed.
17256
17257 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
17258
17259         * tree.c (build_function_type_list_1): Remove bogus assert condition.
17260
17261 2010-05-17  Alan Modra  <amodra@gmail.com>
17262
17263         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
17264         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
17265         with copy_reg rtx param.
17266         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
17267         Correct cases where code for ABI_V4 did not initialise the reg
17268         used to access frame.  Also leave frame_reg_rtx as sp for large
17269         frames that save no regs.
17270
17271 2010-05-17  Martin Jambor  <mjambor@suse.cz>
17272
17273         PR middle-end/44133
17274         * tree-sra.c (create_access_replacement): New parameter rename, mark
17275         the replaement for renaming only when it is true.
17276         (get_access_replacement): Pass true in the rename parameter of
17277         create_access_replacement.
17278         (get_unrenamed_access_replacement): New function.
17279         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
17280         replacement declaration from it.
17281
17282 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
17283
17284         * function.c (try_fit_stack_local, add_frame_space): New static
17285         functions.
17286         (assign_stack_local_1): Use them.  Look for opportunities to use
17287         space previously wasted on alignment.
17288         * function.h (struct frame_space): New.
17289         (struct rtl_data): Add FRAME_SPACE_LIST member.
17290         * reload1.c (something_was_spilled): New static variable.
17291         (alter_reg): Set it.
17292         (reload): Test it in addition to testing if the frame size changed.
17293
17294 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
17295
17296         * config/s390/s390.c: Define sane prefetch settings and activate
17297         flag_prefetch_loop_arrays on -O3.
17298         * config/s390/s390.h: Declare that read can use write prefetch.
17299
17300 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
17301
17302         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
17303         build.
17304
17305 2010-05-16  Jan Hubicka  <jh@suse.cz>
17306
17307         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
17308         function body; do not check stdarg field of struct function.
17309
17310 2010-05-16  Jan Hubicka  <jh@suse.cz>
17311
17312         * cgraph.c (dump_cgraph_node): Dump versionable flag.
17313         * cgraph.h (cgraph_local_info): Add versionable flag.
17314         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
17315         (ipcp_versionable_function_p): Use it.
17316         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
17317         versionable flag.
17318
17319 2010-05-16  Jan Hubicka  <jh@suse.cz>
17320
17321         * cgraph.c (cgraph_clone_node): Take decl argument and insert
17322         clone into hash when it is different from orig.
17323         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
17324         * cgraph.h (cgraph_clone_node): Update prototype.
17325         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
17326         (lto_cgraph_encoder_delete): Delete body map.
17327         (lto_cgraph_encoder_size): Move to header.
17328         (lto_cgraph_encoder_encode_body_p,
17329         lto_set_cgraph_encoder_encode_body): New.
17330         (lto_output_node): Do not take written_decls argument; output clone_of
17331         pointer.
17332         (add_node_to): Add include_body_argument; call
17333         lto_set_cgraph_encoder_encode_body on master of the clone.
17334         (add_references): Update use of add_node_to.
17335         (compute_ltrans_boundary): Likewise.
17336         (output_cgraph): Do not create written_decls bitmap.
17337         (input_node): Take nodes argument; stream in clone_of correctly.
17338         (input_cgraph_1): Update use of input_node.
17339         * lto-streamer-out.c (lto_output): Use encoder info to decide
17340         what bodies to output.
17341         * ipa-inline.c (cgraph_clone_inlined_nodes,
17342         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
17343         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
17344         (lto_cgraph_encoder_size): Define here.
17345         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
17346         Declare.
17347
17348 2010-05-16  Richard Guenther  <rguenther@suse.de>
17349
17350         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
17351         -fipa-type-escape.
17352         * ipa-type-escape.c (gate_type_escape_vars): Run when
17353         -fipa-struct-reorg runs.
17354         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
17355         * common.opt (fipa-type-escape): Remove.
17356
17357 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17358
17359         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
17360         (decode_options): Likewise.
17361         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
17362
17363 2010-05-16  Jan Hubicka  <jh@suse.cz>
17364
17365         * ipa.c (function_and_variable_visibility): Also bring local all
17366         aliases.
17367
17368 2010-05-16  Richard Guenther  <rguenther@suse.de>
17369
17370         * alias.c (nonoverlapping_memrefs_p): Remove use of
17371         IPA type-escape information.
17372
17373 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
17374
17375         * c-common.c (c_common_reswords): Add _Static_assert for C.
17376         * c-parser.c (c_token_starts_declaration,
17377         c_parser_next_token_starts_declaration,
17378         c_parser_static_assert_declaration_no_semi,
17379         c_parser_static_assert_declaration): New.
17380         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
17381         Handle static assertions if static_assert_ok.
17382         (c_parser_external_declaration, c_parser_declaration_or_fndef,
17383         c_parser_compound_statement_nostart, c_parser_label,
17384         c_parser_for_statement, c_parser_objc_methodprotolist,
17385         c_parser_omp_for_loop): All callers of
17386         c_parser_declaration_or_fndef changed.
17387         (c_parser_struct_declaration): Handle static assertions.
17388         (c_parser_compound_statement_nostart): Use
17389         c_parser_next_token_starts_declaration and
17390         c_token_starts_declaration to detect start of declarations.
17391         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
17392         Likewise.
17393
17394 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
17395
17396         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17397         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17398         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17399         TARGET_FUNCTION_VALUE_REGNO_P): Define.
17400         (mmix_function_outgoing_value): Rename to...
17401         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
17402         (mmix_function_value_regno_p): Make static.
17403         (mmix_libcall_value): New function.
17404         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
17405         mmix_function_value_regno_p): Remove declaration.
17406
17407 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
17408
17409         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
17410         BUILT_IN_ALLOCA if stack checking is enabled.
17411
17412 2010-05-16  Richard Guenther  <rguenther@suse.de>
17413
17414         * var-tracking.c (vars_copy_1): Inline ...
17415         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
17416         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
17417         (variable_merge_over_cur): Adjust.  Merge asserts.
17418         (variable_merge_over_src): Likewise.
17419         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
17420         (variable_post_merge_new_vals): Merge asserts.
17421         (variable_post_merge_perm_vals): Likewise.
17422         (find_mem_expr_in_1pdv): Likewise.
17423         (dataflow_set_different_value): Remove.
17424         (onepart_variable_different_p): Merge asserts.
17425         (variable_different_p): Likewise.
17426         (dataflow_set_different_1): Inline ...
17427         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
17428         (emit_notes_for_differences_1): Merge asserts.
17429
17430 2010-05-16  Richard Guenther  <rguenther@suse.de>
17431
17432         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
17433         * optabs.c (libfunc_decl_hash): Likewise.
17434         * varasm.c (emutls_decl): Likewise.
17435
17436 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
17437
17438         * c-decl.c: Don't include gimple.h.
17439         (merge_decls): Do not copy gimple_body.
17440
17441 2010-05-15  Jason Merrill  <jason@redhat.com>
17442
17443         * c.opt: Add -fnothrow-opt.
17444
17445 2010-05-15  Jan Hubicka  <jh@suse.cz>
17446
17447         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
17448         analyzed.
17449         * passes.c (ipa_write_summaries): Write all analyzed nodes.
17450
17451 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
17452
17453         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
17454         * Makefile.in: Add it.
17455         Fix all other Makefile dependencies for changes below.
17456         * tree.h: Include it instead of defining VEC primitives here.
17457         * gimple.h: Likewise.
17458         * rtl.h: Likewise.
17459         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
17460         * except.h: Include vecir.h, break dependence on tree.h.
17461
17462         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
17463         Move from here...
17464         * tree-iterator.c: ...to here.
17465         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
17466
17467         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
17468         tm_p.h.
17469         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
17470         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
17471         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
17472         tree-mudflap.h, and target.h.
17473         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
17474         predict.h, tree-inline.h, gimple.h, and langhooks.h.
17475         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
17476         Add FIXME for why gimple.h is still included (should be unnecessary
17477         since GCC 4.5 gimplification unit-at-a-time).
17478         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
17479         * c-pragma.c: Add FIXME for why function.h needs to be included just
17480         for cfun, at front-end level.
17481         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
17482         Do not include ggc.h, but include vecprim.h for VEC(char).
17483         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
17484         Explain why target.h is included.
17485         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
17486         Explain why gimple.h is included.
17487         * c-ppoutput.c: Do not include tm.h.
17488         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
17489         * c-parses.c: Explain why rtl.h is included, and that this (and only
17490         this) is also why tm.h must be included.
17491         Do not include except.h.
17492         * c-lang.c: Do not include ggc.h.
17493
17494 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
17495
17496         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
17497
17498 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
17499
17500         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
17501         unions by default if those structs and unions have no tags.  Do
17502         not condition anonymous struct and unions handling on flag_iso.
17503         Allow anonymous structs and unions for C1X.
17504         (finish_struct): Do not diagnose lack of named fields when
17505         anonymous structs and unions present for C1X.  Accept flexible
17506         array members in structure with anonymous structs or unions but no
17507         directly named fields.
17508         * doc/extend.texi (Unnamed Fields): Update.
17509
17510 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
17511
17512         * gimple.h (compare_field_offset): Rename into...
17513         (gimple_compare_field_offset): ...this.
17514         * gimple.c (compare_field_offset): Rename into...
17515         (gimple_compare_field_offset): ...this.  Compare the full access if
17516         the offset is self-referential.
17517         (gimple_types_compatible_p): Adjust for above renaming.
17518         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
17519         DECL_NONADDRESSABLE_P flag of fields before merging them.
17520
17521 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
17522
17523         * tree.h (ctor_to_list): Delete.
17524         * tree.c (ctor_to_list): Delete.
17525
17526 2010-05-15  Jan Hubicka  <jh@suse.cz>
17527
17528         * ipa-reference.c: Include toplev.h
17529         (is_proper_for_analysis): Only add to all_module_statics
17530         if it is allocated.
17531         (write_node_summary_p, stream_out_bitmap,
17532         ipa_reference_write_optimization_summary,
17533         ipa_reference_read_optimization_summary): New.
17534         (struct ipa_opt_pass_d pass_ipa_reference): Add
17535         optimization summary streaming.
17536         * lto-cgraph.c (referenced_from_this_partition_p,
17537         reachable_from_this_partition_p): New functions.
17538         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
17539         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
17540         * opts.c (decode_options): Enable ipa_reference.
17541         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
17542         * lto-streamer.h (referenced_from_this_partition_p,
17543         reachable_from_this_partition_p): Declare.
17544
17545 2010-05-15  Richard Guenther  <rguenther@suse.de>
17546
17547         PR tree-optimization/44038
17548         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
17549         taking the address of a V_C_E of a constant.
17550
17551 2010-05-14  Jan Hubicka  <jh@suse.cz>
17552
17553         * tree.h (memory_identifier_string): Remove.
17554         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
17555         (ipa_reference_global_vars_info_d): Remove statics_not_read and
17556         statics_not_written.
17557         (ipa_reference_optimization_summary_d): New structure.
17558         (ipa_reference_optimization_summary_t): New type and vector.
17559         (ipa_reference_vars_info_d): Embedd structures instead of using
17560         pointers.
17561         (reference_vars_to_consider): Remove out of GGC space.
17562         (module_statics_escape): Remove.
17563         (global_info_obstack): Rename to ...
17564         (optimization_summary_obstack): ... this one.
17565         (initialization_status_t): Remove.
17566         (memory_identifier_string): Remove.
17567         (get_reference_vars_info): Fix indenting.
17568         (set_reference_vars_info): Likewise.
17569         (get_reference_optimization_summary): New.
17570         (set_reference_optimization_summary): New.
17571         (get_global_reference_vars_info): Remove.
17572         (ipa_reference_get_read_global): Remove.
17573         (ipa_reference_get_written_global): Remove.
17574         (ipa_reference_get_not_read_global): Update.
17575         (ipa_reference_get_not_written_global): Update.
17576         (is_proper_for_analysis): Outlaw addressable.
17577         (propagate_bits): Update for new datastructures.
17578         (analyze_variable): Remove.
17579         (init_function_info): Update for new datastructures.
17580         (clean_function_local_data): Remove.
17581         (clean_function): Remove.
17582         (copy_global_bitmap): Use optimizations_summary_obstack.
17583         (duplicate_node_data): Duplicate optimization summary only.
17584         (remove_node_data): Remove optimization summary only.
17585         (generate_summary): Do not analyze variables; do not compute
17586         module_statics_escape; do not prune solutions by it.
17587         (read_write_all_from_decl): Fix typos in comments.
17588         (propagate): Doscover readonly and nonaddressable first;
17589         update for new datastructures; share global bitmaps.
17590         * ipa-reference.h (ipa_reference_get_read_global,
17591         ipa_reference_get_written_global): Remove.
17592         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
17593         * Makefile.in: Remove ipa-refereference from GT files.
17594
17595 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17596
17597         PR debug/44112
17598         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
17599         for all SYMBOL_REF_DECLs.
17600
17601 2010-05-14  Jan Hubicka  <jh@suse.cz>
17602
17603         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
17604         (varpool_all_refs_explicit_p): New inline function.
17605         * ipa-reference.c: Update comment.
17606         (module_statics_written): Remove.
17607         (get_static_decl): Remove.
17608         (ipa_init): Do not initialize module_statics_written.
17609         (analyze_function): Likewise.
17610         (generate_summary): Likewise; do not compute module_statics_readonly
17611         and do not update variable flags.
17612         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
17613         * ipa.c: Inlucde flags.h
17614         (cgraph_local_node_p): New.
17615         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
17616         promote functions to local.
17617         (ipa_discover_readonly_nonaddressable_vars): New function.
17618         (function_and_variable_visibility): Use cgraph_local_node_p.
17619         * varpool.c (varpool_finalize_decl): Set force_output for
17620         DECL_PRESERVE_P vars.
17621
17622 2010-05-14  Jan Hubicka  <jh@suse.cz>
17623
17624         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
17625
17626 2010-05-14  Richard Guenther  <rguenther@suse.de>
17627
17628         PR tree-optimization/44119
17629         * tree-ssa-pre.c (eliminate): Properly mark replacement of
17630         a PHI node necessary.
17631
17632 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
17633
17634         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
17635
17636 2010-05-14  Jason Merrill  <jason@redhat.com>
17637
17638         PR c++/44127
17639         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
17640         (gimple_call_set_nothrow): New.
17641         * gimple.c (gimple_build_call_from_tree): Call it.
17642         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
17643
17644         PR c++/44127
17645         * gimplify.c (gimplify_seq_add_stmt): No longer static.
17646         * gimple.h: Declare it.
17647         * gimple.c (gimple_build_eh_filter): No ops.
17648
17649 2010-05-14  Jan Hubicka  <jh@suse.cz>
17650
17651         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
17652         nodes already in queue.
17653         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
17654         re-enqueueing node.
17655
17656 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
17657
17658         PR debug/44136
17659         * cfgexpand.c (expand_debug_expr): If non-memory op0
17660         has BLKmode, return NULL.
17661
17662 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
17663
17664         * config.gcc: Add support for --with-cpu option for bdver1.
17665         * config/i386/i386.h (TARGET_BDVER1): New macro.
17666         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
17667         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17668         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
17669         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
17670         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
17671         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
17672         (processor_type): Add PROCESSOR_BDVER1.
17673         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
17674         processor_type in config/i386/i386.h.
17675         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
17676         movaps <reg, reg> instead of movapd <reg, reg> when replacing
17677         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
17678         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
17679         to emit packed xor instead of packed double/packed integer
17680         xor for SSE and AVX when moving a zero value.
17681         * config/i386/sse.md: Add check for
17682         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
17683         movapd/movdqa for SSE and AVX.
17684         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
17685         single logical operations i.e and, or and xor instead of packed double
17686         logical operations for SSE and AVX.
17687         * config/i386/i386-c.c (ix86_target_macros_internal):
17688         Add PROCESSOR_BDVER1.
17689         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
17690         (has_fma4, has_xop): New.
17691         * config/i386/i386.c (bdver1_cost): New variable.
17692         (m_BDVER1): New macro.
17693         (m_AMD_MULTIPLE): Add m_BDVER1.
17694         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
17695         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
17696         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
17697         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
17698         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
17699         x86_tune_sse_partial_reg_dependency,
17700         x86_tune_sse_unaligned_load_optimal,
17701         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
17702         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
17703         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
17704         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
17705         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
17706         Enable/disable for bdver1.
17707         (processor_target_table): Add bdver1_cost.
17708         (cpu_names): Add bdver1.
17709         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
17710          processor_alias_table.
17711         (ix86_expand_vector_move_misalign): Change.
17712         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
17713         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
17714         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
17715         of movupd/movdqu for SSE and AVX.
17716         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
17717         (ix86_tune_adjust_cost): Add code for bdver1.
17718         (standard_sse_constant_opcode): Add check for
17719         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
17720         of packed double xor for SSE and AVX.
17721
17722 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
17723
17724         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
17725         result to unsigned.
17726
17727 2010-05-14  Tristan Gingold  <gingold@adacore.com>
17728
17729         * toplev.c (default_debug_hooks): Remove this variable.
17730         (process_options): Remove assignments to default_debug_hooks.
17731
17732 2010-05-14  Martin Jambor  <mjambor@suse.cz>
17733
17734         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
17735         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
17736         * langhooks.h (struct lang_hooks_for_decls): Removed field
17737         fold_obj_type_ref.
17738         * tree.c (free_lang_data): Remove assignment to
17739         lang_hooks.fold_obj_type_ref.
17740         * tree.def (OBJ_TYPE_REF): Update comment.
17741
17742 2010-05-14  Richard Guenther  <rguenther@suse.de>
17743
17744         PR tree-optimization/44124
17745         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
17746
17747 2010-05-14  Alan Modra  <amodra@gmail.com>
17748
17749         PR target/44075
17750         * config/rs6000/rs6000.c (struct machine_function): Reorder
17751         fields for better packing.  Add lr_save_state.
17752         (rs6000_ra_ever_killed): Return lr_save_state if set.
17753         (rs6000_emit_eh_reg_restore): Set lr_save_state.
17754
17755 2010-05-13  Jan Hubicka  <jh@suse.cz>
17756
17757         * varpool.c (decide_is_variable_needed): Drop code checking
17758         TREE_SYMBOL_REFERENCED.
17759
17760 2010-05-13  Jan Hubicka  <jh@suse.cz>
17761
17762         * final.c (output_addr_const): Do not call mark_decl_referenced.
17763         * cgraphunit.c (process_function_and_variable_attributes): Use
17764         mark_needed_node dirrectly.
17765         (assemble_thunk): Do not call mark_decl_referenced.
17766
17767 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
17768
17769         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
17770
17771 2010-05-13  Jeff Law  <law@redhat.com>
17772
17773         * ira-conflicts.c (print_allocno_conflicts): New function broken out
17774         from...
17775         (print_conflicts): Call print_allocno_conflicts.
17776
17777 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
17778
17779         PR debug/44104
17780         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
17781         if it is NULL.
17782
17783 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
17784
17785         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
17786         t-mingw-w64 or t-mingw-w32 for multilib configuration.
17787         * config/i386/t-mingw-w32: New.
17788         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
17789
17790 2010-05-13  Martin Jambor  <mjambor@suse.cz>
17791
17792         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
17793         gimple-fold.c).
17794         * gimple-fold.c (get_base_binfo_for_type): New function.
17795         (gimple_get_relevant_ref_binfo): Likewise.
17796         (gimple_fold_obj_type_ref_known_binfo): Likewise.
17797         (gimple_fold_obj_type_ref): Likewise.
17798         (fold_gimple_call): Simplify condition for folding virtual calls
17799         and call gimple_fold_obj_type_ref.
17800         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
17801         (gimple_fold_obj_type_ref_known_binfo): Likewise.
17802
17803 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
17804
17805         * config/rs6000/rs6000-protos.h
17806         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
17807         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
17808         (rs6000_debug_mode_dependent_address)
17809         (rs6000_mode_dependent_address_ptr): Likewise.
17810
17811 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
17812
17813         PR debug/43983
17814         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
17815         by SRA.
17816         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
17817         * tree-sra.c (create_access_replacement): Call unshare_expr before
17818         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
17819         * dwarf2out.c: Include tree-flow.h.
17820         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
17821         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
17822         Handle DW_OP_bit_piece.
17823         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
17824         construct_piece_list, adjust_piece_list): New functions.
17825         (add_var_loc_to_decl): Handle SRA optimized variables.
17826         Adjust for var_loc_note to loc field renaming.
17827         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
17828         in VAR_LOCATION note.
17829         (new_loc_descr_op_bit_piece): New function.
17830         (dw_sra_loc_expr): New function.
17831         (dw_loc_list): Use it.  Don't handle the last range after the
17832         loop, handle it inside of the loop.  Adjust for var_loc_note
17833         to loc field renaming.
17834         (add_location_or_const_value_attribute): Only special case
17835         single entry loc lists if loc is NOTE_P.  Adjust for
17836         var_loc_note to loc field renaming.
17837         (dwarf2out_var_location): Don't set newloc->var_loc_note
17838         and newloc->next here.
17839
17840 2010-05-12  Jan Hubicka  <jh@suse.cz>
17841
17842         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
17843         flag.
17844         * cgraph.h (cgraph_only_called_directly_p,
17845         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
17846         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
17847         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
17848         (assemble
17849         * ipa.c (cgraph_remove_unreachable_nodes): Use
17850         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
17851         flags.
17852         * tree-inline.c (copy_bb): Check address_taken flag.
17853         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
17854         externally_visible flag.
17855
17856 2010-05-12  Jason Merrill  <jason@redhat.com>
17857
17858         PR bootstrap/44048
17859         PR target/44099
17860         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
17861         * sdbout.c (plain_type_1): Likewise.
17862         * dwarf2out.c (is_base_type): Likewise.
17863         (gen_type_die_with_usage): Likewise.  Generate
17864         DW_TAG_unspecified_type for any LANG_TYPE.
17865
17866 2010-05-12  Jan Hubicka  <jh@suse.cz>
17867
17868         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
17869         indrect edges too.
17870         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
17871         (cgraph_clone_edge): Update.
17872         (cgraph_node_remove_callees): Remove indirect calls too.
17873         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
17874         (cgraph_create_indirect_edge): Update prototype.
17875         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
17876         is_proper_for_analysis.
17877         (add_new_function, visited_nodes, function_insertion_hook_holder,
17878         get_local_reference_vars_info, mark_address_taken, mark_address,
17879         mark_load, mark_store, check_asm_memory_clobber, check_call,
17880         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
17881         (ipa_init): Do not initialize visited_nodes;
17882         function_insertion_hook_holder.
17883         (analyze_variable): Rewrite.
17884         (analyze_function): Rewrite.
17885         (copy_local_bitmap): Remove.
17886         (duplicate_node_dat): Do not duplicate local info.
17887         (generate_summary): Simplify to only walk cgraph.
17888         (write_node_summary_p, ipa_reference_write_summary,
17889         ipa_reference_read_summary): Remove.
17890         (propagate): Do not remove function insertion;
17891         generate summary.
17892         (pass_ipa_reference): NULLify summary handling fields.
17893         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
17894         (input_edge): Input ecf_flags.
17895         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
17896         (update_indirect_edges_after_inlining): Ignore edges with unknown
17897         param.
17898
17899 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
17900
17901         * implicit-zee.c: New file.
17902         * tree-pass.h (pass_implicit_zee): Declare.
17903         * passes.c (init_optimization_passes): Add zee pass.
17904         * common.opt (fzee): New flag.
17905         * timevar.def (TV_ZEE): Define.
17906         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
17907         and beyond.
17908         * Makefile.in (implicit-zee.o): Add new build file.
17909
17910 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17911             Nathan Froyd  <froydnj@codesourcery.com>
17912
17913         * c-common.c (sync_resolve_params): Remove write-only variable.
17914
17915 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
17916
17917         * target.h (struct gcc_target): Add mode_dependent_address_p field.
17918         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
17919         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
17920         * targhooks.c (default_mode_dependent_address_p): New function.
17921         * targhooks.h (default_mode_dependent_address_p): Declare function.
17922         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
17923         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
17924         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
17925         target hook. Change return type to bool.
17926         * recog.h (mode_dependent_address_p): Change return type to bool.
17927
17928 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17929             Nathan Froyd  <froydnj@codesourcery.com>
17930
17931         * tree-mudflap.c (build_function_type_0, build_function_type_1,
17932         build_function_type_2, build_function_type_3): Remove.
17933         (mudflap_init): Use build_function_type_list.
17934
17935 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
17936             Nathan Froyd  <froydnj@codesourcery.com>
17937
17938         * coverage.c (build_fn_info_value): Call build_constructor instead of
17939         build_constructor_from_list.
17940         (build_ctr_info_value): Likewise.
17941         (build_gcov_info): Likewise.
17942
17943 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
17944
17945         * tree.c (build_constructor): Compute TREE_CONSTANT for the
17946         resultant constructor.
17947         (build_constructor_single): Don't set TREE_CONSTANT.
17948         (build_constructor_from_list): Don't compute TREE_CONSTANT.
17949
17950 2010-05-12  Jan Hubicka  <jh@suse.cz>
17951
17952         * cgraph.h (struct varpool_node): Add aux.
17953         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
17954         * varpool.c (varpool_remove_node): Do not remove initializer.
17955         (varpool_reset_queue): Export.
17956         (varpool_finalize_decl): Volatile vars are forced to be output.
17957         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
17958         replaced decl.
17959         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
17960         process_references, varpool_can_remove_if_no_refs): New functions.
17961         (cgraph_remove_unreachable_nodes): Handle variables too.
17962
17963 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
17964
17965         PR target/44088
17966         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
17967
17968 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
17969
17970         PR middle-end/44085
17971         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
17972         change value of ORT_TASK.
17973         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
17974         (omp_notice_threadprivate_variable): New function.
17975         (omp_notice_variable): Call it for threadprivate variables.
17976         If enclosing ctx is a task, print enclosing task rather than
17977         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
17978         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
17979         if task has untied clause.
17980
17981         PR debug/42278
17982         * dwarf2out.c (base_type_die): Don't add name attribute here.
17983         (modified_type_die): Instead of sizetype use
17984         its underlying original type.  If a DW_TAG_base_type doesn't
17985         have name added, add __unknown__.
17986         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
17987         always call force_type_die instead.
17988
17989 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
17990
17991         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
17992         for __stack_chk_guard.
17993
17994 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
17995
17996         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
17997         don't call start_source_file debug hook here...
17998         (finish_options): ... but here, after outputting predefined and
17999         command line defines and undefs.
18000
18001         PR middle-end/44071
18002         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
18003         no fallthru edge.
18004         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
18005         optimizing away empty bb with no successors, move over its
18006         footer chain to fallthru predecessor.
18007         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
18008         (rtl_split_edge): For asm goto call patch_jump_insn even if
18009         splitting fallthru edge.
18010
18011         PR c++/44059
18012         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
18013         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
18014         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
18015         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
18016         on DW.ref.* decls.
18017
18018         PR c++/44062
18019         * c-parser.c (c_parser_expression): Mark LHS of a comma
18020         expression as read if it is a decl, handled component or
18021         COMPOUND_EXPR with that on the RHS.
18022         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
18023         if it is a decl or handled component.
18024
18025 2010-05-11  Jan Hubicka  <jh@suse.cz>
18026
18027         * lto-symtab.c (lto_symtab_free): New function.
18028         * lto-streamer.h (lto_symtab_free): Declare.
18029
18030 2010-05-11  Jan Hubicka  <jh@suse.cz>
18031
18032         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
18033         that if function is needed it is reachable.
18034         (lto_output_node): See if it the function is reachable or referenced.
18035         (output_cgraph): Update call of lto_output_node.
18036         * lto-streamer.h (reachable_from_other_partition_p): Declare.
18037
18038 2010-05-11  Jan Hubicka  <jh@suse.cz>
18039
18040         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
18041         Mark as used.
18042
18043 2010-05-11  Jan Hubicka  <jh@suse.cz>
18044
18045         PR tree-optimize/44063
18046         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
18047         queue.
18048         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
18049         limits.
18050         (estimate_function_body_sizes): Compute sizes even when disregarding.
18051
18052 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
18053
18054         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
18055
18056 2010-05-11  Jan Hubicka  <jh@suse.cz>
18057
18058         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
18059         into every boundary.
18060
18061 2010-05-11  Jan Hubicka  <jh@suse.cz>
18062
18063         * matrix-reorg.c (matrix_reorg): Rebuild edges.
18064
18065 2010-05-11  Jan Hubicka  <jh@suse.cz>
18066
18067         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
18068         lto_streamer_cache_delete): Put nodes into heap.
18069         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
18070         heap.
18071
18072 2010-05-11  Jan Hubicka  <jh@suse.cz>
18073
18074         * cgraphbuild.c (cgraph_rebuild_references): New.
18075         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
18076         out extern inlines.
18077         * cgraph.h (cgraph_rebuild_references): Declare.
18078         * tree-inline.c (tree_function_versioning): Use it.
18079         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
18080
18081 2010-05-11  Jan Hubicka  <jh@suse.cz>
18082
18083         * cgraph.c: Include ipa-utils.h
18084         (cgraph_create_virtual_clone): Update references.
18085         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
18086
18087 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18088
18089         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
18090         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
18091         cache size.
18092
18093 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
18094
18095         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
18096
18097 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
18098
18099         * gcc.c (execute): For -### don't quote arguments that
18100         contain just alphanumerics and _/-. characters.
18101         * doc/invoke.texi: Document that change for -###.
18102
18103         PR debug/44023
18104         * df-problems.c (struct dead_debug): Add to_rescan field.
18105         (dead_debug_init): Clear to_rescan field.
18106         (dead_debug_finish): Rescan all debug insns in to_rescan
18107         bitmap and free the bitmap.
18108         (dead_debug_insert_before): Instead of rescanning debug insns
18109         immediately queue their rescanning until dead_debug_finish.
18110         (df_note_bb_compute): After dead_debug_add do continue instead
18111         of break.
18112
18113 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
18114
18115         PR debug/44028
18116         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
18117         clear also INSN_REG_USE_LIST.
18118
18119 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18120
18121         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
18122
18123 2010-05-10  Jan Hubicka  <jh@suse.cz>
18124
18125         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
18126         commited change.
18127
18128 2010-05-10  Jan Hubicka  <jh@suse.cz>
18129
18130         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
18131         Allocate encoders.
18132         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
18133         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
18134         (lto_streamer_cache_create): Init alloc pool.
18135         (lto_streamer_cache_delete): Free alloc pool.
18136         * lto-streamer.h: Include alloc pool.
18137         (lto_streamer_cache_d): Use alloc pool.
18138         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
18139
18140 2010-05-10  Jan Hubicka  <jh@suse.cz>
18141
18142         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
18143         * cgraphbuild.c: Include except.h
18144         (record_type_list, record_eh_tables): New function.
18145         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
18146
18147 2010-05-10  Jan Hubicka  <jh@suse.cz>
18148
18149         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
18150         __frame_dummy_init_array_entry, force_to_data): Attribute as used
18151         rather than unused.
18152
18153 2010-05-10  Michael Matz  <matz@suse.de>
18154
18155         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
18156         (can_reassociate_p): Use FLOAT_TYPE_P.
18157         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
18158         (vect_force_simple_reduction): ... this.
18159         * tree-parloops.c (gather_scalar_reductions): Use
18160         vect_force_simple_reduction.
18161         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
18162         vect_is_simple_reduction, add modify argument, if true rewrite
18163         "a-b" into "a+(-b)".
18164         (vect_is_simple_reduction, vect_force_simple_reduction): New
18165         functions.
18166         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
18167
18168 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
18169             Vladimir Makarov  <vmakarov@redhat.com>
18170
18171         PR rtl-optimization/44012
18172         * ira-build.c (remove_unnecessary_allocnos): Nullify
18173         regno_allocno_map of the removed allocno.
18174
18175 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18176
18177         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
18178         to /dev/null.
18179         * configure: Regenerate.
18180
18181 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18182
18183         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
18184         unused.
18185         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
18186         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
18187         support in Sun ld.
18188         * configure: Regenerate.
18189
18190 2010-05-10  Richard Guenther  <rguenther@suse.de>
18191
18192         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
18193         marked if the entry identifier is marked.
18194
18195 2010-05-10  Richard Guenther  <rguenther@suse.de>
18196
18197         * c-common.c (struct c_common_attributes): Add fnspec attribute.
18198         (handle_fnspec_attribute): New function.
18199         * gimple.h (gimple_call_return_flags): Declare.
18200         (gimple_call_arg_flags): Likewise.
18201         * gimple.c (gimple_call_arg_flags): New function.
18202         (gimple_call_return_flags): Likewise.
18203         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
18204         New argument flags.
18205         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
18206         return value flags.
18207         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
18208         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
18209         main work to ...
18210         (make_heapvar_for): ... this new function.
18211         (handle_rhs_call): Handle fnspec attribute argument specifiers.
18212         (handle_lhs_call): Likewise.
18213         (find_func_aliases): Adjust.
18214
18215 2010-05-10  Richard Guenther  <rguenther@suse.de>
18216
18217         PR tree-optimization/44050
18218         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
18219
18220 2010-05-10  Wei Guozhi  <carrot@google.com>
18221
18222         PR target/42879
18223         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
18224
18225 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18226
18227         PR c/10676
18228         * c-typeck.c (lookup_field): Take a type directly.  Update
18229         recursive calls.
18230         (build_component_ref): Update call to lookup_field.
18231         (set_init_label): Use lookup_field to find initialized field.
18232         Handle returned list of fields like a sequence of designators.
18233
18234 2010-05-09  Richard Guenther  <rguenther@suse.de>
18235
18236         PR middle-end/44024
18237         * fold-const.c (tree_single_nonzero_warnv_p): Properly
18238         handle &FUNCTION_DECL.
18239
18240 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
18241
18242         PR c/4784
18243         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
18244         structures and unions recursively.
18245         (detect_field_duplicates): Move duplicate detection with a hash to
18246         detect_field_duplicates_hash.  Always use a hash if anonymous
18247         structures or unions are present.
18248         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
18249         give errors.
18250
18251 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
18252
18253         PR target/44046
18254         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
18255         detect Atom, Core 2 and Core i7.
18256
18257 2010-05-09  Richard Guenther  <rguenther@suse.de>
18258
18259         * gcc.c (store_arg): Handle temporary file deletion for
18260         joined arguments.
18261
18262 2010-05-09  Richard Guenther  <rguenther@suse.de>
18263
18264         PR middle-end/44043
18265         * ipa-inline.c (estimate_function_body_sizes): Return after
18266         disregarding inline limits.
18267
18268 2010-05-09  Richard Guenther  <rguenther@suse.de>
18269
18270         * gcc.c (store_arg): Revert last change.
18271
18272 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
18273
18274         PR middle-end/28685
18275         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
18276         (optimize_ops_list): Call it.
18277
18278 2010-05-08  Richard Guenther  <rguenther@suse.de>
18279
18280         PR tree-optimization/44030
18281         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
18282         NECESSARY flag if we propagate from a inserted expression.
18283
18284 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
18285
18286         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
18287         domain types as equal if they are both PLACEHOLDER_EXPRs.
18288
18289 2010-05-08  Richard Guenther  <rguenther@suse.de>
18290
18291         * lto-wrapper.c (run_gcc): Remove linker output from
18292         command line for LTRANS invocation.
18293
18294 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18295
18296         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
18297         lto-macho as lto_binary_reader.
18298         * target.h (struct gcc_target): New hooks lto_start and lto_end.
18299         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
18300         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
18301         in lto_start and lto_end calls.
18302         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
18303         magic numbers.
18304         (scan_prog_file): Update is_elf_or_coff call.
18305         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
18306
18307         * collect2.c (main): Fix enum comparison.
18308
18309         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
18310         Add prototypes.
18311         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
18312         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
18313         and TARGET_ASM_LTO_END.
18314         * darwin.c: Include obstack.h and lto-streamer.h.
18315         (lto_section_names_offset, lto_section_names_obstack,
18316         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
18317         global variables.
18318         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
18319         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
18320         to a temporary file.
18321         (darwin_asm_lto_end): New function.  Restore asm_out_file.
18322         (darwin_asm_named_section): For LTO sections, replace the name with
18323         the offset of the section name in a string table, and build this
18324         table.
18325         (darwin_file_start): Initialize global vars for LTO support.
18326         (darwin_file_end): If output to asm_out_file was redirected, append it
18327         to the proper asm_out_file here.  Add the section names section.
18328
18329 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
18330
18331         * c-pragma.c (pending_weak_d, pending_weak): New.
18332         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
18333         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
18334         handle_pragma_weak): Update the uses of pending_weaks.
18335
18336 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18337
18338         PR documentation/44016
18339         * doc/standards.texi (Standards): Link to unversioned
18340         cxx0x_status.html page.
18341
18342 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
18343
18344         PR target/43708
18345         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
18346         in addition to TREE_USED, to avoid "set but unused" warnings.
18347
18348 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18349
18350         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
18351         (is_loop_prefetching_profitable): Do not insert prefetches
18352         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
18353         times the prefetch ahead distance.
18354
18355 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18356
18357         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
18358         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
18359         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
18360         the unroll_factor.
18361
18362 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
18363
18364         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
18365         a diagnostic info when the insn-to-mem ratio is too small.
18366
18367 2010-05-07  Richard Guenther  <rguenther@suse.de>
18368
18369         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
18370         the linker plugin.
18371         (store_arg): Queue temp_filename for deletion instead of
18372         the whole argument.
18373
18374 2010-05-07  Richard Guenther  <rguenther@suse.de>
18375
18376         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
18377         (run_gcc): Handle LTRANS phase invocation.
18378         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
18379
18380 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
18381
18382         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
18383         this is also meaningful on PARM_DECLs and RESULT_DECLs.
18384
18385 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18386
18387         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
18388
18389 2010-05-07  Richard Guenther  <rguenther@suse.de>
18390
18391         PR tree-optimization/44020
18392         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
18393         code when PRE is not yet initialized.
18394
18395 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18396
18397         * config/mips/dbxmdebug.h: Remove.
18398         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
18399
18400 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
18401
18402         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
18403         with null pointer and also warn about ordered comparison of zero with
18404         pointer if -Wextra.
18405
18406 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18407
18408         * graphite-blocking.c
18409         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
18410         * graphite-clast-to-gimple.c
18411         (clast_to_gcc_expression): Same.
18412         (precision_for_value): Same.
18413         (precision_for_interval): Same.
18414         (gcc_type_for_interval): Same.
18415         (graphite_create_new_guard): Same.
18416         (compute_bounds_for_level): Same.
18417         (graphite_create_new_loop_guard): Same.
18418         * graphite-interchange.c
18419         (build_linearized_memory_access): Same.
18420         (pdr_stride_in_loop): Same.
18421         (memory_strides_in_loop_1): Same.
18422         (memory_strides_in_loop): Same.
18423         (extend_scattering): Same.
18424         (psct_scattering_dim_for_loop_depth): Same.
18425         (pbb_number_of_iterations): Same.
18426         * graphite-poly.h
18427         (debug_iteration_domains): Same.
18428         * graphite-ppl.c
18429         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
18430         (ppl_set_inhomogeneous_gmp): Same.
18431         (ppl_strip_loop): Same.
18432         (ppl_lexico_compare_linear_expressions): Same.
18433         (ppl_read_polyhedron_matrix): Same.
18434         (ppl_max_for_le_pointset): Same.
18435         * graphite-ppl.h
18436         (ppl_read_polyhedron_matrix): Same.
18437         (tree_int_to_gmp): Same.
18438         (gmp_cst_to_tree): Same.
18439         (ppl_set_inhomogeneous): Same.
18440         (ppl_set_inhomogeneous_tree): Same.
18441         (ppl_set_coef): Same.
18442         (ppl_set_coef_tree): Same.
18443         * graphite-sese-to-poly.c
18444         (build_pbb_scattering_polyhedrons): Same.
18445         (build_scop_scattering): Same.
18446         (scan_tree_for_params_right_scev): Same.
18447         (scan_tree_for_params): Same.
18448         (find_params_in_bb): Same.
18449         (find_scop_parameters): Same.
18450         (add_upper_bounds_from_estimated_nit): Same.
18451         (build_loop_iteration_domains): Same.
18452         (add_condition_to_domain): Same.
18453         (pdr_add_memory_accesses): Same.
18454
18455 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
18456
18457         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
18458         CLooG's value_* macros to their respective mpz_* counterparts.
18459         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
18460         (graphite_create_new_loop_guard): Same.
18461         * graphite-interchange.c (build_linearized_memory_access): Same.
18462         (pdr_stride_in_loop): Same.
18463         (memory_strides_in_loop_1): Same.
18464         (1st_interchange_profitable_p): Same.
18465         * graphite-poly.c (extend_scattering): Same.
18466         (psct_scattering_dim_for_loop_depth): Same.
18467         (pbb_number_of_iterations): Same.
18468         (pbb_number_of_iterations_at_time): Same.
18469         * graphite-poly.h (new_1st_loop): Same.
18470         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
18471         (oppose_constraint): Same.
18472         (insert_constraint_into_matrix): Same.
18473         (ppl_set_inhomogeneous_gmp): Same.
18474         (ppl_set_coef_gmp): Same.
18475         (ppl_strip_loop): Same.
18476         (ppl_lexico_compare_linear_expressions): Same.
18477         (ppl_max_for_le_pointset): Same.
18478         (ppl_min_for_le_pointset): Same.
18479         (ppl_build_realtion): Same.
18480         * graphite-ppl.h (gmp_cst_to_tree): Same.
18481         (ppl_set_inhomogeneous): Same.
18482         (ppl_set_inhomogeneous_tree): Same.
18483         (ppl_set_coef): Same.
18484         (ppl_set_coef_tree): Same.
18485         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
18486         (build_scop_scattering): Same.
18487         (add_value_to_dim): Same.
18488         (scan_tree_for_params_right_scev): Same.
18489         (scan_tree_for_params_int): Same.
18490         (scan_tree_for_params): Same.
18491         (find_params_in_bb): Same.
18492         (find_scop_parameters): Same.
18493         (add_upper_bounds_from_estimated_nit): Same.
18494         (build_loop_iteration_domains): Same.
18495         (create_linear_expr_from_tree): Same.
18496         (add_condition_to_domain): Same.
18497         (pdr_add_memory_accesses): Same.
18498
18499 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
18500             Jason Merrill  <jason@redhat.com>
18501
18502         * c-common.c (c_common_reswords): Add nullptr.
18503         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
18504         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
18505         (gen_type_die_with_usage): Likewise.
18506         * dbxout.c (dbxout_type): Likewise.
18507         * sdbout.c (plain_type_1): Likewise.
18508
18509 2010-05-06  Jason Merrill  <jason@redhat.com>
18510
18511         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
18512         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
18513         ret appropriately.
18514         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
18515
18516         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
18517         stripping WITH_SIZE_EXPR.
18518         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
18519         change.
18520
18521 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18522
18523         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
18524         list of obsolete configurations.
18525         Disabled check for obsolete configurations.
18526         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
18527         Removed support for previous versions.
18528         * config/mips/iris.h: Removed.
18529         * config/mips/iris5.h: Removed.
18530         * config/mips/iris6.h: Merged old iris.h contents.
18531         (TARGET_IRIX): Removed.
18532         (DRIVER_SELF_SPECS): Removed mabi=32.
18533         (IDENT_ASM_OP): Removed undef.
18534         (STARTFILE_SPEC): Removed mabi=32.
18535         (ENDFILE_SPEC): Likewise.
18536         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
18537         (MACHINE_TYPE): Update for IRIX 6.5.
18538         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
18539         TARGET_IRIX by TARGET_IRIX6.
18540         (mips_file_start): Likewise.
18541         (mips_output_external): Remove IRIX 5/6 O32 support.
18542         (mips_output_function_prologue): Likewise.
18543         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
18544         TARGET_IRIX6.
18545         (TARGET_CPU_CPP_BUILTINS): Likewise.
18546         (TARGET_IRIX): Removed.
18547         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
18548         (MULTILIB_DIRNAMES): Removed 32.
18549         (MULTILIB_OSDIRNAMES): Removed ../lib.
18550         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
18551         (Specific, mips-sgi-irix5): Document removal.
18552         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
18553         Remove references to older IRIX 6 releases and the O32 ABI.
18554
18555 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
18556
18557         PR bootstrap/43994
18558         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
18559         instead of DF_REF_REAL_REG.
18560
18561 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
18562
18563         PR target/43888
18564         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
18565         handling to still return true for x64 targets.
18566
18567 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18568
18569         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
18570
18571 2010-05-06  Jan Hubicka  <jh@suse.cz>
18572
18573         PR tree-optimization/43791
18574         * ipa-inline.c (update_caller_keys): Remove bogus
18575         disregard_inline_limits check.
18576
18577 2010-05-06  Michael Matz  <matz@suse.de>
18578
18579         PR tree-optimization/43984
18580         * tree-ssa-pre.c (inserted_phi_names): Remove.
18581         (inserted_exprs): Change to bitmap.
18582         (create_expression_by_pieces): Set bits, don't append to vector.
18583         (insert_into_preds_of_block): Don't handle inserted_phi_names.
18584         (eliminate): Don't look at inserted_phi_names, remove deleted
18585         insns from inserted_exprs.
18586         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
18587         (init_pre, fini_pre): Allocate and free bitmaps.
18588         (execute_pre): Insert insns on edges before elimination.
18589
18590 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
18591
18592         * tree.c (initializer_zerop): Handle STRING_CST.
18593
18594 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18595
18596         PR 40989
18597         * doc/invoke.texi (Wimplicit): Document as C only.
18598         * opts.c (common_handle_option): Add argument kind.
18599         (handle_option): Rename as read_cmdline_option. Factor out code to...
18600         (handle_option): ... here. New.
18601         (handle_options): Rename as read_cmdline_options.
18602         (decode_options): Update call.
18603         (set_option): Use option index instead of option pointer. Classify
18604         diagnostics correctly.
18605         (enable_warning_as_error): Call handle_option.
18606         * opts.h (set_option): Update declaration.
18607         (handle_option): Declare.
18608         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
18609         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
18610         * c-opts.c (set_Wimplicit): Delete.
18611         (c_family_lang_mask): New static constant.
18612         (c_common_handle_option): Add argument kind. Use handle_option
18613         instead of set_Wimplicit.
18614         (c_common_post_options): warn_implicit and warn_implicit_int
18615         are disabled by default.
18616         * c-common.c (warn_implicit): Do not define here.
18617         * c-common.h (warn_implicit): Do not declare here.
18618         (c_common_handle_option): Update declaration.
18619         * lto-opts.c (lto_reissue_options): Update call to set_option.
18620
18621 2010-05-06  Richard Guenther  <rguenther@suse.de>
18622
18623         PR tree-optimization/43571
18624         * domwalk.c (walk_dominator_tree): Walk the dominator
18625         sons in more optimal order.
18626
18627 2010-05-06  Richard Guenther  <rguenther@suse.de>
18628
18629         PR tree-optimization/43934
18630         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
18631         (stmt_cost): Likewise.
18632         (extract_true_false_args_from_phi): New helper.
18633         (determine_max_movement): For PHI nodes verify we can hoist them
18634         and compute their cost.
18635         (determine_invariantness_stmt): Handle PHI nodes.
18636         (move_computations_stmt): Likewise.  Hoist PHI nodes in
18637         if-converted form using COND_EXPRs.
18638         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
18639         (tree_ssa_lim): Likewise.
18640         * tree-flow.h (tree_ssa_lim): Adjust prototype.
18641         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
18642
18643 2010-05-06  Richard Guenther  <rguenther@suse.de>
18644
18645         PR tree-optimization/43987
18646         * tree-ssa-structalias.c (could_have_pointers): For possibly
18647         address-taken variables force pointers to be recorded.
18648         (create_variable_info_for_1): Likewise.
18649         (push_fields_onto_fieldstack): Pass in wheter all fields
18650         must have pointers.
18651         (find_func_aliases): Query types instead of vars whether
18652         they contain pointers where appropriate.
18653
18654 2010-05-06  Jan Hubicka  <jh@suse.cz>
18655
18656         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
18657         (record_reference, mark_address, mark_load, mark_store): Record
18658         references.
18659         (record_references_in_initializer): Update call of record_references.
18660         (rebuild_cgraph_edges): Remove all references before rebuiding.
18661         * cgraph.c (cgraph_create_node): Clear ref list.
18662         (cgraph_remove_node): Remove references.
18663         (dump_cgraph_node): Dump references.
18664         (cgraph_clone_node): Clone references.
18665         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
18666         (struct cgraph_node, varpool_node): Add ref_lst.
18667         * ipa-ref.c: New file.
18668         * ipa-ref.h: New file.
18669         * ipa-ref-inline.h: New file.
18670         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
18671         (referenced_from_other_partition_p): New function.
18672         (lto_output_varpool_node): Take set arugment; call
18673         referenced_from_other_partition.
18674         (lto_output_ref): New.
18675         (add_references): New.
18676         (output_refs): New.
18677         (output_cgraph): Compute boundary based on references; output refs.
18678         (output_varpool): Accept cgraph_node_set argument.
18679         (input_ref): New.
18680         (input_refs): New.
18681         (input_cgraph): Call input_refs.
18682         * lto-section-in.c (lto_section_name): Add refs.
18683         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
18684         (ipa-ref.o): New file.
18685         * varpool.c (varpool_node): Clear ipa ref list.
18686         (varpool_remove_node): Remove references.
18687         (dump_varpool_node): Dump references.
18688         (varpool_assemble_decl): Only compile finalized ones.
18689         (varpool_extra_name_alias): Initialize ref list.
18690         * lto-streamer.c (lto-get_section_name): Add .refs section.
18691         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
18692         (referenced_from_other_partition_p): Declared.
18693
18694 2010-05-06  Ira Rosen  <irar@il.ibm.com>
18695
18696         PR tree-optimization/43901
18697         * tree-vect-stmts.c (vectorizable_call): Assert that vector
18698         type is not NULL if it's transformation phase, and return
18699         FALSE if it's analysis.
18700         (vectorizable_conversion, vectorizable_operation,
18701         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
18702
18703 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
18704
18705         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
18706         Delete.
18707         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
18708         New define.
18709         * config/mips/mips-protos.h
18710         (mips_small_register_classes_for_mode_p): Delete prototype.
18711
18712 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
18713
18714         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
18715         * config/arm/arm.c (multiple_operation_profitable_p,
18716         compute_offset_order): New static functions.
18717         (load_multiple_sequence, store_multiple_sequence): Use them.
18718         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
18719         memory offsets, not register numbers.
18720         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
18721
18722 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
18723
18724         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
18725         (get_pending_sizes, put_pending_size, put_pending_sizes):
18726         Update the uses of pending_sizes.
18727         * c-decl.c (store_parm_decls): Likewise.
18728         * c-tree.h (struct c_arg_info): Likewise.
18729         * tree.h: Update the prototype for get_pending_sizes and
18730         put_pending_sizes.
18731
18732 2010-05-05  Jason Merrill  <jason@redhat.com>
18733
18734         PR debug/43370
18735         * c-common.c (handle_aligned_attribute): Respect
18736         ATTR_FLAG_TYPE_IN_PLACE.
18737
18738         PR testsuite/43758
18739         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
18740         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
18741         (TARGET_INITIALIZER): Use it.
18742         * c-common.c (attribute_takes_identifier_p): Call it.
18743         * c-common.h: Update prototype.
18744         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
18745         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
18746
18747 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
18748
18749         PR debug/43950
18750         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
18751         DW_ID_down_case for Fortran compilation units.
18752
18753 2010-05-05  Jan Hubicka  <jh@suse.cz>
18754
18755         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
18756         handle aliases.
18757
18758 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
18759
18760         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
18761         a variable-sized RESULT_DECL.
18762
18763 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
18764
18765         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
18766
18767 2010-05-05  Jason Merrill  <jason@redhat.com>
18768
18769         PR c++/43787
18770         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
18771         returns GS_OK.
18772         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
18773
18774 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
18775             Jakub Jelinek  <jakub@redhat.com>
18776
18777         PR debug/43478
18778         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
18779         (dead_debug_init, dead_debug_finish): New functions.
18780         (dead_debug_add, dead_debug_insert_before): Likewise.
18781         (df_note_bb_compute): Initialize a dead_debug object, add dead
18782         debug uses to it, insert debug bind insns before death insns,
18783         reset debug insns that refer to pending uses at the end.
18784         * rtl.h (make_debug_expr_from_rtl): New prototype.
18785         * varasm.c (make_debug_expr_from_rtl): New function.
18786
18787 2010-05-05  Jan Hubicka  <jh@suse.cz>
18788
18789         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
18790         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
18791         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
18792         lto_varpool_encoder_deref, lto_varpool_encoder_size,
18793         lto_varpool_encoder_encode_initializer_p,
18794         lto_set_varpool_encoder_encode_initializer): New functions.
18795         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
18796         call output_varpool.
18797         (input_varpool_node): Do not always set analyzed.
18798         (input_cgraph_1): Return vector of cgraph nodes.
18799         (input_varpool_1): Return vector of varpools.
18800         (input_cgraph): Free the vectors.
18801         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
18802         output only initializers needed.
18803         (lto_output): Only call output_cgraph.
18804         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
18805         * lto-section-out.c (lto_new_out_decl_state): Initialize
18806         state->varpool_node_encoder.
18807         * lto-streamer.h (lto_varpool_encoder_d): New.
18808         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
18809         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
18810         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
18811         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
18812         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
18813         Declare.
18814         (output_varpool, input_varpool): Remove declarations.
18815
18816 2010-05-05  Jan Hubicka  <jh@suse.cz>
18817
18818         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
18819         with body can prevail.
18820
18821 2010-05-05  Jan Hubicka  <jh@suse.cz>
18822
18823         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
18824         size.
18825
18826 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
18827
18828         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
18829
18830         * gengtype.h (erro_at_line): Constify pos argument.
18831
18832         * gengtype.c: Include hashtab.h.
18833         (enum gc_used): Document GC_MAYBE_POINTED_TO.
18834         (error_at_line): Constify pos argument.
18835         (do_typedef): Initialize p->opt field.
18836         (get_file_gtfilename): Fix comment typo.
18837         (struct walk_type_data): Constify line field.
18838         (get_output_file_for_structure): New function.
18839         (write_local_func_for_structure): Constify orig_s argument.
18840         Use get_output_file_for_structure.
18841         (write_func_for_structure): Use get_output_file_for_structure.
18842         (INDENT): New define.
18843         (dump_pair, dump_type, dump_type_list, dump_typekind)
18844         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
18845         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
18846         functions.
18847         (seen_types): New variable.
18848         (main): New variable do_dump.  Process "-d" command line option.
18849         Call dump_everything if dump requested.
18850
18851 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
18852
18853         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
18854         in a temporary instead of invoking the macro multiple times.
18855         (track_expr_p): Likewise.
18856
18857 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
18858
18859         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
18860         per new semantics.
18861         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
18862         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
18863         conditions for printing notes.
18864         * common.opt (-Wcoverage-mismatch): Allow negative, default to
18865         true, update documentation.
18866         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
18867
18868 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
18869
18870         PR c/43981
18871         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
18872         on dimen.
18873
18874 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18875
18876         PR target/43799
18877         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
18878         (*sse_prologue_save_insn1): Likewise.
18879         (SSE prologue save splitter): Likewise.
18880
18881 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
18882
18883         * tree.c (free_lang_data_in_one_sizepos): New inline function.
18884         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
18885         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
18886         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
18887         all decls.  Call it on DECL_FIELD_OFFSET of fields.
18888         (find_decls_types_r): Follow DECL_VALUE_EXPR.
18889         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
18890
18891 2010-05-04  Martin Jambor  <mjambor@suse.cz>
18892
18893         * tree-sra.c (build_access_from_expr_1): The first parameter type
18894         changed to simple tree.
18895         (build_access_from_expr): Likewise, gsi parameter was eliminated.
18896         (scan_assign_result): Renamed to assignment_mod_result, enum elements
18897         renamed as well.
18898         (build_accesses_from_assign): Removed all parameters except for a
18899         simple gimple statement.  Now returns a simple bool.
18900         (scan_function): All non-analysis parts moved to separate functions
18901         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
18902         parameters and updated both callers.
18903         (sra_modify_expr): Removed parameter data.
18904         (sra_modify_function_body): New function.
18905         (perform_intra_sra): Call sra_modify_function_body to modify the
18906         function body.
18907         (replace_removed_params_ssa_names): Parameter data changed into
18908         adjustments vector.
18909         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
18910         changed the parameter dont_convert to convert with the opposite
18911         meaning.
18912         (sra_ipa_modify_assign): Parameter data changed into adjustments
18913         vector, return value changed to bool.
18914         (ipa_sra_modify_function_body): New function.
18915         (sra_ipa_reset_debug_stmts): Updated a comment.
18916         (modify_function): Use ipa_sra_modify_function_body to modify function
18917         body.
18918
18919 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
18920
18921         PR middle-end/43671
18922         * alias.c (true_dependence): Handle the same VALUE in x and mem.
18923         (canon_true_dependence): Likewise.
18924         (write_dependence_p): Likewise.
18925
18926 2010-05-04  Jan Hubicka  <jh@suse.cz>
18927
18928         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
18929         * cgraphbuild.c: Include ipa-utils.h
18930         (record_reference_ctx): New struct.
18931         (record_reference): Simplify to work on initializers; not statements.
18932         (mark_address, mark_load, mark_store): New.
18933         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
18934         walk PHI nodes too.
18935         (record_references_in_initializer): Update use of record_reference.
18936         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
18937         walk PHI nodes too.
18938
18939 2010-05-04  Jan Hubicka  <jh@suse.cz>
18940
18941         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
18942         node will be removed anyway.
18943         (lto_varpool_replace_node): Allow also unanalyzed nodes;
18944         relink aliases of node into prevailing node.
18945         * varpool.c (varpool_remove_node): Remove aliases properly;
18946         when removing node, remove all its aliases too; remove DECL_INITIAL
18947         of removed node; ggc_free the varpool node.
18948
18949 2010-05-04  Richard Guenther  <rguenther@suse.de>
18950
18951         PR tree-optimization/43879
18952         * tree-ssa-structalias.c (alias_get_name): Use
18953         DECL_ASSEMBLER_NAME if available.
18954         (create_function_info_for): Return the varinfo node.
18955         (ipa_pta_execute): Associate same-body aliases and extra names
18956         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
18957
18958 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
18959
18960         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
18961
18962 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
18963
18964         PR bootstrap/43964
18965         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
18966         only if HONOR_REG_ALLOC_ORDER is not defined.
18967
18968 2010-05-04  Richard Guenther  <rguenther@suse.de>
18969
18970         PR tree-optimization/43949
18971         * tree-vrp.c (extract_range_from_binary_expr): Only handle
18972         TRUNC_MOD_EXPR.
18973
18974 2010-04-26  Jason Merrill  <jason@redhat.com>
18975
18976         * c.opt (-fstrict-enums): New.
18977         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
18978
18979 2010-05-03  David Ung  <davidu@mips.com>
18980             James E. Wilson  <wilson@codesourcery.com>
18981
18982         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
18983         emit the trap instruction before the divide for TUNE_74K.
18984
18985 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
18986
18987         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
18988         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
18989         based on the above, for new target hook.
18990
18991         * hooks.c (hook_bool_mode_true): New generic hook.
18992         * hooks.h (hook_bool_mode_true): Add prototype.
18993
18994         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
18995         target hook.
18996         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
18997         target hook, set to hook_bool_mode_false.
18998         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
18999         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
19000         with targetm.small_register_classes_for_mode_p.
19001         (find_reusable_reload): Likewise.
19002         (combine_reloads): Likewise.
19003         * reload1.c (reload_as_needed): Likewise.
19004         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
19005         * ifcvt.c (noce_process_if_block, check_cond_move_block,
19006         dead_or_predicable): Likewise.
19007         * regmove.c (optimize_reg_copy_1): Likewise.
19008         * calls.c (prepare_call_address): Likewise.
19009         (precompute_register_parameters): Likewise.
19010
19011         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
19012         hook definition.
19013         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
19014         implementation of the hook that considers all register classes
19015         small except for SH64.
19016         (sh_override_options): Use the new hook.
19017         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
19018         Add prototype.
19019
19020         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
19021         hook definition.
19022         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
19023         implementation of the hook that considers all register classes
19024         small for THUMB1.
19025         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
19026         Add prototype.
19027
19028         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
19029         hook definition.
19030         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
19031         implementation of the hook that considers all register classes
19032         small for MIPS16.
19033         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
19034         Add prototype.
19035
19036         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
19037         hook definition.
19038         * config/m32c/m32c.h: Likewise.
19039         * config/pdp11/pdp11.h: Likewise.
19040         * config/avr/avr.h: Likewise.
19041         * config/xtensa/xtensa.h: Likewise.
19042         * config/m68hc11/m68hc11.h: Likewise.
19043         * config/mn10300/mn10300.h: Likewise.
19044         * config/mcore/mcore.h: Likewise.
19045         * config/h8300/h8300.h: Likewise.
19046         * config/bfin/bfin.h: Likewise.
19047
19048         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
19049         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
19050
19051 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
19052
19053         * double-int.h (tree_to_double_int): Remove macro.
19054         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
19055         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19056         (tree_to_double_int): New function.
19057         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
19058         Move ...
19059         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
19060
19061 2010-05-03  Richard Guenther  <rguenther@suse.de>
19062
19063         PR tree-optimization/43971
19064         * tree-ssa-structalias.c (get_constraint_for_1): Fix
19065         constraints in the !flag_delete_null_pointer_checks case.
19066
19067 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
19068
19069         PR debug/43972
19070         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
19071         result mode matches original rtl mode.
19072
19073 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
19074
19075         PR target/43888
19076         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
19077
19078 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19079
19080         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
19081         when processing flag options.
19082
19083 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19084
19085         * gcov-iov.c (main): Change format string placeholder
19086         from %#08x to 0x%08x.
19087         * genchecksum.c (dosum): Change format string placeholder
19088         from %#02x to 0x%02x.
19089
19090 2010-05-02  Richard Guenther  <rguenther@suse.de>
19091
19092         PR tree-optimization/43879
19093         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
19094
19095 2010-05-02  Bruno Haible  <bruno@clisp.org>
19096
19097         * doc/extend.texi (Function Attributes): Fix a typo.
19098
19099 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19100
19101         Revert:
19102         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
19103         placeholder from 0x%x to %#x.
19104         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19105         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19106         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19107         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19108         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19109         * config/i386/i386.c (ix86_target_string): Ditto.
19110         * config/i386/i386.c (output_pic_addr_const): Ditto.
19111         (print_operand): Ditto.
19112
19113 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
19114
19115         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
19116         placeholder from 0x%x to %#x.
19117         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
19118         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
19119         (ASM_OUTPUT_DEBUG_DATA): Ditto.
19120         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
19121         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
19122         * optc-gen.awk: Ditto.
19123         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
19124         (HOST_WIDE_INT_PRINT_HEX): Ditto.
19125         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
19126         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
19127
19128 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19129
19130         * target.h (struct calls): Add function_value_regno_p field.
19131         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
19132         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
19133         * targhooks.c (default_function_value_regno_p): New function.
19134         * targhooks.h (default_function_value_regno_p): Declare function.
19135         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
19136         * builtins.c. (apply_result_size): (Ditto.).
19137         * combine.c. (likely_spilled_retval_p): (Ditto.).
19138         * mode-switching.c. Include 'target.h'.
19139         (create_pre_exit): Use function_value_regno_p hook.
19140         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
19141         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
19142         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
19143
19144         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
19145         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
19146         (ix86_function_value_regno_p): Declare as static, change argument
19147         type to const unsigned int.
19148         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
19149
19150 2010-05-01  Richard Guenther  <rguenther@suse.de>
19151
19152         PR tree-optimization/43949
19153         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
19154         types.
19155         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
19156
19157 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
19158
19159         * rtl.h (CONST_DOUBLE_P): Define.
19160         (rtx_to_double_int): Declare.
19161         * emit-rtl.c (rtx_to_double_int): New function.
19162         * dwarf2out.c (insert_double): New function.
19163         (loc_descriptor, add_const_value_attribute): Clean up, use
19164         rtx_to_double_int and insert_double functions.
19165
19166 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
19167
19168         * doc/extend.texi (Inline): Add missing return keyword to examples.
19169         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
19170         "command-line".
19171
19172 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
19173
19174         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
19175         the variable part of the offset as well.  Use highest_pow2_factor for
19176         all alignment checks.
19177
19178 2010-04-30  Richard Guenther  <rguenther@suse.de>
19179
19180         PR tree-optimization/43879
19181         * tree-ssa-structalias.c (type_could_have_pointers): Functions
19182         can have pointers.
19183
19184 2010-04-30  Jan Hubicka  <jh@suse.cz>
19185
19186         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
19187         varpool.
19188         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
19189
19190 2010-04-30  Jan Hubicka  <jh@suse.cz>
19191
19192         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
19193         New.
19194         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
19195         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
19196         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
19197         cgraph_node_set_needs_ltrans_p): Remove.
19198
19199 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19200
19201         * sdbout.c: Include vec.h, do not include varray.h.
19202         (deferred_global_decls, sdbout_global_decl,
19203         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
19204         * toplev.c: Do not include varray.h.
19205         (dump_memory_report): Do not dump VARRAY statistics.
19206         * gengtype.c (open_base_file): Ignore varray.h.
19207         * Makefile.in: Update for abovementioned changes.
19208         Remove all traces of varray.c and varray.h.
19209         * varray.c: Remove file.
19210         * varray.h: Remove file.
19211
19212 2010-04-30  Jan Hubicka  <jh@suse.cz>
19213
19214         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
19215         references.
19216
19217 2010-04-30  Jan Hubicka  <jh@suse.cz>
19218
19219         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
19220         needed.
19221
19222 2010-04-30  Richard Guenther  <rguenther@suse.de>
19223
19224         * tree-ssa-structalias.c (get_constraint_for_1): Generate
19225         constraints for CONSTRUCTOR.
19226
19227 2010-04-30  Richard Guenther  <rguenther@suse.de>
19228
19229         PR lto/43946
19230         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
19231         first after all lowering passes.
19232
19233 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
19234
19235         * toplev.c: Include varray.h for statistics dumping.
19236         * tree.h: Do not declare varray_head_tag.
19237         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
19238         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
19239         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
19240         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
19241         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
19242         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
19243         c-common.c, c-common.h, reg-stack.c, basic-block.h,
19244         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
19245         include varray.h.
19246         * Makefile.in: Update for abovementioned changes.
19247
19248 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
19249
19250         PR debug/43942
19251         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
19252
19253 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19254
19255         * config/picochip/picochip.c (picochip_legitimize_address): Define.
19256         Use this function to do machine-specific conversion.
19257         (picochip_legitimize_reload_address): Likewise.
19258         (picochip_legitimate_address_p): Check valid base register only if
19259         strict.
19260         (picochip_check_conditional_copy): Check for modw only if opnd is
19261         register.
19262         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
19263         to call the function in c.
19264         * config/picochip/picochip-protos.h
19265         (picochip_legitimize_reload_address): Define.
19266         * config/picochip/picochip.md (supported_compare1): Define.
19267
19268 2010-04-30  Jan Hubicka  <jh@suse.cz>
19269
19270         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
19271         (cgraph_global_info): Remove inlined.
19272         (LTO_cgraph_tag_names): Remove.
19273         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
19274         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
19275         simplify cgraph tags and document.
19276         (lto_output_node): Use only LTO_cgraph_unavail_node and
19277         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
19278         for_functions_valid, global info, process and output flags.
19279         (input_overwrite_node): Initialize estimated stack size and
19280         estimated growth.  Do not read flags we no longer store.
19281         (input_node): Likewise do not read info no longer stored.
19282         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
19283         flag.
19284
19285 2010-04-30  Richard Guenther  <rguenther@suse.de>
19286
19287         PR tree-optimization/43879
19288         * tree-ssa-structalias.c (get_constraint_for_1): Properly
19289         handle non-zero initializers.
19290
19291 2010-04-30  Richard Guenther  <rguenther@suse.de>
19292
19293         * builtins.c (fold_builtin_1): Delete free (0).
19294
19295 2010-04-29  Jan Hubicka  <jh@suse.cz>
19296
19297         * gengtype.c (open_base_files): Add lto-streamer.h
19298         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
19299         (pass_ipa_cp): GGC collect.
19300         * toplev. (compile_file): Do not output symbols.
19301         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
19302         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
19303         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
19304         * lto-section-in.c: Include ggc.h
19305         (lto_new_in_decl_state): Alloc in GGC.
19306         (lto_delete_in_decl_state): Likewise.
19307         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
19308         Collect.
19309
19310 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19311
19312         PR target/42895
19313         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
19314         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
19315         (HONOR_REG_ALLOC_ORDER): Describe new macro.
19316         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
19317         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
19318         account only if HONOR_REG_ALLOC_ORDER is not defined.
19319         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
19320         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
19321
19322 2010-04-29  Jon Grant  <04@jguk.org>
19323
19324         * collect2.c (vflag): Change type from int to bool.
19325         (debug): Likewise.
19326         (helpflag): New global bool.
19327         (main): Set vflag and debug with boolean, not integer truth values.
19328         Accept new "--help" option and output usage text if found.
19329         * collect2.h (vflag): Update prototype.
19330         (debug): Likewise.
19331
19332 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19333
19334         PR bootstrap/43936
19335         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
19336
19337 2010-04-29  Richard Guenther  <rguenther@suse.de>
19338
19339         PR bootstrap/43935
19340         * plugin.h (invoke_plugin_callbacks): Annotate arguments
19341         with ATTRIBUTE_UNUSED.
19342
19343 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
19344
19345         PR target/43921
19346         * config/i386/i386.c (get_some_local_dynamic_name): Replace
19347         INSN_P with NONDEBUG_INSN_P.
19348         (distance_non_agu_define): Likewise.
19349         (distance_agu_use): Likewise.
19350
19351 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
19352
19353         From Dominique d'Humieres  <dominiq@lps.ens.fr>
19354         PR bootstrap/43858
19355         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
19356         test_set.
19357
19358 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
19359
19360         * plugin.h (invoke_plugin_callbacks): New inline function.
19361         * plugin.c (flag_plugin_added): New global flag.
19362         (add_new_plugin): Initialize above flag.
19363         (invoke_plugin_callbacks): Rename to ...
19364         (invoke_plugin_callbacks_full): ... this.
19365
19366 2010-04-28  Jan Hubicka  <jh@suse.cz>
19367
19368         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
19369         (lto_varpool_replace_node): New.
19370         (lto_symtab_resolve_symbols): Resolve varpool nodes.
19371         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
19372         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
19373         * cgraph.h (varpool_node_ptr): New type.
19374         (varpool_node_ptr): New vector.
19375         (varpool_node_set_def): New structure.
19376         (varpool_node_set): New type.
19377         (varpool_node_set): New vector.
19378         (varpool_node_set_element_def): New structure.
19379         (varpool_node_set_element, const_varpool_node_set_element): New types.
19380         (varpool_node_set_iterator): New type.
19381         (varpool_node): Add prev pointers, add used_from_other_partition,
19382         in_other_partition.
19383         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
19384         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
19385         varpool_get_node, varpool_remove_node): Declare.
19386         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
19387         varpool_node_set_size): New inlines.
19388         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
19389         * tree-pass.h (varpool_node_set_def): Forward declare.
19390         (ipa_opt_pass_d): Summary writting takes vnode sets too.
19391         (ipa_write_optimization_summaries): Update prototype.
19392         * ipa-cp.c (ipcp_write_summary): Update.
19393         * ipa-reference.c (ipa_reference_write_summary): Update.
19394         * lto-cgraph.c (lto_output_varpool_node): New static function.
19395         (output_varpool): New function.
19396         (input_varpool_node): New static function.
19397         (input_varpool_1): New function.
19398         (input_cgraph): Input varpool.
19399         * ipa-pure-const.c (pure_const_write_summary): Update.
19400         * lto-streamer-out.c (lto_output): Update, output varpool too.
19401         (write_global_stream): Kill WPA hack.
19402         (produce_asm_for_decls): Update.
19403         (output_alias_pair_p): Handle variables.
19404         (output_unreferenced_globals): Output only needed partition of varpool.
19405         * ipa-inline.c (inline_write_summary): Update.
19406         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
19407         cgraph.
19408         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
19409         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
19410         varpool_node_set_new, varpool_node_set_add,
19411         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
19412         debug_varpool_node_set): New functions.
19413         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
19414         (execute_one_pass): Process new decls too.
19415         (ipa_write_summaries_2): Pass around vsets.
19416         (ipa_write_summaries_1): Likewise.
19417         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
19418         to add.
19419         (ipa_write_optimization_summaries_1): Pass around vsets.
19420         (ipa_write_optimization_summaries): Likewise.
19421         * varpool.c (varpool_get_node): New.
19422         (varpool_node): Update doubly linked lists.
19423         (varpool_remove_node): New.
19424         (dump_varpool_node): More dumping.
19425         (varpool_enqueue_needed_node): Update doubly linked lists.
19426         (decide_is_variable_needed): Kill ltrans hack.
19427         (varpool_finalize_decl): Kill lto hack.
19428         (varpool_assemble_decl): Skip decls in other partitions.
19429         (varpool_assemble_pending_decls): Update doubly linkes lists.
19430         (varpool_empty_needed_queue): Likewise.
19431         (varpool_extra_name_alias): Likewise.
19432         * lto-streamer.c (lto_get_section_name): Add vars section.
19433         * lto-streamer.h (lto_section_type): Update.
19434         (output_varpool, input_varpool): Declare.
19435
19436 2010-04-28  Mike Stump  <mikestump@comcast.net>
19437
19438         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
19439
19440 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19441
19442         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
19443         record or union type with RECORD_OR_UNION_TYPE_P predicate.
19444         (lto_input_ts_type_tree_pointers): Likewise.
19445         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
19446         (lto_output_ts_type_tree_pointers): Likewise.
19447
19448 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19449
19450         Uniquization of constants at the Tree level
19451         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
19452         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
19453         bit to the end.
19454         (tree_output_constant_def): Declare.
19455         * gimplify.c (gimplify_init_constructor): When using block copy, first
19456         uniquize the constant constructor on the RHS.
19457         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
19458         DECL_IN_CONSTANT_POOL flag.
19459         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
19460         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
19461         constant pool.
19462         (assemble_variable): Deal with symbols belonging to the tree constant
19463         pool.
19464         (get_constant_section): Add ALIGN parameter and simplify.
19465         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
19466         (assemble_constant_contents): Use the expression of the VAR_DECL.
19467         (output_constant_def_contents): Use the alignment of the VAR_DECL.
19468         (tree_output_constant_def): New global function.
19469         (mark_constant): Use the expression of the VAR_DECL.
19470         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
19471         its expression.
19472         (output_object_block): Likewise and assemble the expression.
19473
19474 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
19475
19476         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
19477         hash_tree, eq_tree): New tree hash table.
19478         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
19479         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
19480         lto_orig_address_remove): Reimplement.
19481
19482 2010-04-28  Xinliang David Li  <davidxl@google.com>
19483
19484         PR c/42643
19485         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
19486         (compute_uninit_opnds_pos): New function.
19487         (is_non_loop_exit_postdominating): New function.
19488         (compute_control_dep_chain): New function.
19489         (find_pdom): New function.
19490         (convert_control_dep_chain_into_preds): New function.
19491         (find_predicates): New function.
19492         (find_control_equiv_block): New function.
19493         (collect_phi_def_edges): New function.
19494         (find_def_preds): New function.
19495         (find_dom): New function.
19496         (dump_predicates): New function.
19497         (get_cmp_code): New function.
19498         (is_value_included_in): New function.
19499         (find_matching_predicate_in_rest_chains): New function.
19500         (use_pred_not_overlap_with_undef_path_pred): New function.
19501         (is_use_properly_guarded): New function.
19502         (normalize_cond_1): New function.
19503         (is_and_or_or): New function.
19504         (normalize_cond): New function.
19505         (is_gcond_subset_of): New function.
19506         (is_subset_of_any): New function.
19507         (is_or_set_subset_of): New function.
19508         (is_and_set_subset_of): New function.
19509         (is_norm_cond_subset_of): New function.
19510         (is_pred_expr_subset_of): New function.
19511         (is_pred_chain_subset_of): New function.
19512         (is_included_in): New function.
19513         (is_superset_of): New function.
19514         (find_uninit_use): New function.
19515         (warn_uninitialized_phi): New function.
19516         (compute_possibly_undefined_names): New function.
19517         (ssa_undefined_value_p): New function.
19518         (execute_late_warn_uninitialized): New function.
19519         * tree-ssa.c (ssa_undefined_value_p): Removed.
19520         (warn_uninit): Changed to extern.
19521         (warn_uninitialized_phi): Removed.
19522         (warn_uninitialized_vars): Changed to extern.
19523         (execute_late_warn_uninitialized): Removed
19524         * tree-flow.h: Add new prototypes.
19525         * timevar.def: Add new time variable.
19526         * Makefile.in: Add new build file.
19527
19528 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
19529
19530         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
19531         type if available.
19532
19533 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19534
19535         PR target/22224
19536         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
19537
19538 2010-04-28  Martin Jambor  <mjambor@suse.cz>
19539
19540         * cgraph.h (struct cgraph_node): New field indirect_calls.
19541         (struct cgraph_indirect_call_info): New type.
19542         (struct cgraph_edge): Removed field indirect_call. New fields
19543         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
19544         (cgraph_create_indirect_edge): Declare.
19545         (cgraph_make_edge_direct): Likewise.
19546         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
19547         * ipa-prop.h (struct ipa_param_call_note): Removed.
19548         (struct ipa_node_params): Removed field param_calls.
19549         (ipa_create_all_structures_for_iinln): Declare.
19550         * cgraph.c: Described indirect edges and uids in initial comment.
19551         (cgraph_add_edge_to_call_site_hash): New function.
19552         (cgraph_edge): Search also among the indirect edges, use
19553         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
19554         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
19555         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
19556         site hash.
19557         (initialize_inline_failed): Assign a reason to indirect edges.
19558         (cgraph_create_edge_1): New function.
19559         (cgraph_create_edge): Moved some functionality to
19560         cgraph_create_edge_1.
19561         (cgraph_create_indirect_edge): New function.
19562         (cgraph_edge_remove_callee): Add an assert checking for
19563         non-indirectness.
19564         (cgraph_edge_remove_caller): Special-case indirect edges.
19565         (cgraph_remove_edge): Likewise.
19566         (cgraph_set_edge_callee): New function.
19567         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
19568         (cgraph_make_edge_direct): New function.
19569         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
19570         the declaration of the call statement matches.
19571         (cgraph_node_remove_callees): Special-case indirect edges.
19572         (cgraph_clone_edge): Likewise.
19573         (cgraph_clone_node): Clone also the indirect edges.
19574         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
19575         indirect_call, dump count of indirect_calls edges.
19576         * ipa-prop.c (iinlining_processed_edges): New variable.
19577         (ipa_note_param_call): Create indirect edges instead of
19578         creating notes.  New parameter node.
19579         (ipa_analyze_call_uses): New parameter node, pass it on to
19580         ipa_note_param_call.
19581         (ipa_analyze_stmt_uses): Likewise.
19582         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
19583         (print_edge_addition_message): Work on edges rather than on notes.
19584         (update_call_notes_after_inlining): Likewise, renamed to
19585         update_indirect_edges_after_inlining.
19586         (ipa_create_all_structures_for_iinln): New function.
19587         (ipa_free_node_params_substructures): Do not free notes.
19588         (ipa_edge_duplication_hook): Propagate bits within
19589         iinlining_processed_edges bitmap.
19590         (ipa_node_duplication_hook): Do not duplicate notes.
19591         (free_all_ipa_structures_after_ipa_cp): Renamed to
19592         ipa_free_all_structures_after_ipa_cp.
19593         (free_all_ipa_structures_after_iinln): Renamed to
19594         ipa_free_all_structures_after_iinln.
19595         (ipa_write_param_call_note): Removed.
19596         (ipa_read_param_call_note): Removed.
19597         (ipa_write_indirect_edge_info): New function.
19598         (ipa_read_indirect_edge_info): Likewise.
19599         (ipa_write_node_info): Do not stream notes, do stream information
19600         in indirect edges.
19601         (ipa_read_node_info): Likewise.
19602         (lto_ipa_fixup_call_notes): Removed.
19603         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
19604         * ipa-inline.c (pass_ipa_inline): Likewise.
19605         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
19606         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
19607         * tree-inline.c (copy_bb): Removed an unnecessary double check for
19608         is_gimple_call.
19609         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
19610         edges.
19611         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
19612         (output_cgraph): Stream also indirect edges.
19613         (lto_output_edge): Added capability to stream indirect edges.
19614         (input_edge): Likewise.
19615         (input_cgraph_1): Likewise.
19616         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
19617         of indirect edges.
19618
19619 2010-04-28  Richard Guenther  <rguenther@suse.de>
19620
19621         PR tree-optimization/43879
19622         PR tree-optimization/43909
19623         * tree-ssa-structalias.c (struct variable_info): Add
19624         only_restrict_pointers flag.
19625         (new_var_info): Initialize it.  Increment stats.total_vars here.
19626         (create_function_info_for): Do not increment stats.total_vars here.
19627         (get_function_part_constraint): Fix build with C++.
19628         (insert_into_field_list): Remove.
19629         (push_fields_onto_fieldstack): Properly merge fields.
19630         (create_variable_info_for): Split and simplify.
19631         (create_variable_info_for_1): New piece.
19632         (intra_create_variable_infos): Properly make restrict constraints
19633         from parameters.
19634
19635 2010-04-28  Richard Guenther  <rguenther@suse.de>
19636
19637         PR c++/43880
19638         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
19639
19640 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19641             Jan Hubicka  <hubicka@ucw.cz>
19642
19643         * doc/invoke.texi (-Wsuggest-attribute=const,
19644         -Wsuggest-attribute=pure): Document.
19645         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
19646         (function_always_visible_to_compiler_p,
19647         suggest_attribute, warn_function_pure, warn_function_const):
19648         New functions.
19649         (check_call): Improve debug info.
19650         (analyze_function): Do not check availability.
19651         (add_new_function): Check availability.
19652         (propagate): Output warnings.
19653         (skip_function_for_local_pure_const): New function.
19654         (local_pure_const): Use it; output warnings.
19655         * common.opt (Wsuggest-attribute=const,
19656         Wsuggest-attribute=pure): New.
19657
19658 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19659
19660         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
19661         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
19662         or DW_CFA_def_cfa_offset{,_sf}.
19663
19664 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19665
19666         * tree.h: Fix truncated long macros.
19667
19668 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
19669
19670         * collect2.c (TARGET_64BIT): Redefine to target's default.
19671         * tlink.c: Likewise.
19672         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
19673         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
19674         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
19675         for underscoring __USER_LABEL_PREFIX__.
19676         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
19677         (SUB_LINK_ENTRY32): New.
19678         (SUB_LINK_ENTRY64): New.
19679         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
19680         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
19681         (SUB_LINK_ENTRY64): New.
19682         (SUB_LINK_ENTRY): New.
19683         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
19684         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
19685         x64 target is choosen.
19686         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
19687         * configure: Regenerated.
19688         * configure.ac (leading-mingw64-underscores): Option added.
19689
19690 2010-04-27  Jan Hubicka  <jh@suse.cz>
19691
19692         * doc/invoke.texi (-fipa-profile): Document.
19693         * opts.c (decode_options): Enable ipa-profile at -O1.
19694         * timevar.def (TV_IPA_PROFILE): Define.
19695         * common.opt (fipa-profile): Add.
19696         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
19697         flag for clones.
19698         (cgraph_propagate_frequency): Handle only local ones.
19699         * tree-pass.h (pass_ipa_profile): Declare.
19700         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
19701         (pass_ipa_profile): Use TV_IPA_PROFILE.
19702         * ipa.c (ipa_profile): New function.
19703         (gate_ipa_profile): Likewise.
19704         (pass_ipa_profile): New global variable.
19705         * passes.c (pass_ipa_profile): New.
19706
19707 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
19708
19709         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
19710
19711 2010-04-27  Martin Jambor  <mjambor@suse.cz>
19712
19713         PR middle-end/43812
19714         * ipa.c (dissolve_same_comdat_group_list): New function.
19715         (function_and_variable_visibility): Call
19716         dissolve_same_comdat_group_list when comdat group contains external or
19717         newly local nodes.
19718         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
19719         lists are circular and that they contain only DECL_ONE_ONLY nodes.
19720
19721 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
19722
19723         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
19724         (const_hash_1) <VECTOR_CST>: New case.
19725         (compare_constant) <VECTOR_CST>: Likewise.
19726         <ADDR_EXPR>: Deal with LABEL_REFs.
19727         (copy_constant) <VECTOR_CST>: New case.
19728
19729 2010-04-27  Jan Hubicka  <jh@suse.cz>
19730
19731         * cgraph.c (cgraph_propagate_frequency): New function.
19732         * cgraph.h (cgraph_propagate_frequency): Declare.
19733         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
19734         cgraph_propagate_frequency.
19735
19736 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
19737
19738         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
19739
19740 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
19741
19742         PR target/40657
19743         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
19744         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
19745         here to determine which regs to push and how much stack to reserve.
19746
19747 2010-04-27  Jie Zhang  <jie@codesourcery.com>
19748
19749         * doc/gimple.texi (gimple_statement_with_ops): Remove
19750         addresses_taken field.
19751         (gimple_statement_with_memory_ops): Likewise.
19752
19753 2010-04-27  Jan Hubicka  <jh@suse.cz>
19754
19755         * tree-inline.c (eni_inlining_weights): Remove.
19756         (estimate_num_insns): Special case more builtins.
19757
19758 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
19759
19760         PR c/32207
19761         * c-typeck.c (build_binary_op): Move forward check for comparison
19762         pointer with null pointer constant and adjust the diagnostic message.
19763
19764 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
19765
19766         PR lto/42776
19767         * configure.ac (gcc_cv_as_section_has_align): Set if installed
19768         binutils supports extended .section directive needed by LTO, or
19769         warn if older binutils found.
19770         (LTO_BINARY_READER): New AC_SUBST'd variable.
19771         (LTO_USE_LIBELF): Likewise.
19772         * config.gcc (lto_binary_reader): New target-specific configure
19773         variable.
19774         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
19775         (LTO_USE_LIBELF): Likewise.
19776         * configure: Regenerate.
19777
19778         * collect2.c (is_elf): Rename from this ...
19779         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
19780          object files in addition to ELF-formatted ones.
19781         (scan_prog_file): Caller updated.  Also allow for LTO info marker
19782         symbol to be prefixed or not by an extra underscore.
19783
19784         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
19785         * config/i386/winnt.c: Also #include lto-streamer.h
19786         (i386_pe_asm_named_section): Specify 1-byte section alignment for
19787         LTO named sections.
19788         (i386_pe_asm_output_aligned_decl_common): Add comment.
19789         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
19790
19791 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
19792
19793         PR target/43889
19794         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
19795         Add missing earlyclobber for second alternative.
19796
19797 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
19798
19799         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
19800         bits for artificial defs at the top of the block.
19801         * fwprop.c (single_def_use_enter_block): Don't call it.
19802
19803 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
19804
19805         PR 43715
19806         * configure.ac: Use "$gcc_cv_nm -g" on darwin
19807         instead of "$gcc_cv_objdump -T".
19808         Use "-undefined dynamic_lookup" on darwin.
19809         * configure: Regenerate.
19810
19811 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
19812
19813         PR c/43893
19814         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
19815
19816 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
19817
19818         * c-parser.c (struct c_token): Move location field up.
19819         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
19820         (struct c_declspecs): Convert typespec_word, storage_class, and
19821         default_int_p into bitfields.
19822         (struct c_declarator): Move loc field up.
19823
19824 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
19825
19826         * cfgloop.h (struct loop): Move can_be_parallel field up.
19827         * ipa-prop.h (struct ip_node_params): Move bitfields up.
19828         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
19829         down.
19830         (struct iv_cand): Convert pos field into a bitfield.
19831         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
19832         field up.
19833         (struct _stmt_vec_info): Shuffle fields for better packing.
19834
19835 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
19836
19837         * varasm.c (IN_NAMED_SECTION): Remove guard.
19838         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
19839         (IN_NAMED_SECTION_P): ...this.
19840         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
19841         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
19842
19843 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
19844
19845         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
19846         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
19847         of shadowing it.  Fix comments.
19848
19849 2010-04-26  Jan Hubicka  <jh@suse.cz>
19850
19851         * cgraph.c (cgraph_create_node): Set node frequency to normal.
19852         (cgraph_clone_node): Copy function frequency.
19853         * cgraph.h (node_frequency): New enum
19854         (struct cgraph_node): Add.
19855         * final.c (rest_of_clean_state): Update.
19856         * lto-cgraph.c (lto_output_node): Output node frequency.
19857         (input_overwrite_node): Input node frequency.
19858         * tre-ssa-loop-ivopts (computation_cost): Update.
19859         * lto-streamer-out.c (output_function): Do not output function
19860         frequency.
19861         * predict.c (maybe_hot_frequency_p): Update and handle functions
19862         executed once.
19863         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
19864         attribute lookup.
19865         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
19866         (compute_function_frequency): Set noreturn functions to be executed
19867         once.
19868         (choose_function_section): Update.
19869         * lto-streamer-in.c (input_function): Do not input function frequency.
19870         * function.c (allocate_struct_function): Do not initialize function
19871         frequency.
19872         * function.h (function_frequency): Remove.
19873         (struct function): Remove function frequency.
19874         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
19875         (try_update): Update.
19876         * tree-inline.c (initialize_cfun): Do not update function frequency.
19877         * passes.c (pass_init_dump_file): Update.
19878         * i386.c (ix86_compute_frame_layout): Update.
19879         (ix86_pad_returns): Update.
19880
19881 2010-04-26  Jie Zhang  <jie@codesourcery.com>
19882
19883         PR tree-optimization/43833
19884         * tree-vrp.c (range_int_cst_p): New.
19885         (range_int_cst_singleton_p): New.
19886         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
19887         when both operands are constants.  Use range_int_cst_p in
19888         BIT_IOR_EXPR case.
19889
19890 2010-04-26  Jan Hubicka  <jh@suse.cz>
19891
19892         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
19893
19894 2010-04-26  Richard Guenther  <rguenther@suse.de>
19895
19896         PR lto/43080
19897         * gimple.c (gimple_decl_printable_name): Deal gracefully
19898         with a NULL DECL_NAME.
19899
19900 2010-04-26  Richard Guenther  <rguenther@suse.de>
19901
19902         PR lto/42425
19903         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
19904         if emitting debug information and it is either a function
19905         or a namespace decl.
19906
19907 2010-04-26  Ira Rosen  <irar@il.ibm.com>
19908
19909         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
19910         determine if the statement is vectorizable, and a macro to access it.
19911         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
19912         Skip statements that can't be vectorized. If the analysis fails,
19913         mark the statement as unvectorizable if vectorizing basic block.
19914         (vect_compute_data_refs_alignment): Likewise.
19915         (vect_verify_datarefs_alignment): Skip statements marked as
19916         unvectorizable. Add print.
19917         (vect_analyze_group_access): Skip statements that can't be
19918         vectorized. If the analysis fails, mark the statement as
19919         unvectorizable if vectorizing basic block.
19920         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
19921         * tree-vect-stmts.c (vectorizable_store): Fix the number of
19922         generated stmts for SLP.
19923         (new_stmt_vec_info): Initialize the new field.
19924         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
19925         statements marked as unvectorizable.
19926
19927 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
19928
19929         * c-common.c (flag_isoc1x): New.
19930         (flag_isoc99): Update comment.
19931         * c-common.h (flag_isoc1x): New.
19932         (flag_isoc99): Update comment.
19933         * c-cppbuiltin.c (builtin_define_float_constants): Also define
19934         __<type>_DECIMAL_DIG__.
19935         * c-opts.c (set_std_c1x): New.
19936         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
19937         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
19938         * c.opt (-std=c1x, -std=gnu1x): New options.
19939         * doc/cpp.texi: Mention -std=c1x.
19940         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
19941         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
19942         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
19943         * doc/standards.texi: Mention C1X.
19944         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
19945         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
19946         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
19947         Define for C1X.
19948
19949 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
19950
19951         * config/i386/gmon-sol2.c (_mcleanup): Change format string
19952         placeholder from 0x%x to %#x.
19953         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
19954         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
19955         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
19956         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
19957         * config/i386/i386.c (ix86_target_string): Ditto.
19958         (output_pic_addr_const): Ditto.
19959         (print_operand): Ditto.
19960
19961 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
19962
19963         * combine.c (find_split_point): Add third argument.  Use it
19964         to find nested multiply-accumulate instructions.  Adjust calls.
19965         (try_combine): Adjust call to find_split_point.
19966
19967 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
19968
19969         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
19970
19971 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
19972
19973         PR tree-optimization/41442
19974         * fold-const.c (merge_truthop_with_opposite_arm): New function.
19975         (fold_binary_loc): Call it.
19976
19977 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19978
19979         * toplev.c (general_init): Set default for fdiagnostics-show-option.
19980         * opts.c (common_handle_option): Allow disabling it.
19981         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
19982
19983 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
19984
19985         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
19986         between modes if both types are integral.
19987
19988 2010-04-23  Richard Guenther  <rguenther@suse.de>
19989
19990         PR tree-optimization/43572
19991         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
19992
19993 2010-04-23  Richard Guenther  <rguenther@suse.de>
19994
19995         PR lto/43455
19996         * tree-inline.c (tree_can_inline_p): Also check compatibility
19997         of return types.
19998
19999 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20000
20001         PR tree-optimization/43846
20002         * tree-sra.c (struct access): New flag grp_assignment_read.
20003         (build_accesses_from_assign): Set grp_assignment_read.
20004         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
20005         (enum mark_read_status): New type.
20006         (analyze_access_subtree): Propagate grp_assignment_read, create
20007         accesses also if both direct_read and root->grp_assignment_read.
20008
20009 2010-04-23  Martin Jambor  <mjambor@suse.cz>
20010
20011         PR middle-end/43835
20012         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
20013         function does not have type attributes.
20014
20015 2010-04-23  Richard Guenther  <rguenther@suse.de>
20016
20017         PR lto/42653
20018         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
20019         of FUNCTION_DECLs.
20020
20021 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20022
20023         * sese.h (create_if_region_on_edge): Remove.
20024
20025         * sese.c (create_if_region_on_edge): Make static.
20026
20027         * tree-inline.c: Do not include ggc.h.
20028
20029         * expr.c: Do not include ggc.h.
20030
20031         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
20032         dependencies.
20033
20034 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
20035
20036         PR target/43744
20037         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20038         in the middle of insns for casesi_worker_2.
20039
20040 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
20041
20042         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
20043
20044 2010-04-22  Ira Rosen  <irar@il.ibm.com>
20045
20046         PR tree-optimization/43842
20047         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
20048         loop unrolling in update of exit phis. Fix comment.
20049         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
20050         least two reduction statements in the loop before starting SLP
20051         analysis.
20052
20053 2010-04-22  Nick Clifton  <nickc@redhat.com>
20054
20055         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
20056
20057 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
20058
20059         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
20060         to simplify a + ~a.
20061
20062 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20063
20064         * tree-parloops.c (loop_parallel_p): New argument
20065         parloop_obstack.  Pass it down.
20066         (parallelize_loops): New variable parloop_obstack.  Initialize it,
20067         pass it down, free it.
20068
20069         * tree-loop-linear.c (linear_transform_loops): Pass down
20070         lambda_obstack.
20071
20072         * tree-data-ref.h (lambda_compute_access_matrices): New argument
20073         of type struct obstack *.
20074
20075         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
20076         scratch_obstack.  Initialize it, pass down, free it.
20077
20078         * lambda.h (lambda_loop_new): Remove.
20079         (lambda_matrix_new, lambda_matrix_inverse)
20080         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
20081         argument of type struct obstack *.
20082
20083         * lambda-trans.c (lambda_trans_matrix_new): New argument
20084         lambda_obstack.  Pass it down, use obstack allocation for ret.
20085         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
20086         it down.
20087
20088         * lambda-mat.c (lambda_matrix_get_column)
20089         (lambda_matrix_project_to_null): Remove.
20090         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
20091         allocation for mat.
20092         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
20093         lambda_obstack.
20094
20095         * lambda-code.c (lambda_loop_new): New function.
20096         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
20097         (lambda_compute_auxillary_space, lambda_compute_target_space)
20098         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
20099         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
20100         (build_access_matrix): New argument lambda_obstack.  Use obstack
20101         allocation for am.
20102         (lambda_compute_step_signs, lambda_compute_access_matrices): New
20103         argument lambda_obstack.  Pass it down.
20104
20105 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20106
20107         * optabs.h (expand_widening_mult): Declare.
20108
20109 2010-04-22  Richard Guenther  <rguenther@suse.de>
20110
20111         PR tree-optimization/43845
20112         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
20113         lookup the CALL_EXPR function and arguments.
20114
20115 2010-04-22  Nick Clifton  <nickc@redhat.com>
20116
20117         * config/stormy16/stormy16.c
20118         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
20119         * config/stormy16/stormy16.h: Tidy up formatting.
20120         (DONT_USE_BUILTIN_SETJMP): Remove definition.
20121         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
20122         (ineqbranchsi): Delete pattern.
20123         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
20124         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
20125         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
20126         stormy16-lib2-ucmpsi2.c.
20127
20128 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20129
20130         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
20131         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
20132         extra set merge_set_noclobber, and use it to relax the final test
20133         slightly.
20134         * df.h (df_simulate_find_noclobber_defs): Declare.
20135         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
20136         conditional defs.
20137         (df_simulate_find_noclobber_defs): New function.
20138
20139 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
20140
20141         * config/i386/i386.md: Use {} around multi-line preparation statements.
20142
20143 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
20144
20145         * c-tree.h (push_init_level, pop_init_level, set_init_index)
20146         (process_init_element): New argument of type struct obstack *.
20147
20148         * c-typeck.c (push_init_level, pop_init_level, set_designator)
20149         (set_init_index, set_init_label, set_nonincremental_init)
20150         (set_nonincremental_init_from_string, find_init_member)
20151         (output_init_element, output_pending_init_elements)
20152         (process_init_element): New argument braced_init_obstack.  Pass it
20153         down.
20154         (push_range_stack, add_pending_init): New argument
20155         braced_init_obstack.  Use obstack allocation.
20156
20157         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
20158         braced_init_obstack.  Pass it down.
20159         (c_parser_braced_init): New variables ret, braced_init_obstack.
20160         Initialize obstack, pass it down and finally free it.
20161
20162 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
20163
20164         PR middle-end/29274
20165         * tree-pass.h (pass_optimize_widening_mul): Declare.
20166         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
20167         gate_optimize_widening_mul): New static functions.
20168         (pass_optimize_widening_mul): New.
20169         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
20170         <case MULT_EXPR>: Remove support for widening multiplies.
20171         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
20172         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
20173         simplify_gen_unary rather than directly building extensions.
20174         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
20175         WIDEN_MULT_EXPR.
20176         * expmed.c (expand_widening_mult): New function.
20177         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
20178
20179 2010-04-21  Jan Hubicka  <jh@suse.cz>
20180
20181         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
20182         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
20183         * lto-wpa-fixup.c: Remove.
20184         * Makefile.in (lto-wpa-fixup.o): Remove.
20185         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
20186         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
20187         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
20188
20189 2010-04-21  Jan Hubicka  <jh@suse.cz>
20190
20191         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
20192         add write_optimization_summary, read_optimization_summary.
20193         (ipa_write_summaries_of_cgraph_node_set): Remove.
20194         (ipa_write_optimization_summaries): Declare.
20195         (ipa_read_optimization_summaries): Declare.
20196         * ipa-cp.c (pass_ipa_cp): Update.
20197         * ipa-reference.c (pass_ipa_reference): Update.
20198         * ipa-pure-const.c (pass_ipa_pure_const): Update.
20199         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
20200         Update.
20201         * ipa-inline.c (pass_ipa_inline): Update.
20202         * ipa.c (pass_ipa_whole_program): Update.
20203         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
20204         * passes.c (ipa_write_summaries_1): Do not test wpa.
20205         (ipa_write_optimization_summaries_1): New.
20206         (ipa_write_optimization_summaries): New.
20207         (ipa_read_summaries): Do not test ltrans.
20208         (ipa_read_optimization_summaries_1): New.
20209         (ipa_read_optimization_summaries): New.
20210
20211 2010-04-21  Jan Hubicka  <jh@suse.cz>
20212
20213         * lto-cgraph.c (lto_output_node): Do not output comdat groups
20214         for boundary nodes.
20215         (output_cgraph): Do not arrange comdat groups for boundary nodes.
20216
20217 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20218
20219         PR debug/40040
20220         * dwarf2out.c (add_name_and_src_coords_attributes): Add
20221         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
20222
20223 2010-04-21  Jan Hubicka  <jh@suse.cz>
20224
20225         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
20226
20227 2010-04-21  Jan Hubicka  <jh@suse.cz>
20228
20229         * varpool.c (decide_is_variable_needed): Variable is always needed
20230         during ltrans.
20231
20232 2010-04-21  Jan Hubicka  <jh@suse.cz>
20233
20234         * opts.c (decode_options): Enable pure-const pass for whopr.
20235
20236 2010-04-21  Jan Hubicka  <jh@suse.cz>
20237
20238         * cgraph.c (dump_cgraph_node): Dump also assembler name.
20239         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
20240         at WPA dumping.
20241         (cgraph_decide_inlining): Do not expect callee to be removed in all
20242         cases.
20243
20244 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
20245
20246         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
20247
20248 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20249
20250         * config/i386/i386.md (x86_shrd): Add athlon_decode and
20251         amdfam10_decode attributes.
20252
20253 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20254
20255         PR middle-end/43570
20256         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
20257         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
20258         (lower_copyprivate_clauses): Use private var in outer
20259         context instead of original var.  Make sure the types
20260         are correct for VLAs.
20261
20262 2010-04-21  Richard Guenther  <rguenther@suse.de>
20263
20264         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
20265         to non-pointer objects.
20266
20267 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
20268
20269         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
20270         last chain entry if it starts with the still current label.
20271         (add_location_or_const_value_attribute): Check that
20272         loc_list->first->next is NULL instead of comparing ->first with ->last.
20273         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
20274         to add_var_loc_to_decl.
20275
20276         * dwarf2out.c (output_call_frame_info): For dw_cie_version
20277         >= 4 add also address size and segment size fields into CIE header.
20278
20279         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
20280         long as address size is the same as sizeof (void *) and
20281         segment size is 0.
20282         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
20283         address size or segment size is unexpected, return DW_EH_PE_omit.
20284         (classify_object_over_fdes): If get_cie_encoding returned
20285         DW_EH_PE_omit, return -1.
20286         (init_object): If classify_object_over_fdes returned -1,
20287         pretend there were no FDEs at all.
20288
20289 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
20290
20291         * config/i386/i386.md (bswap<mode>2): Macroize expander from
20292         bswap{si,di}2 using SWI48 mode iterator.
20293         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
20294         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
20295         set modrm attribute of bswap insn to 0 and remove length attribute.
20296         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
20297         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
20298         set mode attribute to <MODE> and remove length attribute.
20299
20300 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
20301
20302         PR rtl-optimization/43520
20303         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
20304         zero available registers.
20305
20306 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20307
20308         * builtins.c (fold_builtin_cproj): Fold more cases.
20309
20310 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20311
20312         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
20313         (fold_builtin_1): Fold builtin cproj.
20314         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
20315         Use ATTR_CONST_NOTHROW_LIST.
20316
20317 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
20318
20319         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
20320         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
20321         ffsi2_no_cmove for !TARGET_CMOVE.
20322         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
20323         (ffssi2): Remove expander.
20324         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
20325         mode iterator.
20326         (ctz<mode>2): Ditto from ctz{si,di}2.
20327         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
20328         mode iterator.
20329         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
20330         mode iterator.
20331
20332 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20333
20334         * dwarf2out.c (AT_linkage_name): Define.
20335         (clone_as_declaration): Handle DW_AT_linkage_name.
20336         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
20337         of DW_AT_MIPS_linkage_name.
20338         (move_linkage_attr): Likewise.
20339         (dwarf2out_finish): Likewise.
20340
20341 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
20342
20343         PR middle-end/41952
20344         * fold-const.c (fold_comparison): New folding rule.
20345
20346 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
20347
20348         * double-int.h (double_int_setbit): Declare.
20349         * double-int.c (double_int_setbit): New function.
20350         * rtl.h (immed_double_int_const): Declare.
20351         * emit-rtl.c (immed_double_int_const): New function.
20352         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
20353         and immed_double_int_const functions.
20354         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
20355         expand_copysign_bit): (Ditto.).
20356         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
20357         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
20358         * dojump.c (prefer_and_bit_test): (Ditto.).
20359         * expr.c (convert_modes, reduce_to_bit_field_precision,
20360         const_vector_from_tree): (Ditto.).
20361         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20362
20363 2010-04-20  Jan Hubicka  <jh@suse.cz>
20364
20365         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
20366         (dump_cgraph_node): Dump new flags.
20367         * cgraph.h (struct cgraph_node): Add flags
20368         reachable_from_other_partition and in_other_partition.
20369         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
20370         other partition can not be removed.
20371         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
20372         the other partition must be output; silence sanity checking on
20373         leaking functions bodies from other paritition.
20374         * lto-cgraph.c (reachable_from_other_partition_p): New function.
20375         (lto_output_node): Output new flags; do not sanity check that inline
20376         clones are output; drop lto_forced_extern_inline_p code; do not mock
20377         visibility flags at partition boundaries.
20378         (add_node_to): New function.
20379         (output_cgraph): Use it to sort functions so masters appear before
20380         clones.
20381         (input_overwrite_node): Input new flags.
20382         * passes.c (ipa_write_summaries): Do not call
20383         lto_new_extern_inline_states.
20384         * lto-section-out.c (forced_extern_inline,
20385         lto_new_extern_inline_states lto_delete_extern_inline_states,
20386         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
20387         * lto-streamer.h (lto_new_extern_inline_states,
20388         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
20389         lto_forced_extern_inline_p): Kill.
20390
20391 2010-04-20  Richard Guenther  <rguenther@suse.de>
20392
20393         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
20394         from vars that can have pointers.
20395         (process_constraint): Dump useless constraints.
20396
20397 2010-04-20  Richard Guenther  <rguenther@suse.de>
20398
20399         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
20400         (dump_sa_points_to_info): Remove asserts.
20401         (init_base_vars): nothing_id isn't an escape point nor does it
20402         have pointers.
20403
20404 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
20405
20406         * tree.h (TYPE_REF_IS_RVALUE): Define.
20407         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
20408         should_move_die_to_comdat, prune_unused_types_walk): Handle
20409         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
20410         (modified_type_die, gen_reference_type_die): Emit
20411         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
20412         if TYPE_REF_IS_RVALUE and -gdwarf-4.
20413
20414 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20415
20416         PR target/43635
20417         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
20418         calls for -fpic -m31 if they have been sibcall optimized.
20419
20420 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
20421
20422         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
20423         ar.lc fixed and call-used.
20424
20425         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
20426
20427 2010-04-19  Jan Hubicka  <jh@suse.cz>
20428
20429         * opts.c (decode_options): Disable whpr incompatible passes.
20430         * lto/lto.c (lto_1_to_1_map): Skip clones.
20431         (read_cgraph_and_symbols): Do not mark everything as needed.
20432         (do_whole_program_analysis): Do map only after optimizing;
20433         set proper cgraph_state; use passmanager.
20434
20435 2010-04-19  DJ Delorie  <dj@redhat.com>
20436
20437         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
20438         POINTER_PLUS_EXPR and fix them.
20439
20440 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
20441
20442         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
20443         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
20444         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
20445         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
20446         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
20447         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
20448         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
20449         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
20450         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
20451         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
20452         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
20453
20454 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
20455
20456         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
20457         (check_cond_move_block): Likewise.
20458         (cond_move_process_if_block): Likewise.
20459         (noce_find_if_block): Improve formatting.
20460         (find_if_header): Pass 0 to memset and tweak conditions.
20461         (cond_exec_find_if_block): Fix long lines and tweak conditions.
20462
20463 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20464
20465         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
20466         for -gdwarf-4.
20467
20468         PR middle-end/43337
20469         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
20470         with non-local decl doesn't need chain.
20471
20472 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
20473
20474         * ira-color.c (allocno_reload_assign): Avoid accumulating
20475         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
20476
20477 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20478
20479         * gimple.h (create_tmp_reg): Declare.
20480         * gimplify.c (create_tmp_reg): New function.
20481         (gimplify_return_expr): Use create_tmp_reg.
20482         (gimplify_omp_atomic): Likewise.
20483         (gimple_regimplify_operands): Likewise.
20484         * tree-dfa.c (make_rename_temp): Likewise.
20485         * tree-predcom.c (predcom_tmp_var): Likewise.
20486         (reassociate_to_the_same_stmt): Likewise.
20487         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
20488         (get_replaced_param_substitute): Likewise.
20489         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
20490         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
20491         * tree-ssa-pre.c (get_representative_for): Likewise.
20492         (create_expression_by_pieces): Likewise.
20493         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
20494         (create_tailcall_accumulator): Likewise.
20495
20496 2010-04-19  Martin Jambor  <mjambor@suse.cz>
20497
20498         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
20499         new_stmt.
20500         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
20501
20502 2010-04-19  Richard Guenther  <rguenther@suse.de>
20503
20504         PR tree-optimization/43796
20505         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
20506         from SCEV in the lattice.
20507         (vrp_visit_phi_node): Dump change.
20508
20509 2010-04-19  Richard Guenther  <rguenther@suse.de>
20510
20511         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
20512         * configure: Re-generated.
20513
20514 2010-04-19  Richard Guenther  <rguenther@suse.de>
20515
20516         PR tree-optimization/43783
20517         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
20518         constant ARRAY_REF operands two and three if possible.
20519
20520 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
20521
20522         PR target/43766
20523         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
20524
20525 2010-04-19  Jie Zhang  <jie@codesourcery.com>
20526
20527         PR target/43662
20528         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
20529
20530 2010-04-19  Ira Rosen  <irar@il.ibm.com>
20531
20532         PR tree-optimization/37027
20533         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
20534         and macro to access it.
20535         (vectorizable_reduction): Add argument.
20536         (vect_get_slp_defs): Likewise.
20537         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
20538         statements for possible use in SLP.
20539         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
20540         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
20541         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
20542         add new argument.
20543         (vectorizable_reduction): Likewise.
20544         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
20545         vect_get_slp_defs.
20546         (vectorizable_type_demotion, vectorizable_type_promotion,
20547         vectorizable_store): Likewise.
20548         (vect_analyze_stmt): Update call to vectorizable_reduction.
20549         (vect_transform_stmt): Likewise.
20550         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
20551         (vect_build_slp_tree): Fix indentation. Check that there are no loads
20552         from different interleaving chains in same node.
20553         (vect_slp_rearrange_stmts): New function.
20554         (vect_supported_load_permutation_p): Allow load permutations for
20555         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
20556         inside SLP nodes if necessary.
20557         (vect_analyze_slp_instance): Handle reductions.
20558         (vect_analyze_slp): Try to build SLP instances originating from groups
20559         of reductions.
20560         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
20561         (vect_get_constant_vectors): Create initial vectors for reductions
20562         according to reduction code. Add new argument.
20563         (vect_get_slp_defs): Add new argument, pass it to
20564         vect_get_constant_vectors.
20565         (vect_schedule_slp_instance): Remove SLP tree root statements.
20566
20567 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
20568
20569         * tree.h (ENUM_IS_SCOPED): Define.
20570         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
20571         for ENUM_IS_SCOPED enums.
20572
20573 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
20574
20575         * fold-const.c (fold_comparison): Use ssizetype.
20576         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
20577         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
20578         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
20579         * tree-object-size.c (compute_object_sizes): Use size_type_node.
20580
20581         * tree.h (initialize_sizetypes): Remove parameter.
20582         (build_common_tree_nodes): Remove second parameter.
20583         * stor-layout.c (initialize_sizetypes): Remove parameter.
20584         Always create an unsigned type.
20585         (set_sizetype): Assert that the passed type is unsigned and simplify.
20586         * tree.c (build_common_tree_nodes): Remove second parameter.
20587         Adjust call to initialize_sizetypes.
20588         * c-decl.c (c_init_decl_processing): Remove second argument in call to
20589         build_common_tree_nodes.
20590
20591 2010-04-18  Matthias Klose  <doko@ubuntu.com>
20592
20593         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
20594
20595 2010-04-18  Ira Rosen  <irar@il.ibm.com>
20596
20597         PR tree-optimization/43771
20598         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
20599         load permutation doesn't have gaps.
20600
20601 2010-04-18  Jan Hubicka  <jh@suse.cz>
20602
20603         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
20604         (sse_prologue_save_insn expander): Use new pattern.
20605         (sse_prologue_save_insn1): New pattern and splitter.
20606         (sse_prologue_save_insn): Update to deal also with 64bit aligned
20607         blocks.
20608         * i386.c (setup_incoming_varargs_64): Do not compute jump
20609         destination here.
20610         (ix86_gimplify_va_arg): Update alignment needed.
20611         (ix86_local_alignment): Do not align all local arrays to 128bit.
20612
20613 2010-04-17  Jan Hubicka  <jh@suse.cz>
20614
20615         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
20616
20617 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20618
20619         * arm.md (negdi2): Remove redundant code to force values into a
20620         register.
20621
20622 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20623
20624         * arm/bpabi.S: Add EABI alignment attributes to objects.
20625         * arm/bpabi-v6m.S: Likewise.
20626         * arm/crti.asm: Likewise.
20627         * arm/crtn.asm: Likewise.
20628         * arm/lib1funcs.asm: Likewise.
20629         * arm/libunwind.S: Likewise.
20630
20631 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
20632
20633         * arm-protos.h (tune_params): New structure.
20634         * arm.c (current_tune): New variable.
20635         (arm_constant_limit): Delete.
20636         (struct processors): Add pointer to the tune parameters.
20637         (arm_slowmul_tune): New tuning option.
20638         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
20639         (all_cores): Adjust to pick up the tuning model.
20640         (arm_constant_limit): New function.
20641         (arm_override_options): Select the appropriate tuning model.  Delete
20642         initialization of arm_const_limit.
20643         (arm_split_constant): Use the new constant-limit model.
20644         (arm_rtx_costs): Pick up the current tuning model.
20645         * arm.md (is_strongarm, is_xscale): Delete.
20646         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
20647         for Xscale variant architectures.
20648         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
20649
20650 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20651
20652         * config/arm/arm.c (arm_gen_constant): Remove unused variable
20653         can_shift.
20654         (arm_rtx_costs_1): Remove unused variable extra_cost.
20655         (arm_unwind_emit_set): Use variable offset.
20656         (thumb1_output_casesi): Remove unused variable flags.
20657
20658 2010-04-16  Jeff Law  <law@redhat.com>
20659
20660         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
20661         needing assignment rather than doing a two-phase assignment.  Remove
20662         unused variable 'm'.
20663
20664 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20665
20666         PR bootstrap/43767
20667         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
20668
20669 2010-04-16  Doug Kwan  <dougkwan@google.com>
20670
20671         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
20672         (next_operand_entry_id): New static variable.
20673         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
20674         (add_to_ops_vec): Assigned unique ID to operand entry.
20675         (struct oecount_s): New field ID.
20676         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
20677         (undistribute_ops_list): Assign unique IDs to oecounts.
20678         (init_reassoc): reset next_operand_entry_id.
20679
20680 2010-04-16  Doug Kwan  <dougkwan@google.com>
20681
20682         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
20683         missing left parenthesis.
20684
20685 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
20686
20687         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
20688         *btdi_rex64 using SWI48 mode iterator.
20689         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
20690         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
20691         *jcc_btdi_mask_rex64.
20692
20693 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
20694
20695         * double-int.h (tree_to_double_int): Convert to macro.
20696         * double-int.c (tree_to_double_int): Remove.
20697
20698 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20699
20700         PR debug/43762
20701         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
20702         with want_address 2 and in case a single element list might be
20703         possible, call it again with want_address 0.
20704
20705 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
20706
20707         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
20708         case 'W' print operands for HI mode.
20709         * config/h8300/h8300.h (Y0, Y2) : New constraints.
20710         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
20711         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
20712         * config/h8300/predicate.md (bit_register_indirect_operand): New.
20713
20714         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
20715
20716         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
20717         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
20718         #xx:3 and #xx:4 mode.
20719
20720         * config/h8300/h8300.md (inverted load with HImode dest): Add
20721         support for H8300SX.
20722
20723         * config/h8300/predicate.md (bit_operand): Allow immediate values that
20724         satisfy 'U' constraint.
20725
20726 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20727
20728         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
20729         * configure: Regenerate.
20730         * config.in: Regenerate.
20731         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
20732         works.
20733
20734 2010-04-16  Richard Guenther  <rguenther@suse.de>
20735
20736         * tree.h (struct tree_decl_minimal): Move pt_uid ...
20737         (struct tree_decl_common): ... here.
20738         (DECL_PT_UID): Adjust.
20739         (SET_DECL_PT_UID): Likewise.
20740         (DECL_PT_UID_SET_P): Likewise.
20741
20742 2010-04-16  Richard Guenther  <rguenther@suse.de>
20743
20744         PR tree-optimization/43572
20745         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
20746         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
20747         * tree-flow.h (is_call_clobbered): Remove.
20748         * tree-flow-inline.h (is_call_clobbered): Likewise.
20749         * tree-dfa.c (dump_variable): Do not dump call clobber state.
20750         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
20751         (execute_return_slot_opt): Adjust.
20752         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
20753         check for call clobbered vars here.
20754         (find_tail_calls): Move tailcall verification to the
20755         proper place.
20756
20757 2010-04-16  Diego Novillo  <dnovillo@google.com>
20758
20759         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
20760
20761 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20762
20763         PR target/40603
20764         * config/arm/arm.md (cbranchqi4): New pattern.
20765         * config/arm/predicates.md (const0_operand,
20766         cbranchqi4_comparison_operator): New predicates.
20767
20768 2010-04-16  Richard Guenther  <rguenther@suse.de>
20769
20770         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
20771         (dump_gimple_stmt): Likewise.
20772
20773 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
20774
20775         * recog.h (struct recog_data): New field is_operator.
20776         (struct insn_operand_data): New field is_operator.
20777         * recog.c (extract_insn): Set recog_data.is_operator.
20778         * genoutput.c (output_operand_data): Emit code to set the
20779         is_operator field.
20780         * reload.c (find_reloads): Use it rather than testing for an
20781         empty constraint string.
20782
20783         PR target/41514
20784         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
20785         If the previous insn is a cbranchsi4_insn with the same arguments,
20786         omit the compare instruction.
20787
20788         * config/arm/arm.md (addsi3_cbranch): If destination is a high
20789         register, inputs must be low registers and we need a low register
20790         scratch.  Handle alternative 2 like alternative 3.
20791
20792 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
20793
20794         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
20795         don't call get_addr on both.  If one expression is a VALUE and
20796         the other a REG, check VALUE's locs if the REG isn't among them.
20797
20798 2010-04-16  Christian Bruel  <christian.bruel@st.com>
20799
20800         * config/sh/sh.h (sh_frame_pointer_required): New function.
20801         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
20802         (flag_omit_frame_pointer) Set.
20803         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
20804         (rounded_frame_size): Adjust size with outgoing_args_size.
20805         (sh_set_return_address): Must return from stack pointer.
20806         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
20807         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
20808         (ACCUMULATE_OUTGOING_ARGS): Define.
20809         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
20810         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
20811
20812 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
20813
20814         PR target/43471
20815         * config/sh/sh.c (sh_legitimize_reload_address): Use
20816         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
20817         Remove a unneeded check for offset_base.
20818
20819 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
20820
20821         * configure: Regenerated.
20822
20823 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20824
20825         * config/s390/s390.c (s390_call_save_register_used): Switch back
20826         to HARD_REGNO_NREGS.
20827
20828 2010-04-15  Richard Guenther  <rguenther@suse.de>
20829
20830         * alias.c (alias_set_subset_of): Handle alias-set zero
20831         child properly.
20832
20833 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
20834             Julian Brown  <julian@codesourcery.com>
20835
20836         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
20837         alternatives according to use of high and low regs.
20838         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
20839         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
20840         optimizing for size on Thumb-2.
20841
20842 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
20843
20844         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
20845
20846 2010-04-15  Richard Guenther  <rguenther@suse.de>
20847
20848         * tree-ssa-structalias.c (struct variable_info): Add
20849         is_fn_info flag.
20850         (new_var_info): Initialize it.
20851         (dump_constraints): Support printing last added constraints.
20852         (debug_constraints): Adjust.
20853         (dump_constraint_graph): Likewise.
20854         (make_heapvar_for): Check for NULL cfun.
20855         (get_function_part_constraint): New function.
20856         (get_fi_for_callee): Likewise.
20857         (find_func_aliases): Properly implement IPA PTA constraints.
20858         (process_ipa_clobber): New function.
20859         (find_func_clobbers): Likewise.
20860         (insert_into_field_list_sorted): Remove.
20861         (create_function_info_for): Properly allocate vars for IPA mode.
20862         Do not use insert_into_field_list_sorted.
20863         (create_variable_info_for): Properly generate constraints for
20864         global vars in IPA mode.
20865         (dump_solution_for_var): Always dump the solution.
20866         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
20867         (find_what_var_points_to): Adjust.
20868         (pt_solution_set): Change.
20869         (pt_solution_ior_into): New function.
20870         (pt_solution_empty_p): Export.
20871         (pt_solution_includes_global): Adjust.
20872         (pt_solution_includes_1): Likewise.
20873         (pt_solutions_intersect_1): Likewise.
20874         (dump_sa_points_to_info): Check some invariants.
20875         (solve_constraints): Move constraint dumping ...
20876         (compute_points_to_sets): ... here.
20877         (ipa_pta_execute): ... and here.
20878         (compute_may_aliases): Do not re-compute points-to info
20879         locally if IPA info is available.
20880         (ipa_escaped_pt): New global var.
20881         (ipa_pta_execute): Properly implement IPA PTA.
20882         * tree-into-ssa.c (dump_decl_set): Support dumping
20883         decls not in referenced-vars.
20884         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
20885         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
20886         (dump_points_to_solution): Likewise.
20887         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
20888         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
20889         (remap_gimple_stmt): Reset call clobber/use information if necessary.
20890         (copy_decl_to_var): Copy DECL_PT_UID.
20891         (copy_result_decl_to_var): Likewise.
20892         * tree.c (make_node_stat): Initialize DECL_PT_UID.
20893         (copy_node_stat): Copy it.
20894         * tree.h (DECL_PT_UID): New macro.
20895         (SET_DECL_PT_UID): Likewise.
20896         (DECL_PT_UID_SET_P): Likewise.
20897         (struct tree_decl_minimal): Add pt_uid member.
20898         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
20899         (pt_solution_empty_p): Declare.
20900         (pt_solution_set): Adjust.
20901         (ipa_escaped_pt): Declare.
20902         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
20903         * gimple-pretty-print.c (pp_points_to_solution): New function.
20904         (dump_gimple_call): Dump call clobber/use information.
20905         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
20906         * tree-pass.h (TDF_ALIAS): New dump option.
20907         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
20908         * doc/invoke.texi (-fipa-pta): Update documentation.
20909
20910 2010-04-15  Richard Guenther  <rguenther@suse.de>
20911
20912         * Makefile.in (OBJS-common): Add gimple-fold.o.
20913         (gimple-fold.o): New rule.
20914         * tree.h (maybe_fold_offset_to_reference,
20915         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
20916         prototypes ...
20917         * gimple.h: ... here.
20918         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
20919         may_propagate_address_into_dereference): Move prototypes ...
20920         * gimple.h: ... here.
20921         * tree-ssa-ccp.c (get_symbol_constant_value,
20922         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
20923         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
20924         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
20925         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
20926         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
20927         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
20928         gimplify_and_update_call_from_tree): Move ...
20929         * gimple-fold.c: ... here.  New file.
20930         (ccp_fold_builtin): Rename to ...
20931         (gimple_fold_builtin): ... this.
20932         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
20933
20934 2010-04-15  Richard Guenther  <rguenther@suse.de>
20935
20936         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
20937         fit_double_type, force_fit_type_double, add_double_with_sign,
20938         neg_double, mul_double_with_sign, lshift_double, rshift_double,
20939         lrotate_double, rrotate_double, div_and_round_double): Move ...
20940         * double-int.c: ... here.
20941         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
20942         add_double, neg_double, mul_double_with_sign, mul_double,
20943         lshift_double, rshift_double, lrotate_double, rrotate_double,
20944         div_and_round_double): Move prototypes ...
20945         * double-int.h: ... here.
20946
20947 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
20948
20949         PR target/43742
20950         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
20951         matching constraints to ensure inputs match the output.
20952
20953 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
20954
20955         PR target/43742
20956         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
20957         in an input-only operand.
20958
20959 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
20960
20961         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
20962         (double_int_not, double_int_lshift, double_int_rshift): Declare.
20963         (double_int_negative_p): Convert to static inline function.
20964         * double-int.c (double_int_lshift, double_int_lshift): New functions.
20965         (double_int_negative_p): Remove.
20966         * tree.h (lshift_double, rshift_double):
20967         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
20968         * fold-const.c (fold_convert_const_int_from_real,
20969         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
20970         (lshift_double): Change type of arith argument to bool.
20971         (rshift_double): Change type of arith argument to bool. Correct
20972         comment.
20973         * expmed.c (mask_rtx, lshift_value): (Ditto.).
20974
20975 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
20976
20977         PR target/21803
20978         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
20979         at the start and end of the then/else blocks, and omit them from the
20980         conversion.
20981         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
20982         argument; all callers changed.  Pass zero to old_insns_match_p instead.
20983         (flow_find_head_matching_sequence): New function.
20984         (old_insns_match_p): Check REG_EH_REGION notes for calls.
20985         * basic-block.h (flow_find_cross_jump,
20986         flow_find_head_matching_sequence): Declare functions.
20987
20988 2010-04-14  Jason Merrill  <jason@redhat.com>
20989
20990         PR c++/36625
20991         * c-common.c (attribute_takes_identifier_p): New fn.
20992         * c-common.h: Declare it.
20993
20994 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
20995
20996         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
20997         splitter condition.
20998         (*udivmod<mode>4): Ditto.
20999
21000 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21001
21002         * config/i386/i386.md (maxmin_int): Rename code attribute from
21003         maxminiprefix and update all users.
21004         (maxmin_float): Ditto from maxminfprefix.
21005         (logic): Ditto from logicprefix.
21006         (absneg_mnemonic): Ditto from absnegprefix.
21007         * config/i386/mmx.md: Update all users of maxminiprefix,
21008         maxminfprefix and logicprefix for rename.
21009         * config/i386/sse.md: Ditto.
21010         * config/i386/sync.md (sync_<code><mode>): Update for
21011         logicprefix rename.
21012
21013 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21014
21015         PR 42966
21016         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
21017         warnings converted to errors.
21018
21019 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21020
21021         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
21022         used insn_type variable.
21023         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
21024         to avoid set-but-not-used warning.
21025
21026 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21027
21028         * df-core.c (df_ref_debug): Change format string placeholder
21029         from 0x%x to %#x.
21030         * dwarf2asm.c (dw2_asm_output_data_raw,
21031         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
21032         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
21033         * dwarf2out.c (output_cfi, output_cfi_directive,
21034         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
21035         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
21036         Ditto.
21037         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
21038         * print-rtl.c (print_rtx): Ditto.
21039
21040 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21041
21042         PR middle-end/42694
21043         * builtins.c (expand_builtin_pow_root): New function to expand pow
21044         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
21045         series of sqrt and cbrt calls under -ffast-math.
21046         (expand_builtin_pow): Call it.
21047
21048 2010-04-14  Michael Matz  <matz@suse.de>
21049
21050         PR tree-optimization/42963
21051         * tree-cfg.c (touched_switch_bbs): New static variable.
21052         (group_case_labels_stmt): New function broken out from ...
21053         (group_case_labels): ... here, use the above.
21054         (start_recording_case_labels): Allocate touched_switch_bbs.
21055         (end_recording_case_labels): Deallocate it, call
21056         group_case_labels_stmt.
21057         (gimple_redirect_edge_and_branch): Remember index of affected BB.
21058
21059 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21060
21061         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
21062         from insn template.
21063
21064 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
21065
21066         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
21067
21068 2010-04-13  Jan Hubicka  <jh@suse.cz>
21069
21070         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
21071         of optimized out static functions.
21072         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
21073         cost computation.  Also sanity check for overflows.
21074         (update_caller_keys): Update cgraph_edge_badness call; properly
21075         update fibheap and sanity check that it is up to date.
21076         (add_new_edges_to_heap): Update cgraph_edge_badness.
21077         (cgraph_decide_inlining_of_small_function): Likewise;
21078         add sanity checking that badness in heap is up to date;
21079         improve dumping of reason; Update badness of calls to the
21080         offline copy of function currently inlined; dump badness
21081         of functions not inlined because of unit growth limits.
21082
21083 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21084
21085         PR middle-end/32628
21086         * c-common.c (pointer_int_sum): Disregard overflow that occured only
21087         because of sign-extension change when converting to sizetype here...
21088         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
21089
21090         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
21091         the folding to constants.  Remove redundant final conversion.
21092         (fold_binary) <associate>: Do not associate if the re-association of
21093         constants alone overflows.
21094         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
21095         to the end of the list.
21096         (multiple_of_p) <COND_EXPR>: New case.
21097
21098 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21099
21100         * opt-functions.awk (opt_sanitized_name): New.
21101         (opt_enum): New.
21102         * optc-gen.awk: Use it
21103         * opth-gen.awk: Use it.
21104
21105 2010-04-13  Martin Jambor  <mjambor@suse.cz>
21106
21107         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
21108         (sra_modify_assign): Delete stmts loading dead data even if racc has no
21109         children.  Call replace_uses_with_default_def_ssa_name to handle
21110         SSA_NAES on lhs.
21111
21112 2010-04-13  Michael Matz  <matz@suse.de>
21113
21114         PR middle-end/43730
21115         * builtins.c (expand_builtin_interclass_mathfn): Also create
21116         a register if the predicate doesn't match.
21117
21118 2010-04-13  Diego Novillo  <dnovillo@google.com>
21119
21120         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
21121         * c-pch.c: Include timevar.h.
21122         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
21123         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
21124         * ggc-common.c: Include timevar.h.
21125         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
21126         * timevar.def (TV_PCH_SAVE): Define.
21127         (TV_PCH_CPP_SAVE): Define.
21128         (TV_PCH_PTR_REALLOC): Define.
21129         (TV_PCH_PTR_SORT): Define.
21130         (TV_PCH_RESTORE): Define.
21131         (TV_PCH_CPP_RESTORE): Define.
21132
21133 2010-04-13  Michael Matz  <matz@suse.de>
21134
21135         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
21136         into MINUS_EXPRs.
21137         (can_reassociate_p): New function.
21138         (break_up_subtract_bb, reassociate_bb): Use it.
21139
21140 2010-04-13  Richard Guenther  <rguenther@suse.de>
21141
21142         PR bootstrap/43737
21143         * builtins.c (c_readstr): Fix assert.
21144
21145 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
21146
21147         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
21148         when generating cltd insn.
21149
21150         (*ashl<mode>3_1): Remove special handling for register operand 2.
21151         (*ashlsi3_1_zext): Ditto.
21152         (*ashlhi3_1): Ditto.
21153         (*ashlhi3_1_lea): Ditto.
21154         (*ashlqi3_1): Ditto.
21155         (*ashlqi3_1_lea): Ditto.
21156         (*<shiftrt_insn><mode>3_1): Ditto.
21157         (*<shiftrt_insn>si3_1_zext): Ditto.
21158         (*<shiftrt_insn>qi3_1_slp): Ditto.
21159         (*<rotate_insn><mode>3_1): Ditto.
21160         (*<rotate_insn>si3_1_zext): Ditto.
21161         (*<rotate_insn>qi3_1_slp): Ditto.
21162
21163 2010-04-13  Richard Guenther  <rguenther@suse.de>
21164
21165         * tree-ssa-structalias.c (callused_id): Remove.
21166         (call_stmt_vars): New.
21167         (get_call_vi): Likewise.
21168         (lookup_call_use_vi): Likewise.
21169         (lookup_call_clobber_vi): Likewise.
21170         (get_call_use_vi): Likewise.
21171         (get_call_clobber_vi): Likewise.
21172         (make_transitive_closure_constraints): Likewise.
21173         (handle_const_call): Adjust to do per-call call-used handling.
21174         (handle_pure_call): Likewise.
21175         (find_what_var_points_to): Remove general callused handling.
21176         (init_base_vars): Likewise.
21177         (init_alias_vars): Initialize call_stmt_vars.
21178         (compute_points_to_sets): Process call-used and call-clobbered
21179         vars for call statements.
21180         (delete_points_to_sets): Free call_stmt_vars.
21181
21182 2010-04-13  Richard Guenther  <rguenther@suse.de>
21183
21184         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
21185         Only add RW dependence for dependence distance zero.
21186         Adjust maximal vectorization factor according to dependences.
21187         Move alignment handling ...
21188         (vect_find_same_alignment_drs): ... here.  New function.
21189         (vect_analyze_data_ref_dependences): Adjust.
21190         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
21191         (vect_analyze_data_refs): Adjust minimal vectorization factor
21192         according to data references.
21193         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
21194         dependences before determining the vectorization factor.
21195         Analyze alignment after determining the vectorization factor.
21196         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
21197         dependences before alignment.
21198         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
21199         Adjust prototype.
21200         (vect_analyze_data_refs): Likewise.
21201         (MAX_VECTORIZATION_FACTOR): New define.
21202
21203 2010-04-13  Duncan Sands  <baldrick@free.fr>
21204
21205         * except.h (lang_eh_type_covers): Remove.
21206         * except.c (lang_eh_type_covers): Likewise.
21207
21208 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21209             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
21210
21211         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
21212         * config/s390/s390.c: Replace UNTIS_PER_WORD with
21213         UNITS_PER_LONG where it is ABI relevant.
21214         (s390_return_addr_rtx): Likewise.
21215         (s390_back_chain_rtx): Likewise.
21216         (s390_frame_area): Likewise.
21217         (s390_frame_info): Likewise.
21218         (s390_initial_elimination_offset): Likewise.
21219         (save_gprs): Likewise.
21220         (s390_emit_prologue): Likewise.
21221         (s390_emit_epilogue): Likewise.
21222         (s390_function_arg_advance): Likewise.
21223         (s390_function_arg): Likewise.
21224         (s390_va_start): Likewise.
21225         (s390_gimplify_va_arg): Likewise.
21226         (s390_function_profiler): Likewise.
21227         (s390_optimize_prologue): Likewise.
21228         (s390_rtx_costs): Likewise.
21229         (s390_secondary_reload): Likewise.
21230         (s390_promote_function_mode): Likewise.
21231         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
21232         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
21233         registers available.
21234         (s390_unwind_word_mode): New function.
21235         (s390_function_value): Split 64 bit values into register pair if
21236         used as return value.
21237         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
21238         function call parameters.  Handle parallels.
21239         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
21240         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
21241         (DWARF_CIE_DATA_ALIGNMENT): New macro.
21242         (s390_expand_setmem): Remove unused variable src_addr.
21243         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
21244         deal with 64 bit registers.
21245         * config/s390/s390.h: Define __zarch__ predefined macro.
21246         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
21247         (UNITS_PER_LONG): New macro.
21248         * libjava/include/s390-signal.h: Define extended ucontext
21249         structure containing the upper halfs of the 64 bit registers.
21250
21251 2010-04-13  Simon Baldwin  <simonb@google.com>
21252
21253         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
21254
21255 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
21256
21257         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
21258         rvalue on the RHS if the LHS is of a non-renamable type.
21259         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
21260
21261 2010-04-13  Matthias Klose  <doko@ubuntu.com>
21262
21263         * gcc.c (cc1_options): Handle -iplugindir before processing
21264         the cc1 spec. Only add -iplugindir once.
21265         (cpp_unique_options): Add -iplugindir option if -fplugin* options
21266         found.
21267         * common.opt (iplugindir): Remove `Separate' property, initialize.
21268         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
21269         option.
21270         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
21271         (distclean): Remove plugin dir.
21272         * doc/invoke.texi: Document -iplugindir.
21273
21274 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
21275
21276         * doc/plugins.texi (Loading Plugins): Document short
21277         -fplugin=foo option.
21278         (Plugin API): Mention default_plugin_dir_name function.
21279
21280         * gcc.c (find_file_spec_function): Add new declaration.
21281         (static_spec_func): Use it for "find-file".
21282         (find_file_spec_function): Add new function.
21283         (cc1_options): Add -iplugindir option if -fplugin* options found.
21284
21285         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
21286
21287         * plugin.c (add_new_plugin): Updated comment, and handle short
21288         plugin name.
21289         (default_plugin_dir_name): Added new function.
21290
21291         * common.opt (iplugindir): New option to set the plugin directory.
21292
21293 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
21294
21295         * config/i386/i386.md (any_rotate): New code iterator.
21296         (rotate_insn): New code attribute.
21297         (rotate): Ditto.
21298         (SWIM124): New mode iterator.
21299         (<rotate_insn>ti3): New expander.
21300         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
21301         any_rotate code iterator.
21302         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
21303         using any_rotate code iterator and SWIM124 mode iterator.
21304         (ix86_rotlti3): New insn_and_split pattern.
21305         (ix86_rotrti3): Ditto.
21306         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
21307         ix86_rotl{di,ti}3 patterns.
21308         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
21309         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
21310         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
21311         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
21312         code iterator and SWI mode iterator.
21313         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
21314         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
21315         code iterator.
21316         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
21317         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
21318         (bswap rotatert splitter): Add splitter.
21319         (bswap splitter): Macroize splitter using any_rotate code iterator.
21320         Add insn predicate to split only for TARGET_USE_XCHGB or when
21321         optimizing function for size.
21322
21323 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21324
21325         * config/pa/pa.c (emit_move_sequence): Remove use of
21326         deleted variable flag_argument_noalias.
21327
21328 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21329
21330         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
21331         configurations.
21332         Add to unsupported targets list.
21333         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
21334         sparc*-sun-solaris2.[567]* from target lists.
21335         * configure: Regenerate.
21336         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
21337         removal.
21338         Remove Solaris 7 patch references.
21339         (Specific, sparc-sun-solaris2.7): Removed.
21340         (sparc-sun-solaris2*): Update Solaris 7 example.
21341         (sparc64-*-solaris2*): Likewise.
21342
21343 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21344
21345         * config.build (alpha*-dec-osf4*): Remove.
21346         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
21347         of obsolete configurations.
21348         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
21349         support.
21350         * config/alpha/t-osf4: Renamed to ...
21351         * config/alpha/t-osf5: ... this.
21352         * config/alpha/osf.h: Renamed to ...
21353         * config/alpha/osf5.h: ... this.
21354         Merged old osf5.h contents.
21355         Update comments.
21356         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
21357         (EXTRA_SPECS): Removed.
21358         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
21359         reflect removal of Tru64 UNIX V4.0/V5.0 support.
21360         Document that.
21361
21362 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21363
21364         * doc/contrib.texi (Contributors, Rainer Orth): Update.
21365
21366 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
21367
21368         PR/43702
21369         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
21370         __thiscall convention.
21371
21372 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21373
21374         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
21375         orig_base.
21376         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
21377
21378 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
21379
21380         * function.c (assign_parms_initialize_all): Add unused attribute
21381         to fntype.
21382
21383 2010-04-12  Richard Guenther  <rguenther@suse.de>
21384
21385         * gsstruct.def (GSS_CALL): New.
21386         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
21387         * gimple.h: Include tree-ssa-alias.h.
21388         (struct gimple_statement_call): New.
21389         (union gimple_statement_struct_d): Add gimple_call member.
21390         (gimple_call_reset_alias_info): Declare.
21391         (gimple_call_use_set): New function.
21392         (gimple_call_clobber_set): Likewise.
21393         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
21394         * gimple.c (gimple_call_reset_alias_info): New function.
21395         (gimple_build_call_1): Call it.
21396         * lto-streamer-in.c (input_gimple_stmt): Likewise.
21397         * tree-inline.c (remap_gimple_stmt): Likewise.
21398         (expand_call_inline): Remove callused handling.
21399         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
21400         * tree-dfa.c (dump_variable): Likewise.
21401         * tree-parloops.c (parallelize_loops): Likewise.
21402         * tree-ssa.c (init_tree_ssa): Likewise.
21403         (delete_tree_ssa): Likewise.
21404         * tree-flow-inline.h (is_call_used): Remove.
21405         * tree-flow.h (struct gimple_df): Remove callused member.
21406         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
21407         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
21408         (ref_maybe_used_by_call_p_1): Simplify.
21409         (call_may_clobber_ref_p_1): Likewise.
21410         * tree-ssa-structalias.c (compute_points_to_sets): Set
21411         the call stmt used and clobbered sets.
21412         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
21413         (find_tail_calls): Verify the tail call.
21414
21415 2010-04-12  Richard Guenther  <rguenther@suse.de>
21416
21417         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
21418         single-iteration always-inline inlining.
21419         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
21420         (cgraph_decide_inlining): Do not handle always-inline specially.
21421         (try_inline): Remove always-inline cycle detection special case.
21422         Do not recurse on always-inlines.
21423         (cgraph_early_inlining): Do not iterate if not optimizing.
21424         (cgraph_gate_early_inlining): remove.
21425         (pass_early_inline): Run unconditionally.
21426         (gate_cgraph_decide_inlining): New function.
21427         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
21428         not inlining or optimizing.
21429         (cgraph_decide_inlining_of_small_functions): Also consider
21430         always-inline functions.
21431         (cgraph_default_inline_p): Return true for nodes which should
21432         disregard inline limits.
21433         (estimate_function_body_sizes): Assume zero size and time for
21434         nodes which are marked as disregarding inline limits.
21435         (cgraph_decide_recursive_inlining): Do not perform recursive
21436         inlining on always-inline nodes.
21437
21438 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
21439
21440         PR bootstrap/43699
21441         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
21442         for exprs satisfying handled_component_p.
21443
21444 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
21445
21446         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
21447         non-constant aggregate elements.
21448
21449         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
21450         is a real initialization.
21451
21452 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
21453
21454         PR c/36774
21455         * c-decl.c (start_function): Move forward check for nested function.
21456
21457 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
21458
21459         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
21460         * config/sh/sh.c: Include reload.h.
21461         (sh_legitimize_reload_address): New.
21462         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
21463         sh_legitimize_reload_address.
21464
21465 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
21466
21467         * config/sh/sh.md (*movqi_pop): New insn pattern.
21468         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
21469
21470 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21471
21472         * config/i386/i386.md (any_shiftrt): New code iterator.
21473         (shiftrt_insn): New code attribute.
21474         (shiftrt): Ditto.
21475         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
21476         using any_shiftrt code iterator.
21477         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
21478         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
21479         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
21480         pattern from corresponding peephole2 patterns.
21481         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
21482         using any_shiftrt code iterator.
21483         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
21484         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
21485         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
21486         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
21487         *{ashr,lshr}<mode>3_cmp_zext.
21488         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
21489
21490 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21491
21492         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
21493         scratch register.
21494         (*lshr<mode>3_cconly): Ditto.
21495
21496 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
21497
21498         * config/i386/i386.md (lshr<mode>3): Macroize expander from
21499         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21500         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21501         pattern from *lshr{di,ti}3_1 and corresponding splitters using
21502         DWI mode iterator.
21503         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21504         from corresponding peephole2 patterns.
21505         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
21506         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
21507         and *lshrdi3_1_rex64 using SWI mode iterator.
21508         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
21509         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
21510         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
21511         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
21512         and *lshrdi3_cmp_rex64 using SWI mode iterator.
21513         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
21514         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
21515         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
21516         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
21517         SWI mode iterator.
21518
21519 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
21520
21521         * config/i386/i386.md (ashr<mode>3): Macroize expander from
21522         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
21523         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21524         pattern from *ashr{di,ti}3_1 and corresponding splitters using
21525         DWI mode iterator.
21526         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
21527         from corresponding peephole2 patterns.
21528         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
21529         (ashrsi3_cvt): Rename from ashrsi3_31.
21530         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
21531         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
21532         and x86_64_shift_adj_3 using SWI48 mode iterator.
21533         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
21534         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
21535         and *ashrdi3_1_rex64 using SWI mode iterator.
21536         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
21537         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
21538         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
21539         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
21540         and *ashrdi3_cmp_rex64 using SWI mode iterator.
21541         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
21542         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
21543         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
21544         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
21545         SWI mode iterator.
21546         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
21547         * config/i386/i386.c (ix86_split_ashr): Update for renamed
21548         x86_shift<mode>_adj_3 expanders.
21549
21550 2010-04-10  Wei Guozhi  <carrot@google.com>
21551
21552         PR target/42601
21553         * config/arm/arm.c (arm_pic_static_addr): New function.
21554         (legitimize_pic_address): Call arm_pic_static_addr when it detects
21555         a static symbol.
21556         (arm_output_addr_const_extra): Output expression for new pattern.
21557         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
21558
21559 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
21560
21561         * ira-costs.c (record_reg_classes): Ignore alternatives that are
21562         not enabled.
21563
21564         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
21565         * web.c: Include "insn-config.h" and "recog.h".
21566         (union_match_dups): New function.
21567         (web_main): Call it.
21568         (union_defs): Don't try to recognize match_dups.
21569
21570         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
21571         if doing so would replace the entire pattern.
21572
21573 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21574
21575         PR target/43707
21576         PR target/43709
21577         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
21578         and splitter pattern.  Change splitter operand 1 predicate to
21579         nonmemory_operand.
21580
21581 2010-04-09  Martin Jambor  <mjambor@suse.cz>
21582
21583         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
21584         lattices are addresses of CONST_DECLs with the same initial value.
21585         (ipcp_print_all_lattices): Print values of CONST_DECLs.
21586         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
21587
21588 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
21589             Bernd Schmidt  <bernds@codesourcery.com>
21590
21591         * loop-invariant.c (replace_uses): New static function.
21592         (move_invariant_reg): Use it to ensure we can replace the uses.
21593
21594 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
21595
21596         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
21597         function template.
21598         (picochip_override_options): Enable section anchors only above -O1.
21599         (picochip_reorg): Fixed a couple of build warnings.
21600
21601 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21602
21603         * configure.ac (plugin -rdynamic test): Log result.
21604         * configure: Regenerate.
21605         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
21606         (RDYNAMIC_SPEC): Define.
21607         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
21608
21609 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21610
21611         * configure.ac: Determine Sun ld version numbers.
21612         (comdat_group): Restrict GNU ld version checks to gld.
21613         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
21614         (enable_comdat): Support --enable-comdat.
21615         * configure: Regenerate.
21616         * doc/install.texi (Configuration): Document --enable-comdat.
21617
21618 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21619
21620         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
21621         * config/sol2-gld.h: ... here.
21622         * config.gcc (sparc*-*-solaris2*): Reflect this.
21623         (i[34567]86-*-solaris2*): Use it.
21624
21625 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
21626
21627         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
21628         setup_clocks_p.
21629         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
21630
21631 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21632
21633         PR 42965
21634         * diagnostic.c (diagnostic_initialize): Initialize
21635         some_warnings_are_errors.
21636         (diagnostic_finish): New.
21637         (diagnostic_action_after_output): Call it before exiting.
21638         (diagnostic_report_diagnostic): Do not print message here. Set
21639         some_warnings_are_errors.
21640         * diagnostic.h (diagnostic_context): Delete
21641         issue_warnings_are_errors_message. Add some_warnings_are_errors.
21642         (diagnostic_finish): Declare.
21643         * toplev.c (toplev_main): Call it before exit.
21644
21645 2010-04-09  Jason Merrill  <jason@redhat.com>
21646
21647         PR c++/42623
21648         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
21649         for incomplete type.
21650
21651         PR c++/41788
21652         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
21653         based on a warning flag.
21654
21655 2010-04-09  Richard Guenther  <rguenther@suse.de>
21656
21657         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
21658
21659 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
21660
21661         PR bootstrap/43684
21662         * varasm.c (default_assemble_visibility): Wrap vars that are
21663         set, but unused, by targets without GAS.
21664         * config/rs6000/rs6000.c (paired_emit_vector_compare):
21665         Remove set, but unused, vars.
21666         (rs6000_legitimize_tls_address): Likewise.
21667         (altivec_expand_dst_builtin): Likewise.
21668         * config/darwin.c (machopic_classify_symbol): Likewise.
21669         (machopic_indirection_name): Likewise.
21670
21671 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
21672
21673         * config/i386/i386.md (DWI): New mode iterator.
21674         (S): New mode attribute.
21675         (shift_operand): Ditto.
21676         (shift_immediate_operand): Ditto.
21677         (ashl_input_operand): Ditto.
21678         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
21679         using SDWIM mode iterator.
21680         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
21681         pattern from *ashl{di,ti}3_1 and corresponding splitters using
21682         DWI mode iterator.
21683         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
21684         from corresponding peephole2 patterns.
21685         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
21686         and x86_64_shift_adj_1 using SWI48 mode iterator.
21687         (x86_shift<mode>_adj_2): Ditto.
21688         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
21689         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
21690         using SWI48 mode iterator.
21691         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
21692         *ashldi3_cmp_rex64 using SWI mode iterator.
21693         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
21694         *ashldi3_cconly_rex64 using SWI mode iterator.
21695         * config/i386/i386.c (ix86_split_ashl): Update for renamed
21696         x86_shift<mode>_adj_{1,2}.
21697         (ix86_split_ashr): Ditto.
21698         (ix86_split_lshr): Ditto.
21699
21700 2010-04-09  Richard Guenther  <rguenther@suse.de>
21701
21702         * target.h (builtin_conversion): Pass in input and output types.
21703         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
21704         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
21705         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
21706         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
21707
21708         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
21709         Handle AVX modes.
21710         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
21711
21712 2010-04-09  Richard Guenther  <rguenther@suse.de>
21713
21714         PR target/43152
21715         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
21716
21717 2010-04-09  Richard Guenther  <rguenther@suse.de>
21718
21719         * tree-vectorizer.h (struct _stmt_vec_info): Document
21720         that vectype is the type of the LHS.
21721         (supportable_widening_operation, supportable_narrowing_operation):
21722         Get both input and output vector types as arguments.
21723         (vect_is_simple_use_1): Declare.
21724         (get_same_sized_vectype): Likewise.
21725         * tree-vect-loop.c (vect_determine_vectorization_factor):
21726         Set STMT_VINFO_VECTYPE to the vector type of the def.
21727         (vectorizable_reduction): Adjust.
21728         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
21729         Adjust.  Specify the output vector type.
21730         (vect_pattern_recog_1): Adjust.
21731         * tree-vect-stmts.c (get_same_sized_vectype): New function.
21732         (vectorizable_call): Adjust.
21733         (vectorizable_conversion): Likewise.
21734         (vectorizable_operation): Likewise.
21735         (vectorizable_type_demotion): Likewise.
21736         (vectorizable_type_promotion): Likewise.
21737         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
21738         the def.
21739         (vect_is_simple_use_1): New function.
21740         (supportable_widening_operation): Get both input and output
21741         vector types.
21742         (supportable_narrowing_operation): Likewise.
21743         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
21744
21745 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
21746
21747         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
21748         __thiscall and _thiscall as predefined macros.
21749         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
21750         thiscall attribute handling.
21751         (ix86_comp_type_attributes): Likewise.
21752         (ix86_function_regparm): Likewise.
21753         (ix86_return_pops_args): Likewise.
21754         (init_cumulative_args): Likewise.
21755         (find_drap_reg): Likewise.
21756         (ix86_static_chain): Likewise.
21757         (x86_this_parameter): Likewise.
21758         (x86_output_mi_thunk): Likewise.
21759         (ix86_attribute_table): Add description for thiscall attribute.
21760         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
21761         * doc/extend.texi: Add documentation for thiscall.
21762
21763 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21764
21765         PR c++/28584
21766         * c.opt (Wint-to-pointer-cast): Available in C++.
21767         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
21768
21769 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
21770
21771         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
21772         * calls.c (expand_call): Pass the function type to aggregate_value_p.
21773         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
21774         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
21775         function type instead.  Reorder and simplify checks.
21776
21777         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
21778
21779 2010-04-08  Jing Yu  <jingyu@google.com>
21780             Zdenek Dvorak  <ook@ucw.cz>
21781
21782         PR tree-optimization/42720
21783         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
21784         loop unswitch conditions here from ...
21785         (tree_unswitch_single_loop): ... here.
21786
21787 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
21788
21789         * tree-if-conv.c: Fix comments and simplify logic.
21790
21791 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
21792
21793         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
21794         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
21795         (main_tree_if_conversion): Update call to tree_if_conversion.
21796
21797 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21798
21799         PR 42485
21800         * doc/invoke.texi (-b,-V): Delete.
21801         * doc/tm.texi: Do not mention -b.
21802         * gcc.c (display_help): Delete -b and -V.
21803         (process_command): Delete -b and -V.
21804         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
21805
21806 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
21807             Wolfgang Gellerich  <gellerich@de.ibm.com>
21808
21809         Implement target hook for loop unrolling
21810         * target.h (loop_unroll_adjust): Add a new target hook function.
21811         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
21812         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
21813         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
21814         (s390_loop_unroll_adjust): Implement the new target hook for s390.
21815         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
21816         target hook.
21817         (decide_unroll_stupid): Likewise.
21818
21819 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21820
21821         PR target/43643
21822         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
21823
21824 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21825
21826         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
21827         (Specific, *-*-solaris2*): Likewise.
21828         Don't prefer Sun as over GNU as.
21829
21830 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
21831
21832         * config/s390/s390.c (override_options): Adjust the z10 defaults
21833         for max-unroll-times, max-completely-peeled-insns
21834         and max-completely-peel-times.
21835
21836 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21837
21838         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
21839         instructions for z10.
21840         (s390_expand_setmem): Likewise.
21841         (s390_expand_cmpmem): Likewise.
21842
21843 2010-04-08  Richard Guenther  <rguenther@suse.de>
21844
21845         PR tree-optimization/43679
21846         * tree-ssa-pre.c (eliminate): Only propagate copies.
21847
21848 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
21849
21850         PR bootstrap/43681
21851         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
21852         set but not used variable warning.
21853
21854 2010-04-08  Wei Guozhi  <carrot@google.com>
21855
21856         PR target/41653
21857         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
21858         (arm_size_rtx_costs): Call the new function when optimized for size.
21859
21860 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
21861
21862         PR debug/43670
21863         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
21864         op0 is not a MEM, just return NULL instead of assertion
21865         failure.
21866         (discover_nonconstant_array_refs): Don't walk debug stmts.
21867
21868 2010-04-08  Doug Kwan  <dougkwan@google.com>
21869
21870         * configure.ac: Recognize gold and do not use its version number
21871         to test ld features.
21872         * configure: Regenerate.
21873
21874 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
21875
21876         PR middle-end/40815
21877         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
21878         (negate_value): Move code to push elements to broken_up_substracts ...
21879         (eliminate_plus_minus_pair): ... here.  Push operands that have no
21880         negative pair to plus_negates.
21881         (repropagate_negates, init_reassoc, fini_reassoc): Update.
21882
21883 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21884
21885         * doc/install.texi (Configuration): Move description of
21886         --enable-lto, --with-libelf*, --enable-gold from Java section to
21887         general section.
21888
21889         * doc/generic.texi (Working with declarations)
21890         (Function Properties, C and C++ Trees): Fix typos.
21891         * doc/sourcebuild.texi (Top Level): Likewise.
21892
21893 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
21894
21895         PR c/18624
21896         * tree.h (DECL_READ_P): Define.
21897         (struct tree_decl_common): Add decl_read_flag.
21898         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
21899         a set but not used warning.
21900         (merge_decls): Merge DECL_READ_P flag.
21901         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
21902         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
21903         * c-common.c (handle_used_attribute, handle_unused_attribute):
21904         Likewise.
21905         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
21906         New prototypes.
21907         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
21908         New functions.
21909         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
21910         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
21911         c_parser_binary_expression, c_parser_cast_expression,
21912         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
21913         Call default_function_array_read_conversion instead of
21914         default_function_array_conversion where needed.
21915         (c_parser_unary_expression, c_parser_conditional_expression,
21916         c_parser_postfix_expression_after_primary, c_parser_initelt):
21917         Likewise.  Call mark_exp_read where needed.
21918         (c_parser_statement_after_labels, c_parser_asm_operands,
21919         c_parser_typeof_specifier, c_parser_sizeof_expression,
21920         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
21921         where needed.
21922         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
21923         New.
21924         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
21925         (warn_unused_but_set_parameter): Default to warn_unused
21926         && extra_warnings.
21927         * doc/invoke.texi: Document -Wunused-but-set-variable and
21928         -Wunused-but-set-parameter.
21929
21930         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
21931         used count variable.
21932         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
21933         when operandN variables aren't used in the body of the expander
21934         or splitter.
21935         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
21936         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
21937         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
21938         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
21939         FOR_EACH_IMM_USE_ON_STMT): Likewise.
21940         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
21941         * tree.c (PROCESS_ARG): Likewise.
21942
21943 2010-04-07  Simon Baldwin  <simonb@google.com>
21944
21945         * diagnostic.h (diagnostic_override_option_index): New macro to
21946         set a diagnostic's option_index.
21947         * c-tree.h (c_cpp_error): Add warning reason argument.
21948         * opts.c (_warning_as_error_callback): New.
21949         (register_warning_as_error_callback): Store callback for
21950         warnings enabled via enable_warning_as_error.
21951         (enable_warning_as_error): Call callback, minor code tidy.
21952         * opts.h (register_warning_as_error_callback): Declare.
21953         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
21954         response to -Werror=.
21955         (c_common_init_options): Register warning_as_error_callback in opts.c.
21956         * common.opt: Add -Wno-cpp option.
21957         * c-common.c (struct reason_option_codes_t): Map cpp warning
21958         reason codes to gcc option indexes.
21959         * (c_option_controlling_cpp_error): New function, lookup the gcc
21960         option index for a cpp warning reason code.
21961         * (c_cpp_error): Add warning reason argument, call
21962         c_option_controlling_cpp_error for diagnostic_override_option_index.
21963         * doc/invoke.texi: Document -Wno-cpp.
21964
21965 2010-04-07  Richard Guenther  <rguenther@suse.de>
21966
21967         * ipa-reference.c (mark_load): Use get_base_address.
21968         (mark_store): Likewise.
21969
21970         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
21971         inserting GIMPLE_NOPs into the IL.
21972         * tree-ssa-structalias.c (get_constraint_for_component_ref):
21973         Explicitly strip handled components and indirect references.
21974
21975         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
21976         folding address expressions.
21977         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
21978         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
21979         operand_equal_p to compare decls.
21980         (ptr_deref_may_alias_decl_p): Likewise.
21981         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
21982         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
21983         Handle reversed comparison ops.
21984         * tree-sra.c (asm_visit_addr): Use get_base_address.
21985         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
21986         * ipa-reference.c (mark_address): Use get_base_address.
21987
21988 2010-04-07  Richard Guenther  <rguenther@suse.de>
21989
21990         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
21991         Propagate constants everywhere.
21992
21993 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
21994
21995         PR debug/43516
21996         * tree.c (MAX_INT_CACHED_PREC): Define.
21997         (nonstandard_integer_type_cache): New array.
21998         (build_nonstandard_integer_type): Cache results for precision
21999         <= MAX_INT_CACHED_PREC.
22000
22001 2010-04-07  Richard Guenther  <rguenther@suse.de>
22002
22003         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
22004         -fargument-noalias-global, -fargument-noalias-anything): Remove.
22005         * common.opt: Likewise.
22006         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
22007         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
22008         (nonoverlapping_memrefs_p): Likewise.
22009         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
22010         * opts.c (common_handle_option): Handle OPT_fargument_alias,
22011         OPT_fargument_noalias, OPT_fargument_noalias_anything and
22012         OPT_fargument_noalias_global for backward compatibility.
22013
22014 2010-04-07  Richard Guenther  <rguenther@suse.de>
22015
22016         PR tree-optimization/43270
22017         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
22018         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
22019         * tree-ssa-pre.c (phi_translate_1): Adjust.
22020         (fully_constant_expression): Split out vn_reference handling to ...
22021         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
22022         Fold reads from constant strings.
22023         (vn_reference_lookup): Handle fully constant references.
22024         (vn_reference_lookup_pieces): Likewise.
22025         * Makefile.in (expmed.o-warn): Add -Wno-error.
22026
22027 2010-04-07  Martin Jambor  <mjambor@suse.cz>
22028
22029         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
22030
22031 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
22032
22033         PR driver/41594
22034         * gcc.c: Add -static-libstdc++ to list of recognized options.
22035
22036 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22037
22038         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
22039
22040 2010-04-07  Richard Guenther  <rguenther@suse.de>
22041
22042         PR middle-end/42617
22043         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
22044         bases build simple mem attributes to retain points-to information.
22045
22046 2010-04-07  Richard Guenther  <rguenther@suse.de>
22047
22048         PR middle-end/42617
22049         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
22050         preserve points-to related information.
22051
22052 2010-04-07  Richard Guenther  <rguenther@suse.de>
22053
22054         PR middle-end/42617
22055         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
22056         discard plain indirect references.
22057         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
22058         * tree.c (tree_nop_conversion): Likewise.
22059
22060 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
22061
22062         PR debug/43628
22063         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
22064
22065 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
22066
22067         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
22068         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
22069
22070 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22071
22072         * tree-if-conv.c: Fix indentation and comments.
22073
22074 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22075
22076         * tree-if-conv.c: Sort static functions in topological order.
22077
22078 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
22079
22080         * tree-if-conv.c: Fix indentation and comments.
22081
22082 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22083
22084         PR middle-end/43519
22085         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
22086         lang_hooks.types.type_for_size instead of
22087         build_nonstandard_integer_type.
22088         When converting an unsigned type to signed, double its precision.
22089         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
22090         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
22091         (graphite_create_new_loop_guard): When ub + 1 wraps around,
22092         use lb <= ub.
22093
22094 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22095
22096         PR middle-end/43519
22097         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
22098         POINTER_PLUS_EXPR for pointer types.
22099
22100 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22101
22102         PR middle-end/43519
22103         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
22104         * graphite-clast-to-gimple.c: Include langhooks.h.
22105         (max_signed_precision_type): New.
22106         (max_precision_type): Takes two types as arguments.
22107         (precision_for_value): New.
22108         (precision_for_interval): New.
22109         (gcc_type_for_interval): New.
22110         (gcc_type_for_value): New.
22111         (gcc_type_for_clast_term): New.
22112         (gcc_type_for_clast_red): New.
22113         (gcc_type_for_clast_bin): New.
22114         (gcc_type_for_clast_expr): Split up into several functions.
22115         (gcc_type_for_clast_eq): Rewritten.
22116         (compute_bounds_for_level): New.
22117         (compute_type_for_level_1): New.
22118         (compute_type_for_level): New.
22119         (gcc_type_for_cloog_iv): Removed.
22120         (gcc_type_for_iv_of_clast_loop): Rewritten.
22121         (graphite_create_new_loop): Compute the lower and upper bound types
22122         with gcc_type_for_clast_expr.
22123         (graphite_create_new_loop_guard): Same.
22124         (find_cloog_iv_in_expr): Removed.
22125         (compute_cloog_iv_types_1): Removed.
22126         (compute_cloog_iv_types): Removed.
22127         (gloog): Do not call compute_cloog_iv_types.
22128         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
22129         GBB_CLOOG_IV_TYPES.
22130         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
22131         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
22132         (GBB_CLOOG_IV_TYPES): Removed.
22133
22134 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22135
22136         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
22137         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
22138         (detect_commutative_reduction): Same.
22139
22140 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22141
22142         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
22143         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
22144         argument.
22145         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
22146         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
22147         (rewrite_commutative_reductions_out_of_ssa): Same.
22148         * passes.c (execute_function_todo): Call verify_ssa for every pass
22149         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
22150         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
22151         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
22152         with an extra argument.
22153         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
22154         verify_ssa only when the extra argument is true.
22155         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
22156         with an extra argument.
22157         (tree_transform_and_unroll_loop): Same.
22158
22159 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
22160
22161         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
22162         for all the passes of the LNO having LOOP_CLOSED_SSA.
22163         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
22164         * tree-loop-distribution.c (pass_loop_distribution): Same.
22165         * tree-pass.h (TODO_verify_loops): Removed.
22166         * tree-ssa-loop.c (pass_tree_loop_init): Same.
22167         (pass_lim): Same.
22168         (pass_tree_unswitch): Same.
22169         (pass_predcom): Same.
22170         (pass_vectorize): Same.
22171         (pass_linear_transform): Same.
22172         (pass_graphite_transforms): Same.
22173         (pass_iv_canon): Same.
22174         (pass_complete_unroll): Same.
22175         (pass_complete_unrolli): Same.
22176         (pass_parallelize_loops): Same.
22177         (pass_loop_prefetch): Same.
22178         (pass_iv_optimize): Same.
22179
22180 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
22181
22182         PR middle-end/32824
22183         * passes.c (init_optimization_passes): Move pass_lim before
22184         pass_copy_prop and pass_dce_loop.
22185
22186 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22187
22188         PR target/43667
22189         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
22190         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
22191         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
22192         MULTI_* defines for 4 argument vpermil2p* builtins.
22193
22194 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22195
22196         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
22197         * config/i386/i386.c (x86_maybe_negate_const_int): New.
22198         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
22199         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
22200         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
22201         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
22202         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
22203         Use x86_maybe_negate_const_int to output insn mnemonic.
22204         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
22205         check from instruction predicate.  Update comments.
22206         * config/i386/sync.md (sync_add<mode>): Use
22207         x86_maybe_negate_const_int to output insn mnemonic.
22208
22209 2010-04-06  Jan Hubicka  <jh@suse.cz>
22210
22211         PR tree-optimization/42906
22212         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
22213         IGNORE_SELF argument.  Set visited_control_parents for fully
22214         processed BBs.
22215         (find_obviously_necessary_stmts): Update call of
22216         mark_control_dependent_edges_necessary.
22217         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
22218
22219 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
22220
22221         * config/i386/i386.md: Remove comment about 'e' and 'E'
22222         operand modifier.
22223
22224 2010-04-06  Richard Guenther  <rguenther@suse.de>
22225
22226         PR tree-optimization/43627
22227         * tree-vrp.c (extract_range_from_unary_expr): Widenings
22228         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
22229         not varying.
22230
22231 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
22232
22233         * BASE-VER: Change to 4.6.0.
22234
22235         PR target/43638
22236         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
22237         handling.
22238
22239 2010-04-06  Richard Guenther  <rguenther@suse.de>
22240
22241         PR middle-end/43661
22242         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
22243
22244 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22245
22246         * doc/invoke.texi (Optimize Options): Document that LTO
22247         won't remove object access purely due to incompatible
22248         declarations.
22249
22250 2010-04-04  Matthias Klose  <doko@ubuntu.com>
22251
22252         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
22253         Initialize variable.
22254
22255 2010-04-03  Richard Guenther  <rguenther@suse.de>
22256
22257         PR middle-end/42509
22258         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
22259         require a non-NULL MEM_OFFSET.
22260
22261 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
22262
22263         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
22264         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
22265         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
22266         config/alpha/predicates.md, config/arm/arm.md,
22267         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
22268         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
22269         config/darwin9.h, config/darwin.c, config/darwin.h,
22270         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
22271         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
22272         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
22273         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
22274         config/mips/mips.md, config/mn10300/mn10300.c,
22275         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
22276         config/rs6000/aix.h, config/rs6000/dfp.md,
22277         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
22278         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
22279         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
22280         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
22281         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
22282         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
22283         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
22284         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
22285         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
22286         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
22287         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
22288         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
22289         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
22290         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
22291         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
22292         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
22293         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
22294         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
22295         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
22296         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
22297         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
22298         opt-functions.awk, opth-gen.awk, params.def, passes.c,
22299         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
22300         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
22301         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
22302         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
22303         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
22304         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
22305         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
22306         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
22307         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
22308         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
22309         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
22310         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
22311         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
22312         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
22313
22314 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22315
22316         PR other/43620
22317         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
22318         * aclocal.m4: Regenerate.
22319
22320 2010-04-02  Richard Guenther  <rguenther@suse.de>
22321
22322         PR tree-optimization/43629
22323         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
22324         if we have seen a constant value.
22325
22326 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
22327
22328         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
22329
22330 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
22331
22332         PR target/43469
22333         * arm.c (legitimize_tls_address): Adjust call to
22334         gen_tls_load_dot_plus_four.
22335         (arm_note_pic_base): New function.
22336         (arm_cannot_copy_insn_p): Use it.
22337         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
22338         constraint.
22339
22340 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22341
22342         PR bootstrap/43531
22343
22344         Revert:
22345         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22346
22347         * Makefile.in ($(out_object_file)): Depend on
22348         gt-$(basename $(notdir $(out_file))).h.
22349
22350 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
22351
22352         * config.gcc (lm32-*-rtems*): Add t-lm32.
22353
22354 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
22355
22356         * config.gcc: Add lm32-*-rtems*.
22357         * config/lm32/rtems.h: New file.
22358
22359 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
22360
22361         PR target/42609
22362         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
22363
22364 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
22365
22366         * dwarf2out.c (output_compilation_unit_header): For
22367         -gdwarf-4 use version 4 instead of version 3.
22368         (output_line_info): For version 4 and above emit additional
22369         maximum ops per insn header field.
22370         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
22371
22372         * dwarf2out.c (is_c_family, is_java): Remove.
22373         (lower_bound_default): New function.
22374         (add_bound_info, gen_descr_array_type_die): Use it.
22375
22376 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
22377
22378         PR debug/43325
22379         * dwarf2out.c (gen_variable_die): Allow debug info for variable
22380         re-declaration when it happens in a function.
22381
22382 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
22383
22384         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
22385         (cgraph_remove_function_insertion_hook): Same.
22386         (cgraph_call_function_insertion_hooks): Same.
22387
22388 2010-04-01  Richard Guenther  <rguenther@suse.de>
22389
22390         PR middle-end/43614
22391         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
22392         and TREE_THIS_VOLATILE.
22393         (copy_ref_info): Likewise.
22394         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
22395         * tree.c (build6_stat): Ignore side-effects of all but arg5
22396         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
22397         TARGET_MEM_REF.
22398
22399 2010-04-01  Richard Guenther  <rguenther@suse.de>
22400
22401         PR tree-optimization/43607
22402         * ipa-type-escape.c (check_call): Do not access non-existing
22403         arguments.
22404
22405 2010-04-01  Richard Guenther  <rguenther@suse.de>
22406
22407         PR middle-end/43602
22408         Revert
22409         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22410                     Jack Howarth  <howarth@bromo.med.uc.edu>
22411
22412         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22413         variables TLS.
22414
22415 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22416
22417         * doc/install.texi (Prerequisites): Document libelf usability on
22418         IRIX 5/6 and Solaris 2.
22419         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
22420         Update GNU as, GNU ld requirements.
22421         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
22422         Document Sun Studio compiler download.
22423         Update and simplify as, ld recommendations.
22424         (Specific, *-*-solaris2.7): Note obsoletion, removal.
22425
22426 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22427
22428         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
22429         with_tune_32 to pentium4.
22430
22431 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
22432
22433         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
22434
22435 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22436
22437         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
22438         obsoletion, removal.
22439         Update IDO URL.
22440         Document GNU as requirement.
22441         Update configure requirements.
22442         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
22443         Recomment IRIX 6.5.18+.
22444         Document IDF/IDL requirement.
22445         Document GNU as requirement.
22446         Document GNU ld bootstrap failure.
22447         Remove freeware.sgi.com reference.
22448
22449 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22450
22451         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
22452         UNIX V4.0, V5.0 obsoletion, removal.
22453         Remove --with-gc=simple reference.
22454         Update VM requirements during bootstrap.
22455         Remove -oldas bootstrap description.
22456         Update binutils reference.
22457         Remove comparison failure note.
22458
22459 2010-03-31  Richard Guenther  <rguenther@suse.de>
22460             Zdenek Dvorak  <ook@ucw.cz>
22461             Sebastian Pop  <sebastian.pop@amd.com>
22462
22463         PR middle-end/43464
22464         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
22465         with multiple arguments.
22466         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
22467
22468 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22469
22470         * graphite-dependences.c (print_pddr): Call print_pdr with an
22471         extra argument.
22472         * graphite-poly.c (debug_pdr): Add an extra argument for the
22473         verbosity level.
22474         (print_pdr): Same.
22475         (print_pbb_domain): Same.
22476         (print_pbb): Same.
22477         (print_scop_context): Same.
22478         (print_scop): Same.
22479         (print_cloog): Same.
22480         (debug_pbb_domain): Same.
22481         (debug_pbb): Same.
22482         (print_pdrs): Same.
22483         (debug_pdrs): Same.
22484         (debug_scop_context): Same.
22485         (debug_scop): Same.
22486         (debug_cloog): Same.
22487         (print_scop_params): Same.
22488         (debug_scop_params): Same.
22489         (print_iteration_domain): Same.
22490         (print_iteration_domains): Same.
22491         (debug_iteration_domain): Same.
22492         (debug_iteration_domains): Same.
22493         (print_scattering_function): Same.
22494         (print_scattering_functions): Same.
22495         (debug_scattering_function): Same.
22496         (debug_scattering_functions): Same.
22497         * graphite-poly.h (debug_pdr): Update declaration.
22498         (print_pdr): Same.
22499         (print_pbb_domain): Same.
22500         (print_pbb): Same.
22501         (print_scop_context): Same.
22502         (print_scop): Same.
22503         (print_cloog): Same.
22504         (debug_pbb_domain): Same.
22505         (debug_pbb): Same.
22506         (print_pdrs): Same.
22507         (debug_pdrs): Same.
22508         (debug_scop_context): Same.
22509         (debug_scop): Same.
22510         (debug_cloog): Same.
22511         (print_scop_params): Same.
22512         (debug_scop_params): Same.
22513         (print_iteration_domain): Same.
22514         (print_iteration_domains): Same.
22515         (debug_iteration_domain): Same.
22516         (debug_iteration_domains): Same.
22517         (print_scattering_function): Same.
22518         (print_scattering_functions): Same.
22519         (debug_scattering_function): Same.
22520         (debug_scattering_functions): Same.
22521
22522 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22523
22524         * graphite-poly.c (print_scattering_function_1): New.
22525         (print_scattering_function): Call it.
22526         (print_scop_params): Remove spaces at the end of lines.
22527         (print_cloog): New.
22528         (debug_cloog): New.
22529         * graphite-poly.h (print_cloog): Declared.
22530         (debug_cloog): Declared.
22531
22532 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22533
22534         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
22535         in loop->header.
22536         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
22537         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
22538         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
22539         to switch between adding the IV bump in loop->latch or in loop->header.
22540
22541 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
22542
22543         * graphite-poly.c (print_scattering_function): Pretty print following
22544         the scoplib format.
22545         (print_pdr): Same.
22546         (print_pbb_domain): Same.
22547         (dump_gbb_cases): Same.
22548         (dump_gbb_conditions): Same.
22549         (print_pdrs): Same.
22550         (print_pbb): Same.
22551         (print_scop_params): Same.
22552         (print_scop_context): Same.
22553         (print_scop): Same.
22554         (print_pbb_body): New.
22555         (lst_indent_to): New.
22556         (print_lst): Start new lines with a #.
22557         * graphite-poly.h (pbb_bb): New.
22558         (pbb_index): Use pbb_bb.
22559         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
22560         disjuncts.
22561         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
22562
22563 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22564
22565         * dwarf2out.c (size_of_die): For -gdwarf-4 use
22566         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
22567         and 0 instead of 1 for dw_val_class_flag.
22568         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
22569         dw_val_class_range_list, dw_val_class_loc_list,
22570         dw_val_class_lineptr and dw_val_class_macptr, use
22571         DW_FORM_flag_present for dw_val_class_flag and
22572         DW_FORM_exprloc for dw_val_class_loc.
22573         (output_die): For -gdwarf-4 print dw_val_class_loc
22574         size as uleb128 instead of 1 or 2 bytes and don't print
22575         anything for dw_val_class_flag.
22576
22577         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
22578         instead of cselib_lookup following by tweaking locs->setting_insn.
22579
22580         PR bootstrap/43596
22581         * cselib.c (cselib_process_insn): Clear cselib_current_insn
22582         even before returning from label, setjmp call or volatile asm
22583         handling.
22584
22585 2010-03-31  Richard Guenther  <rguenther@suse.de>
22586
22587         PR middle-end/43600
22588         * cgraphunit.c (cgraph_output_in_order): Do not allocate
22589         temporary data on stack.
22590
22591 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22592
22593         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
22594         (PUSHSECTION_ASM_OP): Remove.
22595         (POPSECTION_ASM_OP): Remove.
22596         (PUSHSECTION_FORMAT): Remove.
22597         * config/sol2.h (PUSHSECTION_FORMAT): Define.
22598         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
22599         * config/sol2.c (solaris_output_init_fini): Use it.
22600
22601 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22602
22603         PR 43574
22604         * opt-functions.awk (var_type_struct): Use signed char type
22605         for simple variables.
22606
22607 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22608
22609         * config/sol2.c: Include output.h.
22610         (solaris_assemble_visibility): New function.
22611         * config/t-sol2 (sol2.o): Add output.h dependency.
22612         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
22613         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
22614         Redefine.
22615
22616 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
22617
22618         PR target/43580
22619         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
22620         V2SImode or XFmode on PRE_DEC.
22621
22622         PR debug/43557
22623         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
22624         BLKmode.
22625
22626 2010-03-31  Jie Zhang  <jie@codesourcery.com>
22627
22628         PR 43562
22629         * reload.h (caller_save_initialized_p): Declare.
22630         * toplev.c (backend_init_target): Don't call
22631         init_caller_save but set caller_save_initialized_p to false.
22632         * caller-save.c (caller_save_initialized_p): Define.
22633         (init_caller_save): Check caller_save_initialized_p.
22634         * ira.c (ira): Call init_caller_save if flag_caller_saves.
22635
22636 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22637
22638         PR target/39048
22639         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
22640         and soft-fp/t-softfp to tmake_file.
22641         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
22642         (LIBGCC2_TF_CEXT): Define.
22643         (TF_SIZE): Define.
22644
22645 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
22646
22647         PR debug/42977
22648         * cselib.c (n_useless_values): Document handling of debug locs.
22649         (n_useless_debug_values, n_debug_values): New variables.
22650         (new_elt_loc_list): Don't add to debug values, keep count.
22651         (promote_debug_loc): New.
22652         (cselib_reset_table): Zero new variables.
22653         (entry_and_rtx_equal_p): Promote debug locs.
22654         (discard_useless_locs): Increment n_useless_debug_values for
22655         debug values.
22656         (remove_useless_values): Adjust n_useless_values and n_debug_values
22657         with n_useless_debug_values.
22658         (add_mem_for_addr): Promote debug locs.
22659         (cselib_lookup_mem): Likewise.
22660         (cselib_lookup_addr): Renamed to...
22661         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
22662         (cselib_log_lookup): ... this.  Turn into...
22663         (cselib_lookup_addr): ... new wrapper.
22664         (cselib_lookup_from_insn): New.
22665         (cselib_invalidate_regno): Increment n_useless_debug_values for
22666         debug values.
22667         (cselib_invalidate_mem): Likewise.
22668         (cselib_process_insn): Take n_deleted and n_debug_values into
22669         account to guard remove_useless_value call.
22670         (cselib_finish): Zero n_useless_debug_values.
22671         * cselib.h (cselib_lookup_from_insn): Declare.
22672         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
22673         (sched_analyze_2): Likewise.
22674
22675 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
22676
22677         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
22678         functions.
22679         (adjust_mems): Replace narrowing SUBREG of expression containing
22680         just PLUS, MINUS, MULT and ASHIFT of registers and constants
22681         with operations in the narrower mode.
22682
22683         PR debug/43593
22684         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
22685         regs_invalidated_by_call instead all call_used_reg_set registers.
22686
22687 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
22688
22689         PR middle-end/43430
22690         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
22691         pointer comparisons with types_compatible_p.
22692         * tree-vect-stmts.c (vectorizable_call): Same.
22693         (vectorizable_condition): Same.
22694
22695 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22696
22697         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
22698         stack check if the mask would be zero.
22699
22700 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
22701             Jack Howarth  <howarth@bromo.med.uc.edu>
22702
22703         * tree-profile.c (tree_init_ic_make_global_vars): Make static
22704         variables TLS.
22705
22706 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
22707
22708         PR other/25232
22709         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
22710         and __unordtf2.
22711         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
22712         Include ___unordxf2 and ___unordtf2.
22713         * config/i386/libgcc-glibc.ver: Do not define inheritance from
22714         GCC_4.4.0 here.
22715
22716 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
22717
22718         * config/lm32/t-lm32: New file.
22719         * config.gcc: Use the above file when targetting lm32.
22720
22721 2010-03-28  Duncan Sands  <baldrick@free.fr>
22722
22723         * Makefile.in (PLUGIN_HEADERS): Add except.h.
22724
22725 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
22726
22727         PR middle-end/43431
22728         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
22729         Improve vectorization cost model diagnostic.
22730
22731 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
22732
22733         PR middle-end/43436
22734         * tree-vect-data-refs.c (vect_analyze_data_refs): When
22735         compute_data_dependences_for_loop returns false, early exit
22736         and output an extra diagnostic for the failed data reference
22737         analysis.
22738
22739 2010-03-29  Richard Guenther  <rguenther@suse.de>
22740
22741         PR tree-optimization/43560
22742         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
22743         (can_sm_ref_p): Treat stores to readonly locations as trapping.
22744
22745 2010-03-29  Jie Zhang  <jie@codesourcery.com>
22746
22747         PR 43564
22748         * toplev.c (process_options): Set optimization_default_node
22749         and optimization_current_node.
22750         * opts.c (decode_options): Don't set optimization_default_node
22751         and optimization_current_node.
22752
22753 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
22754
22755         * config/rtems.h: Abandon -qrtems_debug.
22756
22757 2010-03-28  Jan Hubicka  <jh@suse.cz>
22758
22759         PR tree-optimization/43505
22760         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
22761         map should not be copied.
22762
22763 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22764
22765         PR middle-end/41674
22766         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
22767         cdtors, set DECL_PRESERVE_P.
22768         * ipa.c (cgraph_externally_visible_p): Return true if declaration
22769         should be preseved.
22770
22771 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
22772
22773         PR tree-optimization/43528
22774         * stor-layout.c (place_field): Check that constant fits into
22775         unsigned HWI when skipping calculation of MS bitfield layout.
22776
22777 2010-03-27  Jan Hubicka  <jh@suse.cz>
22778
22779         PR middle-end/43391
22780         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
22781         notice_global_symbol work.
22782
22783 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
22784
22785         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
22786         instead of dwarf2out_decl.
22787         (struct var_loc_node): Remove section_label field.
22788         (dwarf2out_function_decl): New function.
22789         (dwarf2out_var_location): Don't set section_label field.
22790         (dwarf2out_begin_function): Don't empty decl_loc_table here.
22791
22792 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22793
22794         PR tree-optimization/43544
22795         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
22796         First argument for builtin vectorized function hook is now a
22797         tree to be able to distinguish between machine specific and
22798         standard builtins.
22799         * targhooks.c (default_builtin_vectorized_function): Ditto.
22800         * targhooks.h (default_builtin_vectorized_function): Ditto.
22801         * target.h (struct gcc_target): Ditto.
22802         * tree-vect-stmts.c (vectorizable_function): Ditto.
22803         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
22804         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
22805         Ditto.
22806
22807 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
22808
22809         PR c/43381
22810         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
22811         nested binding iff it is a FUNCTION_DECL.
22812         (store_parm_decls_newstyle): Pass nested=true to bind for
22813         FUNCTION_DECLs amongst parameters.
22814
22815 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
22816
22817         * var-tracking.c (vt_expand_loc_callback): Don't run
22818         cselib_expand_value_rtx_cb in dummy mode if
22819         cselib_dummy_expand_value_rtx_cb returned false.
22820
22821         * var-tracking.c (emit_note_insn_var_location): For one part
22822         notes with offset 0, don't add EXPR_LIST around the location.
22823         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
22824         add_location_or_const_value_attribute): Adjust for that change.
22825
22826         PR debug/43540
22827         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
22828         into first operand and location into second.
22829         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
22830         dw_cfi_oprnd_loc for DW_CFA_expression.
22831         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
22832         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
22833         assume first argument is regnum and second argument is location.
22834
22835 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
22836
22837         PR target/42113
22838         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
22839         of scratch register to DImode.  Split to DImode comparison operator.
22840         Use SImode subreg of scratch register in the multiplication.
22841         (*cmp_sadd_sidi): Ditto.
22842         (*cmp_ssub_si): Ditto.
22843         (*cmp_ssub_sidi): Ditto.
22844
22845 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
22846
22847         PR target/43524
22848         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
22849         Remove invalid assert and wrong comment.
22850
22851 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
22852
22853         PR debug/43516
22854         * flags.h (final_insns_dump_p): New extern.
22855         * final.c (final_insns_dump_p): New variable.
22856         (rest_of_clean_state): Set it before -fdump-final-insns=
22857         dumping, clear afterwards.
22858         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
22859         MEM_ALIAS_SET on MEMs.
22860
22861 2010-03-26  David S. Miller  <davem@davemloft.net>
22862
22863         * configure.ac: Fix sparc GOTDATA_OP bug check.
22864         * configure: Rebuild.
22865
22866 2010-03-26  Alan Modra  <amodra@gmail.com>
22867
22868         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
22869
22870 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22871
22872         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
22873         TLS_SECTION_ASM_FLAG.
22874
22875 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
22876
22877         PR bootstrap/43511
22878         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
22879         Clear first_function_block_is_cold.
22880
22881         PR c/43385
22882         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
22883         argument if the argument is truth_value_p.
22884
22885 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22886
22887         * config/rs6000/constraints.md: Update copyright year for my changes.
22888
22889         PR target/43484
22890         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
22891         used in reg+reg addressing, swap registers.
22892
22893 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
22894
22895         PR debug/43293
22896         * target.h (struct gcc_target): Add code_end hook.
22897         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
22898         if not yet defined.
22899         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
22900         * toplev.c (compile_file): Call targetm.asm_out.code_end
22901         hook before unwind info/debug info output.
22902         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
22903         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
22904         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
22905         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
22906         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
22907         * config/i386/i386.c (ix86_file_end): Renamed to...
22908         (ix86_code_end): ... this.  Make static.  Don't call
22909         file_end_indicate_exec_stack.  Emit unwind info using
22910         final_start_function/final_end_function.
22911         (darwin_x86_file_end): Remove.
22912         (TARGET_ASM_CODE_END): Define.
22913         * config/i386/i386.h (TARGET_ASM_FILE_END,
22914         NEED_INDICATE_EXEC_STACK): Don't define.
22915         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
22916         (TARGET_ASM_FILE_END): Define to darwin_file_end.
22917         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
22918         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
22919
22920         PR target/43498
22921         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
22922         at the beginning and final_end_function at the end.
22923         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
22924
22925 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22926
22927         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
22928         and Sun as TLS syntax.
22929         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
22930         * configure: Regenerate.
22931         * config.in: Regenerate.
22932         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
22933         (default_elf_asm_named_section): Use it.
22934         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
22935         (i386_output_dwarf_dtprel): Likewise.
22936         (output_addr_const_extra): Likewise.
22937         (output_pic_addr_const): Lowercase @GOTTPOFF.
22938         (output_addr_const_extra): Likewise.
22939         (output_pic_addr_const): Lowercase @GOTNTPOFF.
22940         (output_addr_const_extra): Likewise.
22941         (output_pic_addr_const): Lowercase @INDNTPOFF.
22942         (output_addr_const_extra): Likewise.
22943         (output_pic_addr_const): Lowercase @NTPOFF.
22944         (output_addr_const_extra): Likewise.
22945         (output_pic_addr_const): Lowercase @TPOFF.
22946         (output_addr_const_extra): Likewise.
22947         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
22948         (*tls_global_dynamic_64): Likewise.
22949         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
22950         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
22951
22952         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
22953         (ASM_OUTPUT_TLS_COMMON): Use it.
22954         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
22955
22956         PR target/38118
22957         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
22958         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
22959         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
22960         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
22961         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
22962         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
22963
22964 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22965
22966         * config/i386/i386.c (override_options): Don't accept
22967         -mtls-dialect=sun any longer.
22968         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
22969         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
22970         (*tls_local_dynamic_base_32_sun): Likewise.
22971         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
22972
22973 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
22974
22975         PR debug/43508
22976         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22977         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
22978
22979         PR debug/43479
22980         * ira.c (adjust_cleared_regs): New function.
22981         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
22982
22983         PR debug/19192
22984         PR debug/43479
22985         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
22986         from gimple_block.
22987         * expr.c (expand_expr_real): Restore previous
22988         curr_insn_source_location and curr_insn_block after
22989         expand_expr_real_1 call.
22990         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
22991         instead of expand_expr_real_1.
22992
22993 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
22994
22995         PR rtl-optimization/43413
22996         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
22997         hard regs too.
22998
22999 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
23000
23001         PR target/43348
23002         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
23003         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
23004
23005 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
23006
23007         * config/i386/i386.c (ix86_target_string): Add -mfma.
23008         Fix a typo in comment.
23009
23010 2010-03-22  Mike Stump  <mikestump@comcast.net>
23011
23012         PR target/23071
23013         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
23014         Don't overly align based upon packed packed fields.
23015
23016 2010-03-22  Jason Merrill  <jason@redhat.com>
23017
23018         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
23019         Use () rather than [], and move before the element type.
23020
23021 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23022
23023         * doc/configfiles.texi (Configuration Files): Removed
23024         fixinc/Makefile*, intl/Makefile.*.
23025         * doc/makefile.texi: Fixed markup. Abstract from version
23026         control system used.
23027         (Makefile): Removed obsolete java/parse.y example.
23028         * doc/sourcebuild.texi: Likewise.
23029         (Top Level): Added config, gnattools, libdecnumber, libgcc,
23030         libgomp, libssp.  Removed fastjar.
23031         (Miscellaneous Docs): Clarify location.
23032         Added COPYING3, COPYING3.LIB.
23033         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
23034
23035 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23036
23037         PR target/38085
23038         * config/i386/i386.c (x86_function_profiler)
23039         [!NO_PROFILE_COUNTERS]: Fix typo.
23040         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
23041         instead of callq.
23042
23043 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
23044             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23045
23046         * doc/sourcebuild.texi (Test Directives): Split into six
23047         subsections, with most of the current text in new subsections
23048         Directives, Selectors, and Final Actions.
23049         (Directives): Split list of test directives into multiple
23050         subsubsections.
23051         (Selectors): Describe use and syntax of selectors.
23052         (Effective-Target Keywords): Describe all existing keywords.
23053         (Add Options): Describe features for dg-add-options.
23054         (Require Support): Describe variants of dg-require-support.
23055         (Final Actions): Describe commands to use in dg-final.
23056
23057 2010-03-22  Michael Matz  <matz@suse.de>
23058
23059         PR middle-end/43475
23060         * recog.c (validate_replace_rtx_group): Replace also in
23061         REG_EQUAL and REG_EQUIV notes.
23062
23063 2010-03-22  Richard Guenther  <rguenther@suse.de>
23064
23065         PR tree-optimization/43390
23066         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
23067         sure vector extracts are type correct.
23068
23069 2010-03-22  Richard Guenther  <rguenther@suse.de>
23070
23071         PR middle-end/40106
23072         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
23073         x * sqrt (x) even when optimizing for size if the target
23074         has native support for sqrt.
23075
23076 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
23077
23078         * varasm.c (make_decl_rtl_for_debug): Also clear
23079         flag_mudflap for the duration of make_decl_rtl call.
23080
23081         PR debug/43443
23082         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
23083         locs from preserved VALUEs.
23084
23085 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23086
23087         PR middle-end/42718
23088         * pa.md (movmemsi): Set align to one if zero.
23089         (movmemdi): Likewise.
23090
23091 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
23092
23093         PR target/42321
23094         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
23095         with their corresponding prologue pushes.
23096
23097 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
23098
23099         PR target/43156
23100         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
23101         at the begining or end.
23102         (spu_expand_epilogue): Likewise.
23103
23104 2010-03-20  Richard Guenther  <rguenther@suse.de>
23105
23106         PR rtl-optimization/43438
23107         * combine.c (make_extraction): Properly zero-/sign-extend an
23108         extraction of the low part of a CONST_INT.  Also handle
23109         CONST_DOUBLE.
23110
23111 2010-03-19  Mike Stump  <mikestump@comcast.net>
23112
23113         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
23114         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
23115         (override_options): Use SUBTARGET32_DEFAULT_CPU.
23116
23117 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23118
23119         PR c/43211
23120         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
23121         an error.
23122
23123 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
23124
23125         PR rtl-optimization/42258
23126         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
23127         use that may match DEF.
23128
23129         PR target/40697
23130         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
23131         the cost of loading the constant rather than assuming
23132         COSTS_N_INSNS (1).
23133         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
23134         outer code is AND, do the same tests as the andsi3 expander and
23135         return COSTS_N_INSNS (1) if and is cheap.
23136
23137         * optabs.c (avoid_expensive_constant): Fix formatting.
23138
23139 2010-03-19  Michael Matz  <matz@suse.de>
23140
23141         PR c++/43116
23142         * attribs.c (decl_attributes): When rebuilding a function pointer
23143         type use the same qualifiers as the original pointer type.
23144
23145 2010-03-19  Martin Jambor  <mjambor@suse.cz>
23146
23147         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
23148         and is_gimple_ip_invariant_address.
23149
23150 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23151
23152         Revert
23153         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23154
23155         * config/arm/arm.c (arm_override_options): Turn off
23156         flag_dwarf2_cfi_asm for AAPCS variants.
23157
23158 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
23159
23160         PR target/43399
23161         * config/arm/arm.c (emit_multi_reg_push): Update comments.
23162         Use PRE_MODIFY instead of PRE_DEC.
23163         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
23164         (vfp_emit_fstmd): Likewise.
23165
23166 2010-03-19  Michael Matz  <matz@suse.de>
23167
23168         PR target/43305
23169         * builtins.c (expand_builtin_interclass_mathfn,
23170         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
23171         if that fails.
23172
23173 2010-03-19  Richard Guenther  <rguenther@suse.de>
23174
23175         PR tree-optimization/43415
23176         * tree-ssa-pre.c (phi_translate): Split out worker to ...
23177         (phi_translate_1): ... this.
23178         (phi_translate): Move all caching here.  Cache all NARY
23179         and REFERENCE translations.
23180
23181 2010-03-19  David S. Miller  <davem@davemloft.net>
23182
23183         With help from Eric Botcazou.
23184         * config/sparc/sparc.c: Include dwarf2out.h.
23185         (emit_pic_helper): Delete.
23186         (pic_helper_symbol_name): Delete.
23187         (pic_helper_emitted_p): Delete.
23188         (pic_helper_needed): New.
23189         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
23190         (get_pc_thunk_name): New.
23191         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
23192         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
23193         Set pic_helper_needed to true.  Don't call emit_pic_helper.
23194         (sparc_expand_prologue): Update load_pic_register call.
23195         (sparc_output_mi_thunk): Likewise.
23196         (sparc_file_end): Emit a hidden comdat symbol for the PIC
23197         thunk if possible.  Output CFI information as needed.
23198
23199 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
23200             Jack Howarth  <howarth@bromo.med.uc.edu>
23201
23202         PR target/36399
23203         * config/i386/i386.h: Fix ABI on darwin x86-32.
23204
23205 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
23206
23207         * tree.h: Declare make_decl_rtl_for_debug.
23208         * varasm.c (make_decl_rtl_for_debug): New.
23209         * dwarf2out.c (rtl_for_decl_location): Call it.
23210         * cfgexpand.c (expand_debug_expr): Call it.
23211
23212 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23213
23214         PR bootstrap/43399
23215         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
23216         mem_mode.
23217
23218         PR bootstrap/43403
23219         * var-tracking.c (vt_init_cfa_base): Do nothing if
23220         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
23221
23222 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
23223
23224         PR debug/42873
23225         * var-tracking.c (canonicalize_vars_star): New.
23226         (dataflow_post_merge_adjust): Use it.
23227
23228 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
23229
23230         PR debug/43058
23231         * var-tracking.c (non_suitable_const): New function.
23232         (add_uses): For DEBUG_INSNs with constants, don't record any
23233         value, instead just the constant value itself.
23234         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
23235         is not VAR_LOC_UNKNOWN_P, set var to the constant.
23236         (emit_notes_in_bb): Likewise.
23237         (emit_note_insn_var_location): For onepart variables if
23238         cur_loc is a VOIDmode constant, use DECL_MODE.
23239
23240 2010-03-18  Martin Jambor  <mjambor@suse.cz>
23241
23242         PR middle-end/42450
23243         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
23244         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
23245         all non-clones.  Moved call redirection...
23246         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
23247         (cgraph_materialize_all_clones): Dispose of all
23248         combined_args_to_skip bitmaps.
23249         (verify_cgraph_node): Do not check for edges pointing to wrong
23250         nodes in inline clones.
23251         * tree-inline.c (copy_bb): Call
23252         cgraph_redirect_edge_call_stmt_to_callee.
23253         * ipa.c (cgraph_remove_unreachable_nodes): Call
23254         cgraph_node_remove_callees even when there are used clones.
23255
23256 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23257
23258         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
23259
23260 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
23261
23262         PR target/43383
23263         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
23264         for 32bit.
23265
23266 2010-03-18  Michael Matz  <matz@suse.de>
23267
23268         PR middle-end/43419
23269         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
23270         into sqrt(x) if we need to preserve signed zeros.
23271
23272 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
23273             Eric Botcazou  <ebotcazou@adacore.com>
23274
23275         PR rtl-optimization/43360
23276         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
23277         note if we don't know its invariant status.
23278
23279 2010-03-18  Michael Matz  <matz@suse.de>
23280
23281         PR tree-optimization/43402
23282         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
23283         PHI chains of ssa names registered for update.
23284
23285 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
23286
23287         PR target/42427
23288         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
23289         non-offsettable and pre_modify update addressing.
23290         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
23291         and "2" alternatives "#".
23292         (*movdd_softfloat32): Make all alternatives "#";
23293         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
23294         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
23295         (*movdf_softfloat32): Make all alternatives "#";
23296         (movdi): Use the new DIFD mode iterator to create a common splitter
23297         for movdi, movdf and movdd patterns.
23298
23299 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
23300
23301         * common.opt (dumpdir): Remove redundant tab.
23302
23303 2010-03-17  Martin Jambor  <mjambor@suse.cz>
23304
23305         PR tree-optimization/43347
23306         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
23307         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
23308
23309 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
23310
23311         PR rtl-optimization/42216
23312         * regrename.c (create_new_chain): New function, broken out from...
23313         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
23314         appending a use to an empty chain.
23315         (build_def_use): Remove previous changes that convert OP_INOUT to
23316         OP_OUT operands; instead detect the case where an OP_INOUT operand
23317         uses a previously untracked register and create an empty chain for it.
23318
23319 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
23320
23321         * doc/extend.texi (Function Attributes): Rewrite unfinished
23322         sentence in ms_abi documentation.
23323
23324 2010-03-17  Alan Modra  <amodra@gmail.com>
23325
23326         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
23327         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
23328         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
23329         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
23330
23331 2010-03-16  Richard Henderson  <rth@redhat.com>
23332
23333         PR middle-end/43365
23334         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
23335         (lower_try_finally): Save and restore eh_seq around the expansion
23336         of the try-finally.
23337
23338 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23339
23340         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
23341         statements before splitting block.
23342
23343 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23344
23345         * doc/sourcebuild.texi (Testsuites): Fix markup.
23346         Use pathnames relative to gcc/testsuite.
23347         (Test Directives): Move description of how timeout is determined.
23348         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
23349         (C Tests): Correct gcc.misc-tests directory.
23350         Framework tests now live in gcc.test-framework.
23351
23352 2010-03-16  Richard Guenther  <rguenther@suse.de>
23353
23354         PR middle-end/43379
23355         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
23356         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
23357
23358 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
23359             Alexandre Oliva  <aoliva@redhat.com>
23360
23361         PR tree-optimization/42917
23362         * lambda-code.c (remove_iv): Skip debug statements.
23363         (lambda_loopnest_to_gcc_loopnest): Likewise.
23364         (not_interesting_stmt): Debug statements are not interesting.
23365
23366 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
23367
23368         PR debug/43051
23369         PR debug/43092
23370         * cselib.c (cselib_preserve_constants,
23371         cfa_base_preserved_val): New static variables.
23372         (preserve_only_constants): New function.
23373         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
23374         clear its REG_VALUES.  If cselib_preserve_constants, don't
23375         empty the whole hash table, but preserve there VALUEs with constants,
23376         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
23377         (cselib_preserve_cfa_base_value): New function.
23378         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
23379         (cselib_init): Change argument to int bitfield.  Set
23380         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
23381         is in it.
23382         (cselib_finish): Clear cselib_preserve_constants and
23383         cfa_base_preserved_val.
23384         * cselib.h (enum cselib_record_what): New enum.
23385         (cselib_init): Change argument to int.
23386         (cselib_preserve_cfa_base_value): New prototype.
23387         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
23388         * dse.c (dse_step1): Likewise.
23389         * cfgcleanup.c (thread_jump): Likewise.
23390         * sched-deps.c (sched_analyze): Likewise.
23391         * gcse.c (local_cprop_pass): Likewise.
23392         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
23393         If FN is non-NULL, call the callback always and whenever it returns
23394         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
23395         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
23396         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
23397         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
23398         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
23399         * var-tracking.c: Include recog.h.
23400         (bb_stack_adjust_offset): Remove.
23401         (vt_stack_adjustments): Don't call it, instead just gather the
23402         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
23403         (adjust_stack_reference): Remove.
23404         (compute_cfa_pointer): New function.
23405         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
23406         (struct adjust_mem_data): New type.
23407         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
23408         functions.
23409         (get_address_mode): New function.
23410         (replace_expr_with_values): Use it.
23411         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
23412         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
23413         (adjust_sets): Remove.
23414         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
23415         Use get_address_mode.
23416         (get_adjusted_src): Remove.
23417         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
23418         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
23419         (add_with_sets): Don't call adjust_sets.
23420         (fp_setter, vt_init_cfa_base): New functions.
23421         (vt_initialize): Change return type to bool.  Move most of pool etc.
23422         initialization to the beginning of the function from end.  Pass
23423         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
23424         If !frame_pointer_needed, call vt_stack_adjustment before mos
23425         vector is filled, call vt_init_cfa_base if argp/framep has been
23426         eliminated to sp.  If frame_pointer_needed and argp/framep has
23427         been eliminated to hard frame pointer, set
23428         hard_frame_pointer_adjustment and call vt_init_cfa_base after
23429         encountering fp setter in the prologue.  For MO_ADJUST, call
23430         log_op_type before pusing the op into mos vector, not afterwards.
23431         Call adjust_insn before cselib_process_insn/add_with_sets,
23432         call cancel_changes (0) afterwards.
23433         (variable_tracking_main_1): Adjust for vt_initialize calling
23434         vt_stack_adjustments and returning whether it succeeded or not.
23435
23436 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
23437
23438         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
23439         debug statements.
23440
23441 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
23442
23443         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
23444         has been set.
23445         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
23446         drap_reg has not been set.
23447
23448 2010-03-15  Michael Matz  <matz@suse.de>
23449
23450         PR middle-end/43300
23451         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
23452         use it to expand block copies.
23453         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
23454         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
23455         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
23456
23457 2010-03-15  Richard Guenther  <rguenther@suse.de>
23458
23459         PR tree-optimization/43367
23460         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
23461         elimination check.
23462
23463 2010-03-15  Richard Guenther  <rguenther@suse.de>
23464
23465         PR tree-optimization/43317
23466         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
23467
23468 2010-03-15  Martin Jambor  <mjambor@suse.cz>
23469
23470         PR tree-optimization/43141
23471         * tree-sra.c (create_abstract_origin): New function.
23472         (modify_function): Call create_abstract_origin.
23473
23474 2010-03-15  Chris Demetriou  <cgd@google.com>
23475
23476         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
23477         wasn't copied.
23478
23479 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23480
23481         PR middle-end/43354
23482         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
23483         call insert_out_of_ssa_copy for default definitions.
23484
23485 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23486
23487         * graphite-clast-to-gimple.c (my_long_long): Defined.
23488         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
23489         * graphite-sese-to-poly.c (my_long_long): Defined.
23490         (scop_ivs_can_be_represented): Use it.
23491
23492 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23493
23494         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
23495         graphite-max-bbs-per-function, and loop-block-tile-size.
23496         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
23497         with "maximum".
23498         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
23499
23500 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23501
23502         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
23503         forward declaration.
23504         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
23505         (add_upper_bounds_from_estimated_nit): New.
23506         (build_loop_iteration_domains): Use it.
23507
23508 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23509
23510         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
23511
23512 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23513
23514         PR middle-end/43306
23515         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
23516         should be an INTEGER_CST.  Also handle CASE_CONVERT.
23517
23518 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23519
23520         * graphite.c (graphite_initialize): To bound the number of bbs per
23521         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
23522         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
23523         * doc/invoke.texi: Document it.
23524
23525 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23526
23527         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
23528         * graphite-sese-to-poly.h (build_poly_scop): Same.
23529
23530 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
23531
23532         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
23533         the number of parameters in the scop.  Use as an upper bound
23534         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
23535         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
23536         * doc/invoke.texi: Document it.
23537
23538 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
23539
23540         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
23541         * doc/c-tree.texi: Remove.
23542         * doc/generic.texi: Merge c-tree.texi here.
23543         * doc/gccint.texi (Trees): Remove menu entry.
23544         (c-tree.texi): Remove @include.
23545         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
23546         * doc/languages.texi (Reading RTL): Ditto.
23547
23548 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
23549
23550         PR target/42869
23551         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
23552
23553 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
23554
23555         PR middle-end/42431
23556         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
23557         code added to work around reload clobbering CONST insns.
23558
23559 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
23560
23561         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
23562         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
23563         (cselib_preserve_only_values): Remove retain argument, don't
23564         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
23565         * cselib.h (cselib_preserve_only_values): Remove retain argument.
23566         * var-tracking.c (micro_operation): Move insn field before union.
23567         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
23568         (struct variable_tracking_info_def): Remove n_mos field, change
23569         mos into a vector of micro_operations.
23570         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
23571         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
23572         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
23573         changing into a vector.
23574         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
23575         come before all other uops generated by add_stores.
23576         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
23577         argument removal.
23578         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
23579         a vector.  Run just one pass over the bbs instead of separate counting
23580         and computation phase.
23581         (vt_finalize): Free VTI (bb)->mos vector instead of array.
23582
23583         PR debug/43329
23584         * tree-inline.c (remap_decls): Put old_var rather than origin_var
23585         into *nonlocalized_list vector.
23586         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
23587         even if origin is non-NULL.
23588         (gen_variable_die): Likewise.
23589         (process_scope_var): Don't change origin.
23590         (gen_decl_die): Likewise.
23591         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
23592         before adding new edges instead of after it, fix moving over
23593         debug stmts.
23594
23595 2010-03-11  David S. Miller  <davem@davemloft.net>
23596
23597         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
23598         of four.
23599         * configure: Rebuild.
23600
23601 2010-03-11  Martin Jambor  <mjambor@suse.cz>
23602
23603         PR tree-optimization/43257
23604         * tree.c (assign_assembler_name_if_neeeded): New function.
23605         (free_lang_data_in_cgraph): Assembler name assignment moved to the
23606         above new function.
23607         * tree.h (assign_assembler_name_if_neeeded): Declare.
23608         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
23609         the function if needed.
23610
23611 2010-03-11  Chris Demetriou  <cgd@google.com>
23612
23613         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
23614         include/stdint-gcc.h, and include/stdint.h world-readable.
23615
23616 2010-03-11  Richard Guenther  <rguenther@suse.de>
23617
23618         PR tree-optimization/43255
23619         * tree-vrp.c (process_assert_insertions_for): Do not insert
23620         asserts for trivial conditions.
23621
23622 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23623
23624         PR tree-optimization/43280
23625         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
23626         generation.  Move calculation of size out of the if branch.
23627         (find_bswap): Modify compare number generation.
23628
23629 2010-03-11  Richard Guenther  <rguenther@suse.de>
23630
23631         PR lto/43200
23632         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
23633         (input_gimple_stmt): Fixup handled component types during
23634         operand read.  Also fix up decls in ADDR_EXPRs.
23635
23636 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
23637
23638         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
23639         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
23640
23641 2010-03-10  Jan Hubicka  <jh@suse.cz>
23642
23643         PR c/43288
23644         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
23645         * varasm.c (get_variable_section): Don't do that here...
23646         (make_decl_rtl): ... and here.
23647         (do_assemble_alias): Produce decl RTL.
23648         (assemble_alias): Likewise.
23649
23650 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23651
23652         PR debug/43290
23653         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
23654         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
23655         of fde->vdrap_reg.
23656         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
23657         (based_loc_descr): Only express drap or vdrap regno based expressions
23658         using DW_OP_fbreg when not optimizing.
23659         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
23660         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
23661         REG_CFA_SET_VDRAP note.
23662
23663 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
23664
23665         PR tree-optimization/43236
23666         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
23667         error in calculation of base address in reverse iteration case.
23668         (generate_builtin): Take number of latch executions if the statement
23669         is in the latch.
23670
23671 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
23672
23673         PR middle-end/42859
23674         * tree-eh.c: Include pointer-set.h.
23675         (lower_eh_dispatch): Filter out duplicate case labels and
23676         remove the unneeded edge when the label is unused.  Return
23677         true when some edges are removed.
23678         (execute_lower_eh_dispatch): When any lowering resulted in
23679         removing an edge, also delete unreachable blocks.
23680
23681 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
23682
23683         PR bootstrap/43287
23684         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23685         UNSPEC_MACHOPIC_OFFSET.
23686
23687 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
23688
23689         PR target/43294
23690         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
23691         (m68k_delegitimize_address): New function.
23692
23693 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
23694
23695         PR debug/43299
23696         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
23697
23698         PR debug/43299
23699         * var-tracking.c (adjust_sets): New function.
23700         (count_with_sets, add_with_sets): Use it.
23701         (get_adjusted_src): New inline function.
23702         (add_stores): Use it.
23703
23704         PR debug/43304
23705         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
23706         call cselib_dummy_expand_value_rtx_cb instead of
23707         cselib_expand_value_rtx_cb.
23708
23709         PR debug/43293
23710         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
23711         * config/i386/i386.c: Include debug.h and dwarf2out.h.
23712         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
23713         and .cfi_endproc around the pic thunks.
23714         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
23715         all queued unwind info register saves are saved before the call.
23716         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
23717         considered as sp-=4 for unwind info and the pop as sp+=4 which
23718         also clobbers dest, but doesn't actually restore it.
23719
23720         PR debug/43290
23721         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
23722         RTX_FRAME_RELATED_P.
23723
23724 2010-03-09  Jie Zhang  <jie@codesourcery.com>
23725
23726         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
23727         whitespaces in output template.
23728
23729 2010-03-09  Jie Zhang  <jie@codesourcery.com>
23730
23731         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
23732         out array boundary.
23733
23734 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
23735
23736         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
23737         builtins.exp in a separate job.
23738
23739 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23740
23741         * graphite-sese-to-poly.c (add_param_constraints): Use
23742         lower_bound_in_type and upper_bound_in_type.
23743
23744 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23745
23746         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
23747         instead of unsigned_type_node.
23748
23749 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23750             Reza Yazdani  <reza.yazdani@amd.com>
23751
23752         PR middle-end/43065
23753         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
23754         on pointer type parameters.
23755
23756 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
23757
23758         PR middle-end/42644
23759         PR middle-end/42130
23760         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
23761         handle conversions from pointer to integers.
23762         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
23763         induction variable, to be able to work with code generated by CLooG.
23764         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
23765         (build_poly_scop): Bail out if we cannot codegen a loop.
23766
23767 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
23768
23769         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
23770         code generation with gloog_error.
23771
23772 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23773
23774         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
23775         Call fold_convert on all the returned values.
23776         (expand_scalar_variables_expr): Pass to
23777         expand_scalar_variables_ssa_name the type of the resulting expression.
23778
23779 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23780
23781         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
23782         ppl_min_for_le_pointset.
23783         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
23784         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
23785
23786 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23787
23788         * graphite-dependences.c (map_into_dep_poly): Removed.
23789         (dependence_polyhedron_1): Use combine_context_id_scat.
23790
23791 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23792
23793         * graphite-poly.h (struct poly_scattering): Add layout documentation.
23794         (struct poly_bb): Same.
23795         (combine_context_id_scat): New.
23796
23797 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23798
23799         PR middle-end/42326
23800         * sese.c (name_defined_in_loop_p): Return false for default
23801         definitions.
23802
23803 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23804
23805         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
23806         and clean up the logic.
23807
23808 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
23809
23810         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
23811         early return.
23812
23813 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
23814
23815         * var-tracking.c (remove_cselib_value_chains): Define only for
23816         ENABLE_CHECKING.
23817         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
23818         delete_slot_part, emit_notes_for_differences_1): Don't call
23819         remove_cselib_value_chains here.
23820         (set_slot_part, emit_notes_for_differences_2): Don't call
23821         add_cselib_value_chains here.
23822         (preserved_values): New vector.
23823         (preserve_value): New function.
23824         (add_uses, add_stores, vt_add_function_parameters): Use it
23825         instead of cselib_preserve_value.
23826         (changed_values_stack): New vector.
23827         (check_changed_vars_0): New function.
23828         (check_changed_vars_1, check_changed_vars_2): Use it.
23829         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
23830         changed_values_stack VALUEs.
23831         (vt_emit_notes): For all preserved_values call
23832         add_cselib_value_chains.  If ENABLE_CHECKING call
23833         remove_cselib_value_chains before verifying value_chains is empty.
23834         Initialize and free changed_values_stack.
23835         (vt_initialize): Initialize preserved_values.
23836         (vt_finalize): Free preserved_values.
23837
23838 2010-03-08  Richard Guenther  <rguenther@suse.de>
23839
23840         PR tree-optimization/43269
23841         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
23842         region detection.
23843
23844 2010-03-08  Martin Jambor  <mjambor@suse.cz>
23845
23846         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
23847         (ipa_is_param_called): Removed.
23848         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
23849         (ipa_print_node_params): Do not print the called flag.
23850         (ipa_write_node_info): Do not stream the called flag.
23851         (ipa_read_node_info): Likewise.
23852
23853 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
23854
23855         PR debug/43176
23856         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
23857         * cselib.c (struct expand_value_data): Add dummy field.
23858         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
23859         dummy to false.
23860         (cselib_dummy_expand_value_rtx_cb): New function.
23861         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
23862         any rtl.
23863         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
23864         * var-tracking.c: Include pointer-set.h.
23865         (variable): Change n_var_parts to char from int.  Add
23866         cur_loc_changed and in_changed_variables fields.
23867         (variable_canonicalize): Remove.
23868         (shared_var_p): New inline function.
23869         (unshare_variable): Maintain cur_loc_changed and
23870         in_changed_variables fields.  If var was in changed_variables,
23871         replace it there with new_var.  Just copy cur_loc instead of
23872         resetting it to something else.
23873         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
23874         (dataflow_set_union): Don't call variable_canonicalize.
23875         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
23876         of their DEBUG_EXPR_TREE_DECLs.
23877         (canonicalize_loc_order_check): Verify that cur_loc is NULL
23878         and in_changed_variables and cur_loc_changed is false.
23879         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
23880         and cur_loc_changed.  Don't update cur_loc here.
23881         (variable_merge_over_src): Don't call variable_canonicalize.
23882         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
23883         removing loc that is equal to cur_loc, clear cur_loc,
23884         set cur_loc_changed and ensure variable_was_changed is called.
23885         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
23886         compare pointers in cur_loc check, if it is equal to loc,
23887         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
23888         (variable_different_p): Remove compare_current_location argument,
23889         don't compare cur_loc.
23890         (dataflow_set_different_1): Adjust variable_different_p caller.
23891         (variable_was_changed): If dv had some var in changed_variables
23892         already, reset in_changed_variables flag for it and propagate
23893         cur_loc_changed over to the new variable.  On empty var
23894         always set cur_loc_changed.  Set in_changed_variables on whatever
23895         var is added to changed_variables.
23896         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
23897         Use shared_var_p.  When removing loc that is equal to cur_loc,
23898         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
23899         end, don't set it to something else, just call variable_was_changed.
23900         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
23901         loc being removed, clear cur_loc and set cur_loc_changed.
23902         Set cur_loc_changed if all locations have been removed.
23903         (struct expand_loc_callback_data): New type.
23904         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
23905         allocated.  Always create SUBREGs if simplify_subreg failed.
23906         Prefer to use cur_loc, when that fails and still in
23907         changed_variables (and seen first time) recompute it.  Set
23908         cur_loc_changed of variables which had to change cur_loc and
23909         compute elcd->cur_loc_changed if any of the subexpressions used
23910         had to change cur_loc.
23911         (vt_expand_loc): Adjust to pass arguments in
23912         expand_loc_callback_data structure.
23913         (vt_expand_loc_dummy): New function.
23914         (emitted_notes): New variable.
23915         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
23916         that weren't used for any other decl in current
23917         emit_notes_for_changes call call vt_expand_loc_dummy to update
23918         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
23919         first loc_chain location if NULL before.  Always use just
23920         cur_loc instead of first loc_chain location.  When cur_loc_changed
23921         is false, when not --enable-checking=rtl just don't emit any note.
23922         When rtl checking, compute the note and assert it is the same
23923         as previous note.  Clear cur_loc_changed and in_changed_variables
23924         at the end before removing from changed_variables.
23925         (check_changed_vars_3): New function.
23926         (emit_notes_for_changes): Traverse changed_vars to call
23927         check_changed_vars_3 on each changed var.
23928         (emit_notes_for_differences_1): Clear cur_loc_changed and
23929         in_changed_variables.  Recompute cur_loc of new_var.
23930         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
23931         (vt_emit_notes): Initialize and destroy emitted_notes.
23932
23933 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
23934
23935         PR rtl-optimization/42220
23936         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
23937         Use verify_reg_tracked to determine if we should use OP_OUT rather
23938         than OP_INOUT.
23939         (build_def_use): If we see an in-out operand for a register that we
23940         know nothing about, treat is an output if possible, fail the block if
23941         not.
23942
23943 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23944
23945         PR debug/42897
23946         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
23947         permanently.
23948
23949 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23950
23951         PR debug/42897
23952         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
23953         uses of relevant DEFs that are dead outside the loop too.
23954
23955 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
23956
23957         * var-tracking.c (dataflow_set_merge): Swap src and src2.
23958         Reverted:
23959         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
23960         PR debug/41371
23961         * var-tracking.c (values_to_unmark): New variable.
23962         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
23963         values_to_unmark vector.  Moved body to...
23964         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
23965         instead queue it into values_to_unmark vector.
23966         (vt_find_locations): Free values_to_unmark vector.
23967
23968 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
23969
23970         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
23971         (site.exp): Export them when plugins are enabled.
23972
23973 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
23974
23975         PR middle-end/42326
23976         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
23977         that contain scevs.
23978         (chrec_fold_multiply): Same.
23979
23980 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
23981
23982         PR c/43248
23983         * c-decl.c (build_compound_literal): Return early if init is
23984         an error_mark_node.
23985
23986 2010-03-04  Martin Jambor  <mjambor@suse.cz>
23987
23988         PR tree-optimization/43164
23989         PR tree-optimization/43191
23990         * tree-sra.c (type_consists_of_records_p): Reject records with
23991         zero-size bit-fields at the end.
23992
23993 2010-03-04  Mike Stump  <mikestump@comcast.net>
23994
23995         * Makefile.in (TAGS): Remove *.y.
23996
23997 2010-03-04  Richard Guenther  <rguenther@suse.de>
23998
23999         PR tree-optimization/40761
24000         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
24001         in reverse order.
24002         (my_rev_post_order_compute): New function.
24003         (init_pre): Call it.
24004
24005 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
24006
24007         PR middle-end/43209
24008         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
24009         decrease the cost of an IV candidate when the cost is infinite.
24010
24011 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24012
24013         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
24014         Use '3DNow!' for the extension of that name, ensure normal space
24015         after the string.
24016         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
24017
24018 2010-03-03  Jeff Law  <law@redhat.com>
24019
24020         * PR middle-end/32693
24021         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
24022         than gen_rtx_SUBREG.
24023         (extract_bit_field_1): Likewise.
24024
24025 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
24026
24027         * doc/sourcebuild.texi (Test directives): Document that arguments
24028         include-opts and exclude-opts are now optional for dg-skip-if,
24029         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
24030
24031 2010-03-03  Jason Merrill  <jason@redhat.com>
24032
24033         PR c++/12909
24034         * cgraph.h (varpool_node): Add extra_name field.
24035         * varpool.c (varpool_extra_name_alias): New.
24036         (varpool_assemble_decl): Emit extra name aliases.
24037         (varpool_mark_needed_node): Look past an extra name alias.
24038         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
24039         * lto-streamer-in.c (lto_input_tree): Read it.
24040         * lto-streamer-out.c (output_unreferenced_globals): Write it.
24041
24042 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
24043
24044         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
24045         (sparc*-*-solaris2*): ...this.
24046
24047 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
24048
24049         PR debug/43229
24050         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
24051         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
24052         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
24053         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
24054
24055         PR debug/43237
24056         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
24057         fallthrough to default handling, just with want_address 0 instead of 2.
24058         For single element lists, add_AT_loc directly, otherwise create an
24059         artificial variable DIE and stick location list to it.
24060
24061         PR debug/43177
24062         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
24063         (VAL_EXPR_HAS_REVERSE): Define.
24064         (reverse_op): New function.
24065         (add_stores): For reversible operations add an extra MO_VAL_USE.
24066
24067 2010-03-02  Jason Merrill  <jason@redhat.com>
24068
24069         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
24070
24071 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
24072
24073         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
24074         (sparc64-*-linux*): Likewise.
24075         (sparc64-*-solaris2*): Include assembler files before linker ones.
24076         (sparc-*-solaris2*): Simplify and reorder to match previous case.
24077         * config/sparc/gas.h: Delete.
24078         * config/sparc/sol2-64.h: Add copyright notice.
24079         * config/sparc/sol2-gas-bi.h: Likewise.
24080         * config/sparc/sol2-gld.h: Likewise.
24081         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
24082         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
24083         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
24084         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
24085         (sparc_elf_asm_named_section): Rename into...
24086         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
24087
24088 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
24089
24090         * config/alpha/alpha.c (override_options): Fix -mtune error message.
24091
24092 2010-03-02  Jeff Law  <law@redhat.com>
24093
24094         PR middle-end/42431
24095         * reload1.c (rtx_p, substitute_stack): Declare.
24096         (substitute): Record addresses of changed rtxs.
24097         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
24098         Restore the original rtx when complete.
24099         (reload): Free subsitute_stack when complete.
24100
24101 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
24102
24103         * doc/gccint.texi (menu): Add Testsuites as a chapter.
24104         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
24105         new chapter.
24106         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
24107         LTO Testing, gcov Testing, profopt Testing, compat Testing,
24108         Torture Tests): Change from subsection to section.
24109
24110 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
24111             Steven Bosscher  <steven@gcc.gnu.org>
24112
24113         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
24114         instead of bb.
24115
24116 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
24117
24118         PR middle-end/42640
24119         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
24120         the assignment from the new induction variable to the assignment
24121         of the value from the original loop PHI function.
24122
24123 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
24124             Daniel Jacobowitz  <dan@codesourcery.com>
24125
24126         * doc/sourcebuild.texi (Test directives): Clarify options to
24127         dg-skip-if.
24128
24129 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24130
24131         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
24132         Disable cfi directives unless GCC and gas agree on using read-only
24133         .eh_frame sections for 64-bit.
24134         * configure: Regenerate.
24135
24136 2010-03-01  Richard Guenther  <rguenther@suse.de>
24137
24138         PR tree-optimization/43220
24139         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
24140         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
24141
24142 2010-03-01  Richard Guenther  <rguenther@suse.de>
24143             Martin Jambor  <mjambor@suse.cz>
24144
24145         PR middle-end/41250
24146         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
24147         gimplified parameters.
24148
24149 2010-03-01  Christian Bruel  <christian.bruel@st.com>
24150
24151         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
24152
24153 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
24154
24155         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
24156
24157 2010-03-01  Richard Guenther  <rguenther@suse.de>
24158
24159         PR middle-end/43213
24160         * expr.c (expand_assignment): Use the alias-oracle to tell
24161         if the rhs aliases the result decl.
24162
24163 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24164
24165         PR pch/14940
24166         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
24167         to sol_gt_pch_get_address.
24168         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
24169         64-bit, SPARC and x86.
24170         (sol_gt_pch_get_address): New function.
24171
24172 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
24173
24174         * toplev.h (inform_n, error_n): Declare.
24175         * diagnostic.c (inform_n, error_n): New function.
24176
24177 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
24178
24179         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
24180         has no rtl yet when processing local_decls, queue it and recheck
24181         if deferred stack allocation hasn't assigned it rtl.
24182
24183 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
24184
24185         * config/sh/sh.c (unspec_bbr_uid): New.
24186         (gen_block_redirect): Use it instead of INSN_UID.
24187         (gen_far_branch): Likewise.
24188
24189 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
24190
24191         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
24192         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
24193
24194 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24195
24196         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
24197         (Warning Options): -Wno-conversion-null is valid for
24198         Objective-C++ as well.
24199         * doc/tm.texi (Named Address Spaces): Likewise.
24200         * doc/plugins.texi (Plugins): Replace TABs with spaces.
24201         * doc/tree-ssa.texi (Tree SSA): Likewise.
24202
24203 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24204
24205         PR bootstrap/43202
24206         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
24207         by default.  Don't set the default arch for
24208         i[34567]86-*-darwin*|x86_64-*-darwin*.
24209
24210 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24211
24212         PR bootstrap/43202
24213         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
24214         default.  Set the default 32bit/64bit archs with $with_arch
24215         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
24216
24217 2010-02-27  Richard Guenther  <rguenther@suse.de>
24218
24219         PR tree-optimization/43186
24220         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
24221         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
24222         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
24223         unroller iterations.
24224
24225 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
24226
24227         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
24228         required and i[34567]86-*-* targets don't support 64bit ISA.
24229
24230 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
24231
24232         PR ada/43096
24233         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
24234         the same alias set.
24235
24236 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24237
24238         * config.gcc: Set the default arch at least to Prescott for
24239         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
24240         if SSE math is enabled.
24241
24242 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24243
24244         * diagnostic.c (diagnostic_initialize): Update.
24245         (diagnostic_report_diagnostic): Test inhibit_notes_p for
24246         informative notes.
24247         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
24248         (diagnostic_inhibit_notes): New.
24249         * toplev.c (process_options): inhibit notes with -fcompare-debug.
24250
24251 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24252
24253         PR c/20631
24254         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
24255         * doc/standards.texi: Likewise.
24256         * doc/extend.texi: Likewise.
24257         * doc/trouble.texi: Likewise.
24258         * doc/cppopts.texi: Likewise.
24259         * doc/install.texi: Likewise.
24260         * c.opt (std=c90,std=gnu90): New options.
24261         * c-opts.c (c_common_handle_option): Handle them.
24262
24263 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24264
24265         PR c/24577
24266         * c-decl.c (undeclared_variable): Use an informative note.
24267
24268 2010-02-26  Richard Guenther  <rguenther@suse.de>
24269
24270         PR tree-optimization/43186
24271         * gimple.h (gimple_fold): Remove.
24272         * gimple.c (gimple_fold): Remove.  Inline into single user ...
24273         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
24274         Try harder for conditions.
24275
24276 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24277
24278         PR debug/43190
24279         * function.c (used_types_insert): Don't skip through named pointer
24280         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
24281         and it is different from the main variant's type.
24282
24283 2010-02-26  Nick Clifton  <nickc@redhat.com>
24284
24285         * config/rx/rx.md (sminsi3): Remove bogus alternative.
24286
24287 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
24288
24289         * config.gcc: Support --with-fpmath=sse for x86.
24290
24291         * config/i386/ssemath.h: New.
24292
24293         * doc/install.texi (--with-fpmath=sse): Documented.
24294
24295 2010-02-26  Richard Guenther  <rguenther@suse.de>
24296
24297         PR tree-optimization/43188
24298         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
24299         vector types of over-aligned element type.
24300
24301 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
24302
24303         PR target/43175
24304         * config/i386/i386.c (expand_vec_perm_blend): Use correct
24305         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
24306
24307 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
24308
24309         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
24310
24311 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
24312
24313         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
24314         * var-tracking.c: Include diagnostic.h.
24315         (debug_dv): New function.
24316         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
24317
24318         PR debug/43160
24319         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
24320         (add_value_chain, add_value_chains, remove_value_chain,
24321         remove_value_chains): Handle DEBUG_EXPRs.
24322         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
24323
24324         PR debug/43161
24325         * regcprop.c (struct queued_debug_insn_change): New type.
24326         (struct value_data_entry): Add debug_insn_changes field.
24327         (struct value_data): Add n_debug_insn_changes field.
24328         (debug_insn_changes_pool): New variable.
24329         (free_debug_insn_changes, apply_debug_insn_changes,
24330         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
24331         (kill_value_one_regno): Call free_debug_insn_changes if needed.
24332         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
24333         fields.
24334         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
24335         changes for them.
24336         (copyprop_hardreg_forward_1): Don't call apply_change_group for
24337         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
24338         changes, call cprop_find_used_regs via note_stores.
24339         (copyprop_hardreg_forward): When copying vd from predecessor
24340         which has any queued DEBUG_INSN changes, make sure the pointers are
24341         cleared.  At the end call df_analyze and then if there are any
24342         DEBUG_INSN changes queued at the end of some basic block for still
24343         live registers, apply them.
24344         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
24345
24346 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
24347
24348         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
24349         (arm*-*-*): Ditto.
24350
24351 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
24352
24353         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
24354         targets.  Set the default with_cpu/with_arch from arch/cpu.
24355         Allow x86-64 and native for with_cpu/with_arch.
24356
24357 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
24358
24359         * ebitmap.c: Change calls to verify_popcount with calls to
24360         sbitmap_verify_popcount.
24361         (ebitmap_clear_bit): Fixed map->cacheindex test and
24362         map>cache update when bit clearing results in an empty
24363         element.
24364
24365 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
24366
24367         PR target/43154
24368         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
24369         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
24370         and support both V2DF and V2DI modes.
24371         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
24372         support both V2DF and V2DI modes.
24373         (general): Delete trailing whitespace from a few patterns.
24374
24375         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24376         V2DF/V2DI interleave high/low builtins.
24377
24378         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
24379         new VSX builtins.
24380
24381         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
24382         interleave high/low functions.
24383
24384 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
24385
24386         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
24387         #pragma extern_prefix.
24388
24389 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
24390
24391         PR debug/43166
24392         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
24393         BLKmode, assert op0 is a MEM and just adjust its mode.
24394
24395         PR debug/43165
24396         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
24397         if bitpos isn't multiple of mode's bitsize.
24398
24399 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24400
24401         * c.opt (-ftemplate-depth=): New.
24402         (-ftemplate-depth-): Deprecate.
24403         * optc-gen.awk: Handle -ftemplate-depth=.
24404         * opth-gen.awk: Likewise.
24405         * c-opts.c (c_common_handle_option): Likewise.
24406         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
24407
24408 2010-02-24  Jason Merrill  <jason@redhat.com>
24409
24410         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
24411
24412 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24413
24414         * cfg.c (alloc_aux_for_block): Remove inline.
24415         (alloc_aux_for_edge): Likewise.
24416
24417 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24418
24419         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
24420
24421 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24422
24423         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
24424         * config/i386/sol2-gas.h: New file.
24425         * config.gcc (i[34567]86-*-solaris2*): Use it.
24426
24427 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24428
24429         PR c/43128
24430         * c-typeck.c (ep_convert_and_check): New.
24431         (build_conditional_expr): Use it.
24432         (build_binary_op): Likewise.
24433
24434 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
24435
24436         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
24437
24438         PR debug/43150
24439         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
24440         bounds even for -O+.
24441         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
24442         expr needs to have DECL_NAME set.
24443
24444 2010-02-24  Nick Clifton  <nickc@redhat.com>
24445
24446         * config/mep/mep.c: Include gimple.h.
24447         (mep_function_uses_sp): Delete unused function.
24448         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
24449         parameters.  Use unsigned integers to count args.  Return a
24450         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
24451
24452 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24453
24454         PR target/43107
24455         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
24456         greater or equal to nelt instead of 2 * nelt.
24457         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
24458         with nelt - 1.
24459
24460 2010-02-23  Jason Merrill  <jason@redhat.com>
24461
24462         PR debug/42800
24463         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
24464         in cfun->local_decls even if they have register types.
24465
24466         PR c++/42837
24467         * stor-layout.c (place_field): Don't warn about unnecessary
24468         DECL_PACKED if the type is packed.
24469
24470 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
24471
24472         PR target/43139
24473         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
24474         GOTOFF relocs, even when the base reg isn't pic pointer.
24475
24476 2010-02-23  Michael Matz  <matz@suse.de>
24477
24478         PR debug/43077
24479         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
24480         (expand_gimple_basic_block): Generate and use debug temps if there
24481         are debug uses left after the last real use of TERed ssa names.
24482         Unlink debug immediate uses when they are expanded.
24483
24484 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24485
24486         PR 43123
24487         * config/i386/i386.c (override_options): Reorganise to provide
24488         better error messages.
24489
24490 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24491
24492         PR middle-end/43083
24493         * graphite-scop-detection.c (create_single_exit_edge): Move
24494         the call to find_single_exit_edge to....
24495         (create_sese_edges): ...here.  Don't handle multiple edges
24496         exiting the function.
24497         (build_graphite_scops): Don't handle multiple edges
24498         exiting the function.
24499
24500 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24501
24502         PR middle-end/43097
24503         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
24504         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
24505
24506 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24507
24508         PR middle-end/43026
24509         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
24510
24511 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24512
24513         PR c++/43126
24514         * c-typeck.c (convert_arguments): Print declaration location.
24515         * c-common.c (validate_nargs): Rename as
24516         builtin_function_validate_nargs.
24517         (check_builtin_function_arguments): Update.
24518
24519 2010-02-22  Richard Guenther  <rguenther@suse.de>
24520
24521         PR lto/43045
24522         * tree-inline.c (declare_return_variable): Use the type of
24523         the call stmt lhs if available.
24524
24525 2010-02-22  Duncan Sands  <baldrick@free.fr>
24526
24527         * passes.c (register_pass): Always consider all pass lists when
24528         ref_pass_instance_number is zero.
24529
24530 2010-02-22  Richard Guenther  <rguenther@suse.de>
24531
24532         PR tree-optimization/42749
24533         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
24534         parameter.  Do arithmetic in the original type.
24535         (update_accumulator_with_ops): Likewise.
24536         (adjust_accumulator_values): Adjust.
24537
24538 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24539
24540         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
24541         (QI to BLKmode splitter): New splitter.
24542
24543 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
24544
24545         * config/i386/i386.c (initial_ix86_tune_features): Turn on
24546         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
24547
24548 2010-02-22  Richard Guenther  <rguenther@suse.de>
24549
24550         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
24551
24552 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
24553
24554         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
24555         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
24556         ($(T)crti.o, $(T)crtn.o): Remove rules.
24557
24558 2010-02-21  Tobias Burnus  <burnus@net-b.de>
24559
24560         PR fortran/35259
24561         * doc/invoke.texi (-fassociative-math): Document that this
24562         option is automatically enabled for Fortran.
24563
24564 2010-02-20  David S. Miller  <davem@davemloft.net>
24565
24566         * configure.ac: Test if linker and assembler properly support
24567         GOTDATA_OP relocations.
24568         * configure: Rebuild.
24569         * config.in: Likewise.
24570         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
24571         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
24572         (movsi_high_pic): Likewise.
24573         (movdi_lo_sum_pic): Likewise.
24574         (movdi_high_pic): Likewise.
24575         (movsi_pic_gotdata_op): New pattern.
24576         (movdi_pic_gotdata_op): Likewise.
24577         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
24578         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
24579
24580 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
24581
24582         PR target/43067
24583         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
24584         attribute to ssemul.
24585         (xop_mulv2div2di3_high): Ditto.
24586
24587 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24588
24589         PR c++/35669
24590         * c.opt (Wconversion-null): New option.
24591         * doc/invoke.texi (Wconversion-null): Document.
24592
24593 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24594
24595         * common.opt (Wlarger-than-): Add Undocumented.
24596
24597 2010-02-19  Mike Stump  <mikestump@comcast.net>
24598
24599         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
24600
24601 2010-02-19  Jason Merrill  <jason@redhat.com>
24602
24603         PR target/40332
24604         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
24605         * configure: Likewise.
24606
24607 2010-02-20  Alan Modra  <amodra@gmail.com>
24608
24609         PR middle-end/42344
24610         * cgraph.h (cgraph_make_decl_local): Declare.
24611         * cgraph.c (cgraph_make_decl_local): New function.
24612         (cgraph_make_node_local): Use it.
24613         * cgraphunit.c (cgraph_function_versioning): Likewise.
24614         * ipa.c (function_and_variable_visibility): Likewise.
24615
24616 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24617
24618         PR bootstrap/43121
24619         * except.c (sjlj_emit_function_enter): Don't call
24620         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
24621         directly.
24622         * rtl.h (add_reg_br_prob_note): Remove prototype.
24623
24624 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24625
24626         PR 41779
24627         * c-common.c (conversion_warning): Remove widening conversions
24628         before checking the conversion of integers to reals.
24629
24630 2010-02-19  Mike Stump  <mikestump@comcast.net>
24631
24632         PR middle-end/43125
24633         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
24634
24635         PR objc/43061
24636         * cgraphunit.c (process_function_and_variable_attributes): Check
24637         DECL_PRESERVE_P instead of looking up attribute "used".
24638         * ipa-pure-const.c (check_decl): Likewise.
24639         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
24640         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
24641         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
24642         instead of attribute "used".
24643         * config/sol2-c.c (solaris_pragma_init): Likewise.
24644         (solaris_pragma_fini): Likewise.
24645
24646 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24647
24648         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
24649         Use XCNEW instead of xcalloc.
24650         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
24651         XNEW instead of xmalloc.
24652         (get_fields): Use XNEWVEC instead of xmalloc.
24653
24654         PR debug/43084
24655         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
24656         populate vars array.
24657         (create_new_general_access): For debug stmts just reset value.
24658         (get_stmt_accesses): For accesses within debug stmts just record them
24659         using add_access_to_acc_sites instead of preventing the peeling or
24660         counting them as accesses.
24661
24662         PR middle-end/42233
24663         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
24664
24665 2010-02-19  Richard Guenther  <rguenther@suse.de>
24666
24667         PR tree-optimization/42916
24668         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
24669         instructions.
24670
24671 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
24672
24673         * configure.ac: Replace all uses of changequote in macro arguments
24674         with proper quoting.
24675
24676 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24677
24678         PR middle-end/42233
24679         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
24680
24681 2010-02-19  Richard Guenther  <rguenther@suse.de>
24682
24683         PR tree-optimization/42944
24684         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
24685         test for aliasing with errno.
24686
24687 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
24688
24689         PR middle-end/42233
24690         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
24691         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
24692         * dojump.c: Include output.h.
24693         (inv): New inline function.
24694         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
24695         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
24696         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
24697         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
24698         argument, pass it down to other calls.
24699         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
24700         add REG_BR_PROB note to the conditional jump.
24701         * cfgexpand.c (add_reg_br_prob_note): Removed.
24702         (expand_gimple_cond): Don't call it, add the probability
24703         as last argument to jumpif_1/jumpifnot_1.
24704         * Makefile.in (dojump.o): Depend on output.h.
24705         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
24706         callers.
24707         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
24708         * stmt.c (do_jump_if_equal): Likewise.
24709         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
24710         * loop-unswitch.c (compare_and_jump_seq): Likewise.
24711         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
24712         Likewise.
24713         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
24714         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
24715         jumpifnot_1 callers.
24716         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
24717         callers.
24718         (store_expr): Adjust jumpifnot caller.
24719         (store_constructor): Adjust jumpif caller.
24720
24721         PR middle-end/42233
24722         * gimplify.c (gimple_boolify): For __builtin_expect call
24723         gimple_boolify also on its first argument.
24724
24725 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
24726
24727         * configure.ac (gnu-unique-object): Wrap regexps using [] in
24728         changequote block.
24729         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
24730         * configure: Regenerated.
24731
24732 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24733
24734         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
24735         lang_hooks.types_compatible_p instead of comptypes.
24736
24737 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
24738
24739         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
24740         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
24741         if __prefer_thumb__ is defined.
24742
24743 2010-02-18  Martin Jambor  <mjambor@suse.cz>
24744
24745         PR tree-optimization/43066
24746         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
24747         array with zero-sized element type.
24748
24749 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
24750
24751         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
24752         rtx, allocate struct var_loc_node here and return it to the
24753         caller, and only if it is actually needed.
24754         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
24755         move it earlier and return immediately if it returns NULL.
24756
24757 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
24758
24759         * config/sparc/gas.h: New file.  Restore
24760         TARGET_ASM_NAMED_SECTION to its ELF default.
24761         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
24762         check !HAVE_GNU_AS.
24763         * config/sparc/sparc.c (sparc_elf_asm_named_section):
24764         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
24765         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
24766         after sparc/sysv4.h.
24767
24768 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
24769
24770         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
24771
24772 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
24773
24774         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
24775         patterns from predicated pattern.
24776
24777 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
24778
24779         PR target/43103
24780         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
24781         for insn mnemonic suffix.
24782
24783 2010-02-17  Richard Guenther  <rguenther@suse.de>
24784
24785         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
24786         to loop PHI nodes.
24787
24788 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
24789
24790         PR debug/42918
24791         * caller-save.c (save_call_clobbered_regs): If BB ends with
24792         a DEBUG_INSN, move any notes in between last real insn and the last
24793         DEBUG_INSN after the last DEBUG_INSN.
24794
24795 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
24796
24797         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
24798         Fix return type.  Fix argument type.  Explain meaning of return value.
24799
24800 2010-02-16  Richard Guenther  <rguenther@suse.de>
24801
24802         PR tree-optimization/41043
24803         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
24804         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
24805         statements ...
24806         (vrp_visit_phi_node): ... but only for loop PHI nodes.
24807
24808 2010-02-16  Ira Rosen  <irar@il.ibm.com>
24809
24810         PR tree-optimization/43074
24811         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
24812         * tree-vect-loop.c (vect_analyze_loop_operations): Add
24813         vectorizable cycles in hybrid SLP check.
24814         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
24815
24816 2010-02-16  Richard Guenther  <rguenther@suse.de>
24817
24818         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
24819         (true_dependence): If memrefs_conflict_p computes must-alias
24820         trust it.  Move TBAA check after offset-based disambiguation.
24821         (canon_true_dependence): Likewise.
24822
24823 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
24824
24825         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
24826         * doc/invoke.texi: Document it.
24827         * var-tracking.c: Include toplev.h and params.h.
24828         (vt_find_locations): Return bool indicating success.  Compute
24829         hash sizes unconditionally.  Check new parameter, report.
24830         (variable_tracking_main_1): Check vt_find_locations results and
24831         retry.  Renamed from...
24832         (variable_tracking_main): ... this.  New wrapper to preserve
24833         flag_var_tracking_assignments.
24834         * Makefile.in (var-tracking.o): Adjust dependencies.
24835
24836 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
24837             Jakub Jelinek  <jakub@redhat.com>
24838
24839         PR target/42854
24840         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
24841         if weak_import attribute is present.
24842         * config/darwin.c (machopic_select_section): Likewise.
24843
24844 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
24845
24846         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
24847         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
24848         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
24849         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
24850
24851         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
24852         types.
24853
24854         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
24855         Fix argument types.
24856
24857         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
24858         Rewrite text to refer to the names.
24859
24860 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
24861
24862         * config/i386/i386-builtin-types.def
24863         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
24864         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
24865         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
24866         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
24867         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
24868         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
24869         IX86_BUILTIN_VPERMIL2PS256.
24870         (MULTI_ARG_4_DF2_DI_I): Defined.
24871         (MULTI_ARG_4_DF2_DI_I1): Defined.
24872         (MULTI_ARG_4_SF2_SI_I): Defined.
24873         (MULTI_ARG_4_SF2_SI_I1): Defined.
24874         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
24875         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
24876         __builtin_ia32_vpermil2ps256.
24877         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
24878         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
24879         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
24880         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
24881         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
24882         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
24883         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
24884         CODE_FOR_xop_vpermil2v8sf3.
24885         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
24886         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
24887         * config/i386/xopintrin.h (_mm_permute2_pd): New.
24888         (_mm256_permute2_pd): New.
24889         (_mm_permute2_ps): New.
24890         (_mm256_permute2_ps): New.
24891
24892 2010-02-15  Nick Clifton  <nickc@redhat.com>
24893
24894         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
24895         boolean parameters.  Use emit_jump_insn when emitting a pop
24896         instruction containing a return insn.
24897         (push): Use 'true' rather than '1' as second parameter to F.
24898         (h8300_expand_prologue): Likewise.
24899         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
24900         (h8300_expand_epilogue): Likewise.
24901
24902 2010-02-15  Richard Guenther  <rguenther@suse.de>
24903
24904         PR middle-end/43068
24905         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
24906         if that is zero.
24907
24908 2010-02-15  Nick Clifton  <nickc@redhat.com>
24909
24910         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
24911         delta.
24912
24913 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
24914
24915         * intl.c (fake_ngettext): New function.
24916         * intl.h (fake_ngettext): Declare.
24917         (ngettext): Define macro.
24918         * collect2.c (notice_translated): New function.
24919         (main): Use notice_translated and ngettext.
24920         * collect2.h (notice_translated): Declare.
24921
24922 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
24923
24924         * reorg.c (delete_computation): Comment fixes.
24925         * caller-save.c (setup_save_areas): Idem.
24926         * sel-sched-dump.c (dump_lv_set): Idem.
24927         * rtl.def: Idem.
24928
24929 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24930
24931         * config/s390/s390.c (s390_sched_init): New function.
24932         (TARGET_SCHED_INIT): Target hook defined.
24933
24934 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
24935             Jack Howarth  <howarth@bromo.med.uc.edu>
24936             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
24937
24938         PR target/42982
24939         Partial revert of unintended change in fix for PR41605.
24940         * config/darwin.h: Fix typo.
24941         * config/darwin9.h: Same.
24942
24943 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
24944
24945         * c-pch.c (pch_init): Clear v.
24946
24947 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24948
24949         PR middle-end/42930
24950         * graphite-scop-detection.c (graphite_can_represent_scev): Call
24951         graphite_can_represent_init for MULT_EXPR.
24952
24953 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24954
24955         PR middle-end/42914
24956         PR middle-end/42530
24957         * graphite-sese-to-poly.c (remove_phi): New.
24958         (translate_scalar_reduction_to_array): Call remove_phi.
24959
24960 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24961
24962         PR middle-end/42771
24963         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
24964         * graphite-clast-to-gimple.h (gloog): Update declaration.
24965         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
24966         * graphite-poly.h (struct poly_bb): Add missing comments.
24967         (struct scop): Add poly_scop_p field.
24968         (POLY_SCOP_P): New.
24969         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
24970         * graphite.c (graphite_transform_loops): Build the polyhedral
24971         representation for each scop before code generation.
24972         * sese.c (rename_variables_in_operand): Removed.
24973         (rename_variables_in_expr): Return the renamed expression.
24974         (rename_sese_parameters): New.
24975         * sese.h (rename_sese_parameters): Declared.
24976
24977 2010-02-11  Richard Guenther  <rguenther@suse.de>
24978
24979         PR tree-optimization/42998
24980         * tree-ssa-pre.c (create_expression_by_pieces): Treat
24981         POINTER_PLUS_EXPR properly.
24982
24983 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
24984             Changpeng Fang  <changpeng.fang@amd.com>
24985
24986         PR middle-end/40886
24987         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
24988         the cost of an IV candidate when the IV is used in a test against zero.
24989
24990         * gcc.dg/tree-ssa/ivopts-3.c: New.
24991
24992 2010-02-11  Richard Guenther  <rguenther@suse.de>
24993
24994         PR lto/41664
24995         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
24996         pointer-vs-decl case by swapping refs.  Handle some cases
24997         of pointer-vs-decl disambiguations more conservatively.
24998         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
24999         to false after expanding.
25000
25001 2010-02-11  Richard Guenther  <rguenther@suse.de>
25002
25003         PR driver/43021
25004         * gcc.c (process_command): Handle LTO file@offset case more
25005         appropriately.
25006
25007 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
25008
25009         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
25010         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
25011         of DEBUG_INSNs.
25012         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
25013
25014         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
25015         if MEM's mode size isn't DWARF2_ADDR_SIZE.
25016         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
25017         Optimize eq/ne comparisons when both arguments are known to be
25018         zero-extended.
25019         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
25020         Don't mask operands unnecessarily if they are known to be already
25021         zero-extended.
25022
25023 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
25024
25025         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
25026         instead of loop.
25027
25028 2010-02-10  Richard Guenther  <rguenther@suse.de>
25029
25030         PR tree-optimization/43017
25031         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
25032         for wrapping signed arithmetic.
25033
25034 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25035
25036         PR debug/43010
25037         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
25038         if no debug info should be emitted for it.
25039
25040 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
25041
25042         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
25043         note when flag_exceptions is set.
25044
25045 2010-02-10  Duncan Sands  <baldrick@free.fr>
25046
25047         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
25048
25049 2010-02-10  Richard Guenther  <rguenther@suse.de>
25050
25051         PR c/43007
25052         * tree.c (get_unwidened): Handle constants.
25053         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
25054
25055 2010-02-10  Martin Jambor  <mjambor@suse.cz>
25056
25057         PR lto/42985
25058         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
25059         check for variable argument counts independently.
25060
25061 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25062
25063         PR target/42841
25064         * config/sh/sh.c (find_barrier): Increase length for non delayed
25065         conditional branches.
25066
25067 2010-02-10  Christian Bruel  <christian.bruel@st.com>
25068
25069         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
25070
25071 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
25072
25073         * builtins.c (set_builtin_user_assembler_name): Also handle
25074         ffs if int is smaller than word.
25075
25076 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
25077
25078         PR middle-end/42973
25079         * ira-conflicts.c (get_dup): Remove.
25080         (process_reg_shuffles): Add new parameter.  Use it as an
25081         additional guard for copy generation.
25082         (add_insn_allocno_copies): Rewrite.
25083
25084 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
25085
25086         * common.opt (fsched2-use-traces): Preserved for backward
25087         compatibility.
25088         * doc/invoke.texi: Remove the documentation about option
25089         -fsched2-use-traces.
25090         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
25091         flag_sched2_use_traces.
25092         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
25093         the backward compatibility flag section.
25094
25095 2010-02-09  Richard Guenther  <rguenther@suse.de>
25096
25097         PR tree-optimization/43008
25098         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
25099         make HEAP variables initialized from global memory if they
25100         are not known builtin functions.
25101         (find_func_aliases): Adjust.
25102
25103 2010-02-09  Richard Guenther  <rguenther@suse.de>
25104
25105         PR tree-optimization/43000
25106         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
25107         arithmetic manually.
25108
25109 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
25110
25111         PR tree-optimization/42931
25112         * tree-loop-linear.c (try_interchange_loops): Don't call
25113         double_int_mul if estimated_loop_iterations failed.
25114
25115 2010-02-08  Martin Jambor  <mjambor@suse.cz>
25116
25117         PR middle-end/42898
25118         * tree-sra.c (build_accesses_from_assign): Do not mark in
25119         should_scalarize_away_bitmap if stmt has volatile ops.
25120         (sra_modify_assign): Do not process assigns piecemeal if if stmt
25121         has volatile ops.
25122
25123 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
25124
25125         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
25126
25127 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
25128
25129         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
25130         before the pattern.
25131
25132 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
25133
25134         PR middle-end/42946
25135         * df-core.c (df_finish_pass): Change type of saved_flags to int.
25136
25137 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25138
25139         PR middle-end/42988
25140         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
25141         to unknown_dependence.
25142         (graphite_legal_transform_dr): Handle the unknown_dependence.
25143         (graphite_carried_dependence_level_k): Same.
25144
25145 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
25146
25147         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
25148
25149 2010-02-07  Richard Guenther  <rguenther@suse.de>
25150
25151         PR middle-end/42991
25152         * expr.c (get_inner_reference): Always initialize *pbitsize.
25153
25154 2010-02-07  Richard Guenther  <rguenther@suse.de>
25155
25156         PR middle-end/42956
25157         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
25158         new ARRAY_REFs on variable size element or minimal index arrays.
25159         Complete.
25160         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
25161         gimple_fold_indirect_ref.
25162
25163 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
25164
25165         PR target/42957
25166         * arm.c (arm_override_options): Just return if the user has specified
25167         an invalid fpu name.
25168
25169 2010-02-03  Jason Merrill  <jason@redhat.com>
25170
25171         PR c++/42870
25172         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
25173         i386_pe_maybe_record_exported_symbol.
25174
25175 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
25176
25177         PR target/42924
25178         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25179         (pa_delegitimize_address): New function.
25180
25181 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
25182
25183         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
25184         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
25185
25186 2010-02-05  Richard Guenther  <rguenther@suse.de>
25187
25188         PR lto/42762
25189         * lto-streamer-in.c (get_resolution): Deal with references
25190         to undefined functions.
25191
25192 2010-02-05  Richard Guenther  <rguenther@suse.de>
25193
25194         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
25195         (fold_const_aggregate_ref): Likewise.
25196         (ccp_fold_stmt): Substitute loads.
25197         (maybe_fold_reference): Verify types before substituting.
25198         Unshare properly.
25199         (fold_gimple_assign): Unshare properly.
25200         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
25201
25202 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
25203
25204         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
25205         for rs6000_gen_cell_microcode.
25206
25207 2010-02-04  Richard Guenther  <rguenther@suse.de>
25208
25209         PR rtl-optimization/42952
25210         * dse.c (const_or_frame_p): Remove MEM handling.
25211
25212 2010-02-04  Nick Clifton  <nickc@redhat.com>
25213
25214         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
25215         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
25216         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
25217         (mn10300_asm_output_mi_thunk): New function.
25218         (mn10300_can_output_mu_thunk): New function.
25219         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
25220         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
25221         (FUNCTION_ARG): Delete incorrect comment.
25222
25223 2010-02-03  Jason Merrill  <jason@redhat.com>
25224
25225         PR c++/40138
25226         * fold-const.c (operand_equal_p): Handle erroneous types.
25227
25228 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
25229
25230         * config/h8300/h8300.md (can_delay): Fix attibute condition.
25231
25232 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
25233
25234         PR rtl-optimization/42941
25235         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
25236         of xmalloc.
25237
25238 2010-02-03  Jason Merrill  <jason@redhat.com>
25239
25240         PR c++/35652
25241         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
25242
25243 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
25244
25245         PR debug/42896
25246         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
25247         (cselib_reset_table): Renamed from...
25248         (cselib_reset_table_with_next_value): ... this.
25249         (cselib_get_next_uid): Renamed from...
25250         (cselib_get_next_unknown_value): ... this.
25251         * cselib.c (next_uid): Renamed from...
25252         (next_unknown_value): ... this.
25253         (cselib_clear_table): Adjust.
25254         (cselib_reset_table): Adjust.  Renamed from...
25255         (cselib_reset_table_with_next_value): ... this.
25256         (cselib_get_next_uid): Adjust.  Renamed from...
25257         (cselib_get_next_unknown_value): ... this.
25258         (get_value_hash): Use hash.
25259         (cselib_hash_rtx): Likewise.
25260         (new_cselib_val): Adjust.  Set and dump uid.
25261         (cselib_lookup_mem): Pass next_uid as hash.
25262         (cselib_subst_to_values): Likewise.
25263         (cselib_log_lookup): Dump uid.
25264         (cselib_lookup): Pass next_uid as hash.  Adjust.
25265         (cselib_process_insn): Adjust.
25266         (cselib_init): Initialize next_uid.
25267         (cselib_finish): Adjust.
25268         (dump_cselib_table): Likewise.
25269         * dse.c (canon_address): Dump value uid.
25270         * print-rtl.c (print_rtx): Print value uid.
25271         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
25272         (dvuid): New type.
25273         (dv_uid): New function, sort of renamed from...
25274         (dv_htab_hash): ... this, reimplemented in terms of it and...
25275         (dv_uid2hash): ... this.  New.
25276         (variable_htab_eq): Drop excess assertions.
25277         (tie_break_pointers): Removed.
25278         (canon_value_cmp): Compare uids.
25279         (variable_post_merge_New_vals): Print uids.
25280         (vt_add_function_parameters): Adjust.
25281         (vt_initialize): Reset table.  Adjust.
25282
25283 2010-02-03  Richard Guenther  <rguenther@suse.de>
25284
25285         PR tree-optimization/42944
25286         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
25287         (call_may_clobber_ref_p_1): Likewise.  Properly handle
25288         malloc and calloc clobbering errno.
25289
25290 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
25291
25292         * doc/invoke.texi: Fix name of sched1 dump.
25293
25294         * opts.c (decode_options): Set flag_tree_switch_conversion
25295         only conditionally on optimize >= 2.
25296
25297         * gcse.c: Assorted comment fixes in pass description.
25298
25299 2010-02-03  Anthony Green  <green@moxielogic.com>
25300
25301         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
25302         nop padding in order to maintain alignment of storage location of
25303         target function address.
25304         (moxie_trampoline_init): Store target function address at newly
25305         aligned location.
25306         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
25307         to 32.
25308         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
25309
25310 2010-02-03  Richard Guenther  <rguenther@suse.de>
25311
25312         PR middle-end/42927
25313         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
25314
25315 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25316
25317         * config.gcc: Reenable check for obsolete targets.
25318         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
25319         mips-sgi-irix6.[0-4]*.
25320
25321 2010-02-02  Nick Clifton  <nickc@redhat.com>
25322
25323         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
25324         constant size of 4 as being the same as 0.
25325         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
25326         can take values in the range 0..4.
25327
25328 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
25329
25330         PR java/41991
25331         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
25332         as _darwin10_Unwind_FindEnclosingFunction().
25333         * libgcc-libsystem.ver: New.
25334
25335 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
25336
25337         PR target/41399
25338         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
25339         implicitly set registers.
25340
25341 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
25342
25343         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
25344         (arm_override_options): Allow automatic selection of the thread
25345         pointer register if thumb2.
25346         (legitimize_pic_address): Improve code sequences for Thumb2.
25347         (arm_call_tls_get_addr): Likewise.
25348         (legitimize_tls_address): Likewise.
25349         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
25350         (pic_load_addr_32bit): ... this.  New named pattern.
25351         * thumb2.md (pic_load_addr_thumb2): Delete.
25352         (pic_load_dot_plus_four): Delete.
25353         (tls_load_dot_plus_four): New named pattern.
25354
25355 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25356
25357         PR libgomp/29986
25358         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
25359         Document fix for TLS bug.
25360
25361 2010-01-31  Richard Guenther  <rguenther@suse.de>
25362
25363         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
25364         conservatively correct.
25365
25366 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25367
25368         PR target/42850
25369         Revert:
25370         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25371
25372         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
25373
25374 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25375
25376         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
25377
25378 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
25379
25380         * config.gcc: Adjust order of makefile fragments for mingw targets.
25381
25382 2010-01-31  Richard Guenther  <rguenther@suse.de>
25383
25384         PR middle-end/42898
25385         * gimplify.c (gimplify_init_constructor): For volatile LHS
25386         initialize a temporary.
25387
25388 2010-01-31  Matthias Klose  <doko@ubuntu.com>
25389
25390         * configure.ac: Fix __stack_chk_fail check for cross builds configured
25391         --with-headers
25392         * configure: Regenerate.
25393
25394 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
25395
25396         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
25397         the same alias set and their sizes different constantness.
25398         (aliasing_component_refs_p): Revert 2009-10-24 change.
25399
25400 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25401
25402         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
25403         unused.
25404
25405 2010-01-29  Richard Guenther  <rguenther@suse.de>
25406
25407         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
25408         Assert we successfully updated the call.
25409
25410 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
25411
25412         PR rtl-optimization/42889
25413         * df.h (df_set_bb_dirty_nonlr): New prototype.
25414         * df-core.c (df_set_bb_dirty_nonlr): New function.
25415         * df-scan.c (df_insn_rescan): Call it instead of
25416         df_set_bb_dirty for DEBUG_INSNs.
25417
25418 2010-01-29  Richard Guenther  <rguenther@suse.de>
25419
25420         PR middle-end/37448
25421         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
25422         quadratic behavior in most cases.
25423
25424 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
25425
25426         PR target/42891
25427         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
25428         in the call to gen_x86_movsicc_0_m1.
25429
25430 2010-01-28  Richard Guenther  <rguenther@suse.de>
25431
25432         PR tree-optimization/42871
25433         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
25434
25435 2010-01-28  Richard Guenther  <rguenther@suse.de>
25436
25437         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
25438         into call arguments.
25439
25440 2010-01-28  Richard Guenther  <rguenther@suse.de>
25441
25442         PR middle-end/42883
25443         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
25444         the forwarder if the destination is an EH landing pad.
25445
25446 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
25447
25448         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
25449         block list passed to gimple_duplicate_sese_tail.
25450         (parallelize_loops): Avoid parallelization when the function
25451         has_nonlocal_label.
25452         Avoid parallelization when the preheader is IRREDUCIBLE.
25453         Try to optimize when estimated_loop_iterations_int is unresolved.
25454         Add the loop's location to the dump file.
25455         * tree-cfg.c (add_phi_args_after_redirect): Remove.
25456         (gimple_duplicate_sese_tail): Remove the check for the latch.
25457         Redirect nexits to the exit block.
25458         Remove handling of the incoming edges to the latch.
25459         Redirect the backedge from the copied latch to the exit bb.
25460
25461 2010-01-28  Michael Matz  <matz@suse.de>
25462
25463         PR target/42881
25464         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
25465         Wrap force_reg into a sequence, emit it before user.
25466
25467 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
25468
25469         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
25470         (arm_rev): New.
25471         (arm_legacy_rev): Likewise.
25472         (thumb_legacy_rev): Likewise.
25473
25474 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25475
25476         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
25477         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
25478         on MEM's address failed, try avoid_constant_pool_reference and
25479         recurse if it returned something different.
25480         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
25481         address, try avoid_constant_pool_reference and recurse if it
25482         returned something different.
25483         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
25484         address and avoid_constant_pool_reference returned something
25485         different, don't set have_address.
25486
25487 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
25488
25489         PR debug/42861
25490         * var-tracking.c (val_store): Add modified argument, obey it.
25491         Adjust callers.
25492         (count_uses): Move down logging of main.
25493         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
25494         don't need resolution.
25495         (emit_notes_in_bb): Likewise.
25496
25497 2010-01-27  Richard Guenther  <rguenther@suse.de>
25498
25499         PR middle-end/42878
25500         * tree-inline.c (remap_decl): Delay remapping of SSA name
25501         default definitions until we need them.
25502
25503 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
25504
25505         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
25506         (rs6000_delegitimize_address): New function.
25507
25508         * config/s390/s390.c (s390_delegitimize_address): Call
25509         delegitimize_mem_from_attrs.
25510
25511         PR middle-end/42874
25512         * tree-inline.c (cannot_copy_type_1): Removed.
25513         (copy_forbidden): Don't forbid copying of functions containing
25514         records/unions with variable length fields.
25515
25516 2010-01-27  Christian Bruel  <christian.bruel@st.com>
25517
25518         Revert:
25519         PR target/42841
25520         * config/sh/sh.c (find_barrier): Increase length for non delayed
25521         conditional branches.
25522
25523 2010-01-27  Matthias Klose  <doko@ubuntu.com>
25524
25525         * configure.ac (gnu-unique-object): Fix ldd version check.
25526         * configure: Regenerate.
25527
25528 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25529
25530         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
25531         HAVE_GNU_AS value.
25532         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
25533         Test for HAVE_GNU_AS value.
25534
25535 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25536
25537         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
25538         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
25539         INT64_TYPE): Define.
25540         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
25541         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
25542         INT_LEAST64_TYPE): Define.
25543         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
25544         UINT_LEAST64_TYPE): Define.
25545         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
25546         INT_FAST64_TYPE): Define.
25547         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
25548         UINT_FAST64_TYPE): Define.
25549         (INTMAX_TYPE, UINTMAX_TYPE): Define.
25550         (INTPTR_TYPE, UINTPTR_TYPE): Define.
25551         (SIG_ATOMIC_TYPE): Define.
25552
25553 2010-01-26  Richard Guenther  <rguenther@suse.de>
25554
25555         * df-scan.c (df_scan_set_bb_info): Remove assert.
25556         (df_insn_rescan_debug_internal): Merge asserts.
25557         (df_install_ref): Likewise.
25558         (df_mark_reg): Use bitmap_set_range.
25559         (df_hard_reg_used_p): Remove assert.
25560         (df_hard_reg_used_count): Likewise.
25561
25562 2010-01-26  Richard Guenther  <rguenther@suse.de>
25563
25564         PR rtl-optimization/42685
25565         * web.c (web_main): Ignore DEBUG_INSNs.
25566
25567 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
25568
25569         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
25570
25571         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
25572         Fix types of fndecl and arglist parameters.
25573
25574 2010-01-26  Richard Guenther  <rguenther@suse.de>
25575
25576         PR middle-end/42806
25577         * tree-eh.c (unsplit_eh): Skip debug insns.
25578
25579 2010-01-26  Richard Guenther  <rguenther@suse.de>
25580
25581         PR tree-optimization/42250
25582         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
25583
25584 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
25585
25586         PR fortran/42866
25587         * omp-low.c (expand_omp_sections): Only use single_pred if
25588         l2_bb is single_pred_p.
25589
25590 2010-01-25  Christian Bruel  <christian.bruel@st.com>
25591
25592         PR target/42841
25593         * config/sh/sh.c (find_barrier): Increase length for non delayed
25594         conditional branches.
25595         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
25596
25597 2010-01-24  David S. Miller  <davem@davemloft.net>
25598
25599         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
25600         define if not using GAS.
25601         * config/sparc/sparc.c (sparc_elf_asm_named_section):
25602         Likewise.  Delete SECTION_MERGE code, which is only applicable
25603         when using GAS.
25604
25605 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
25606
25607         PR c++/42748
25608         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
25609         mangling of va_list in system headers.
25610
25611 2010-01-23  Toon Moene  <toon@moene.org>
25612
25613         * tree-predcom.c (combine_chains): Return NULL, not false.
25614
25615 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
25616
25617         * tree-loop-distribution.c (distribute_loop): Fix declaration and
25618         initialization of variable res to agree with return type.
25619
25620 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
25621
25622         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
25623         * tree-sra.c: Add include of expr.h.
25624
25625 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
25626
25627         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
25628         insert the debug stmt on the single non-EH edge from the stmt.
25629
25630 2010-01-22  Richard Henderson  <rth@redhat.com>
25631
25632         PR tree-opt/42833
25633         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
25634         the RHS until after generate_subtree_copies has insertted its
25635         code before the current statement.
25636
25637 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
25638
25639         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
25640
25641         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
25642
25643 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25644
25645         PR tree-optimization/42585
25646         * tree-sra.c (struct access): New field grp_total_scalarization.
25647         (dump_access): Dump the new field.
25648         (should_scalarize_away_bitmap): New variable.
25649         (cannot_scalarize_away_bitmap): Likewise.
25650         (sra_initialize): Allocate new bitmaps.
25651         (sra_deinitialize): Free new bitmaps.
25652         (create_access_1): New function.
25653         (create_access): Parts moved to create_access_1.
25654         (type_consists_of_records_p): New function.
25655         (completely_scalarize_record): Likewise.
25656         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
25657         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
25658         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
25659         access.
25660         (analyze_all_variable_accesses): Completely scalarize small eligible
25661         records.
25662
25663 2010-01-21  Martin Jambor  <mjambor@suse.cz>
25664
25665         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
25666
25667 2010-01-21  Andrew Haley  <aph@redhat.com>
25668
25669         * gcc.c (process_command): Move lang_specific_driver before
25670         setting cc_libexec_prefix.
25671
25672 2010-01-21  Richard Guenther  <rguenther@suse.de>
25673
25674         PR middle-end/19988
25675         * fold-const.c (negate_expr_p): Pretend only negative
25676         real constants are easily negatable.
25677
25678 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
25679             Jason Merrill  <jason@redhat.com>
25680
25681         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
25682         (TYPE_TRANSPARENT_AGGR): this, for union and record.
25683         * calls.c (initialize argument_information): Handle it.
25684         * c-common.c (handle_transparent_union_attribute): Use new name.
25685         * c-decl.c (finish_struct): Ditto.
25686         * c-typeck.c (type_lists_compatible_p): Ditto.
25687         (convert_for_assignment): Use new name and also handle record.
25688         * function.c (aggregate_value_p): Handle it.
25689         (pass_by_reference): Ditto.
25690         (assign_parm_data_types): Ditto.
25691         * print-tree.c (print_node): Ditto.
25692         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
25693         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
25694         * tree.c (first_field): New fn.
25695
25696 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
25697
25698         PR target/42818
25699         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
25700         even when linking statically, for now.
25701
25702 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
25703
25704         PR debug/42715
25705         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
25706         without a cselib val.
25707         (count_uses): Accept MO_VAL_SET with no val on stores.
25708         (add_stores): Likewise.
25709
25710 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25711
25712         * var-tracking.c (check_value_val): Add a compile time assertion.
25713         (dv_is_decl_p): Simplify.
25714         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
25715         gcc_assert if ENABLE_CHECKING.
25716
25717 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
25718
25719         PR debug/42782
25720         * var-tracking.c: Include tree-flow.h.
25721         (mem_dies_at_call): New.
25722         (dataflow_set_preserve_mem_locs): Use it.
25723         (dataflow_set_remove_mem_locs): Likewise.
25724         (dump_var): Renamed from dump_variable.  Adjust all callers.
25725         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
25726         * Makefile.in (var-tracking.o): Adjust deps.
25727
25728 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
25729
25730         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
25731
25732 2010-01-20  Richard Guenther  <rguenther@suse.de>
25733
25734         PR tree-optimization/42717
25735         * tree-ssa-dce.c (get_live_post_dom): Remove.
25736         (forward_edge_to_pdom): Take an arbitrary edge to copy
25737         degenerate PHI args from.
25738         (remove_dead_stmt): Use the first post-dominator even if it
25739         does not contain live statements as redirection destination.
25740
25741 2010-01-20  Richard Guenther  <rguenther@suse.de>
25742
25743         * tree-inline.c (estimate_num_insns): Handle EH builtins.
25744
25745 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25746
25747         * sel-sched.c (create_speculation_check): Remove set but not used
25748         variable twin.
25749         (try_transformation_cache): Remove set but not used variable ds.
25750         (calculate_privileged_insns): Remove set but not used variables
25751         cur_insn and min_spec_insn.
25752         (find_best_expr): Remove set but not used variable avail_n.
25753         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
25754         variable e.
25755         * cgraphunit.c (assemble_thunk): Remove set but not used variable
25756         false_label.
25757         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
25758         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
25759         new_scop_exit_edge.
25760
25761 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
25762
25763         PR bootstrap/42786
25764         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
25765         cpu types.  Add support for *-sse3 cpu types.
25766         (x86_64-*-*): Ditto.
25767
25768 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25769
25770         PR middle-end/42803
25771         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
25772         argument, call initializer_constant_valid_p_1 instead of
25773         initializer_constant_valid_p, pass CACHE to it, return NULL
25774         immediately if first call returns NULL.
25775         (initializer_constant_valid_p_1): New function.
25776         (initializer_constant_valid_p): Use it.
25777
25778 2010-01-20  Thomas Quinot  <quinot@adacore.com>
25779
25780         * tree.def (PLACEHOLDER_EXPR): Fix comment.
25781
25782 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
25783
25784         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
25785         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
25786         (loc_list_from_tree): Don't handle unsigned division.  Handle
25787         signed modulo using DW_OP_{over,over,div,mul,minus}.
25788         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
25789         modulo instead of signed.
25790
25791 2010-01-20  DJ Delorie  <dj@redhat.com>
25792
25793         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
25794         (Fpa): Pass it
25795         (h8300_emit_stack_adjustment): Propogate it.
25796         (push): Pass it.
25797         (h8300_expand_prologue): Likewise.
25798         (h8300_expand_epilogue): Likewise.
25799
25800 2010-01-19  Michael Matz  <matz@suse.de>
25801
25802         PR tree-optimization/41783
25803         * tree-data-ref.c (toplevel): Include flags.h.
25804         (dump_data_dependence_relation):  Also dump the inputs if the
25805         result will be unknown.
25806         (split_constant_offset_1): Look through some conversions.
25807         * tree-predcom.c (determine_roots_comp): Restart a new chain if
25808         the offset from last element is too large.
25809         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
25810         (reassociate_to_the_same_stmt): Handle vector registers.
25811         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
25812         (e.g. conversions).
25813         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
25814         wide_prolog_niters argument, emit widening instructions.
25815         (vect_do_peeling_for_alignment): Adjust caller, use widened
25816         variant of the iteration cound.
25817         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
25818
25819 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25820
25821         PR target/38697
25822         * config/arm/neon-testgen.m (emit_automatics): New parameter
25823         features. Adjust for Fixed_return_reg feature.
25824         (test_intrinsic): Call emit_automatics with new feature.
25825         * config/arm/neon.ml: Update copyright years.
25826         (features): New Fixed_return_reg feature.
25827         (ops): Update feature for Vget_low.
25828
25829 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
25830
25831         PR tree-optimization/42719
25832         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
25833         stmt uses.
25834
25835         PR debug/42728
25836         * fwprop.c (all_uses_available_at): Return false if def_set dest
25837         is a REG that is used in def_insn.
25838
25839 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
25840
25841         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
25842
25843         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
25844         Add argument names.
25845
25846         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
25847
25848         * target.h (struct gcc_target) <secondary_reload>: Change type
25849         of last argument to secondary_reload_info *.
25850
25851 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
25852
25853         PR target/42774
25854         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
25855         memory references with unaligned offsets.  Remove CQImode handling.
25856         (unaligned_memory_operand): Return 1 for memory references with
25857         unaligned offsets.  Remove CQImode handling.
25858
25859 2010-01-18  Richard Guenther  <rguenther@suse.de>
25860
25861         PR middle-end/39954
25862         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
25863         builtin calls.
25864
25865 2010-01-18  Richard Guenther  <rguenther@suse.de>
25866
25867         PR tree-optimization/42781
25868         * tree-ssa-structalias.c (find_what_var_points_to): Skip
25869         restrict processing only if the original variable was artificial.
25870
25871 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
25872
25873         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
25874         find number of popped argument bytes.
25875
25876         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
25877         Fix the text that describes the return value for invalid insns.
25878
25879         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
25880
25881         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
25882         Clarify what 'cost of the -dependence' is.  Fix quoting.
25883
25884         * toplev.c (default_get_pch_validity): Rename argument to "sz".
25885         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
25886
25887 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
25888
25889         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
25890         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
25891
25892 2010-01-17  Richard Guenther  <rguenther@suse.de>
25893
25894         PR middle-end/42248
25895         * function.c (split_complex_args): Take a VEC to modify.
25896         (assign_parms_augmented_arg_list): Build a VEC instead of
25897         a chain of PARM_DECLs.
25898         (assign_parms_unsplit_complex): Take a VEC of arguments.
25899         Do not fixup unmodified parms.
25900         (assign_parms): Deal with the VEC.
25901         (gimplify_parameters): Likewise.
25902
25903 2010-01-17  Richard Guenther  <rguenther@suse.de>
25904
25905         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
25906         node existence check.
25907         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
25908         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
25909         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
25910         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
25911         (gimple_execute_on_growing_pred): Likewise.
25912
25913 2010-01-17  Richard Guenther  <rguenther@suse.de>
25914
25915         PR tree-optimization/42773
25916         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
25917         (compute_antic_aux): Likewise.
25918         (compute_partial_antic_aux): Likewise.
25919
25920 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
25921
25922         PR debug/42767
25923         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
25924         and US_TRUNCATE.
25925
25926 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
25927
25928         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
25929         appearance.
25930
25931         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
25932         Fix markup for strict argument.
25933
25934         (TARGET_SCHED_REORDER2): Fix argument types.
25935
25936         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
25937         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
25938
25939         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
25940         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
25941
25942         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
25943         Add argument name.
25944
25945         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
25946         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
25947         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
25948         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
25949         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
25950
25951         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
25952
25953         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
25954
25955         (TARGET_ASM_RELOC_RW_MASK): Add return type.
25956         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
25957
25958         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
25959
25960         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
25961         Use prototype.
25962
25963         (TARGET_ASM_NAMED_SECTION): Fix argument list.
25964
25965         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
25966         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
25967
25968         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
25969
25970         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
25971
25972         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
25973         referring to it.  Fix language.
25974
25975         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
25976
25977         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
25978
25979         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
25980
25981         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
25982
25983         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
25984         '@var{stream}.  Remove stray 'and'.
25985
25986         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
25987
25988         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
25989
25990         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
25991
25992         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
25993         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
25994
25995         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
25996         Fix description of return value.
25997         Rename argument "sz" to "len."
25998
25999         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
26000         Clarify meaning of 'true' return value.
26001
26002         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
26003
26004         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
26005         rep_mode versus mode_rep.
26006
26007         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
26008
26009         (TARGET_BUILTIN_DECL): Fix name.
26010
26011         (TARGET_COMMUTATIVE_P): Fix type of first argument.
26012
26013         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
26014
26015         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
26016
26017         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
26018
26019         (TARGET_RELAXED_ORDERING): Use @deftypevr.
26020
26021         (TARGET_GET_DRAP_RTX): Note that this is a hook.
26022         Clarify language.
26023
26024         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
26025         Rename argument tm_fn to md_fn.
26026
26027         (TARGET_OPTION_PRINT): Fix argument list.
26028
26029 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
26030
26031         PR target/42664
26032         * config/i386/i386.c (ix86_fixup_binary_operands):
26033         Revert FMA4 fixup of operands.
26034
26035 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26036
26037         PR gcc/42525
26038         * Makefile.in (write_entries_to_file, install-plugin):
26039         Use \012 instead of \n with tr.
26040
26041 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
26042
26043         * configure.ac (HAVE_AS_REF): New C macro.
26044         * configure: Regenerate.
26045         * config.in: Likewise.
26046         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
26047         if HAVE_AS_REF.
26048         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
26049         if HAVE_AS_REF.
26050
26051 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
26052
26053         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
26054
26055         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
26056
26057         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
26058
26059         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
26060
26061         (TARGET_IN_SMALL_DATA_P): Fix argument type.
26062
26063         (TARGET_BINDS_LOCAL_P): Fix argument type.
26064
26065         (TARGET_ASM_FILE_END): Use prototype.
26066
26067         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
26068
26069         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
26070
26071         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
26072
26073         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
26074
26075         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
26076         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
26077
26078         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
26079         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
26080
26081         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
26082         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
26083         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
26084         (TARGET_ADDR_SPACE_CONVERT): Likewise.
26085
26086         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
26087
26088         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
26089
26090         (TARGET_INIT_BUILTINS): Use prototype.
26091
26092         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
26093         Put 'const char *' in braces.  Fix parameter types.
26094         (TARGET_INVALID_CONVERSION): Fix parameter types.
26095         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
26096         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
26097
26098         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
26099         Fix argument type.
26100
26101         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
26102
26103         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
26104
26105 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
26106
26107         * doc/tm.texi (TARGET_HELP): Fix return type.
26108
26109         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
26110         in braces.  Fix argument types.
26111
26112         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
26113
26114         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
26115
26116         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
26117
26118         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
26119         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
26120
26121         (TARGET_MANGLE_TYPE): Fix argument types.
26122
26123         (TARGET_IRA_COVER_CLASSES): Use prototype.
26124
26125         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
26126
26127         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
26128
26129         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
26130
26131         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
26132
26133         (TARGET_CALLEE_COPIES): Fix argument types.
26134
26135         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
26136
26137         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
26138
26139         (TARGET_FUNCTION_VALUE): Fix argument types.
26140
26141         (TARGET_RETURN_IN_MSB): Fix argument type.
26142
26143         (TARGET_RETURN_IN_MEMORY): Fix argument types.
26144
26145         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
26146
26147         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
26148
26149         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
26150         agree with return type.
26151
26152         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
26153
26154 2010-01-15  Jing Yu  <jingyu@google.com>
26155
26156         PR rtl-optimization/42691
26157         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
26158         a pseudo to a constant and are merged, and adjust comments.
26159
26160 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
26161
26162         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
26163
26164 2010-01-15  Richard Guenther  <rguenther@suse.de>
26165
26166         PR middle-end/42739
26167         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
26168         labels of computed or non-local gotos to the destination.
26169         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
26170         landing pad label is the first label.
26171
26172 2010-01-15  Richard Guenther  <rguenther@suse.de>
26173
26174         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
26175
26176 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
26177
26178         PR target/42747
26179         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
26180         to allow generation of the xssqrtdp instruction on power7.
26181         (sqrtdf2_fpr): Ditto.
26182
26183 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26184
26185         PR middle-end/42674
26186         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
26187         functions with noreturn attribute.
26188
26189         PR c++/42608
26190         * varasm.c (declare_weak): Add weak attribute to decl if it
26191         doesn't have one already.
26192         (assemble_external): Only add decls to weak_decls if they also
26193         have weak attribute.
26194
26195 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
26196
26197         * var-tracking.c (var_reg_delete): Don't delete the association
26198         between REGs and values or one-part variables if the register
26199         isn't clobbered.
26200
26201 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26202
26203         PR debug/42657
26204         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
26205         because its first operand is a non-localized variable.
26206
26207 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26208
26209         PR tree-optimization/42706
26210         * tree-sra.c (encountered_recursive_call): New variable.
26211         (encountered_unchangable_recursive_call): Likewise.
26212         (sra_initialize): Initialize both new variables.
26213         (callsite_has_enough_arguments_p): New function.
26214         (scan_function): Call decl and flags check only for IPA-SRA, check
26215         whether there is a recursive call and whether it has enough arguments.
26216         (all_callers_have_enough_arguments_p): New function.
26217         (convert_callers): Look for recursive calls only when
26218         encountered_recursive_call is set.
26219         (ipa_early_sra): Bail out either if
26220         !all_callers_have_enough_arguments_p or
26221         encountered_unchangable_recursive_call.
26222
26223 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26224
26225         * sel-sched.c: Add 2010 to copyright years.
26226         * sel-sched-ir.c: Likewise.
26227         * sel-sched-ir.h: Likewise.
26228
26229 2010-01-14  Martin Jambor  <mjambor@suse.cz>
26230
26231         PR tree-optimization/42714
26232         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
26233         constructors specially.
26234
26235 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26236
26237         * config/i386/drivers-i386.c (detect_caches_intel):
26238         Add l2sizekb parameter and fill in.
26239         (host_detect_local_cpu): Add l2sizekb, fill in.
26240         Add Atom small cache heuristic.
26241
26242 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26243
26244         * config/i386/drivers-i386.c (detect_caches_cpuid4):
26245         Add level3 parameter and fill in.
26246         (detect_caches_intel): Handle level3 cache.
26247
26248 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26249
26250         * config/i386/drivers-i386.c (host_detect_local_cpu):
26251         Fix core duo detection.
26252
26253 2010-01-14  Andi Kleen  <ak@linux.intel.com>
26254
26255         * config/i386/drivers-i386.c (host_detect_local_cpu):
26256         Fix Atom detection.
26257
26258 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26259
26260         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
26261         (rs6000_variable_issue_1): this.  Use...
26262         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
26263
26264 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26265
26266         * sel-sched-ir.c (sel_restore_other_notes): Rename to
26267         sel_restore_notes.  Update all callers.  Call reemit_notes
26268         for all insns.
26269
26270 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26271
26272         PR rtl-optimization/42246
26273         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
26274         loops.
26275
26276 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26277
26278         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
26279         all successors is the same as number of successors in current region.
26280
26281 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26282
26283         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
26284         to rename is not separable.  Otherwise check that its LHS is not NULL.
26285
26286 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26287
26288         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
26289
26290 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26291
26292         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
26293         available registers when failed to discover LHS register class.
26294         Fix indentation.  Update comment.
26295
26296 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26297             Alexander Monakov  <amonakov@ispras.ru>
26298
26299         PR rtl-optimization/42389
26300         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
26301         to can_issue_more.
26302         (advance_state_on_fence): Likewise.
26303         (sel_target_adjust_priority): Print debug output only when
26304         sched_verbose >= 4, not 2.
26305         (get_expr_cost): Do not issue all unique insns on the next cycle.
26306         (fill_insns): Initialize can_issue_more from the value saved
26307         with the fence.
26308         * sel-sched-ir.c (flist_add): New parameter issue_more.
26309         Init FENCE_ISSUE_MORE with it.
26310         (merge_fences): Likewise.
26311         (init_fences): Update call to flist_add.
26312         (add_to_fences, add_clean_fence_to_fences)
26313         (add_dirty_fence_to_fences): Likewise.
26314         (move_fence_to_fences): Update call to merge_fences.
26315         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
26316         sched groups.
26317         * sel-sched-ir.h (struct _fence): New field issue_more.
26318         (FENCE_ISSUE_MORE): New accessor macro.
26319
26320 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26321
26322         PR rtl-optimization/42388
26323         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
26324         that have no predecessors nor successors.  Do not call move_bb_info
26325         for empty blocks outside of current region.
26326
26327 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26328
26329         PR rtl-optimization/42294
26330         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
26331         * sel-sched.c (move_exprs_to_boundary): Transitively add all
26332         originators' originators.
26333
26334 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
26335
26336         PR rtl-optimization/39453
26337         PR rtl-optimization/42246
26338         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
26339         for pipelining_p.
26340         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
26341
26342 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26343             Alexander Monakov  <amonakov@ispras.ru>
26344
26345         PR middle-end/42245
26346         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
26347         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
26348         argument.  Update all callers.
26349         (tidy_control_flow): ... and here.  Recompute topological order
26350         of basic blocks in region if necessary.
26351         (sel_redirect_edge_and_branch): Change return type.  Return true
26352         if topological order might have been invalidated.
26353         (purge_empty_blocks): Export and move from...
26354         * sel-sched.c (purge_empty_blocks): ... here.
26355         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
26356         (maybe_tidy_empty_bb): Delete prototype.
26357         (purge_empty_blocks): Declare.
26358
26359 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
26360
26361         PR rtl-optimization/42249
26362         * sel-sched.c (try_replace_dest_reg): When chosen register
26363         and original register is the same, do not bail out early, but
26364         still check all original insns for validity of replacing destination
26365         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
26366         in this case.
26367
26368 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
26369
26370         PR c/42721
26371         Port from no-undefined-overflow branch:
26372         2009-03-09  Richard Guenther  <rguenther@suse.de>
26373
26374         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
26375
26376 2010-01-14  Richard Guenther  <rguenther@suse.de>
26377
26378         PR lto/42665
26379         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
26380
26381 2010-01-14  Ira Rosen  <irar@il.ibm.com>
26382
26383         PR tree-optimization/42709
26384         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
26385         as scalar type in creation of constant vector operand.
26386
26387 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26388
26389         PR testsuite/42414
26390         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
26391         (check-parallel-%): Match `testsuite' directory component only
26392         at the end.
26393
26394 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
26395
26396         PR translation/39521
26397         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
26398         strings with _().
26399
26400 2010-01-13  Richard Guenther  <rguenther@suse.de>
26401
26402         PR tree-optimization/42730
26403         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
26404         offset zero.
26405
26406 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
26407
26408         PR target/pr42542
26409         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
26410         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
26411         them signed.
26412
26413 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
26414
26415         * config/bfin/libgcc-bfin.ver: Regenerate based on current
26416         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
26417         ___umulsi3_highpart.
26418
26419         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
26420         rather than schedule_insns if the pass is enabled.
26421
26422 2010-01-13  Martin Jambor  <mjambor@suse.cz>
26423
26424         PR tree-optimization/42704
26425         * tree-sra.c (sra_modify_assign): Do not delete assignments to
26426         SSA_NAMEs.
26427
26428 2010-01-13  Martin Jambor  <mjambor@suse.cz>
26429
26430         PR tree-optimization/42703
26431         * tree-sra.c (analyze_access_subtree): Check that we can build a
26432         reference to the original data within the aggregate.
26433
26434 2010-01-13  Richard Guenther  <rguenther@suse.de>
26435
26436         PR tree-optimization/42705
26437         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
26438
26439 2010-01-13  Richard Guenther  <rguenther@suse.de>
26440
26441         PR middle-end/42716
26442         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
26443
26444 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
26445
26446         PR debug/41371
26447         * var-tracking.c (values_to_unmark): New variable.
26448         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
26449         values_to_unmark vector.  Moved body to...
26450         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
26451         instead queue it into values_to_unmark vector.
26452         (vt_find_locations): Free values_to_unmark vector.
26453
26454 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
26455
26456         * config/s390/s390.c (override_options): Set
26457         default of max-pending-list-length to 256
26458
26459 2010-01-13  Richard Guenther  <rguenther@suse.de>
26460
26461         PR lto/42678
26462         * tree-pass.h (PROP_gimple_lcx): New.
26463         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
26464         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
26465         before the final cleanup_eh.
26466         (dump_properties): Dump PROP_gimple_lcx.
26467         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
26468         (tree_lower_complex_O0): Remove.
26469         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
26470         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
26471         tree_lower_complex, schedule TODO_update_ssa.
26472         * lto-streamer-out.c (output_function): Stream the functions
26473         properties.
26474         * lto-streamer-in.c (input_function): Likewise.
26475         (lto_read_body): Do not override them here.
26476
26477 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
26478
26479         PR c/42708
26480         * c-typeck.c (build_c_cast): Fold value cast to union type before
26481         wrapping it in a CONSTRUCTOR.
26482
26483 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26484
26485         PR rtl-optimization/42699
26486         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
26487         involved.
26488
26489 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26490
26491         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26492         SUBTARGET_WARN_UNUSED_SPEC): Move ...
26493         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
26494         SUBTARGET_WARN_UNUSED_SPEC): ... here
26495         * config/mips/iris5.h (LIBGCC_SPEC): Define.
26496
26497 2010-01-12  Julian Brown  <julian@codesourcery.com>
26498
26499         * config/arm/neon-schedgen.ml (Utils): Don't try to
26500         open missing module.
26501         (find_with_result): New.
26502
26503 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
26504
26505         PR debug/42662
26506         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
26507         sharing when canonicalizing ({lt,ge}u (plus a b) b).
26508
26509         PR tree-optimization/42645
26510         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
26511         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
26512         decl_map, set processing_debug_stmt to -1 and return name without
26513         any remapping.
26514
26515 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
26516
26517         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
26518         binutils version, and reword target configuration description.
26519
26520 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26521
26522         * config/avr/avr.h (LINKER_NAME): Remove.
26523
26524 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
26525
26526         PR target/42416
26527         * config/rs6000/rs6000.c (rs6000_override_options): On targets
26528         that support VSX, warn for -mno-altivec if vsx is not disabled,
26529         and disable vsx.
26530
26531 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
26532             Shujing Zhao  <pearly.zhao@oracle.com>
26533
26534         PR translation/42469
26535         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
26536         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
26537         character between option name and help text.
26538         * c.opt (imultilib): Likewise.
26539
26540 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
26541
26542         * lto-streamer-out.c (output_unreferenced_globals): Output static
26543         variables.
26544
26545 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
26546
26547         PR rtl-optimization/42621
26548         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
26549         optimizing for size.
26550         (duplicate_computed_gotos): Remove now-redundant check.
26551
26552 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
26553
26554         PR target/37454
26555         * configure.ac: Save and restore LDFLAGS and LIBS
26556         * configure: Regenerate.
26557
26558 2010-01-10  Richard Guenther  <rguenther@suse.de>
26559
26560         PR middle-end/42667
26561         * builtins.c (fold_builtin_strlen): Add type argument and
26562         convert the resulting length to it.
26563         (fold_builtin_1): Adjust.
26564
26565 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26566
26567         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
26568         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
26569         1 insn.
26570         (num_insns_constant_wide): Adjust for that change.
26571
26572 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26573
26574         PR debug/42631
26575         * web.c (union_defs): Add used argument, to combine uses of
26576         uninitialized regs.
26577         (entry_register): Adjust type and tests of used argument.
26578         (web_main): Widen used for new use.  Pass it to union_defs.
26579         * df.h (union_defs): Adjust prototype.
26580
26581 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26582
26583         PR debug/42630
26584         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
26585         uses in new incoming argument.  Free body.
26586         (reset_debug_uses_in_loop): New.
26587         (analyze_insn_to_expand_var): Call the latter if the former found
26588         anything.  Fix whitespace.  Reject invalid dest overlaps before
26589         going through all insns in the loop.
26590
26591 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26592
26593         PR debug/42629
26594         * haifa-sched.c (dying_use_p): Debug insns don't count.
26595
26596 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26597
26598         PR middle-end/42363
26599         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
26600         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
26601         (verify_gimple_call): Reject LHS in noreturn calls.
26602
26603 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26604
26605         PR debug/42604
26606         PR debug/42395
26607         * tree-vect-loop-manip.c (adjust_info): New type.
26608         (adjust_vec): New pointer to vector.
26609         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
26610         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
26611         (slpeel_update_phis_for_duplicate_loop): Use them.
26612         (slpeel_update_phi_nodes_for_guard1): Likewise.
26613         (slpeel_update_phi_nodes_for_guard2): Likewise.
26614         (slpeel_tree_peel_loop_to_edge): Likewise.
26615         (vect_update_ivs_after_vectorizer): Likewise.
26616
26617 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26618
26619         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
26620         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
26621
26622 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
26623
26624         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
26625         bogus uninitialized warning.
26626
26627 2010-01-09  Richard Guenther  <rguenther@suse.de>
26628
26629         PR middle-end/42512
26630         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
26631         the evolution is compatible with the initial condition.
26632
26633 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
26634
26635         * gcc.c (process_command): Update copyright notice dates.
26636         * gcov.c (print_version): Likewise.
26637         * gcov-dump.c (print_version): Likewise.
26638         * mips-tfile.c (main): Likewise.
26639         * mips-tdump.c (main): Likewise.
26640
26641 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
26642
26643         PR target/41885
26644         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
26645         (rotlhi3): Delete.
26646         (rotlhi3_8): Delete.
26647         (rotlsi3): Delete.
26648         (rotlsi3_8): Delete.
26649         (rotlsi3_16): Delete.
26650         (rotlsi3_24): Delete.
26651         (rotl<mode>3): New.
26652         (*rotw<mode>3): New.
26653         (*rotb<mode>3): New.
26654         * config/avr/avr.c (avr_rotate_bytes): New function.
26655         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
26656
26657 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
26658
26659         PR target/37454
26660         * configure.ac: Modify -rdynamic check.
26661         * configure: Regenerate.
26662
26663 2010-01-08  DJ Delorie  <dj@redhat.com>
26664
26665         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
26666         register popping order.
26667
26668 2010-01-08  Richard Guenther  <rguenther@suse.de>
26669
26670         PR lto/42528
26671         * c.opt (fsigned-char): Also let LTO handle this option.
26672         (funsigned-char): Likewise.
26673
26674 2010-01-07  Richard Guenther  <rguenther@suse.de>
26675
26676         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
26677         (gimple_op): Likewise.
26678         (gimple_op_ptr): Likewise.
26679         (gimple_assign_set_lhs): Remove gcc_assert.
26680         (gimple_assign_set_rhs1): Likewise.
26681         (gimple_assign_set_rhs2): Likewise.
26682         (gimple_call_set_lhs): Likewise.
26683         (gimple_call_set_fn): Likewise.
26684         (gimple_call_set_fndecl): Likewise.
26685         (gimple_call_fndecl): Likewise.
26686         (gimple_call_return_type): Likewise.
26687         (gimple_call_set_chain): Likewise.
26688         (gimple_call_num_args): Likewise.
26689         (gimple_call_set_arg): Likewise.
26690         (gimple_cond_set_code): Likewise.
26691         (gimple_cond_set_lhs): Likewise.
26692         (gimple_cond_set_rhs): Likewise.
26693         (gimple_cond_set_true_label): Likewise.
26694         (gimple_cond_set_false_label): Likewise.
26695         (gimple_label_set_label): Likewise.
26696         (gimple_goto_set_dest): Likewise.
26697         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
26698         (gimple_debug_bind_get_value): Likewise.
26699         (gimple_debug_bind_get_value_ptr): Likewise.
26700         (gimple_debug_bind_set_var): Likewise.
26701         (gimple_debug_bind_set_value): Likewise.
26702         (gimple_debug_bind_reset_value): Likewise.
26703         (gimple_debug_bind_has_value_p): Likewise.
26704         (gimple_return_retval_ptr): Remove gcc_assert.
26705         (gimple_return_retval): Likewise.
26706         (gimple_return_set_retval): Likewise.
26707         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
26708         (safe_referenced_var_iterator): Remove.
26709         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
26710         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
26711         (fill_referenced_var_vec): Remove.
26712         (first_readonly_imm_use): Remove redundant gcc_assert.
26713         (phi_arg_index_from_use): Combine gcc_asserts.
26714         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
26715         (first_imm_use_stmt): Remove redundant gcc_assert.
26716         * tree-cfg.c (verify_gimple_call): Verify function and chain
26717         operands.  Verify arguments.
26718         (verify_types_in_gimple_stmt): Verify condition code and labels.
26719
26720 2010-01-07  Richard Guenther  <rguenther@suse.de>
26721
26722         PR tree-optimization/42641
26723         * sese.c (rename_map_elt_info): Use the SSA name version, do
26724         not hash pointers.
26725
26726 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
26727
26728         PR tree-optimization/42625
26729         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
26730         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
26731
26732 2010-01-07  Duncan Sands  <baldrick@free.fr>
26733
26734         * Makefile.in (PLUGIN_HEADERS): Add version.h.
26735
26736 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
26737
26738         PR target/42511
26739         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
26740         note itself is not function_invariant_p.
26741
26742 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
26743
26744         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
26745         Do not add the DF_NOTE problem.
26746         * store-motion.c (execute_rtl_store_motion): Likewise.
26747
26748 2010-01-07  Martin Jambor  <mjambor@suse.cz>
26749
26750         PR tree-optimization/42157
26751         * tree-sra.c (compare_access_positions): Stabilize sort if both
26752         accesses have integer types, return zero immediately if they are the
26753         same.
26754
26755 2010-01-06  Richard Henderson  <rth@redhat.com>
26756
26757         PR middle-end/41883
26758         * haifa-sched.c (add_to_note_list): Merge into ...
26759         (concat_note_lists): ... here, and ...
26760         (unlink_other_notes, rm_other_notes): Merge into...
26761         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
26762         NOTE_INSN_EPILOGUE_BEG.
26763
26764 2010-01-06  Richard Guenther  <rguenther@suse.de>
26765
26766         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
26767         not inline regular functions into always-inline functions.
26768
26769 2010-01-06  Nick Clifton  <nickc@redhat.com>
26770
26771         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
26772         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
26773         used together.
26774         (OVERRIDE_OPTIONS): Delete.
26775         (OPTIMIZATION_OPTIONS): Define.
26776         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
26777         * config/rx/rx.c (rx_handle_option): Issue an error message if
26778         -mcpu=rx200 and -fpu are used together.
26779         (rx_set_optimization_options): New function.  Issue an error
26780         message if an optimization attribute attempts to reset the FPU/
26781         math optimization pairing.
26782         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
26783         * config/rx/rx.opt: Set the default to 32-bit doubles.
26784         * config/rx/t-rx: Add multilibs for -nofpu option.
26785         * doc/invoke.texi: Update documentation of RX options.
26786
26787 2010-01-06  Richard Guenther  <rguenther@suse.de>
26788
26789         * tree-ssa-pre.c (name_to_id): New global.
26790         (alloc_expression_id): Simplify SSA name handling.
26791         (lookup_expression_id): Likewise.
26792         (init_pre): Zero name_to_id.
26793         (fini_pre): Free it.
26794
26795 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
26796
26797         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
26798
26799 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
26800
26801         PR target/42542
26802         * config/i386/sse.md (smaxv2di3): New.
26803         (umaxv2di3): Likewise.
26804         (sminv2di3): Likewise.
26805         (uminv2di3): Likewise.
26806
26807 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
26808
26809         PR target/42564
26810         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
26811         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
26812         (legitimize_tls_address): Likewise.
26813         (sparc_tls_referenced_p): Likewise.
26814         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
26815         and adjust calls to legitimize_pic_address.
26816         (legitimate_constant_p) Use sparc_tls_referenced_p.
26817         (legitimate_pic_operand_p): Likewise.
26818         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
26819         (sparc_tls_symbol_ref_1): Delete.
26820         (sparc_tls_referenced_p): Make static, recognize specific patterns.
26821         (legitimize_tls_address): Make static, handle CONST patterns.
26822         (legitimize_pic_address): Make static, remove unused parameter and
26823         adjust recursive calls.
26824         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
26825         and adjust call to legitimize_pic_address.
26826         (sparc_output_mi_thunk): Likewise.
26827
26828 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
26829             H.J. Lu  <hongjiu.lu@intel.com>
26830
26831         PR target/42542
26832         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
26833         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
26834         operands to make them signed.
26835
26836         Revert:
26837         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26838
26839         PR target/42542
26840         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
26841         GTU to GT for V4SI and V2DI.
26842
26843         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
26844         (umin<mode>3): Removed.
26845         (uminv8hi3): New.
26846         (uminv4si3): Likewise.
26847
26848 2010-01-05  Martin Jambor  <mjambor@suse.cz>
26849
26850         PR tree-optimization/42462
26851         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
26852         current_function_decl to helper functions and macros.
26853
26854 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26855
26856         PR bootstrap/41771
26857         * flags.h: Don't include real.h.
26858         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
26859         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
26860         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
26861         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
26862         * dominance.c: Update copyright.
26863         * gimple.c (walk_gimple_op): Remove inline.
26864         * tree-ssa-reassoc.c: Include real.h.
26865         * Makefile.in (FLAGS_H): Remove $(REAL_H).
26866         (tree-ssa-reassoc.o): Depend on $(REAL_H).
26867
26868 2010-01-05  Nick Clifton  <nickc@redhat.com>
26869
26870         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
26871         register to push into the stack frame when the accumulator has to
26872         be saved during interrupts.
26873
26874 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
26875
26876         * doc/invoke.texi: Remove the documentation about option
26877         -Wunreachable-code.
26878         * common.opt (Wunreachable-code):  Preserved for backward
26879         compatibility.
26880         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
26881         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
26882         the backward compatibility flag section.
26883
26884 2010-01-05  Richard Guenther  <rguenther@suse.de>
26885
26886         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
26887
26888 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
26889
26890         PR other/42611
26891         * cfgexpand.c (expand_one_var): Diagnose too large variables.
26892
26893         PR tree-optimization/42508
26894         * tree-sra.c (convert_callers): Check for recursive call
26895         by comparing cgraph nodes instead of decls.
26896         (modify_function): Call ipa_modify_formal_parameters also
26897         on all same_body aliases.
26898
26899         * cgraphunit.c (cgraph_materialize_all_clones): Compare
26900         cgraph nodes when checking for same_body aliases.
26901
26902 2010-01-05  Richard Guenther  <rguenther@suse.de>
26903
26904         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
26905         allocation and lookup.
26906         (get_or_alloc_expr_for_constant): Likewise.
26907         (phi_translate): Sink allocation.
26908
26909 2010-01-04  Richard Guenther  <rguenther@suse.de>
26910
26911         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
26912         a new entry only if needed.
26913         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
26914         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
26915         hashtable lookup.
26916         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
26917         the result array.
26918         (phi_translate): Handle CONSTANTs early.
26919
26920 2010-01-04  Martin Jambor  <mjambor@suse.cz>
26921
26922         PR tree-optimization/42398
26923         * tree-sra.c (struct access): Removed flag grp_different_types.
26924         (dump_access): Do not dump the removed flag.
26925         (sort_and_splice_var_accesses): Do not set the removed flag.
26926         (sra_modify_expr): Check for type compatibility directly.
26927
26928 2010-01-04  Martin Jambor  <mjambor@suse.cz>
26929
26930         PR tree-optimization/42366
26931         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
26932         edges with variable number of parameters.
26933         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
26934         flag instead of asserting it.
26935         (ipa_read_node_info): Read uses_analysis_done flag.
26936
26937 2010-01-04  Richard Guenther  <rguenther@suse.de>
26938
26939         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
26940         iterative_hash_* as intended.
26941         (vn_reference_compute_hash): Likewise.  Simplify hashing
26942         SSA names.
26943         (vn_reference_lookup_2): Likewise.
26944         (vn_nary_op_compute_hash): Likewise.
26945         (vn_phi_compute_hash): Likewise.
26946         (expressions_equal_p): Remove strange code.
26947         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
26948         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
26949         (bitmap_insert_into_set_1): Take value-id as parameter.
26950         (add_to_value): Pass it.
26951         (bitmap_insert_into_set): Likewise.
26952         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
26953
26954 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
26955
26956         PR driver/42442
26957         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
26958         (do_self_spec): For switches with SWITCH_IGNORE set set also
26959         SWITCH_IGNORE_PERMANENTLY.
26960         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
26961         of SWITCH_IGNORE.
26962
26963 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
26964
26965         * lto-streamer-out.c (output_unreferenced_globals): Output the full
26966         tree of an unreferenced global var.
26967
26968 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26969
26970         PR target/42542
26971         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
26972         GTU to GT for V4SI and V2DI.
26973
26974         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
26975         (umin<mode>3): Removed.
26976         (uminv8hi3): New.
26977         (uminv4si3): Likewise.
26978
26979 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
26980
26981         PR lto/42581
26982         * collect2.c (main): Turn on trace in collect2 if -v is passed
26983         to gcc with LTO.
26984
26985 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
26986
26987         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
26988         description of expression operand.
26989
26990 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
26991
26992         * configure.ac: Add install-html to target_list for Make-hooks.
26993         * configure: Regenerate.
26994         * fortran/Make-lang.in (F95_HTMLFILES): New.
26995         (fortran.html): Use it.
26996         (fortran.install-html): New.
26997         * Makefile.in (install-html): Add lang.install-html.
26998         * java/Make-lang.in (JAVA_HTMLFILES): New.
26999         (java.html): Use it.
27000         (java.install-html): New.
27001         * objc/Make-lang.in (objc.install-html): New.
27002         * objcp/Make-lang.in (obj-c++.install-html): New.
27003         * cp/Make-lang.in (c++.install-html): New.
27004         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
27005         * lto/Make-lang.in (lto.install-html): New.
27006
27007 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27008
27009         PR lto/42520
27010         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
27011
27012 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27013
27014         PR rtl-optimization/41862
27015         * store-motion.c (store_killed_in_insn, compute_store_table,
27016         remove_reachable_equiv_notes, replace_store_insn,
27017         build_store_vectors): Ignore all DEBUG_INSNs.
27018
27019 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
27020
27021         PR lto/41564
27022         * common.opt: Add dumpdir.
27023
27024         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
27025         isn't specified.
27026         (option_map): Add --dumpdir.
27027
27028         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
27029
27030         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
27031
27032         * opts.c (decode_options): Try dump_dir_name first if
27033         dump_base_name isn't an absolute path.
27034         (common_handle_option): Handle OPT_dumpdir.
27035
27036         * toplev.c (dump_dir_name): New.
27037         (print_switch_values): Also ignore -dumpdir.
27038
27039         * toplev.h (dump_dir_name): New.
27040
27041 2010-01-03  Richard Guenther  <rguenther@suse.de>
27042
27043         PR tree-optimization/42589
27044         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
27045         double-word expansion of bswap32.
27046
27047 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
27048
27049         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
27050         with BLOCK_FOR_INSN.
27051         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
27052         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
27053         noce_process_if_block): Likewise.
27054         * gcse.c (compute_local_properties, insert_expr_in_table,
27055         insert_set_in_table, canon_list_insert, find_avail_set,
27056         pre_insert_copy_insn): Likewise.
27057
27058         * basic-block.h (BLOCK_NUM): Move from here...
27059         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
27060
27061 2010-01-03  Richard Guenther  <rguenther@suse.de>
27062
27063         PR tree-optimization/42438
27064         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
27065         contains_may_not_return_call flag.
27066         (BB_MAY_NOTRETURN): New.
27067         (valid_in_sets): Trapping nary operations are not valid
27068         in blocks that may not return.
27069         (insert_into_preds_of_block): Remove check for trapping expressions.
27070         (compute_avail): Compute also BB_MAY_NOTRETURN.
27071
27072 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
27073
27074         * doc/invoke.texi: Add 2010 to copyright years.
27075
27076 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
27077
27078         * config/sparc/sparc.c: Fix formatting nits.
27079
27080 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
27081             Alexander Monakov  <amonakov@ispras.ru>
27082
27083         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
27084
27085 2010-01-02  Richard Guenther  <rguenther@suse.de>
27086
27087         PR middle-end/42577
27088         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
27089         (simplify_switch_using_ranges): Mark to be removed edges
27090         as non-executable.
27091
27092 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27093
27094         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
27095
27096         * collect2.c (scan_libraries): Add missing argument in call to
27097         scan_prog_file.
27098
27099 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
27100
27101         PR target/42448
27102         * config/alpha/predicates.md (aligned_memory_operand): Return false
27103         for CQImode.
27104         (unaligned_memory_operand): Return true for CQImode.
27105         * config/alpha/alpha.c (get_aligned_mem): Assert that location
27106         doesn not cross aligned SImode word boundary.
27107
27108 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
27109
27110         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
27111         Remove.
27112         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
27113         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
27114
27115 2010-01-02  Richard Guenther  <rguenther@suse.de>
27116
27117         PR lto/41597
27118         * toplev.c (compile_file): Emit LTO marker properly.  Change
27119         it to __gnu_lto_v1.
27120         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
27121
27122 2010-01-01  Richard Guenther  <rguenther@suse.de>
27123
27124         PR debug/42455
27125         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
27126
27127 2010-01-01  Richard Guenther  <rguenther@suse.de>
27128
27129         PR c/42570
27130         * c-decl.c (grokdeclarator): For zero-size arrays force
27131         structural equality checks as layout_type does.
27132
27133 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27134
27135         * builtins.c: Update copyright to 2010.
27136
27137 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
27138
27139         PR lto/42531
27140         * lto-streamer-out.c (produce_asm): Revert the last change.
27141         (copy_function): Likewise.
27142
27143         * lto-streamer.c (lto_get_section_name): Skip any leading
27144         asterisk in name.
27145
27146 2010-01-01  Richard Guenther  <rguenther@suse.de>
27147
27148         PR middle-end/42559
27149         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
27150         for LABEL_DECLs.
27151
27152 \f
27153 Copyright (C) 2010 Free Software Foundation, Inc.
27154
27155 Copying and distribution of this file, with or without modification,
27156 are permitted in any medium without royalty provided the copyright
27157 notice and this notice are preserved.