OSDN Git Service

2010-09-18 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
2
3         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
4
5 2010-09-18  Richard Guenther  <rguenther@suse.de>
6
7         PR tree-optimization/45709
8         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when
9         we splitted it.
10
11 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
12
13         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
14         (dot_deps_stmt): Same.
15         * graphite-poly.c (dot_lst): Same.
16         * graphite-scop-detection.c (dot_all_scops): Same.
17         (dot_scop): Same.
18
19 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
20
21         Revert commit: 2009-12-16  Ben Elliston  <bje@au.ibm.com>
22         * tree-data-ref.c (dot_rdg_1): Added back.
23         (dot_rdg): Same.  Added "#if 0" around system call.
24
25 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
26             Richard Henderson  <rth@redhat.com>
27
28         * config/i386/i386.c (initial_ix86_tune_features): Add
29         X86_TUNE_PAD_SHORT_FUNCTION.
30         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
31         (ix86_count_insn): New.
32         (ix86_pad_short_function): Likewise.
33         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
34
35         * config/i386/i386.h (ix86_tune_indices): Add
36         X86_TUNE_PAD_SHORT_FUNCTION.
37         (TARGET_PAD_SHORT_FUNCTION): New.
38
39         * config/i386/i386.md (UNSPEC_NOPS): New.
40         (nops): Likewise.
41
42 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
43
44         PR middle-end/45234
45         * calls.c (expand_call): Make sure that all variable sized
46         adjustments are multiple of preferred stack boundary after
47         stack alignment.
48
49 2010-09-17  DJ Delorie  <dj@redhat.com>
50
51         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
52         passed an invalid value, print an error instead of ICEing.
53         (valid_psw_flag): New.
54         (rx_expand_builtin): Call it for setpsw/clrpsw.
55         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an
56         RTX.
57
58         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
59         (bitclr_in_memory): Likewise.
60         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
61
62 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
63
64         PR middle-end/45678
65         * cfgexpand.c (update_stack_alignment): New.
66         (get_decl_align_unit): Use it.
67         (expand_one_stack_var_at): Call update_stack_alignment.
68
69 2010-09-17  Richard Guenther  <rguenther@suse.de>
70
71         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
72         Properly copy the read string.
73
74 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
75
76         * doc/options.texi (Variable): Document.
77         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
78         generate target_flags declarations explicitly.  Don't define
79         VarExists variables for the driver.
80         * common.opt (target_flags): New Variable record.
81         (flag_dump_unnumbered, flag_dump_unnumbered_links,
82         flag_var_tracking, flag_var_tracking_assignments,
83         flag_var_tracking_assignments_toggle): Don't mark variables with
84         VarExists.
85         * config/i386/i386.c (ix86_isa_flags): Don't define here.
86         * config/i386/i386.opt (ix86_isa_flags): Define here.
87         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
88         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
89         VarExists.
90         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
91         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
92         Only define for generator programs.
93         * rtlanal.c (target_flags): Remove.
94         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
95         flag_var_tracking_assignments_toggle): Remove.
96
97 2010-09-17  Michael Matz  <matz@suse.de>
98
99         PR tree-optimization/43432
100         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
101         Accept backwards consecutive accesses.
102         (vect_create_data_ref_ptr): If step is negative generate
103         decreasing IVs.
104         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
105         (perm_mask_for_reverse, reverse_vec_elements): New functions.
106         (vectorizable_load): Handle loads with negative steps when easily
107         possible.
108
109 2010-09-03  Jan Hubicka  <jh@suse.cz>
110
111         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
112
113 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
114
115         * config/v850/v850.c (v850_function_value_regno_p): Make static.
116         Adjust comments. Declare.
117         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
118         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
119
120 2010-09-17  Richard Guenther  <rguenther@suse.de>
121
122         * common.opt (combine): Remove.
123         * gcc.c (default_compilers): Remove specs testing combine.
124         The C compilers no longer can combine.
125         (option_map): Remove -combine.
126         (display_help): Remove -combine.
127         (driver_handle_option): Remove OPT_combine handling.
128         (compile_input_file_p): Remove.
129         (do_spec): Remove code concerning combine.
130         (main): Likewise.
131         * doc/invoke.texi: Remove traces of -combine.
132         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler
133         driver.
134
135 2010-09-17  Richard Guenther  <rguenther@suse.de>
136
137         PR middle-end/45678
138         * builtins.c (fold_builtin_memory_op): Always properly adjust
139         alignment of memory accesses.
140
141 2010-09-16  Jan Hubicka  <jh@suse.cz>
142
143         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
144         processing clone.
145
146 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
147
148         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
149
150         * config/i386/i386.c (predict_jump): Add prototype.
151         (flag_opts): Add -m8bit-idiv.
152         (ix86_split_idivmod): New.
153
154         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
155         Add 2 splitters for SI/DI mode divide.
156         (divmod<mode>4_1): New pattern.
157         (udivmod<mode>4_1): Likewise.
158         (testdi_ccno_1): Likewise.
159
160         * config/i386/i386.opt (m8bit-idiv): New.
161
162         * doc/invoke.texi: Document -m8bit-idiv.
163
164 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
165
166         PR bootstrap/45680
167         * config/i386/i386.c (min_insn_size): Moved out of the
168         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
169
170 2010-09-16  Jan Hubicka  <jh@suse.cz>
171
172         * lto-cgraph.c (lto_output_node): Fix handling of clones.
173         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
174         unreachable clones with reachable clones.
175         * tree-inline.c (copy_bb): Fix sanity checking when producing
176         unreachable clone.
177
178 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
179
180         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
181         (TARGET_MEMORY_MOVE_COST): Define.
182         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
183
184 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
185
186         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
187         maybe_tidy_empty_bb.
188
189         Revert:
190         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
191         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
192
193 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
194
195         * target.def (target_option.optimization): New hook.
196         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
197         TARGET_OPTION_OPTIMIZATION hook.
198         * doc/tm.texi: Regenerate.
199         * hooks.c (hook_void_int_int): New.
200         * hooks.h (hook_void_int_int): Declare.
201         * opts.c: Don't include tm_p.h.
202         (decode_options): Use targetm.target_option.optimization instead
203         of OPTIMIZATION_OPTIONS.
204         * system.h (OPTIMIZATION_OPTIONS): Poison.
205         * config/arm/arm-protos.h (arm_optimization_options): Remove.
206         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
207         (arm_optimization_options): Rename to arm_option_optimization.
208         Make static.
209         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
210         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
211         (cris_option_optimization): New.
212         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
213         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
214         (crx_option_optimization): New.
215         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
216         * config/frv/frv-protos.h (frv_optimization_options): Remove.
217         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
218         (frv_optimization_options): Rename to frv_option_optimization.
219         Make static.
220         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
221         * config/h8300/h8300.c (h8300_option_optimization): New.
222         (TARGET_OPTION_OPTIMIZATION): Define.
223         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
224         * config/i386/i386-protos.h (optimization_options): Remove.
225         * config/i386/i386.c (optimization_options): Rename to
226         ix86_option_optimization.  Make static.
227         (TARGET_OPTION_OPTIMIZATION): Define.
228         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
229         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
230         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
231         (ia64_optimization_options): Rename to ia64_option_optimization.
232         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
233         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
234         commented-out definition.
235         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
236         instead of OPTIMIZATION_OPTIONS.
237         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
238         (m32r_option_optimization): New.
239         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
240         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
241         Remove.
242         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
243         (mcore_option_optimization): New.
244         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
245         * config/mep/mep-protos.h (mep_optimization_options): Remove.
246         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
247         (mep_optimization_options): Rename to mep_option_optimization.
248         Make static.  Take unused level and size parameters.
249         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
250         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
251         (mmix_option_optimization): New.
252         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
253         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
254         (pdp11_option_optimization): New.
255         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
256         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
257         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
258         (optimization_options): Rename to rs6000_option_optimization.
259         Make static.
260         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
261         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
262         * config/rx/rx.c (rx_set_optimization_options): Rename to
263         rx_option_optimization.  Make static.  Take unused level and size
264         parameters.
265         (TARGET_OPTION_OPTIMIZATION): Define.
266         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
267         * config/s390/s390-protos.h (optimization_options): Remove.
268         * config/s390/s390.c (optimization_options): Rename to
269         s390_option_optimization.  Make static.  Don't mark size parameter
270         unused.
271         (TARGET_OPTION_OPTIMIZATION): Define.
272         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
273         * config/sh/sh-protos.h (sh_optimization_options): Remove.
274         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
275         (sh_optimization_options): Rename to sh_option_optimization.  Make
276         static.  Don't mark parameters unused.
277         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
278         * config/spu/spu-protos.h (spu_optimization_options): Remove.
279         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
280         (spu_optimization_options): Rename to spu_option_optimization.
281         Make static.
282         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
283         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
284         (v850_option_optimization): New.
285         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
286         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
287         (xtensa_option_optimization): New.
288         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
289
290 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
291
292         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
293         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
294         * doc/tm.texi: Regenerate.
295         * system.h (OVERRIDE_OPTIONS): Poison.
296         * target.def (override): Default to hook_void_void.
297         * targhooks.c (default_target_option_override): Remove.
298         * genmodes.c, machmode.def: Update comments mentioning
299         OVERRIDE_OPTIONS.
300         * config/alpha/alpha-modes.def: Update comment mentioning
301         alpha_override_options.
302         * config/alpha/alpha-protos.h (override_options): Remove.
303         * config/alpha/alpha.c (override_options): Rename to
304         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make
305         static.
306         (TARGET_OPTION_OVERRIDE): Define.
307         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
308         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
309         of OVERRIDE_OPTIONS.
310         * config/arc/arc-protos.h (arc_init): Remove.
311         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
312         (arc_init): Rename to arc_option_override.  Make static.
313         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
314         (OVERRIDE_OPTIONS): Remove.
315         * config/arm/arm-protos.h (arm_override_options): Remove.
316         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
317         (arm_override_options): Rename to arm_option_override.  Make
318         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
319         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
320         * config/arm/arm.md: Update comment referring to
321         arm_override_options.
322         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
323         instead of OVERRIDE_OPTIONS.
324         * config/avr/avr-protos.h (avr_override_options): Remove.
325         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
326         (avr_override_options): Rename to avr_option_override.  Make
327         static.
328         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
329         * config/bfin/bfin-protos.h (override_options): Remove (twice).
330         * config/bfin/bfin.c (override_options): Rename to
331         bfin_option_override.  Make static.
332         (TARGET_OPTION_OVERRIDE): Define.
333         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
334         * config/cris/cris-protos.h (cris_override_options): Remove.
335         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
336         (cris_override_options): Rename to cris_option_override.  Make
337         static.
338         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
339         * config/frv/frv-protos.h (frv_override_options): Remove.
340         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
341         (frv_override_options): Rename to frv_option_override.  Make
342         static.
343         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
344         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
345         * config/h8300/h8300.c (h8300_init_once): Rename to
346         h8300_option_override.  Make static.
347         (TARGET_OPTION_OVERRIDE): Define.
348         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
349         * config/i386/i386-protos.h (override_options): Remove.
350         * config/i386/i386.c (override_options): Rename to
351         ix86_option_override_internal.  Make static.  Comments referring
352         to this function and callers changed.
353         (ix86_option_override): New.
354         (TARGET_OPTION_OVERRIDE): Define.
355         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
356         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update
357         comment.
358         * config/ia64/ia64.c (ia64_file_start): Update comment referring
359         to ia64_override_options.
360         * config/iq2000/iq2000-protos.h (override_options): Remove.
361         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
362         (override_options): Rename to iq2000_option_override.  Make
363         static.
364         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
365         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
366         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
367         (lm32_override_options): Rename to lm32_option_override.  Make
368         static.
369         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
370         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
371         (m32r_option_override): New.
372         (m32r_init): Update comment.
373         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
374         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options):
375         Remove.
376         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
377         (m68hc11_override_options): Rename to m68hc11_option_override.
378         Make static.  Return void.
379         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
380         * config/m68k/m68k-protos.h (override_options): Remove.
381         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
382         (override_options): Rename to m68k_option_override.  Make static.
383         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
384         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
385         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
386         (mcore_override_options): Rename to mcore_option_override.  Make
387         static.
388         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
389         * config/mep/mep-protos.h (mep_override_options): Remove.
390         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
391         (mep_override_options): Rename to mep_option_override.  Make
392         static.
393         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
394         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
395         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
396         (mmix_override_options): Rename to mmix_option_override.  Make
397         static.
398         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
399         * config/mn10300/mn10300-protos.h (mn10300_override_options):
400         Remove.
401         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
402         (mn10300_override_options): Rename to mn10300_option_override.
403         Make static.
404         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
405         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
406         * config/moxie/moxie.c (moxie_override_options): Rename to
407         moxie_option_override.  Make static.
408         (TARGET_OPTION_OVERRIDE): Define.
409         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
410         * config/picochip/picochip-protos.h (picochip_override_options):
411         Remove.  Update comment referring to picochip_override_options.
412         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
413         (picochip_override_options): Rename to picochip_option_override.
414         Make static.  Update comment and definition of
415         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
416         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
417         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update
418         comment.
419         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update
420         comment.
421         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update
422         comment.
423         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update
424         comment.
425         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update
426         comment.
427         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
428         instead of OVERRIDE_OPTIONS.
429         * config/rs6000/rs6000-modes.def: Update comment referring to
430         rs6000_override_options.
431         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
432         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
433         (rs6000_override_options): Rename to
434         rs6000_option_override_internal.  Make static.  Commented
435         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
436         (rs6000_option_override): New.
437         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
438         instead of OVERRIDE_OPTIONS.
439         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update
440         comment.
441         * config/s390/s390-protos.h (override_options): Remove.
442         * config/s390/s390.c (override_options): Rename to
443         s390_option_override.  Make static.
444         (TARGET_OPTION_OVERRIDE): Define.
445         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
446         * config/score/score-protos.h (score_override_options): Remove.
447         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
448         (score_override_options): Rename to score_option_override.  Make
449         static.
450         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
451         Update comment referring to override_options.
452         * config/score/score3.c (score3_override_options): Rename to
453         score3_option_override.
454         * config/score/score3.h (score3_override_options): Rename to
455         score3_option_override.
456         * config/score/score7.c (score7_override_options): Rename to
457         score7_option_override.
458         * config/score/score7.h (score7_override_options): Rename to
459         score7_option_override.
460         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
461         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
462         (sparc_override_options): Rename to sparc_option_override.  Make
463         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
464         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
465         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
466         instead of OVERRIDE_OPTIONS.
467         * config/spu/spu-protos.h (spu_override_options): Remove.
468         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
469         (spu_override_options): Rename to spu_option_override.  Make
470         static.
471         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
472         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
473         OVERRIDE_OPTIONS.
474         * config/vax/vax-protos.h (override_options): Remove.
475         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
476         (override_options): Rename to vax_option_override.  Make static.
477         Call SUBTARGET_OVERRIDE_OPTIONS.
478         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
479         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
480         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
481         * config/xtensa/xtensa-protos.h (override_options): Remove.
482         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
483         (override_options): Rename to xtensa_option_override.  Make
484         static.
485         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
486
487 2010-09-16  Richard Guenther  <rguenther@suse.de>
488
489         PR tree-optimization/45623
490         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
491         (get_constraint_for_component_ref): If computing a constraint
492         for the rhs handle type punning through unions.
493         (get_constraint_for_address_of): Adjust.
494         (get_constraint_for_1): Likewise.
495         (get_constraint_for): Likewise.
496         (get_constraint_for_rhs): New function.
497         (do_structure_copy): Adjust.
498         (make_constraint_to): Likewise.
499         (handle_const_call): Likewise.
500         (find_func_aliases): Likewise.
501         (process_ipa_clobber): Likewise.
502         (create_variable_info_for): Likewise.
503
504 2010-09-16  Ira Rosen  <irar@il.ibm.com>
505
506         * tree-vectorizer.c: Fix documentation.
507         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
508         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
509         is_pattern_stmt_p, is_loop_header_bb_p,
510         stmt_vinfo_set_inside_of_loop_cost,
511         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
512         known_alignment_for_access_p): Likewise.
513         * tree-vect-loop.c: Fix documentation.
514         (vect_get_cost): Start function name from new line.
515         * tree-vect-data-refs.c: Fix documentation.
516         * tree-vect_stmts.c: Likewise.
517         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
518         (vectorizable_store): Free vec_oprnds if allocated.
519         (vectorizable_condition): Initialize several variables to avoid
520         warnings.
521         * tree-vect-slp.c: Fix documentation.
522
523 2010-09-16  Richard Guenther  <rguenther@suse.de>
524
525         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
526         is TS_TRANSLATION_UNIT_DECL.
527         (initialize_tree_contains_struct): Adjust.
528         (all_translation_units): New global vector.
529         (build_translation_unit_decl): New function.
530         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
531         (struct tree_translation_unit_decl): New.
532         (all_translation_units): Declare.
533         (union tree_node): Add translation_unit_decl member.
534         (build_translation_unit_decl): Declare.
535         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
536         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
537         New function.
538         (pack_value_fields): Call it.
539         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
540         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
541         (lto_output_tree_pointers): Call it.
542         * lto-streamer-in.c (lto_input_tree_ref): Handle references
543         to TRANSLATION_UNIT_DECL.
544         (unpack_ts_translation_unit_decl_value_fields): New function.
545         (unpack_value_fields): Call it.
546         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
547         (lto_input_tree_pointers): Call it.
548         * lto-streamer.c (check_handled_ts_structures): Adjust.
549         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
550         * c-decl.c (all_translation_units): Remove.
551         (pop_scope): Use build_translation_unit_decl.
552         (collect_all_refs): Adjust.
553         (for_each_global_decl): Likewise.
554         (c_write_global_declarations): Likewise.
555
556 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
557
558         PR bootstrap/45686
559         * fold-const.c (fold_checksum_tree): Change slot from const void **
560         to void **, use CONST_CAST_TREE to store into *slot.
561
562 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
563
564         * config/i386/i386.md: Remove unneeded empty conditions and
565         preparation statements from expanders.
566         * config/i386/mmx.md: Ditto.
567         * config/i386/sse.md: Ditto.
568
569 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
570
571         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
572
573 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
574
575         PR rtl-optimization/45593
576         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
577         insns that were in delay slots as stand-alone insns.
578
579 2010-09-15  Ian Lance Taylor  <iant@google.com>
580
581         * incpath.c (remove_duplicates): If name is not a directory, issue
582         a warning rather than an error.
583
584 2010-09-15  Martin Jambor  <mjambor@suse.cz>
585
586         PR middle-end/45644
587         * tree-sra.c (create_access): Check for bit-fields directly.
588
589 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
590
591         PR tree-optimization/45633
592         * tree-cfg.c (verify_gimple_assign_binary): Allow
593         MINUS_EXPR with lhs and rhs1 pointer vector and
594         rhs2 sizetype vector.
595         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
596         or vector pointer use TER to optimize pointer subtraction.
597
598 2010-09-15  Jie Zhang  <jie@codesourcery.com>
599
600         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
601         fcmpd to fcmps.
602
603 2010-09-15  Ian Lance Taylor  <iant@google.com>
604
605         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
606
607 2010-09-15  Ian Lance Taylor  <iant@google.com>
608
609         * function.c (get_arg_pointer_save_area): Set
610         arg_pointer_save_area_init to true.
611
612 2010-09-15  Martin Jambor  <mjambor@suse.cz>
613
614         * tree-sra.c (generate_subtree_copies): Updated comment.
615         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
616         obtained from the statement iterator instead.
617         (load_assign_lhs_subreplacements): Removed parameters lhs and
618         right_offset, which is obtained from top_racc instead.  Parameter lacc
619         is now expected to be the root of the processed tree rather than root's
620         first child.  Updated all callers.
621
622 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
623
624         * config/pdp11/pdp11.c (register_move_cost): Rename to
625         pdp11_register_move_cost.
626         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
627         pdp11_register_move_cost.
628         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
629         pdp11_register_move_cost instead of register_move_cost.
630
631 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
632
633         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
634         pattern for vmovn. Expansion in case of non 
635         -mvectorize-with-neon-quad.
636         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
637         non- -mvectorize-with-neon-quad case.
638         (move_lo_quad_<mode>): New expansion to vmov into low part.
639         (move_hi_quad_<mode>): New expansion to vmov into high part.
640         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
641         (move_lo_quad_v4sf): Likewise.
642         (move_lo_quad_v8hi): Likewise.
643         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
644         low part.
645         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
646         high part.
647         * config/arm/iterators.md (ANY128): New mode iterator.
648         (V_narrow_pack): New mode attribute.
649         (V_HALF): Add attribute.
650         (V_DOUBLE): Add attribute.
651         (V_mode_nunits): Add attribute.
652
653 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
654
655         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
656         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
657
658 2010-09-15  Olivier Hainque  <hainque@adacore.com>
659             Jose Ruiz  <ruiz@adacore.com>
660
661         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
662         * config/alpha/osf5-unwind.h: New file.
663
664 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
665
666         PR bootstrap/45672
667         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
668         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
669         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
670
671 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
672
673         * c-lang.h (struct lang_type): Add variable_size GTY option.
674
675 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
676
677         PR bootstrap/45672
678         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
679
680 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
681
682         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
683         result isn't used in memory address.
684
685 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
686
687         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
688         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
689         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
690         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
691         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
692         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
693
694         * target.def: Add units_per_simd_word to vectorize.
695
696         * targhooks.c (default_units_per_simd_word): New.
697         * targhooks.h (default_units_per_simd_word): Likewise.
698         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
699         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
700         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
701         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
702         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
703         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
704         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
705         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
706
707         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
708         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
709
710         * tree-vect-stmts.c: Don't include "tm_p.h".
711         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
712         with targetm.vectorize.units_per_simd_word.
713
714         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
715
716         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
717
718         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
719         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
720
721         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
722         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
723
724         * doc/tm.texi: Regenerated.
725
726 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
727
728         * tree-vect-stmts.c: Include "tm_p.h".
729
730         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
731         out of RTX_CODE.
732
733 2010-09-14  Martin Jambor  <mjambor@suse.cz>
734
735         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
736         location of generated statement.  Changed all callers.
737         (build_ref_for_model): New parameter loc which used to set location of
738         all generated expressions.  Changed all callers.
739         (generate_subtree_copies): Likewise.
740         (init_subtree_with_zero): Likewise.
741         (sra_modify_expr): Set locations of all generated statements and
742         expressions to the location the original statement.
743         (handle_unscalarized_data_in_subtree): Likewise.
744         (load_assign_lhs_subreplacements): Likewise.
745         (sra_modify_constructor_assign): Likewise.
746         (sra_modify_assign): Likewise.
747
748 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
749
750         PR target/45277
751         PR target/45363
752         PR target/45407
753         * doc/install.texi (sparc*-*-*): New section.
754         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
755
756 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
757
758         PR middle-end/45567
759         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
760         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
761         (expand_builtin): Adjust caller.
762         (expand_builtin_unop): Only use subtarget if it has the right mode.
763
764 2010-09-14  Tristan Gingold  <gingold@adacore.com>
765
766         * configure.ac (plugins): Fix typos.
767         * configure: Regenerate.
768
769 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
770
771         PR debug/45660
772         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
773         gen_type_die for function/method return type.
774
775 2010-09-14  Ira Rosen  <irar@il.ibm.com>
776
777         PR tree-optimization/45470
778         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
779         can throw an exception.
780         * tree-vect-stmts.c (vectorizable_call): Likewise.
781
782 2010-09-14  DJ Delorie  <dj@redhat.com>
783
784         PR target/44749
785         * config/mep/mep-protos.h (mep_save_register_info,
786         mep_reinit_regs, mep_init_regs): Declare.
787
788         * config/mep/mep.c: Move all target definitions to the end of the
789         file to avoid the need for duplicate declarations.
790         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
791         (mep_reorg_erepeat): Remove unused variables.
792         (mep_expand_builtin): Likewise.
793
794         * config/mep/mep-pragma.c: Don't include rtl.h.
795         (INVALID_REGNUM): New.
796         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
797         functions.
798         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
799         Avoid enum/integer math.
800
801 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
802
803         PR target/44749
804         * config/mep/t-mep (GTM_H): Add insn-constants.h.
805         * config/mep/mep.c (mep_conditional_register_usage): Take no
806         parameters.
807         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
808         prototype.
809         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
810         call to mep_conditional_register_usage.
811
812 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
813
814         PR debug/43937
815         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
816         the DECL as well.
817
818 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
819
820         PR rtl-optimization/45617
821         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
822         even if low N bits of X aren't known to be zero.
823
824 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
825
826         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
827
828         * config/i386/i386.c (initial_ix86_tune_features): Add
829         X86_TUNE_VECTORIZE_DOUBLE.
830         (ix86_units_per_simd_word): New.
831
832         * config/i386/i386.h (ix86_tune_indices): Add
833         X86_TUNE_VECTORIZE_DOUBLE.
834         (TARGET_VECTORIZE_DOUBLE): New.
835         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
836
837 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
838
839         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
840         (new_temp_expr_table): Allocate call_cnt vector.
841         (free_temp_expr_table): Free it.
842         (process_replaceable): Add call_cnt parm and set in vector.
843         (find_replaceable_in_bb): Skip replacement if def/use span a call.
844         (debug_ter): Dump call_cnt value, remove stderr uses.
845
846 2010-09-13  Jan Hubicka  <jh@suse.cz>
847
848         * tree.c (build_zero_cst): New.
849         * tree.h (build_zero_cst): Declare.
850         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
851         (get_base_constructor): Break out from ...
852         (fold_const_aggregate_ref): Here; handle empty constructors.
853
854 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
855
856         * config/arm/arm.md: (define_attr "conds"): Update comment.
857         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
858         conds attribute to clob.
859         (arm_sync_compare_and_swapsi): Likewise.
860         (arm_sync_compare_and_swap<mode>): Likewise.
861         (arm_sync_lock_test_and_setsi): Likewise.
862         (arm_sync_lock_test_and_set<mode>): Likewise.
863         (arm_sync_new_<sync_optab>si): Likewise.
864         (arm_sync_new_nandsi): Likewise.
865         (arm_sync_new_<sync_optab><mode>): Likewise.
866         (arm_sync_new_nand<mode>): Likewise.
867         (arm_sync_old_<sync_optab>si): Likewise.
868         (arm_sync_old_nandsi): Likewise.
869         (arm_sync_old_<sync_optab><mode>): Likewise.
870         (arm_sync_old_nand<mode>): Likewise.
871
872 2010-09-13  Olivier Hainque  <hainque@adacore.com>
873
874         * fwprop.c (forward_propagate_and_simplify): Only attach a
875         REG_EQUAL note to an insn if the destination is a register.
876         * gcse.c (try_replace_reg): Likewise.
877
878 2010-09-13  Richard Guenther  <rguenther@suse.de>
879
880         PR tree-optimization/45611
881         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
882         (copy_ref_info): Likewise.
883
884 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
885
886         PR debug/45604
887         PR debug/45419
888         PR debug/45408
889         * tree-pretty-print.c (dump_generic_node): Disregard top-level
890         types of MEM_REF pointer types to the same type.
891
892 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
893
894         PR rtl-optimization/41087
895         * ifcvt.c (noce_get_condition): Don't allow conditions with
896         side-effects.
897
898 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
899
900         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
901         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
902         * config/frv/frv.c (frv_register_move_cost): Make static. Change
903         arguments type to reg_class_t. Add mode argument.
904         (frv_memory_move_cost): New.
905         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
906
907 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
908
909         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
910         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
911
912 2010-09-10  Jan Hubicka  <jh@suse.cz>
913
914         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
915
916 2010-09-10  Richard Guenther  <rguenther@suse.de>
917
918         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
919         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
920         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
921         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
922         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
923
924 2010-09-10  Richard Guenther  <rguenther@suse.de>
925
926         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
927         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
928         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
929         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
930
931 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
932
933         PR middle-end/45634
934         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
935         of string folding is of integral type.
936
937 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
938
939         * doc/invoke.texi (-x): Fix typo.
940
941 2010-09-10  Richard Guenther  <rguenther@suse.de>
942
943         PR debug/44115
944         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
945         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
946         Output DECL_DEBUG_EXPR.
947         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
948         Input DECL_DEBUG_EXPR.
949
950 2010-09-10  Richard Guenther  <rguenther@suse.de>
951
952         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
953         (build_index_type): Implement in terms of build_range_type.
954         (build_range_type): Do not allow NULL_TREE type, improve
955         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
956         if we didn't hash.
957         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
958         create a distinct copy of the type.
959
960 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
961
962         * configure: Regenerated.
963         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
964
965 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
966
967         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
968         * config/arm/cortex-a9-neon.md: New and partially generated.
969         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
970
971 2010-09-10  Richard Guenther  <rguenther@suse.de>
972
973         * tree.h (build_index_2_type): Remove.
974         * tree.c (build_index_2_type): Remove.
975
976 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
977
978         PR bootstrap/45630
979         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
980         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
981         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
982
983 2010-09-10  Martin Jambor  <mjambor@suse.cz>
984
985         PR tree-optimization/44972
986         * tree-sra.c: Include toplev.h.
987         (build_ref_for_offset): Entirely reimplemented.
988         (build_ref_for_model): New function.
989         (build_user_friendly_ref_for_offset): New function.
990         (analyze_access_subtree): Removed build_ref_for_offset check.
991         (propagate_subaccesses_across_link): Likewise.
992         (create_artificial_child_access): Use
993         build_user_friendly_ref_for_offset.
994         (propagate_subaccesses_across_link): Likewise.
995         (ref_expr_for_all_replacements_p): Removed.
996         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
997         (sra_modify_expr): Use build_ref_for_model.
998         (load_assign_lhs_subreplacements): Likewise.
999         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
1000         checks for return values of build_ref_for_offset.
1001         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
1002         build_ref_for_offset.
1003         * ipa-prop.h: Include gimple.h
1004         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
1005         (ipa_analyze_indirect_call_uses): Update comment.
1006         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
1007         (IPA_PROP_H): Likewise.
1008
1009 2010-09-10  Martin Jambor  <mjambor@suse.cz>
1010
1011         PR tree-optimization/44972
1012         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
1013         calling build_ref_for_offset.
1014
1015 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1016
1017         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
1018         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
1019         * config/arm/arm-tune.md: Regenerate.
1020         * doc/invoke.texi (ARM Options): Document it.
1021
1022 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
1023
1024         * config/i386/i386.c: Include sched-int.h.
1025         (TARGET_SCHED_DISPATCH): Defined.
1026         (TARGET_SCHED_DISPATCH_DO): Defined.
1027         (DISPATCH_WINDOW_SIZE): Defined.
1028         (MAX_DISPATCH_WINDOWS): Defined.
1029         (MAX_INSN): Defined.
1030         (MAX_IMM): Defined.
1031         (MAX_IMM_SIZE): Defined.
1032         (MAX_IMM_32): Defined.
1033         (MAX_IMM_64): Defined.
1034         (MAX_LOAD): Defined.
1035         (MAX_STORE): Defined.
1036         (BIG): Defined.
1037         (dispatch_group): New.
1038         (num_allowable_groups): New.
1039         (group_name): New.
1040         (sched_insn_info_s): New.
1041         (dispatch_windows_s): New.
1042         (imm_info_s): New.
1043         (dispatch_window_list): New.
1044         (dispatch_window_list1): New.
1045         (get_mem_group): New.
1046         (is_cmp): New.
1047         (dispatch_violation): New.
1048         (is_branch): New.
1049         (is_prefetch): New.
1050         (init_window): New.
1051         (allocate_window): New.
1052         (init_dispatch_sched): New.
1053         (is_end_basic_block): New.
1054         (process_end_window): New.
1055         (allocate_next_window): New.
1056         (find_constant_1): New.
1057         (find_constant): New.
1058         (get_num_immediates): New.
1059         (has_immediate): New.
1060         (get_insn_path): New.
1061         (get_insn_group): New.
1062         (count_num_restricted): New.
1063         (fits_dispatch_window): New.
1064         (add_insn_window): New.
1065         (add_to_dispatch_window): New.
1066         (debug_dispatch_window_file): New.
1067         (debug_dispatch_window): New.
1068         (debug_insn_dispatch_info_file): New.
1069         (debug_ready_dispatch): New.
1070         (do_dispatch): New.
1071         (has_dispatch): New.
1072         * config/i386/i386.h (debug_ready_dispatch): Declared.
1073         (debug_dispatch_window): Declared.
1074         * config/i386/i386.opt (mdispatch-scheduler): New flag.
1075         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
1076         (TARGET_SCHED_DISPATCH_DO): New.
1077         * doc/tm.texi: Regererated.
1078         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
1079         ready_remove_first_dispatch
1080         (schedule_block): Call targetm.sched.dispatch and
1081         targetm.sched.dispatch_do.
1082         (sched_init): Call targetm.sched.dispatch and
1083         targetm.sched.dispatch_do.
1084         (ready_remove_first_dispatch): New.
1085         (number_in_ready): New.
1086         (get_ready_element): New.
1087         * hooks.c (hook_bool_rtx_int_false): New.
1088         (hook_void_rtx_int): New.
1089         * hooks.h (hook_bool_rtx_int_false): Declared.
1090         (hook_void_rtx_int): Declared.
1091         * sched-int.h (IS_DISPATCH_ON): Defined.
1092         (IS_CMP): Defined.
1093         (DISPATCH_VIOLATION): Defined.
1094         (FITS_DISPATCH_WINDOW): Defined.
1095         (DISPATCH_INIT): Defined.
1096         (ADD_TO_DISPATCH_WINDOW): Defined.
1097         (get_ready_element): Declared.
1098         (number_in_ready): Declared.
1099         * target.def (dispatch): Defined.
1100         (dispatch_do): Defined.
1101
1102 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1103
1104         PR middle-end/45312
1105         * reload1.c (merge_assigned_reloads): Remove.
1106         (reload_as_needed): Don't call it.
1107
1108 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
1109
1110         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
1111         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
1112         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
1113
1114 2010-09-09  Matthias Klose  <doko@ubuntu.com>
1115
1116         PR bootstrap/43847
1117         * configure.ac (--enable-plugin): Enhance for cross builds.
1118         * configure: Regenerate.
1119
1120 2010-09-09  Jan Hubicka  <jh@suse.cz>
1121
1122         PR tree-optimization/45598
1123         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
1124         string folding is of integral type.
1125
1126 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
1127
1128         * configure.ac (gnu_indirect_function): New test.
1129         * configure: Rebuilt.
1130         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
1131         * defaults.h (IFUNC_ASM_TYPE): Provide default.
1132
1133         * doc/extend.texi (Function Attributes): Document ifunc.
1134         * varasm.c (do_assemble_alias): Deal with ifuncs too.
1135
1136 2010-09-09  Hariharan Sandanagobalane <hariharan@picochip.com>
1137
1138         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
1139         epilogue instruction move.
1140
1141 2010-09-09  Jan Hubicka  <jh@suse.cz>
1142
1143         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
1144         command line to allow more partitions than input files.
1145
1146 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1147
1148         PR middle-end/44554
1149         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
1150
1151 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
1152
1153         PR middle-end/40386
1154         * ira.c (pseudo_for_reload_consideration_p): Don't use
1155         flag_ira_share_spill_slots.
1156
1157 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1158
1159         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
1160         point zero operands that fit into a single GPR.
1161         (s390_preferred_reload_class): Ensure we only return general-purpose
1162         register classes.
1163         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
1164         floating-point zero operands into GPRs.
1165         ("*mov<mode>_64"): Likewise.
1166         ("mov<mode>"): Likewise using lhi.
1167
1168 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1169
1170         * config/s390/s390.c (s390_symref_operand_p): Return false for
1171         literal pool references.
1172         (s390_check_qrst_address): Update caller.
1173
1174 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
1175
1176         * config/i386/predicates.md (ext_register_operand): Check that
1177         SUBREG_REG is really a register before looking for REGNO.
1178         (reg_not_xmm0_operand): Handle SUBREGs correctly.
1179         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
1180
1181 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
1182
1183         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
1184         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
1185         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
1186         * print-rtl.c (print_rtx): Likewise.
1187         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
1188         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
1189         for ADDR_EXPR with non-addressable object.
1190         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
1191         (struct dw_val_struct): Add v.val_decl_ref.
1192         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
1193         Handle DW_OP_GNU_implicit_pointer.
1194         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
1195         (get_ref_die_offset_label): New function.
1196         (implicit_ptr_descriptor): New function.
1197         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
1198         (loc_descriptor): Likewise.
1199         (gen_variable_die): Put even definitions into decl_die_table.
1200         (resolve_addr_in_expr): Resolve still unresolved
1201         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
1202         return false.
1203         (dwarf2out_finish): Call output_location_lists after outputting
1204         .debug_info and .debug_abbrev instead of before.
1205
1206 2010-09-09  Roland McGrath  <roland@redhat.com>
1207
1208         * dwarf2out.c (DWARF_REF_SIZE): Define.
1209         (size_of_loc_descr): Use it for DW_OP_call_ref.
1210
1211 2010-09-09  Alan Modra  <amodra@gmail.com>
1212
1213         * doc/invoke.text: Reinstate mcmodel=medium.
1214         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1215         CMODEL_MEDIUM as default.
1216         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
1217         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
1218         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
1219         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
1220
1221 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1222
1223         PR target/45250
1224         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
1225         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
1226         (builtin_longjmp): Likewise.
1227         (allocate_stack): Use hard_frame_pointer_rtx instead of
1228         frame_pointer_rtx.
1229         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
1230         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
1231         (pa_can_eliminate): Likewise.
1232         (TARGET_INTERNAL_ARG_POINTER): Define.
1233         (TARGET_CAN_ELIMINATE): Define.
1234         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
1235         pointer.
1236         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
1237         (pa_internal_arg_pointer, pa_can_eliminate,
1238         pa_initial_elimination_offset): New.
1239         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
1240         (HARD_FRAME_POINTER_REGNUM): Set to register three.
1241         (INITIAL_FRAME_POINTER_OFFSET): Delete.
1242         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
1243         Define.
1244         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
1245         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
1246         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
1247         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
1248         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
1249         new soft frame pointer.
1250         * config/pa/pa64-regs.h: Likewise.
1251
1252 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1253
1254         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
1255         numerical constant.
1256         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
1257
1258 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1259
1260         PR debug/45531
1261         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
1262
1263 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
1264
1265         PR debug/45419
1266         PR debug/45408
1267         * tree-pretty-print.c (dump_generic_node): Disregard top-level
1268         qualifiers in otherwise equal MEM_REF pointer types.
1269         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
1270         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
1271
1272 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1273
1274         PR target/44392
1275         * config/arm/arm.md (bswapsi2): Handle condition correctly
1276         for armv6 and optimize_size.
1277
1278 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1279
1280         PR other/18555
1281         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
1282
1283 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
1284
1285         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
1286         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
1287         ix86_expand_strlen, legitimate_pic_address_disp_p,
1288         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
1289         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
1290         ix86_check_movabs, ix86_secondary_memory_needed): Change function
1291         prototype to bool.
1292         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
1293         return_in_memory_ms_64, ix86_check_movabs,
1294         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
1295         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
1296         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
1297         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
1298         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
1299         ix86_secondary_memory_needed): Change to bool.  Return
1300         "true" and "false" values.
1301         * config/i386/i386.md: Return "true" and "false" values.
1302
1303 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1304
1305         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1306         run_expensive_tests.
1307
1308 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1309
1310         * toplev.c (output_stack_usage): Use lbasename instead of basename.
1311
1312 2010-09-08  Martin Jambor  <mjambor@suse.cz>
1313
1314         PR other/45443
1315         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
1316         at -O3.
1317
1318 2010-09-08  Richard Guenther  <rguenther@suse.de>
1319
1320         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
1321         (visit): Adjust.
1322         (iterative_hash_gimple_type): Likewise.
1323         (gimple_type_hash): Likewise.
1324         (gimple_register_type): Likewise.
1325         (print_gimple_types_stats): Likewise.
1326         (free_gimple_type_tables): Likewise.
1327
1328 2010-09-08  Michael Matz  <matz@suse.de>
1329
1330         PR tree-optimization/43430
1331         * tree-vect-stmts.c (vectorizable_condition): Support multiple
1332         copies for conditional statements if it's not part of a reduction.
1333
1334 2010-09-08  Michael Matz  <matz@suse.de>
1335
1336         PR tree-optimization/33244
1337         * tree-ssa-sink.c (statement_sink_location): Don't sink into
1338         empty loop latches.
1339
1340 2010-09-08  Richard Guenther  <rguenther@suse.de>
1341
1342         PR tree-optimization/45578
1343         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
1344         Be more careful when transfering alignment information to
1345         the new induction variable.
1346         (copy_ref_info): Likewise.
1347
1348 2010-09-08  Richard Guenther  <rguenther@suse.de>
1349
1350         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
1351         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1352
1353 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
1354
1355         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
1356         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
1357
1358 2010-09-08  Kenneth Zadeck <zadeck@naturalbridge.com>
1359
1360         PR doc/45587
1361         * doc/md.texi: Fixed modes on several standard pattern names.
1362
1363 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
1364
1365         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
1366         (ashl<mode>3): ...this.
1367         (loongson_psra<V_suffix>): Rename to...
1368         (ashr<mode>3): ...this.
1369         (loongson_psrl<V_suffix>): Rename to...
1370         (lshr<mode>3): ...this.
1371         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
1372         (CODE_FOR_loongson_psllw): Define.
1373         (CODE_FOR_loongson_psrlh): Define.
1374         (CODE_FOR_loongson_psrlw): Define.
1375         (CODE_FOR_loongson_psrah): Define.
1376         (CODE_FOR_loongson_psraw): Define.
1377
1378 2010-09-07  Richard Henderson  <rth@redhat.com>
1379
1380         * tree-vect-data-refs.c: Include tm_p.h.
1381         * Makefile.in (tree-vect-data-refs.o): Update deps.
1382         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
1383         Move delarations outside #ifdef RTX_CODE.
1384
1385 2010-09-07  Richard Henderson  <rth@redhat.com>
1386
1387         * final.c (rest_of_handle_final): Unconditionally do
1388         output_function_exception_table before assemble_end_function.
1389
1390 2010-09-07  Jan Hubicka  <jh@suse.cz>
1391
1392         * tree-inline.c (tree_inlinable_function_p): Do not test
1393         DECL_REPLACEABLE_P.
1394         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
1395         update_callee_keys, cgraph_decide_inlining): Test function availability.
1396         * cif-code.def (OVERWRITABLE): New code.
1397
1398 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
1399             Jack Howarth <howarth@bromo.med.uc.edu>
1400
1401         PR target/36502
1402         PR target/42313
1403         PR target/44651
1404         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
1405         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
1406         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
1407         MAX macro.
1408
1409 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1410
1411         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
1412         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
1413
1414 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1415
1416         * config.gcc: Don't append t-android for Android targets.
1417
1418         * config/t-android: Removed.
1419
1420 2010-09-07  Richard Henderson  <rth@redhat.com>
1421
1422         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
1423         * doc/tm.texi.in: Add doc marker.
1424         * doc/tm.texi: Rebuild.
1425         * except.c (switch_to_exception_section): Always build.
1426         (output_one_function_exception_table): Move section switch,
1427         personality output, and label output ...
1428         (output_function_exception_table): ... here.  Use the new
1429         personality hook.
1430
1431         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
1432         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
1433         TARGET_ASM_INIT_SECTIONS): New.
1434         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
1435         make static.
1436         (TARGET_ASM_UNWIND_EMIT): Update to match.
1437         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
1438
1439         * config/arm/arm.c (arm_asm_emit_except_personality): New.
1440         (arm_asm_init_sections): New.
1441         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
1442
1443 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1444
1445         * config/arm/arm.md: Remove unused variable.
1446
1447 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
1448
1449         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
1450         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
1451         (m32r_memory_move_cost): New function.
1452
1453 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
1454
1455         * config.gcc: Append t-android for Android targets.
1456
1457         * config/t-android: New.
1458
1459 2010-09-07  Richard Henderson  <rth@redhat.com>
1460
1461         * target.def (unwind_emit_before_insn): New hook.
1462         * doc/tm.texi.in: Add @hook marker for it.
1463         * doc/tm.texi: Rebuild.
1464         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
1465
1466 2010-09-07  Martin Jambor  <mjambor@suse.cz>
1467
1468         PR fortran/43665
1469         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
1470         are any type attributes.
1471
1472 2010-09-07  Jan Hubicka  <jh@suse.cz>
1473
1474         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
1475         array_ref_low_bound in string access folding.
1476
1477 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
1478
1479         PR target/45206
1480         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
1481         eh_return fixup sequence.
1482
1483 2010-09-07  Jan Hubicka  <jh@suse.cz>
1484
1485         * gimple-fold.c (maybe_fold_reference): Verify that operand is
1486         gimple_min_invariant.
1487
1488 2010-09-07  Richard Guenther  <rguenther@suse.de>
1489
1490         PR middle-end/45569
1491         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
1492         nor CONSTRUCTOR can trap.
1493         * tree-complex.c (update_complex_assignment): Update EH info.
1494
1495 2010-09-07  Richard Guenther  <rguenther@suse.de>
1496
1497         PR middle-end/45569
1498         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
1499         * passes.c (execute_function_todo): Do not verify anything if
1500         we saw errors.
1501
1502 2010-09-07  Richard Guenther  <rguenther@suse.de>
1503
1504         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
1505
1506 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1507
1508         PR target/43137
1509         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
1510         New define_mode_attrs.
1511         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
1512         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
1513         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
1514         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
1515         Remove pool_range attribute.
1516         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
1517         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
1518         pool_range and neg_pool_range attributes.
1519         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
1520         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
1521         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
1522
1523 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1524
1525         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
1526         check glibc.
1527
1528 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1529
1530         PR target/22152
1531         * config/i386/mmx.md (*mov<mode>_internal_rex64,
1532         *mov<mode>_internal_avx, *mov<mode>_internal,
1533         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
1534         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
1535
1536 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
1537
1538         * c-typeck.c (do_warn_double_promotion): Remove.
1539         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
1540         Objective-C++ too.
1541
1542 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
1543
1544         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
1545         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
1546         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
1547         argument type to reg_class_t. Change result type to bool.
1548         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1549
1550 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1551
1552         PR libobjc/19850
1553         * gthr-posix.h (__gthread_objc_thread_detach): Use
1554         _objc_thread_attribs when detaching a thread.
1555         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
1556
1557 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
1558
1559         PR target/45524
1560         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
1561         * configure: Regenerated.
1562
1563 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1564
1565         * combine.c (try_combine): Set subst_low_luid to i0.
1566
1567 2010-09-06  Richard Guenther  <rguenther@suse.de>
1568
1569         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
1570         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
1571         (build_aligned_type): Declare.
1572         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
1573         (check_aligned_type): New function.
1574         (build_aligned_type): Likewise.
1575         * expr.c (expand_assignment): Handle misaligned stores via
1576         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
1577         (expand_expr_real_1): Likewise.
1578         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
1579         * tree-vect-stmts.c (vectorizable_store): Do not build
1580         MISALIGNED_INDIRECT_REF but initialize alignment information.
1581         (vectorizable_load): Likewise.
1582         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
1583         handling.
1584         * cfgexpand.c (expand_debug_expr): Likewise.
1585         * dwarf2out.c (loc_list_from_tree): Likewise.
1586         * fold-const.c (maybe_lvalue_p): Likewise.
1587         (operand_equal_p): Likewise.
1588         (build_fold_addr_expr_with_type_loc): Likewise.
1589         * gimplify.c (gimplify_addr_expr): Likewise.
1590         (gimplify_expr): Likewise.
1591         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
1592         (verify_gimple_assign_single): Likewise.
1593         * tree-dump.c (dequeue_and_dump): Likewise.
1594         (tree_could_trap_p): Likewise.
1595         * tree-predcom.c (ref_at_iteration): Likewise.
1596         * tree-pretty-print.c (dump_generic_node): Likewise.
1597         (op_code_prio): Likewise.
1598         (op_symbol_code): Likewise.
1599         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
1600         * tree-ssa-loop-im.c (for_each_index): Likewise.
1601         (gen_lsm_tmp_name): Likewise.
1602         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
1603         (find_interesting_uses_address): Likewise.
1604         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
1605         * tree-ssa-operands.c (get_expr_operands): Likewise.
1606         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1607         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
1608         (ao_ref_init_from_vn_reference): Likewise.
1609         * tree.c (staticp): Likewise.
1610         (build1_stat): Likewise.
1611         (reference_alias_ptr_type): Likewise.
1612         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1613         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
1614         MISALIGNED_INDIRECT_REF handling.
1615
1616 2010-09-06  Richard Guenther  <rguenther@suse.de>
1617
1618         PR tree-optimization/45534
1619         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
1620         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
1621         on the target.
1622         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
1623         valid on the target.
1624
1625 2010-09-06  Andreas Schwab  <schwab@redhat.com>
1626
1627         * configure.ac: Quote argument of AC_MSG_WARN.
1628         * configure: Regenerate.
1629
1630 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
1631
1632         * sel-sched.c (move_cond_jump): Correct arguments to
1633         maybe_tidy_empty_bb.
1634         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1635
1636 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
1637
1638         PR rtl-optimization/44919
1639         * sel-sched.c (move_cond_jump): Remove assert, check that
1640         the several blocks case can only happen with mutually exclusive
1641         insns instead.  Rewrite the movement code to support moving through
1642         several basic blocks.
1643
1644 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
1645
1646         * config/i386/i386.md (iptrsize): New mode attribute.
1647         (tp_seg): Ditto.
1648         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
1649         mode iterator.
1650         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
1651         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
1652         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
1653         (stack_tls_protect_set_<mode>): Ditto from
1654         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
1655         of thread base pointer load.
1656         (stack_tls_protect_test_<mode>): Ditto from
1657         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
1658         of thread base pointer load.
1659         (stack_protect_set): Rewrite using indirect functions.
1660         (stack_protect_test): Ditto.
1661         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
1662         (ix86_print_operand): Handle '@'.
1663
1664 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
1665
1666         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
1667         MINUS_EXPR.
1668
1669 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
1670
1671         * doc/invoke.texi: Document -Wdouble-promotion.
1672         * c-typeck.c (convert_arguments): Check for implicit conversions
1673         from float to double.
1674         (do_warn_double_promotion): New function.
1675         (build_conditional_expr): Use it.
1676         (build_binary_op): Likewise.
1677
1678 2010-09-05  Richard Guenther  <rguenther@suse.de>
1679
1680         PR tree-optimization/45535
1681         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
1682         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
1683         dereferencing it.
1684         (indirect_refs_may_alias_p): Likewise.
1685
1686 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
1687
1688         * config/sh/sh.c (sh_option_override): Make static.
1689         Adjust comments.  Declare.
1690         (sh_function_value_regno_p): Likewise.
1691         (sh_register_move_cost): Modify the arguments, make static.
1692         Adjust comments.  Declare.
1693         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
1694         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1695         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
1696         REGISTER_MOVE_COST): Delete.
1697         * config/sh/sh-protos.h (sh_override_options): Delete.
1698         (sh_register_move_cost): Delete.
1699         (sh_function_value_regno_p): Delete.
1700
1701 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
1702
1703         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
1704         m32r_function_value_regno_p): New functions.
1705         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1706         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
1707         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
1708         FUNCTION_VALUE_REGNO_P): Remove.
1709
1710 2010-09-04  Jan Hubicka  <jh@suse.cz>
1711
1712         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
1713         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
1714         fold_read_from_constant_string.
1715
1716         * gimple.h (canonicalize_constructor_val): Declare.
1717         * gimple-fold.c (canonicalize_constructor_val): New function.
1718         (get_symbol_constant_value):Use it.
1719         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
1720
1721 2010-09-04  Jan Hubicka  <jh@suse.cz>
1722
1723         * tree-switch-conversion.c (build_one_array): Set constructor to be
1724         static.
1725         * varpool.c (varpool_finalize_decl): Compute const_value_known.
1726
1727 2010-09-04  Richard Guenther  <rguenther@suse.de>
1728
1729         PR bootstrap/45519
1730         * tree-flow.h (force_gimple_operand_1): Declare.
1731         (force_gimple_operand_gsi_1): Likewise.
1732         * gimplify.c (force_gimple_operand_1): New worker taking a
1733         gimple predicate for ...
1734         (force_gimple_operand): ... which now wraps it.
1735         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
1736         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
1737         last change.
1738         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
1739         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
1740         (create_mem_ref): Likewise.
1741
1742 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
1743
1744         * config/i386/predicates.md (sse_reg_operand): New predicate.
1745         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
1746         predicate for operand 1.
1747         (XFmode push splitter): Use fp_register_operand predicate
1748         for operand 1.
1749         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
1750         (SF-DF float_extend push splitter): Add reload_completed insn
1751         predicate.
1752         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
1753         MODEF mode macro.  Add reload_completed insn predicate.
1754
1755 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
1756
1757         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
1758         (struct df_extract_ref): Remove.
1759         (union df_ref_d): Remove extract_ref member.
1760         (df_ref_create): Remove last three arguments.
1761         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
1762         * df-scan.c (df_ref_record): Remove last three arguments, do not
1763         pass them to df_ref_create_structure.
1764         (df_uses_record): Remove first and last three arguments.  Replace
1765         first argument with DF_REF_REGULAR, adjust calls to remove the
1766         width, offset and mode.  Always call recursively on the second
1767         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
1768         (df_ref_create_structure): Remove first argument.
1769         (struct df_scan_problem_data): Remove ref_extract_pool.
1770         (df_scan_free_internal): Do not free it.
1771         (df_scan_alloc): Do not allocate it.
1772         (df_ref_create): Remove last three arguments, do not pass them to
1773         df_ref_create_structure.
1774         (df_free_ref): Remove DF_REF_EXTRACT case.
1775         (df_notes_rescan): Adjust call to df_uses_record.
1776         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
1777         Remove DF_REF_EXTRACT case.
1778         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
1779         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
1780         and SUBREG definitions.
1781         (df_get_conditional_uses): Remove references to width/offset/mode,
1782         adjust call to df_ref_create_structure.
1783         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
1784         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
1785         calls to df_uses_record and df_ref_record.
1786         * fwprop.c (update_df): Remove references to width/offset/mode,
1787         adjust call to df_ref_create.
1788
1789 2010-09-03  Jan Hubicka  <jh@suse.cz>
1790
1791         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
1792         (build_cdtor_fns): Update use of build_cdtor.
1793
1794 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
1795
1796         * doc/options.texi (SeparateAlias): Document.
1797         * opt-functions.awk (switch_flags): Handle SeparateAlias.
1798         * opth-gen.awk: Generate enumeration names for options marked
1799         SeparateAlias, but not for those marked Ignore.
1800         * opts-common.c (generate_canonical_option): Don't output separate
1801         argument for options marked CL_SEPARATE_ALIAS.
1802         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
1803         * opts.h (CL_SEPARATE_ALIAS): New.
1804         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
1805         CL_COMMON): Adjust definitions.
1806         * config/i386/darwin.opt, config/mips/sde.opt: New.
1807         * common.opt (fdump-final-insns): New.
1808         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1809         i386/darwin.opt.
1810         (mips*-sde-elf*): Add mips/sde.opt.
1811         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
1812         -mno-data-in-code and -mcode-xonly here.
1813         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
1814         * gcc.c (option_map): Add "j" to --dump entry.
1815         (translate_options): Don't translate -d to -foutput-class-dir= here.
1816
1817 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
1818
1819         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
1820         DR_IS_WRITE.
1821         (compute_all_dependences): Same.
1822         (create_rdg_edge_for_ddr): Same.
1823         * tree-data-ref.h (DR_IS_WRITE): New.
1824         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
1825         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
1826         (write_memrefs_written_at_least_once): Same.
1827         * tree-predcom.c (suitable_component_p): Same.
1828         (determine_roots_comp): Same.
1829         (execute_load_motion): Same.
1830         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
1831         (vect_enhance_data_refs_alignment): Same.
1832         (vect_analyze_group_access): Same.
1833
1834 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1835
1836         PR testsuite/42843
1837         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
1838         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
1839
1840 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
1841
1842         * dwarf2out.c (file scope): Remove #if0'd code.
1843         (gen_subprogram_die): Same.
1844
1845 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1846
1847         PR middle-end/45484
1848         * dwarf2out.c (flush_queued_reg_saves): Rename to...
1849         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
1850         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
1851         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
1852         * config/i386/i386.c (output_set_got): Call it.
1853
1854 2010-09-03  Michael Matz  <matz@suse.de>
1855
1856         PR middle-end/45415
1857         * tree-sra.c (sra_modify_assign): If we modify the statement,
1858         say so.
1859
1860         * tree-ssa.c (verify_ssa): Check number of operands and links
1861         per statement to agree.
1862
1863 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1864             Iain Sandoe  <iains@gcc.gnu.org>
1865
1866         PR target/45476
1867         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
1868         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
1869         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
1870
1871 2010-09-03  Richard Guenther  <rguenther@suse.de>
1872
1873         * lto-streamer-out.c (output_function): Output function
1874         start and end loci.
1875         * lto-streamer-in.c (input_function): Input function start
1876         and end loci.
1877
1878 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1879
1880         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
1881         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
1882         * configure: Regenerate.
1883         * aclocal.m4: Regenerate.
1884
1885 2010-09-03  Jan Hubicka  <jh@suse.cz>
1886
1887         PR lto/44812
1888         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
1889         on functions/variables in other partition.
1890
1891 2010-09-03  Jan Hubicka  <jh@suse.cz>
1892
1893         * cgraph.h (struct varpool_node): Add const_value_known.
1894         (varpool_decide_const_value_known): Declare.
1895         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
1896         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
1897         (input_varpool_node): Restore const_value_known.
1898         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
1899         initializer folding.
1900         * ipa.c (ipa_discover_readonly_nonaddressable_var,
1901         function_and_variable_visibility): Compute const_value_known.
1902         * gimple-fold.c (get_symbol_constant_value): Use varpool for
1903         initializer folding.
1904         * varpool.c (varpool_decide_const_value_known): New function.
1905
1906 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
1907
1908         * config/i386/i386.md: Remove empty preparation statements
1909         from splitters.
1910
1911 2010-09-03  Jan Hubicka  <jh@suse.cz>
1912
1913         * passes.c (rest_of_decl_compilation): Do not add local vars into
1914         varpool.
1915         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
1916         static or extern vars are in varpool.
1917         (varpool_finalize_decl): Sanity check that only static vars are
1918         finalized.
1919
1920 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
1921
1922         PR debug/45500
1923         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
1924         not just generic vectors with BLKmode.
1925
1926 2010-09-03  Richard Guenther  <rguenther@suse.de>
1927
1928         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
1929         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
1930         * tree.h (TMR_SYMBOL): Remove.
1931         (TMR_BASE, TMR_OFFSET): Adjust.
1932         (TMR_INDEX2): New.
1933         * alias.c (ao_ref_from_mem): Use TMR_BASE.
1934         * builtins.c (get_object_alignment): Merge TMR_BASE and
1935         TMR_SYMBOL handling.
1936         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
1937         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
1938         handling.  Also allow TARGET_MEM_REF as base address.
1939         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
1940         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
1941         base.  Gimplify TMR_INDEX2.
1942         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
1943         * tree-dfa.c (get_ref_base_and_extent): Likewise.
1944         (get_addr_base_and_unit_offset): Likewise.
1945         * tree-eh.c (tree_could_trap_p): Likewise.
1946         * tree-pretty-print.c (dump_generic_node): Likewise.
1947         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
1948         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
1949         base to index2.
1950         (get_address_description): Reconstruct addres description
1951         from merged TMR_BASE and TMR_INDEX2.
1952         (maybe_fold_tmr): Fold propagated addresses.
1953         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
1954         MEM_REF and TARGET_MEM_REF paths.
1955         (indirect_refs_may_alias_p): Likewise.
1956         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
1957         instead of TMR_SYMBOL.
1958         * tree-ssa-operands.c (get_tmr_operands): Simplify.
1959         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
1960         according to changes ...
1961         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
1962         Split TARGET_MEM_REF into two fields plus the base.
1963         * tree.c (mem_ref_offset): Simplify.
1964         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
1965         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
1966         Strip NOPs when folding MEM_REF addresses.
1967         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
1968         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
1969         (fold_gimple_assign): ... not here.
1970
1971 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
1972
1973         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
1974         * config/mips/mips.c (mips_shift_truncation_mask): New function.
1975         (TARGET_SHIFT_TRUNCATION_MASK): Define.
1976
1977 2010-09-02  Richard Henderson  <rth@redhat.com>
1978
1979         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
1980         instead of readelf in the test.
1981         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
1982         in the .debug_frame section for coff targets.
1983         * configure: Rebuild.
1984
1985 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
1986
1987         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
1988         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
1989         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1990         (m32c_class_likely_spilled_p): Make static. Change argument type to
1991         reg_class_t. Change result type to bool.
1992
1993 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1994
1995         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
1996         to convert (double)(long) into a single FRIZ instruction or not
1997         when -ffast-math is used.
1998
1999         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
2000         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
2001         or FRIZ instruction if -ffast-math.
2002         * config/rs6000/rs6000.md (friz): Ditto.
2003
2004         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
2005
2006 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2007
2008         * opth-gen.awk (quote, comma): Remove unused variables.
2009
2010 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
2011
2012         * arm.c (arm_override_options): Correct fall-back code to use
2013         SUBTARGET_CPU_DEFAULT.
2014
2015 2010-09-02  Julian Brown  <julian@codesourcery.com>
2016
2017         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
2018         unspecs.
2019         (vcond<mode>, vcondu<mode>): New expanders.
2020         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
2021         comparisons with zero.
2022         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
2023         * config/arm/constraints.md (Dz): New constraint.
2024
2025 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
2026
2027         * target.def (class_likely_spilled_p): New hook.
2028         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
2029         * doc/tm.texi: Regenerate.
2030         * targhooks.c (default_class_likely_spilled_p): New function.
2031         * targhooks.h (default_class_likely_spilled_p): Declare.
2032         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
2033         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
2034         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
2035         Use fixed_reg_set instead of fixed_regs.
2036         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2037         * calls.c (avoid_likely_spilled_reg): Ditto.
2038         * ira-conflicts.c (ira_build_conflicts): Ditto.
2039         * ira.c (update_equiv_regs): Ditto.
2040         * mode-switching.c (create_pre_exit): Ditto.
2041         * regmove.c (find_matches): Ditto.
2042         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
2043         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
2044         (small_register_class_p): New inline function.
2045         (push_secondary_reload, find_reusable_reload, find_reloads): Use
2046         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
2047
2048         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
2049         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
2050         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2051
2052 2010-09-02  Richard Guenther  <rguenther@suse.de>
2053
2054         PR tree-optimization/44937
2055         PR tree-optimization/45412
2056         * ipa-split.c (split_function): Properly remove PHI nodes.
2057
2058 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2059
2060         * opts.h (struct cl_option): Add warn_message field.
2061         (struct cl_decoded_option): Add warn_message field.
2062         * doc/options.texi (Ignore, Warn): Document.
2063         * opt-functions.awk (needs_state_p): Don't consider aliases or
2064         ignored options to need state saved.
2065         * optc-gen.awk: Handle Warn and Ignore.
2066         * opth-gen.awk: Output OPT_SPECIAL_ignore.
2067         * opts-common.c (decode_cmdline_option): Set warn_message field.
2068         Handle ignored options.
2069         (decode_cmdline_options_to_array, generate_option,
2070         generate_option_input_file): Set warn_message field.
2071         (read_cmdline_option): Generate warnings from warn_message field.
2072         Handle ignored options.
2073         * common.opt (Wunreachable-code, fargument-alias,
2074         fargument-noalias, fargument-noalias-global,
2075         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
2076         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
2077         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
2078         ftree-salias): Mark Ignore.
2079         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
2080         -mintel-syntax and -mno-intel-syntax here.
2081         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
2082         using Warn.
2083         * opts.c (common_handle_option): Don't handle options marked as
2084         ignored.
2085         (enable_warning_as_error): Handle ignored options.
2086
2087 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
2088
2089         PR driver/44076
2090         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
2091         alias_target fields.
2092         * opt-functions.awk (opt_sanitized_name): Don't handle
2093         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
2094         * optc-gen.awk: Generate alias fields.
2095         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
2096         Don't generate such constants for aliases.
2097         * opts-common.c (generate_canonical_option): New.
2098         (decode_cmdline_option): Handle aliases.  Use
2099         generate_canonical_option for known options instead of copying the
2100         input option text.
2101         * doc/options.texi (Alias): Document.
2102         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
2103         fstack-check, specs): Mark as aliases.
2104         * gcc.c (driver_handle_option): Canonicalize -L options to joined
2105         arguments.
2106         (driver_handle_option): Don't handle OPT_specs.
2107         * opts.c (common_handle_option): Don't handle options marked as
2108         aliases.
2109         (enable_warning_as_error): Handle aliases.
2110         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
2111         OPT_Wlarger_than_eq.
2112         * tree-optimize.c (tree_rest_of_compilation): Use
2113         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
2114
2115 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2116
2117         * config/i386/i386.md (nonmemory_operand): New mode attribute.
2118         (push memory peephole2): Macroize peepholes using SWI mode iterator.
2119         (move immediate to memory peephole2): Macroize peepholes using
2120         SWI124 mode iterator.
2121         (non-pairable NOT peephole2): Macroize peepholes using SWI124
2122         mode iterator.
2123         (simple lea add peephole2): Macroize peepholes using SWI48
2124         mode iterator.
2125         (simple lea mult peephole2): Ditto.
2126         (imul by 3,5,9 to lea peephole2): Ditto.
2127         (mov $-1, reg peephole2): Macroize peepholes using SWI248
2128         mode iterator.
2129         (imul $32bit_imm,mem,reg peephole2): Ditto.
2130         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
2131
2132 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
2133
2134         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
2135
2136 2010-09-02  Olivier Hainque  <hainque@adacore.com>
2137
2138         PR middle-end/44763
2139         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
2140         (allocno_priority_compare_func): Use it instead of a straight
2141         difference computation over priorities.
2142
2143 2010-09-02  Andi Kleen  <ak@linux.intel.com>
2144
2145         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
2146
2147 2010-09-02  Ira Rosen  <irar@il.ibm.com>
2148
2149         * tree-vectorizer.h (get_later_stmt): New function.
2150         (vect_analyze_data_ref_dependences): Add argument.
2151         * tree-vect-loop.c (vect_analyze_loop): Update call to
2152         vect_analyze_data_ref_dependences.
2153         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
2154         New function.
2155         (vect_analyze_data_ref_dependence): Add argument for basic block
2156         dependencies. Check dependencies in basic block vectorization.
2157         (vect_analyze_data_ref_dependences): Add argument and update call to
2158         vect_analyze_data_ref_dependences.
2159         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
2160         (vect_bb_vectorizable_with_dependencies): New.
2161         (vect_slp_analyze_bb): Check dependencies in basic block.
2162         (vect_schedule_slp_instance): Insert stores before the last store in
2163         SLP instance.
2164
2165 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
2166
2167         PR target/45476
2168         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
2169         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
2170
2171 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
2172
2173         PR middle-end/45458
2174         * bb-reorder.c (add_labels_and_missing_jumps): Treat
2175         bbs ending with throwing insns like blocks ending with a call.
2176         (fix_up_fall_thru_edges): Likewise.
2177
2178 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
2179
2180         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
2181         (m32c_function_arg_advance): Delete.
2182         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2183         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
2184         comments.  Take a const_tree and a bool.  Declare.
2185         (m32c_function_arg_advance): Likewise.
2186         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2187
2188 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2189
2190         PR target/45476
2191         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
2192         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
2193         * config/i386/mingw32.h: ... here.
2194
2195 2010-09-01  Andi Kleen  <ak@linux.intel.com>
2196
2197         PR lto/45475
2198         * lto-streamer-in.c (lto_input_ts_target_option): Add.
2199         (lto_input_tree_pointers): Call lto_input_ts_target_option.
2200         * lto-streamer-out (lto_output_ts_target_option): Add.
2201         (lto_output_tree_pointers): Call lto_output_ts_target_option.
2202
2203 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
2204
2205         PR/target 45452
2206         * config/i386/cygwin.h: Change order of specified import libraries.
2207         * config/i386/mingw32.h: Likewise.
2208         * config/i386/t-cygwin: Likewise.
2209         * config/i386/t-mingw32: Likewise.
2210         * config/i386/t-mingw-w32: Likewise.
2211         * config/i386/t-mingw-w64: Likewise.
2212
2213 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2214
2215         * config/arm/neon-schedgen.ml (core): New type.
2216         (allCores): List of supported cores.
2217         (availability_table): Add supported cores.
2218         (collate_bypasses): Accept core as a parameter.
2219         (worst_case_latencies_and_bypasses): Accept core as a parameter.
2220         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
2221         and coreStr to get tune attribute and prefix for functional units.
2222         (emit_bypasses): Accept core name and use it.
2223         (calculate_per_core_availability_table): New.
2224         (filter_core): New.
2225         (calculate_core_availability_table): New.
2226         (main): Use calculate_core_availablity_table.
2227         * config/arm/cortex-a8-neon.md: Update copyright year.
2228         Regenerated from ml file and merged in.
2229         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
2230         cortex_a8_neon_mrc.
2231
2232 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
2233
2234         * Makefile.in (tree-switch-conversion.o): Update dependencies.
2235
2236 2010-09-01  Richard Guenther  <rguenther@suse.de>
2237
2238         * alias.c (ao_ref_from_mem): Adjust.
2239         * builtins.c (get_object_alignment): Likewise.
2240         * cfgexpand.c (expand_debug_expr): Likewise.
2241         * gimple.c (get_base_address): Likewise.
2242         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2243         (get_addr_base_and_unit_offset): Likewise.  Fix for
2244         both TMR_SYMBOL and TMR_BASE being set.
2245         * tree-eh.c (tree_could_trap_p): Likewise.
2246         * gimplify.c (gimplify_expr): Do not attempt to gimplify
2247         TMR_SYMBOL.  Always gimplify TMR_BASE.
2248         * tree-cfg.c (verify_types_in_gimple_reference): Verify
2249         TMR_BASE if there is a TMR_SYMBOL.
2250         * tree-pretty-print.c (dump_generic_node): Adjust.
2251         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
2252         (tree_mem_ref_addr): Likewise.
2253         (create_mem_ref_raw): Likewise.
2254         (move_fixed_address_to_symbol): Likewise.
2255         (create_mem_ref): Likewise.
2256         (dump_mem_address): Likewise.
2257         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
2258         Fix for both TMR_SYMBOL and TMR_BASE being set.
2259         (indirect_refs_may_alias_p): Likewise.
2260         * tree-ssa-operands.c (get_tmr_operands): Adjust.
2261         * tree.def (TARGET_MEM_REF): Adjust documentation.
2262
2263 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2264
2265         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
2266         Rename from X86_TUNE_ADD_ESP_4.
2267         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
2268         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
2269         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
2270         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
2271         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
2272         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
2273         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
2274         * config/i386/i386.c (initial_ix86_tune_features)
2275         <X86_TUNE_SINGLE_POP>: Invert members.
2276         <X86_TUNE_DOUBLE_POP>: Ditto.
2277         <X86_TUNE_SINGLE_PUSH>: Ditto.
2278         <X86_TUNE_DOUBLE_PUSH>: Ditto.
2279         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
2280         No longer exported.
2281         (push peephole2 patterns): Macroize peepholes using P mode iterator.
2282         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
2283         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
2284         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
2285
2286 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2287
2288         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
2289         a volatile LHS if the constructor has only one element.
2290
2291 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
2292
2293         PR bootstrap/45321
2294         * tree.c (stdarg_p): Make fntype parameter const.
2295         * tree.h (stdarg_p): Likewise.
2296         (function_args_iterator): Remove unused fntype field.
2297         (function_args_iter_init): Do not initialize fntype
2298         field.  Make fntype parameter const.
2299
2300 2010-09-01  Richard Guenther  <rguenther@suse.de>
2301
2302         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
2303         estimate.
2304         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
2305         (execute_vrp): Compute number of iteration estimates.
2306         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
2307         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
2308         * tree-data-ref.c (estimated_loop_iterations): Adjust.
2309         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2310         Infer loop bounds from undefined behavior based on a new parameter.
2311         (estimate_numbers_of_iterations): Likewise.
2312         (scev_probably_wraps_p): Adjust.
2313         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
2314
2315 2010-09-01  Nick Clifton  <nickc@redhat.com>
2316
2317         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
2318         where appropriate.
2319         (xstormy16_legitimate_address_p): Use true and false instead of 1
2320         and 0.
2321         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
2322         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
2323         magic constant 2.
2324         (xstormy16_expand_call): Fix comment at start of function.
2325
2326 2010-09-01  Nick Clifton  <nickc@redhat.com>
2327
2328         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
2329         when pushing accumulator register.
2330         (rx_get_stack_layout): Always save call clobbered registers inside
2331         interrupt handlers.
2332         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
2333
2334 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
2335
2336         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
2337         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
2338
2339         * libgcc-std.ver (GCC_4.6.0): Define version.
2340
2341 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2342
2343         * tree-nested.c (convert_all_function_calls): Iterate until after the
2344         sum of static chains in the nest doesn't change.
2345
2346 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
2347
2348         * config/m32c/m32c.c (classes_intersect): Remove.
2349         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
2350         reg_classes_intersect_p instead of classes_intersect.
2351         (class_can_hold_mode): Change arguments type from enum reg_class to
2352         reg_class_t.  Use reg_class_contents instead of class_contents.
2353         (m32c_register_move_cost): Make static. Change arguments type from
2354         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
2355         classes_intersect. Use reg_class_contents instead of class_contents.
2356         (m32c_memory_move_cost): Make static. Change arguments type from
2357         enum reg_class to reg_class_t.
2358         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2359         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2360         * config/m32c/m32c-protos.h (m32c_register_move_cost,
2361         m32c_memory_move_cost): Remove.
2362
2363 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2364
2365         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
2366         (arm_function_arg): Delete.
2367         (arm_needs_doubleword_align): Take a const_tree.
2368         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2369         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
2370         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
2371         (arm_function_arg): Make static.  Take a const_tree and a bool.
2372         (arm_function_arg_advance): Likewise.
2373         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2374
2375 2010-08-31  Andi Kleen  <ak@linux.intel.com>
2376
2377         * common.opt (fwhopr=): Update for -fwhopr=jobserver
2378         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
2379         * lto-wrapper.c (run_gcc): Add jobserver mode.
2380         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
2381         argument.
2382
2383 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
2384
2385         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
2386         (popsi1): Ditto.
2387         (*popdi1_epilogue): Ditto.
2388         (*popsi1_epilogue): Ditto.
2389         (popsi, popdi peephole2 patterns): Update peepholes for changed
2390         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
2391
2392         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
2393         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
2394
2395         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
2396         (override_options): Do not initialize removed ix86_gen_pop1.
2397         (gen_pop): New static function.
2398         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
2399         (release_scratch_register_on_entry): Ditto.
2400         (ix86_restore_reg_using_pop): Ditto.
2401         (ix86_expand_epilogue): Ditto.
2402
2403 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
2404
2405         PR middle-end/45461
2406         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
2407
2408 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2409
2410         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
2411         semicolons.
2412
2413 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2414
2415         * doc/extend.texi: Fix documentation of the return value of
2416         __builtin_choose_expr.
2417
2418 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2419
2420         * config/v850/v850-protos.h (function_arg): Delete.
2421         * config/v850/v850.h (FUNCTION_ARG): Delete.
2422         (FUNCTION_ARG_ADVANCE): Move code to...
2423         * config/v850/v850.c (v850_function_arg_advance): ...here.
2424         (v850_function_arg): Make static.  Take a const_tree and a bool.
2425         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2426
2427 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2428
2429         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
2430         these...
2431         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2432         ...and these...
2433         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
2434         ..to here..
2435         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
2436         ...and here.
2437         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2438
2439 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
2440
2441         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
2442         Delete.
2443         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2444         * config/rx/rx.c (rx_function_arg_size): Make static.
2445         (rx_function_arg): Likewise.
2446         (rx_function_arg_advance): New function.
2447         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2448
2449 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
2450
2451         * config/arm/arm.c (arm_override_options): Remove superfluous test.
2452         Fix indentation.
2453
2454 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
2455
2456         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
2457         (dwarf2out_decl) <CONST_DECL>: Likewise.
2458
2459 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2460
2461         Stack usage support
2462         * common.opt (-fstack-usage): New option.
2463         * doc/invoke.texi (Debugging options): Document it.
2464         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
2465         allocate_dynamic_stack_space.
2466         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
2467         and propagate it to allocate_dynamic_stack_space.
2468         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
2469         * calls.c (initialize_argument_information): Pass TRUE as 4th
2470         argument to allocate_dynamic_stack_space.
2471         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
2472         to 1 when pushing a variable-sized argument onto the stack.  Pass
2473         TRUE as 4th argument to allocate_dynamic_stack_space.
2474         Update current_function_pushed_stack_size.
2475         (emit_library_call_value_1): Likewise.
2476         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
2477         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
2478         attempt to find an upper bound.  Remove redundant code for the
2479         SETJMP_VIA_SAVE_AREA case.
2480         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
2481         * function.h (struct stack_usage): New structure.
2482         (current_function_static_stack_size): New macro.
2483         (current_function_dynamic_stack_size): Likewise.
2484         (current_function_pushed_stack_size): Likewise.
2485         (current_function_dynamic_alloc_count): Likewise.
2486         (current_function_has_unbounded_dynamic_stack_size): Likewise.
2487         (current_function_allocates_dynamic_stack_space): Likewise.
2488         (struct function): Add new field 'su'.
2489         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
2490         add the value of the dynamic offset to the dynamic stack usage.
2491         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
2492         for variable-sized objects.
2493         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
2494         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
2495         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
2496         BUILT_IN_ALLOCA for variable-sized objects.
2497         * output.h (output_stack_usage): Declare.
2498         * toplev.c (stack_usage_file): New file pointer.
2499         (output_stack_usage): New function.
2500         (open_auxiliary_file): Likewise.
2501         (lang_dependent_init): Open file if flag_stack_usage is set.
2502         (finalize): Close file if stack_usage_file is not null.
2503         * tree.h (ALLOCA_FOR_VAR_P): New macro.
2504         * config/alpha/alpha.c (compute_frame_size): New function.
2505         (alpha_expand_prologue): Use it.
2506         (alpha_start_function): Likewise.
2507         (alpha_expand_epilogue): Likewise.  Set stack usage info.
2508         * config/i386/i386.c (ix86_expand_prologue): Likewise.
2509         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
2510         * config/mips/mips.c (mips_expand_prologue): Likewise.
2511         * config/pa/pa.c (hppa_expand_prologue): Likewise.
2512         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
2513         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
2514
2515 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
2516
2517         PR tree-optimization/45427
2518         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
2519         Handle the case that the exit is never taken correctly.
2520         (number_of_iterations_ne): Pass exit_must_be_taken to
2521         number_of_iterations_ne_max.
2522
2523 2010-08-30  Catherine Moore  <clm@codesourcery.com>
2524
2525         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
2526         Infer -mdspr2 for the the 74K.
2527
2528 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
2529
2530         PR debug/45419
2531         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
2532
2533         PR middle-end/45423
2534         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
2535         and TRUTH_{AND,OR,XOR}_EXPR.
2536         * c-parser.c (c_parser_omp_atomic): Handle boolean
2537         {PRE,POST}_{INC,DEC}REMENT.
2538
2539 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
2540
2541         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
2542         (function_arg): Delete.
2543         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2544         (FUNCTION_INCOMING_ARG): Delete.
2545         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
2546         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
2547         and a bool.
2548         (function_arg): Rename to...
2549         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
2550         a bool.
2551         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
2552         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2553         (TARGET_FUNCTION_INCOMING_ARG): Define.
2554
2555 2010-08-30  Richard Guenther  <rguenther@suse.de>
2556
2557         PR tree-optimization/21602
2558         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
2559         using points-to information.
2560
2561 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
2562
2563         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
2564
2565 2010-08-30  Richard Guenther  <rguenther@suse.de>
2566
2567         PR tree-optimization/45449
2568         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
2569         variables.
2570
2571 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
2572
2573         * opts.h (CL_ERR_NEGATIVE): Define.
2574         * opts.c (unknown_option_callback): Don't postpone warnings for
2575         options marked with CL_ERR_NEGATIVE.
2576         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
2577         for negative versions of CL_REJECT_NEGATIVE options.
2578
2579 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
2580
2581         * config/i386/i386.md (zero_extendsidi2_1): Rename from
2582         zero_extendsidi2_32.
2583         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
2584         using SWI12 mode iterator.
2585         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
2586         to define_insn_and_split pattern.
2587         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
2588         using SWI24 mode iterator.
2589         (*zero_extendqi<mode>2_and): Macroize insn from
2590         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
2591         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
2592         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
2593         SWI24 mode iterator.
2594         (*zero_extendqi<mode>2_movzbl): Ditto from
2595         *zero_extendqi{hi,si}2_movzbl.
2596         (extendsidi2_1): Rename from extendsidi2_32.
2597         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
2598         SWI12 mode iterator.
2599
2600 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
2601
2602         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
2603         general purpose registers.
2604         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
2605         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
2606         with general purpose registers and memory operands.  Add associated
2607         CCImode post-reload splitter.
2608         * config/ia64/div.md: Change BImode to CCImode throughout.
2609
2610 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
2611
2612         * config/ia64/ia64.md (cstorebi4): Fix thinko.
2613
2614 2010-08-28  Hariharan Sandanagobalane <hariharan@picochip.com>
2615
2616         * config/picochip/picochip.c (reorder_var_tracking_notes): This
2617         function was dropping debug insns which caused PR45299.
2618
2619 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
2620
2621         * config/i386/sse.md (extsuffix): New code attribute.
2622         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
2623         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
2624         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
2625         and sse4_1_zero_extendv4qiv4si2.
2626         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
2627         and sse4_1_zero_extendv2qiv2di2.
2628         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
2629         and sse4_1_zero_extendv4hiv4si2.
2630         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
2631         and sse4_1_zero_extendv2hiv2di2.
2632         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
2633         and sse4_1_zero_extendv2siv2di2
2634
2635         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
2636         using any_extend code iterator.
2637         (*avx_<s>mulv8hi3_highpart): Macroize insn from
2638         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
2639         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
2640
2641         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
2642         gen_sse4_1_sign_extend* functions.
2643         (struct builtin_description bdesc_args): Ditto.
2644
2645 2010-08-27  Xinliang David Li  <davidxl@google.com>
2646
2647         PR/45422
2648         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
2649         (iv_ca_set_no_cp): Update used inv expr count.
2650         (iv_ca_set_cp): Ditto.
2651         (iv_ca_new): Initialize new member.
2652         (iv_ca_free): Free memory.
2653
2654 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2655
2656         * config/sh/sh-protos.h (sh_function_arg): Delete.
2657         (sh_function_arg_advance): Delete.
2658         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2659         (PASS_IN_REG_P): Eliminate cast.
2660         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
2661         const_tree and a bool.
2662         (sh_function_arg): Likewise.
2663         (sh_output_mi_thunk): Call sh_function_arg_advance) and
2664         sh_function_arg.
2665         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2666
2667 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
2668             Kaz Kojima  <kkojima@gcc.gnu.org>
2669
2670         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
2671         when possible.
2672         (sh_expand_epilogue): Likewise.
2673         * config/sh/sh.md (movml_push_banked): New insn.
2674         (movml_pop_banked): Likewise.
2675
2676 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
2677
2678         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
2679         gen_regexp_oneof, gen_regexp_sequence): Use the string found
2680         in vector element 0 rather than the original string when there's
2681         only one element.
2682         (gen_regexp): Remove extra semicolon.
2683
2684         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
2685         thumb2_movsf_vfp): Set attribute "insn".
2686         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
2687         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
2688         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
2689         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
2690         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
2691         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
2692         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
2693         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
2694         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
2695         if_not_arith, if_arith_not, cond_move_not): Likewise.
2696
2697 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2698
2699         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
2700         New declaration.
2701         (rs6000_allocate_stack_temp): Ditto.
2702         (rs6000_expand_convert_si_to_sfdf): Ditto.
2703
2704         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
2705         line.  Update the options set if power6 or power7 server/embedded
2706         type options are used.  If we give a warning for no vsx under
2707         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
2708         (rs6000_allocate_stack_temp): New function to allocate a stack
2709         tempoary and adjust the address so it meets either REG+OFFSET or
2710         REG+REG addressing requirements.
2711         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
2712         that they can be used with the LFIWAX/LFIWZX instrucitons.
2713         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
2714         converting signed/unsigned SImode to either SFmode/DFmode.
2715
2716         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
2717         whether certain instructions can be generated.
2718         (TARGET_FCTIDZ): Ditto.
2719         (TARGET_STFIWX): Ditto.
2720         (TARGET_LFIWAX): Ditto.
2721         (TARGET_LFIWZX): Ditto.
2722         (TARGET_FCFIDS): Ditto.
2723         (TARGET_FCFIDU): Ditto.
2724         (TARGET_FCFIDUS): Ditto.
2725         (TARGET_FCTIDUZ): Ditto.
2726         (TARGET_FCTIWUZ): Ditto.
2727
2728         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
2729         (UNSPEC_FCTID): Ditto.
2730         (UNSPEC_LFIWAX): Ditto.
2731         (UNSPEC_LFIWZX): Ditto.
2732         (UNSPEC_FCTIWUZ): Ditto.
2733         (rreg): Use correct constraints.
2734         (SI_CONVERT_FP): New mode attribute for floating point conversion
2735         tests.
2736         (E500_CONVERT): Ditto.
2737         (lfiwax): New insns for converting from integer to floating point
2738         utilizing newer instructions.  Attempt to optimize conversions
2739         that come from memory so that we don't load the value into a GPR,
2740         spill it to the stack and reload it into a FPR.
2741         (floatsi<mode>2_lfiwax): Ditto.
2742         (floatsi<mode>2_lfiwax_mem): Ditto.
2743         (floatsi<mode>2_lfiwax_mem2): Ditto.
2744         (lfiwzx): Ditto.
2745         (floatunssi<mode>2_lfiwzx): Ditto.
2746         (floatunssi<mode>2_lfiwzx_mem): Ditto.
2747         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2748         (floatdidf2_mem): Ditto.
2749         (floatunsdidf2_fcfidu): Ditto.
2750         (floatunsdidf2_mem): Ditto.
2751         (floatunsdisf2): Ditto.
2752         (floatunsdisf2_fcfidus): Ditto.
2753         (floatunsdisf2_mem): Ditto.
2754         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
2755         Use FCFID on 32-bit hosts that support it.
2756         (floatsidf2_internal): Ditto.
2757         (floatunssisf2): Ditto.
2758         (floatunssidf2): Ditto.
2759         (floatunssidf2_internal): Ditto.
2760         (floatsisf2): Ditto.
2761         (floatdidf2): Ditto.
2762         (floatdidf2_fpr): Ditto.
2763         (floatunsdidf2): Ditto.
2764         (floatdisf2): Ditto.
2765         (floatdisf2_fcfids): Ditto.
2766         (floatdisf2_internal1): Ditto.
2767         (fixuns_truncsfsi2): Delete, merge into common pattern for both
2768         SF/DF.  Add power7 support.
2769         (fix_truncsfsi2): Ditto.
2770         (fixuns_truncdfsi2): Ditto.
2771         (fixuns_truncdfdi2): Ditto.
2772         (fix_truncdfsi2): Ditto.
2773         (fix_truncdfsi2_internal): Ditto.
2774         (fix_truncdfsi2_internal_gfxopt): Ditto.
2775         (fix_truncdfsi2_mfpgpr): Ditto.
2776         (fctiwz): Ditto.
2777         (btruncdf2): Ditto.
2778         (btruncdf2_fpr): Ditto.
2779         (btructsf2): Ditto.
2780         (ceildf2): Ditto.
2781         (ceildf2_fpr): Ditto.
2782         (ceilsf2): Ditto.
2783         (floordf2): Ditto.
2784         (floordf2_fpr): Ditto.
2785         (floorsf2): Ditto.
2786         (rounddf2): Ditto.
2787         (rounddf2_fpr): Ditto.
2788         (roundsf2): Ditto.
2789         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
2790         (fix_trunc<mode>di2): Ditto.
2791         (fixuns_trunc<mode>si2): Ditto.
2792         (fixuns_trunc<mode>di2): Ditto.
2793         (fctiwz_<mode>): Ditto.
2794         (btrunc<mode>2): Ditto.
2795         (btrunc<mode>2_fpr): Ditto.
2796         (ceil<mode>2): Ditto.
2797         (ceil<mode>2_fpr): Ditto.
2798         (floor<mode>2): Ditto.
2799         (float<mode>2_fpr): Ditto.
2800         (round<mode>2): Ditto.
2801         (round<mode>2_fpr): Ditto.
2802         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
2803         (fixuns_trunc<mode>si2_stfiwx): Ditto.
2804         (fix_truncdfsi2_internal): Ditto.
2805         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
2806         converted value on stack, loaded into GPR, and then stored into
2807         the final destination.
2808         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
2809         FCTIDZ.
2810         (lrint<mode>di2): New insn, provide the lrint builtin functions.
2811         (ftruncdf2): Delete, unused.
2812         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
2813
2814         * config/rs6000/vsx.md (toplevel): Update copyright year.
2815         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
2816         (VSr3): Ditto.
2817
2818 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
2819             Jeremie Salvucci  <jeremie.salvucci@free.fr>
2820
2821         * gengtype.c (output_type_enum): Test the right union member.
2822
2823 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
2824
2825         PR target/41484
2826         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
2827         operands for operand 1.
2828         (sse4_1_extendv4qiv4si2): Ditto.
2829         (sse4_1_extendv2qiv2di2): Ditto.
2830         (sse4_1_extendv4hiv4si2): Ditto.
2831         (sse4_1_extendv2hiv2di2): Ditto.
2832         (sse4_1_extendv2siv2di2): Ditto.
2833         (sse4_1_zero_extendv8qiv8hi2): Ditto.
2834         (sse4_1_zero_extendv4qiv4si2): Ditto.
2835         (sse4_1_zero_extendv2qiv2di2): Ditto.
2836         (sse4_1_zero_extendv4hiv4si2): Ditto.
2837         (sse4_1_zero_extendv2hiv2di2): Ditto.
2838         (sse4_1_zero_extendv2siv2di2): Ditto.
2839         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
2840         (*sse4_1_extendv4qiv4si2): Ditto.
2841         (*sse4_1_extendv2qiv2di2): Ditto.
2842         (*sse4_1_extendv4hiv4si2): Ditto.
2843         (*sse4_1_extendv2hiv2di2): Ditto.
2844         (*sse4_1_extendv2siv2di2): Ditto.
2845         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
2846         (*sse4_1_zero_extendv4qiv4si2): Ditto.
2847         (*sse4_1_zero_extendv2qiv2di2): Ditto.
2848         (*sse4_1_zero_extendv4hiv4si2): Ditto.
2849         (*sse4_1_zero_extendv2hiv2di2): Ditto.
2850         (*sse4_1_zero_extendv2siv2di2): Ditto.
2851
2852 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2853
2854         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
2855         (mips_function_arg): Delete.
2856         (mips_function_arg_boundary): Take a const_tree.
2857         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
2858         (mips_arg_info): Likewise.
2859         (mips_setup_incoming_varargs): Call mips_function_arg_advance
2860         instead of FUNCTION_ARG_ADVANCE.
2861         (mips_function_arg_advance): Adjust prototype.  Make static.
2862         (mips_function_arg): Likewise.
2863         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2864         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
2865
2866 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
2867
2868         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
2869         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
2870         (function_arg): Delete.
2871         (function_arg_boundary): Take a const_tree.
2872         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
2873         (rs6000_spe_function_arg): Likewise.
2874         (rs6000_parm_start): Likewise.
2875         (rs6000_arg_size): Likewise.
2876         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
2877         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
2878         (rs6000_mixed_function_arg): Likewise.
2879         (function_arg): Rename to...
2880         (rs6000_function_arg): ...this.
2881         (function_arg_advance): Rename to...
2882         (rs6000_function_arg_advance_1): ...this
2883         (rs6000_function_arg_advance): New function.  Call it.
2884         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
2885         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
2886         (rs6000_function_value): Likewise.
2887         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
2888
2889 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2890
2891         * config/arm/arm.md (enabled): Test the value of arch_enabled
2892         rather than just using it.
2893
2894 2010-08-27  Olivier Hainque  <hainque@adacore.com>
2895             Eric Botcazou  <ebotcazou@adacore.com>
2896
2897         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
2898         cover all the possible offsets from this base.
2899         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
2900
2901 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
2902
2903         PR tree-optimization/44485
2904         * calls.c (flags_from_decl_or_type): For const or pure
2905         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
2906         together with ECF_CONST resp. ECF_PURE.
2907         * builtins.c (expand_builtin): Use flags_from_decl_or_type
2908         instead of querying flags directly.
2909         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
2910         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
2911
2912 2010-08-26  Richard Guenther  <rguenther@suse.de>
2913
2914         PR tree-optimization/45255
2915         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
2916         and externals are also invariant.
2917
2918 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2919
2920         PR rtl-optimization/44858
2921         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
2922         newi2pat, make sure they don't affect newpat.
2923
2924         PR rtl-optimization/45400
2925         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
2926         SUBREG_REG if both modes are of MODE_INT class.
2927
2928 2010-08-25  Julian Brown  <julian@codesourcery.com>
2929
2930         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
2931         * config/arm/arm.md (generic_sched): No for Cortex-A5.
2932         (generic_vfp): Likewise.
2933         (cortex-a5.md): Include.
2934         * config/arm/cortex-a5.md: New.
2935
2936 2010-08-25  Richard Guenther  <rguenther@suse.de>
2937
2938         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
2939         * gimple.c (gimple_get_alias_set): Remove special handling
2940         for pointers.
2941
2942 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2943
2944         PR middle-end/45355
2945         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
2946         dead_or_set_p when computing i0_feeds_i2_n.
2947
2948         * combine.c (find_split_point): Undo canonicalization of multiply-add
2949         to (minus x (mult)) when it seems likely that this will increase the
2950         chances of a split.
2951
2952 2010-08-25  Richard Guenther  <rguenther@suse.de>
2953
2954         PR lto/44562
2955         * lto-streamer.c (lto_record_common_node): Do not mess with
2956         TYPE_CANONICAL when not in lto.
2957         * gimple.c (gimple_register_type): Likewise.
2958
2959 2010-08-25  Richard Guenther  <rguenther@suse.de>
2960
2961         PR tree-optimization/45316
2962         * tree-ssa-pre.c (eliminate): Properly clean EH info.
2963
2964 2010-08-25  Richard Guenther  <rguenther@suse.de>
2965
2966         PR tree-optimization/45393
2967         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
2968         and clean EH info.  Avoid SSA update.
2969         (execute_cse_sincos): Cleanup the CFG if it has changed.
2970
2971 2010-08-25  Richard Guenther  <rguenther@suse.de>
2972
2973         PR middle-end/45379
2974         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
2975         TARGET_MEM_REF in alignment computation.
2976
2977 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
2978
2979         PR tree-optimization/45059
2980         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
2981         type conversions from newop{1,2}.  Assert t is a comparison and
2982         newop{1,2} after the stripping are gimple vals.
2983
2984 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
2985
2986         * config/arm/iterators.md (VU, SE, V_widen_l): New.
2987         (V_unpack, US): New.
2988         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
2989         (vec_unpack<US>_lo_<mode>): Likewise.
2990         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
2991         (neon_vec_unpack<US>_lo_<mode>): Likewise.
2992         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
2993         (vec_widen_<US>mult_hi_<mode>): Likewise.
2994         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
2995         (neon_vec_<US>mult_hi_<mode>"): Likewise.
2996         (neon_unpack<US>_<mode>): Widening move intermediate step for
2997         vectorizing without -mvectorize-with-neon-quad.
2998         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
2999         for vectorizing without -mvectorize-with-neon-quad.
3000         * config/arm/predicates.md (vect_par_constant_high): Check for
3001         high-half lanes of a vector.
3002         (vect_par_constant_low): Check for low-half lanes of a vector.
3003
3004 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3005
3006         * tree-if-conv.c (struct ifc_dr): New.
3007         (IFC_DR): New.
3008         (DR_WRITTEN_AT_LEAST_ONCE): New.
3009         (DR_RW_UNCONDITIONALLY): New.
3010         (memref_read_or_written_unconditionally): Use the cached values
3011         when possible.
3012         (write_memref_written_at_least_once): Same.
3013         (if_convertible_loop_p): Initialize and free DR->aux fields.
3014
3015 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3016
3017         * gimple.c (gimple_could_trap_p_1): Not static anymore.
3018         Pass an extra bool parameter include_mem.
3019         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
3020         (gimple_assign_rhs_could_trap_p): Same.
3021         * gimple.h (gimple_could_trap_p_1): Declared.
3022         * tree-data-ref.h (same_data_refs_base_objects): New.
3023         (same_data_refs): New.
3024         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
3025         (write_memrefs_written_at_least_once): New.
3026         (ifcvt_memrefs_wont_trap): New.
3027         (operations_could_trap): New.
3028         (ifcvt_could_trap_p): New.
3029         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
3030         Gets a vector of data refs.
3031         (if_convertible_stmt_p): Same.
3032         (if_convertible_loop_p_1): New.
3033         (if_convertible_loop_p): Call if_convertible_loop_p_1.
3034
3035 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
3036
3037         * common.opt (ftree-loop-if-convert-stores): New flag.
3038         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
3039         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
3040         the created statement before GSI.
3041         (if_convertible_phi_p): Allow virtual phi nodes when
3042         flag_loop_if_convert_stores is set.
3043         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
3044         Do not handle types that do not match is_gimple_reg_type.
3045         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
3046         when flag_loop_if_convert_stores is set, as LHS can contain
3047         memory refs.
3048         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
3049         to if_convertible_gimple_assign_stmt_p.
3050         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
3051         (replace_phi_with_cond_gimple_assign_stmt): Renamed
3052         predicate_scalar_phi.  Do not handle virtual phi nodes.
3053         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
3054         Call predicate_scalar_phi.
3055         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
3056         just after the labels for flag_loop_if_convert_stores, otherwise
3057         insert the predicate in the end of the BB.
3058         (predicate_mem_writes): New.
3059         (combine_blocks): Call predicate_all_scalar_phis.  When
3060         flag_loop_if_convert_stores is set, call predicate_mem_writes.
3061         (tree_if_conversion): Call mark_sym_for_renaming when
3062         flag_loop_if_convert_stores is set.
3063         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
3064         flag_loop_if_convert_stores is set.
3065
3066 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
3067
3068         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
3069         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
3070         (pa_function_value): Make static.
3071         (override_options): Rename to...
3072         (pa_option_override): ...this. Make static.
3073         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
3074         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
3075         TARGET_OPTION_OVERRIDE): Define.
3076         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
3077         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
3078         Remove.
3079         * config/pa/pa-protos.h (override_options): Remove.
3080
3081 2010-08-24  Richard Guenther  <rguenther@suse.de>
3082
3083         PR middle-end/45379
3084         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
3085         if addr->index is NULL or zero.
3086         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
3087         TARGET_MEM_REF more properly.
3088         (indirect_ref_may_alias_decl_p): Likewise.
3089         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
3090         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
3091
3092 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
3093
3094         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
3095         (m32c_override_options): Rename to...
3096         (m32c_option_override): ...this. Make static.
3097         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
3098         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
3099         Remove.
3100         * config/m32c/m32c-protos.h (m32c_override_options,
3101         m32c_function_value_regno_p): Remove.
3102
3103 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3104
3105         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
3106         Fix a typo in a previous commit.
3107
3108 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
3109
3110         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
3111         Pre-initialize innerloop_iters to one.
3112
3113 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
3114
3115         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
3116         existing static function global.
3117
3118         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
3119         is changed to global.
3120
3121         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
3122         may_be_nonaddressable_p on base, and don't collect this reference
3123         if the address of the base could not be taken.
3124
3125 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3126
3127         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
3128         enable the compiler to autovectorize mathmetical functions for
3129         power7 using the Mathematical Acceleration Subsystem library.
3130
3131         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
3132         handle which vector math library we have.
3133         (rs6000_override_options): Add -mveclibabi=mass support.
3134         (rs6000_builtin_vectorized_libmass): New function to handle auto
3135         vectorizing math functions that are in the MASS library.
3136         (rs6000_builtin_vectorized_function): Call it.
3137
3138         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3139         -mveclibabi=mass.
3140
3141 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3142
3143         PR boehm-gc/34544
3144         * gthr-posix.h (__gthread_active_init): Delete.
3145         (__gthread_active_p): Do activity check here.
3146         Don't include errno.h on hppa-hpux.  Update comment.
3147         * gthr-posix95.h (__gthread_active_init): Delete.
3148         (__gthread_active_p): Do activity check here.
3149         Don't include errno.h on hppa-hpux.  Update comment.
3150         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
3151         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
3152         add -lpthread when -mt or -pthread is specified.
3153         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
3154         (LINK_GCC_C_SEQUENCE_SPEC): Define.
3155         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
3156         (stublib.c, pthread_default_stacksize_np-stub.o,
3157         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
3158         $(T)libgcc_stub.a): Add methods.
3159         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
3160         (stublib.c, pthread_default_stacksize_np-stub.o,
3161         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
3162         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
3163         pthread_mutex_unlock): New stubs.
3164
3165 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
3166
3167         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
3168         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
3169         options.
3170         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
3171         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
3172         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
3173         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
3174         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
3175         "-l".
3176         * cppspec.c: Include opts.h.
3177         (lang_specific_driver): Use cl_decoded_option structures.
3178         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
3179         * doc/tm.texi: Regenerate.
3180         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
3181         (driver_handle_option): Allow driver options needing no special
3182         processing.
3183         (process_command): Decode options before call to
3184         lang_specific_driver.  Pass decoded options to
3185         lang_specific_driver.
3186         * gcc.h (lang_specific_driver): Update prototype.
3187         * gccspec.c: Include opts.h.
3188         (lang_specific_driver): Use cl_decoded_option structures.
3189         * opts-common.c (option_ok_for_language, generate_option,
3190         generate_option_input_file): New.
3191         (decode_cmdline_option): Use option_ok_for_language.
3192         (decode_cmdline_options_to_array): Use generate_option_input_file.
3193         (handle_generated_option): Use generate_option.
3194         * opts.h (generate_option, generate_option_input_file): Declare.
3195
3196 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
3197
3198         * config/mips/mips.c (mips_override_options): Rename to...
3199         (mips_option_override): ...this. Make static.
3200         (TARGET_OPTION_OVERRIDE): Define.
3201         (mips_in_small_data_p): Update comment.
3202         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
3203         (FIXED_REGISTERS): Update comment.
3204         * config/mips/mips-protos.h (mips_override_options): Remove.
3205
3206 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3207
3208         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
3209
3210 2010-08-21  Olivier Hainque  <hainque@adacore.com>
3211
3212         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
3213         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
3214
3215 2010-08-20  Jan Hubicka  <jh@suse.cz>
3216
3217         * tree-pass.h (pass_ipa_cdtor_merge): New function.
3218         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
3219         heap allocated.
3220         (record_cdtor_fn): Move to ipa.c; do not test for
3221         have_ctors_dtors.
3222         (build_cdtor): Move to ipa.c; add code avoiding construction
3223         when target have ctors/dtors and there is only one ctor/dtor at given
3224         priority.
3225         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
3226         sort; reverse order of constructors.
3227         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
3228         (cgraph_finalize_function): Do not call record_cdtor_fn.
3229         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
3230         (cgraph_build_static_cdtor): Move to ipa.c.
3231         * ipa.c: Include target.h and tree-iterator.h.
3232         (cgraph_build_static_cdtor, static_ctors, static_dtors,
3233         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
3234         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
3235         pass_ipa_cdtor_merge): New.
3236         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
3237         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
3238         bounds access.
3239
3240 2010-08-20  Jan Hubicka  <jh@suse.cz>
3241
3242         PR c++/45307
3243         PR c++/17736
3244         * cgraph.h (cgraph_only_called_directly_p,
3245         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
3246         static cdtors.
3247         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
3248         are not needed.
3249         (cgraph_finalize_function): Static cdtors are reachable.
3250         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
3251
3252 2010-08-20  Jan Hubicka  <jh@suse.cz>
3253
3254         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
3255         flag_wpa.
3256         * lto-streamer-out.c (lto_output): Likewise.
3257         * passes.c (ipa_write_optimization_summaries): Initialize statement
3258         uids.
3259
3260 2010-08-20  Olivier Hainque  <hainque@adacore.com>
3261
3262         * tree.h (alias_diag_flags): New enum.
3263         (alias_pair): Add an 'emitted_diags' field.
3264         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
3265         (assemble_alias): Initialize emitted_diags of new pairs.
3266
3267 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
3268
3269         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
3270         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3271         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3272         (STACK_CHECK_PROTECT): Define.
3273         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
3274         (output_probe_stack_range): Likewise.
3275         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
3276         builtin stack checking is enabled.
3277         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
3278         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
3279         (probe_stack_range): New insn.
3280
3281 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3282
3283         PR target/45336
3284         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
3285         short first.
3286
3287         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
3288         char first.
3289
3290 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3291
3292         PR target/45336
3293         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
3294         to cover zero extension into 64-bit register.
3295         (*sse2_pextrw): Likewise.
3296         (*sse4_1_pextrd_zext): New insn.
3297
3298 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3299
3300         revert r163410, partially revert r163267.
3301         * config/rs6000/darwin.h (LIB_SPEC): Remove.
3302         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
3303         Darwin versions.
3304
3305 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3306
3307         PR middle-end/44974
3308         * builtins.c (expand_builtin): Don't optimize away
3309         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
3310
3311 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
3312
3313         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
3314         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
3315         alternative 1 of operand 2.
3316
3317 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3318             Paolo Bonzini  <bonzini@gnu.org>
3319
3320         * simplify-rtx.c (simplify_unary_operation_1): Optimize
3321         (sign_extend (zero_extend (...)) and
3322         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
3323
3324 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3325
3326         PR rtl-optimization/45353
3327         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
3328         after bb_note is a BARRIER.
3329
3330 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
3331
3332         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
3333         linking libgcc.a.
3334
3335 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
3336             Michael Matz  <matz@suse.de>
3337
3338         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
3339
3340 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3341
3342         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
3343         (ggc_mark_roots): ...here.
3344
3345 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
3346
3347         * vec.h (FOR_EACH_VEC_ELT): Define.
3348         * c-decl.c: Use it.
3349         * cfgloop.c: Likewise.
3350         * cfgloopmanip.c: Likewise.
3351         * cgraph.c: Likewise.
3352         * cgraphunit.c: Likewise.
3353         * combine.c: Likewise.
3354         * config/bfin/bfin.c: Likewise.
3355         * config/mips/mips.c: Likewise.
3356         * config/rs6000/rs6000.c: Likewise.
3357         * dbxout.c: Likewise.
3358         * df-scan.c: Likewise.
3359         * dominance.c: Likewise.
3360         * dse.c: Likewise.
3361         * dwarf2out.c: Likewise.
3362         * except.c: Likewise.
3363         * expr.c: Likewise.
3364         * function.c: Likewise.
3365         * gcse.c: Likewise.
3366         * genattr.c: Likewise.
3367         * ggc-common.c: Likewise.
3368         * gimplify.c: Likewise.
3369         * graphite-blocking.c: Likewise.
3370         * graphite-clast-to-gimple.c: Likewise.
3371         * graphite-dependences.c: Likewise.
3372         * graphite-interchange.c: Likewise.
3373         * graphite-poly.c: Likewise.
3374         * graphite-scop-detection.c: Likewise.
3375         * graphite-sese-to-poly.c: Likewise.
3376         * graphite.c: Likewise.
3377         * haifa-sched.c: Likewise.
3378         * ifcvt.c: Likewise.
3379         * implicit-zee.c: Likewise.
3380         * ipa-prop.c: Likewise.
3381         * ipa-struct-reorg.c: Likewise.
3382         * ipa.c: Likewise.
3383         * ira-build.c: Likewise.
3384         * ira-color.c: Likewise.
3385         * ira-emit.c: Likewise.
3386         * lambda-code.c: Likewise.
3387         * loop-invariant.c: Likewise.
3388         * loop-unroll.c: Likewise.
3389         * lower-subreg.c: Likewise.
3390         * lto-cgraph.c: Likewise.
3391         * lto-opts.c: Likewise.
3392         * lto-streamer-in.c: Likewise.
3393         * lto-streamer-out.c: Likewise.
3394         * lto-streamer.c: Likewise.
3395         * lto-symtab.c: Likewise.
3396         * matrix-reorg.c: Likewise.
3397         * opts.c: Likewise.
3398         * predict.c: Likewise.
3399         * print-tree.c: Likewise.
3400         * sdbout.c: Likewise.
3401         * sel-sched-dump.c: Likewise.
3402         * sel-sched-ir.c: Likewise.
3403         * sel-sched.c: Likewise.
3404         * sese.c: Likewise.
3405         * stor-layout.c: Likewise.
3406         * tree-cfg.c: Likewise.
3407         * tree-cfgcleanup.c: Likewise.
3408         * tree-chrec.c: Likewise.
3409         * tree-data-ref.c: Likewise.
3410         * tree-emutls.c: Likewise.
3411         * tree-inline.c: Likewise.
3412         * tree-into-ssa.c: Likewise.
3413         * tree-loop-distribution.c: Likewise.
3414         * tree-loop-linear.c: Likewise.
3415         * tree-mudflap.c: Likewise.
3416         * tree-outof-ssa.c: Likewise.
3417         * tree-parloops.c: Likewise.
3418         * tree-predcom.c: Likewise.
3419         * tree-pretty-print.c: Likewise.
3420         * tree-scalar-evolution.c: Likewise.
3421         * tree-ssa-live.c: Likewise.
3422         * tree-ssa-loop-im.c: Likewise.
3423         * tree-ssa-loop-ivcanon.c: Likewise.
3424         * tree-ssa-loop-ivopts.c: Likewise.
3425         * tree-ssa-loop-manip.c: Likewise.
3426         * tree-ssa-loop-niter.c: Likewise.