OSDN Git Service

Fix up ChangeLog entry.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-12-14  Alexandre Oliva  <aoliva@redhat.com>
2
3         PR debug/41473
4         * dwarf2out.c (AT_loc_list_ptr): New.
5         (resolve_addr): Remove unresolved attributes and loc_list entries.
6
7         PR debug/41473
8         * dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty
9         locations.
10         (new_loc_list): Drop gensym arg.  Move generation of ll_symbol...
11         (gen_llsym): ... here.  New function.
12         (add_loc_descr_to_loc_list): Removed.
13         (loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs.
14         (single_element_loc_list): Removed.
15         (dw_loc_list): Don't create entries without a location.  Don't
16         special-case the first node of the list, only single nodes.
17         (single_element_loc_list_p): Simplify.
18         (loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty.
19         (add_location_or_const_value_attribute): Test var loc for NULL.
20         (convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list,
21         call gen_llsym if needed.
22
23 2009-12-14  Jakub Jelinek  <jakub@redhat.com>
24
25         * cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
26         cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
27         prototypes.
28         * cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag,
29         cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New
30         functions.
31         * except.h (set_nothrow_function_flags): Remove prototype.
32         * except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag.
33         Make static.
34         * ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag,
35         cgraph_set_readonly_flag, cgraph_set_pure_flag
36         and cgraph_set_looping_const_or_pure_flag.
37         (local_pure_const): Likewise.
38
39 2009-12-14  Jakub Jelinek  <jakub@redhat.com>
40             Sebastian Pop  <sebastian.pop@amd.com>
41
42         * config/i386/i386-builtin-types.def (PVOID): Declared.
43         (VOID_FTYPE_PVOID): Declared.
44         (PVOID_FTYPE_VOID): Declared.
45         (UCHAR_FTYPE_USHORT_UINT_USHORT): Removed.
46         (VOID_FTYPE_USHORT_UINT_USHORT): Removed.
47         * config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32,
48         IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32,
49         IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16):
50         Removed.
51         (IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New.
52         (bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb,
53         __builtin_ia32_slwpcb, __builtin_ia32_lwpval32,
54         __builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and
55         __builtin_ia32_lwpins64.
56         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID.
57         Do not handle VOID_FTYPE_USHORT_UINT_USHORT and
58         UCHAR_FTYPE_USHORT_UINT_USHORT.  Warn when the third operand is
59         not an immediate.  Also handle builtin functions with 3 arguments.
60         (ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and
61         IX86_BUILTIN_SLWPCB.
62         * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC):
63         Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC.
64         (memory attribute): Handle lwp.
65         (lwp*): Rewrite all the insn patterns for LWP.
66         * config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64,
67         __slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed.
68         (__llwpcb, __slwpcb): New.
69
70 2009-12-14  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
71
72         * dominance.c (set_immediate_dominator): Don't mark as inline.
73
74 2009-12-14  Eric Botcazou  <ebotcazou@adacore.com>
75
76         * doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default.
77         * doc/md.texi (check_stack): Clarify.
78         (probe_stack): Likewise.
79         * config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant.
80         (probe_stack): New insn.
81
82 2009-12-14  Ben Elliston  <bje@au.ibm.com>
83
84         * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a
85         BUILT_IN_NORMAL or BUILT_IN_MD.
86
87 2009-12-13  Eric Botcazou  <ebotcazou@adacore.com>
88
89         * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete.
90         * expr.h (STACK_CHECK_PROBE_LOAD): Likewise.
91         * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD.
92         * system.h (STACK_CHECK_PROBE_LOAD): Poison.
93
94 2009-12-13  Michael Matz  <matz@suse.de>
95
96         PR tree-optimization/42027
97         * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to
98         TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of
99         falling through.
100
101 2009-12-13  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
102
103         PR target/23726
104         * config/avr/predicates.md (pseudo_register_operand): New predicate
105         for pseudos.
106         * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split
107         to allow div/mod optimization.
108         (udivmodqi4): Ditto.
109         (divmodhi4): Ditto.
110         (udivmodhi4): Ditto.
111         (divmodsi4): Ditto.
112         (udivmodsi4): Ditto. 
113
114 2009-12-13  Richard Guenther  <rguenther@suse.de>
115
116         PR tree-optimization/42357
117         * tree-sra.c (sra_modify_assign): Do not tear apart struct copies.
118
119 2009-12-12  Richard Guenther  <rguenther@suse.de>
120
121         * tree.c (need_assembler_name_p): Abstract decls do not need
122         an assembler name.
123         * dwarf2out.c (dwarf2out_abstract_function): Preserve
124         DECL_ABSTRACT properly.
125
126 2009-12-11  Richard Guenther  <rguenther@suse.de>
127
128         * lto-streamer-in.c (lto_input_tree_ref): Do not register
129         DEBUG_EXPR_DECLs with the varpool.
130
131 2009-12-11  Eric Botcazou  <ebotcazou@adacore.com>
132
133         * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define.
134         (sparc64_frob_update_context): New function.
135
136 2009-12-11  Richard Guenther  <rguenther@suse.de>
137
138         PR lto/41658
139         PR lto/41657
140         * lto-streamer-out.c (write_global_stream): Do not make decls
141         weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions.
142         Make sure to mark all decls that we have written.
143
144 2009-12-11  Sebastian Andrzej Siewior  <bigeasy@linutronix.de>
145
146         PR target/36047
147
148         * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is
149         not used by glibc/uclibc and does not work with large binaries.
150
151 2009-12-11  Richard Guenther  <rguenther@suse.de>
152
153         PR lto/41662
154         * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p
155         handling here.
156         (input_eh_regions): Adjust.
157         (lto_input_ts_function_decl_tree_pointers): Initialize EH
158         if a non-NULL DECL_FUNCTION_PERSONALITY was read in.
159
160 2009-12-11  Duncan Sands  <baldrick@free.fr>
161
162         * passes.c (make_pass_instance): Allocate and copy the right amount of
163         memory for ipa passes, which are not the same size as other passes.
164
165 2009-12-11  Joern Rennecke  <amylaar@spamcop.net>
166
167         * plugin.c (get_named_event_id): Fix hash table rebuild to include
168         dynamically allocated events.
169
170 2009-12-11  Richard Guenther  <rguenther@suse.de>
171
172         PR lto/42320
173         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly
174         detect non-prevailing decls.
175
176 2009-12-10  Jakub Jelinek  <jakub@redhat.com>
177
178         PR c++/42317
179         * cgraph.h (struct cgraph_node): Add same_comdat_group field.
180         * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group
181         circular list.
182         (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with
183         node->same_comdat_group.
184         * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node
185         mark all its same_comdat_group nodes as also reachable.
186         (cgraph_externally_visible_p): Return true even if any of
187         same_comdat_group nodes has address taken.
188         * lto-cgraph.c (lto_output_node): Stream out same_comdat_group.
189         (output_cgraph): Ensure other same_comdat_group nodes are also
190         included.
191         (input_node): Stream in same_comdat_group.
192         (input_cgraph_1): Fix up same_comdat_group fields from references
193         to pointers.
194         * cgraphunit.c (cgraph_analyze_functions): Mark all other
195         same_comdat_group nodes as reachable.
196         (cgraph_mark_functions_to_output): For each node->process process
197         also other same_comdat_group nodes.
198         * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes
199         with same_comdat_group non-NULL.
200         (cgraph_mark_inline_edge): Likewise.
201
202 2009-12-10  Jan Hubicka  <jh@suse.cz>
203
204         PR middle-end/42228
205         PR middle-end/42110
206         * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt
207         parameter; update edge if it already exists.
208         (cgraph_remove_node): Handle correctly cases where we are removing
209         node having clones.
210         * cgraph.h (cgraph_create_edge_including_clones): Declare.
211         (verify_cgraph_node): Add missing error_found = true code.
212         (cgraph_materialize_all_clones): Remove call edges of dead nodes.
213         * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master
214         clone; fix double linked list removal.
215         * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones
216         call; fix frequency of newly created edge.
217
218 2009-12-10  Bernd Schmidt  <bernd.schmidt@analog.com>
219
220         PR rtl-opt/42216
221         * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
222         HOST_BITS_PER_WIDE_INT.
223         (verify_reg_in_set): New function, broken out of verify_reg_tracked.
224         (verify_reg_tracked): Use it.
225         (scan_rtx_reg): When seeing a use involving a superset of the
226         registers in an existing chain, enlarge that chain.  Otherwise,
227         allow subsets and set fail_current_block for all other kinds of
228         overlap.
229         (hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
230         Do not modify operands when the bit with the corresponding number
231         is set in that bitmap.
232         (build_def_use): When we see matching operands with different
233         modes, don't set fail_current_block, but keep track of such
234         operands in a bitmap if their registers aren't already tracked
235         in an open chain.  Pass this bitmap to all hide_operands calls.
236
237 2009-12-10  Richard Guenther  <rguenther@suse.de>
238
239         PR tree-optimization/42337
240         * tree-ssa-pre.c (seen_during_translate): Remove.
241         (phi_translate_1): Collapse into ...
242         (phi_translate): ... this.  Remove seen parameter and
243         adjust recursive calls.
244
245 2009-12-10  Richard Guenther  <rguenther@suse.de>
246         Allan Sandfeld Jensen  <linux@carewolf.com>
247
248         * tree-vectorizer.c (vectorize_loops): Properly guard
249         vectorizer verboseness.
250
251 2009-12-10  Ben Elliston  <bje@au.ibm.com>
252
253         * fwprop.c (free_load_extend): Initialise `use'.
254
255 2009-12-09  David Edelsohn  <edelsohn@gnu.org>
256
257         * builtins.c (do_mpc_ckconv): Pass the component type to
258         real_from_mpfr().
259         
260 2009-12-09  Xinliang David Li  <davidxl@google.com>
261
262         PR tree-optimization/42337
263         * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set.
264
265 2009-12-09  Nathan Froyd  <froydnj@codesourcery.com>
266
267         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
268         mulv2sf3, divv2sf3): New expanders.
269         * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw,
270         spe_evdivws): Rename to use standard GCC names.
271         * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3,
272         mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders.
273         * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_
274         names for renamed patterns.
275
276 2009-12-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
277
278         * config/s390/s390.md ("copysign<mode>3"): Pattern removed.
279
280 2009-12-09  Jakub Jelinek  <jakub@redhat.com>
281
282         * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major,
283         ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden
284         isn't cached.
285         * configure: Regenerated.
286
287 2009-12-08  Richard Henderson  <rth@redhat.com>
288
289         * combine.c (setup_incoming_promotions): Fix sign-extend of
290         zero-extend case; tidy conditions.
291
292 2009-12-08  Michael Matz  <matz@suse.de>
293
294         PR middle-end/38474
295         * function.c (free_temp_slots): Only walk the temp slot
296         addresses and combine slots if we actually changes something.
297         (pop_temp_slots): Ditto.
298
299 2009-12-08  Olga Golovanevsky  <olga@il.ibm.com>
300
301         PR middle-end/41843
302         * ipa-struct-reorg.c (compare_fields): New function.
303         (find_field_in_struct_1): Use compare_fields function.
304         (is_equal_types): Likewise.
305
306 2009-12-07  DJ Delorie  <dj@redhat.com>
307
308         PR c/42312
309         * config/mep/mep.c (mep_expand_prologue): Set
310         really_need_stack_frame after frame_size is set.
311
312 2009-12-07  Richard Henderson  <rth@redhat.com>
313
314         PR rtl-opt/42269
315         * combine.c (setup_incoming_promotions): Improve the conditions
316         under which we respect the promotions applied.
317
318 2009-12-07  Eric Botcazou  <ebotcazou@adacore.com>
319
320         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch.
321         * config/sparc/linux64.h (ASM_SPEC): Likewise.
322
323 2009-12-07  Richard Henderson  <rth@redhat.com>
324
325         PR debug/42299
326         PR debug/42166
327         * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation
328         for ssa names already registered for update.
329
330 2009-12-07  Jakub Jelinek  <jakub@redhat.com>
331
332         PR debug/42244
333         * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to
334         is a DEBUG_INSN.
335
336 2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
337
338         * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the
339         options when bit_LWP is set.
340
341 2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
342
343         * config/i386/cpuid.h (bit_ABM): New.
344         * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the
345         options when bit_ABM is set.
346
347 2009-12-07  Jakub Jelinek  <jakub@redhat.com>
348
349         * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from
350         this array ...
351         (bdesc_args): ... here.
352         * config.gcc (i[34567]86-*-*): Include abmintrin.h.
353         (x86_64-*-*): Likewise.
354
355 2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
356
357         * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h.
358         * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
359         * config/i386/i386-c.c (__POPCNT__): Defined.
360         * config/i386/popcntintrin.h: ...here.  New file.
361         * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved...
362         Include popcntintrin.h.
363         * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__
364         is defined.
365
366 2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
367
368         * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory):
369         Removed.
370         * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed.
371         * config/i386/sse.md: Remove all XOP splitters.
372         Allow the second and fourth operands of XOP multiply-add insns
373         to be nonimmediate.
374
375 2009-12-07  Sebastian Pop  <sebastian.pop@amd.com>
376
377         * config/i386/sse.md: Remove all FMA4 splitters.
378         Allow the second operand of FMA4 insns to be a nonimmediate.
379         Fix comments punctuation.
380
381 2009-12-07  Julian Brown  <julian@codesourcery.com>
382
383         * config/arm/constraints.md (Ps, Pt): New constraint letters.
384         * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints.
385
386 2009-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
387
388         PR other/40302
389         * configure.ac (HAVE_mpc): Don't define.
390         * config.in, configure: Regenerate.
391
392         PR other/40302
393         * builtins.c: Remove HAVE_mpc* checks throughout.
394         * fold-const.c: Likewise.
395         * real.h: Likewise.
396         * toplev.c: Likewise.
397
398 2009-12-07  Edmar Wienskoski  <edmar@freescale.com>
399
400         * config.gcc (cpu_is_64bit): Add new core e500mc64.
401         (powerpc*-*-*): Add new core e500mc64.
402         * config/rs6000/e500mc64.md: New file.
403         * config/rs6000/rs6000.c (processor_costs): Add new costs for
404         e500mc64.
405         (rs6000_override_options): Add e500mc64 case to
406         processor_target_table. Altivec and Spe options not allowed with
407         e500mc64. Disable string instructions for e500mc64. Enable branch
408         targets alignment for both e500mc and e500mc64. Initialize
409         rs6000_cost for e500mc64.
410         (rs6000_emit_sISEL): New function.
411         (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets.
412         (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern
413         generation.
414         (rs6000_issue_rate): Set issue rate for e500mc64.
415         (rs6000_rtx_costs): Set more accurate cost for mfcr instruction
416         on architectures with isel.
417         * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare.
418         * config/rs6000/rs6000.h (processor_type): Add
419         PROCESSOR_PPCE500MC64.
420         (ASM_CPU_SPEC): Add e500mc64.
421         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64.
422         Include e500mc64.md.
423         (abssi2_isel): Expand pattern to handle DImode.
424         (nabs<mode>2_isel): New pattern.
425         (absdi2): Change pattern to handle 64 bit isel targets.
426         (absdi2_internal): Exclude ISEL targets.
427         (nabsdi2): Exclude ISEL targets.
428         * doc/invoke.texi: Add e500mc64 to list of cpus.
429
430 2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
431
432         * config/i386/i386.md (any_or): New code iterator.
433         (any_logic): Rename from plogic code iterator.
434         (logicprefix): Rename from plogicprefix code attribute.
435         (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using
436         any_or code iterator.
437         (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using
438         any_or code iterator.
439         (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2.
440         (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3.
441         (ior and xor splitters): Ditto.
442         * config/i386/mmx.md: Updated for rename.
443         * config/i386/sse.md: Ditto.
444
445 2009-12-07  Uros Bizjak  <ubizjak@gmail.com>
446
447         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
448         Remove quotes around condition logic code.
449
450 2009-12-06  Richard Henderson  <rth@redhat.com>
451
452         PR debug/42234
453         * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi
454         argument earlier.
455
456 2009-12-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
457
458         * doc/install.texi: Document MPC is required.
459
460 2009-12-06  Uros Bizjak  <ubizjak@gmail.com>
461
462         * config/i386/i386.md (g): Add HImode and QImode.
463         (general_szext_operand): New mode attribute.
464         (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using
465         SWI124 mode iterator.
466         (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using
467         SWIM mode iterator.
468         (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using
469         SWI124 mode iterator.
470         (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using
471         SWIM mode iterator.
472         (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using
473         SWI248 mode iterator.
474         (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using
475         SWI mode iterator.
476         (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using
477         SWI mode iterator.
478         (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using
479         SWIM mode iterator.
480         (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using
481         SWI248 mode iterator.
482         (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using
483         SWI mode iterator.
484         (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using
485         SWI mode iterator.
486
487 2009-12-05  Sebastian Pop  <sebastian.pop@amd.com>
488
489         * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add
490         MASK_FUSED_MADD.
491         * config/i386/i386.h (CC1_CPU_SPEC_1): Remove
492         "'-mfused-madd' was removed".
493         * config/i386/i386.opt (mfused-madd): New.
494         * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns.
495         * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document.
496
497 2009-12-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
498
499         * pa64-hpux.h (LIB_SPEC): Handle -rdynamic.
500         * pa-hpux10.h (LIB_SPEC): Likewise.
501         * pa-hpux11.h (LIB_SPEC): Likewise.
502
503         PR ada/41912
504         * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
505         for signal frames.
506         * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
507
508 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
509
510         * configure: Regenerate.
511
512 2009-12-05  Richard Earnshaw  <rearnsha@arm.com>
513
514         * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register
515         for the scratch.
516
517 2009-12-04  David Daney  <ddaney@caviumnetworks.com>
518
519         PR rtl-optimization/42164
520         * combine.c (combine_simplify_rtx): Handle truncation of integer
521         constants.
522
523 2009-12-04  Richard Guenther  <rguenther@suse.de>
524
525         * lto-streamer-out.c (pack_ts_decl_common_value_fields):
526         Revert previous change.
527         (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR.
528         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
529         Likewise.
530
531 2009-12-04  Richard Guenther  <rguenther@suse.de>
532
533         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
534         BUILT_IN_MALLOC.
535         (call_may_clobber_ref_p_1): Likewise.
536
537 2009-12-04  Matthias Klose  <doko@ubuntu.com>
538             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
539
540         PR target/40134
541         * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc.
542         * config/pa/pa-linux.h (LIB_SPEC): Remove.
543
544 2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
545             Richard Henderson  <rth@redhat.com>
546
547         * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove.
548         * config/i386/i386.c (ix86_fma4_valid_op_p): Remove.
549         * config/i386/i386.md: Do not use ix86_fma4_valid_op_p.
550         * config/i386/sse.md (fma4_*): Remove alternative with operand 1
551         matching a memory access.  Do not use ix86_fma4_valid_op_p.
552         (xop_*): Same.
553         Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters.
554
555 2009-12-03  Richard Henderson  <rth@redhat.com>
556
557         * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force
558         all operands into registers.
559
560 2009-12-03  Sebastian Pop  <sebastian.pop@amd.com>
561
562         * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused
563         parameter.
564         * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same.
565         * config/i386/sse.md: Same.
566
567 2009-12-03  Richard Guenther  <rguenther@suse.de>
568
569         * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME
570         instead of DECL_NAME for the entry point.
571
572 2009-12-03  Richard Earnshaw  <rearnsha@arm.com>
573
574         * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier
575         before the lock release.
576
577 2009-12-03  Michael Matz  <matz@suse.de>
578
579         PR middle-end/38474
580         * cfgexpand.c (struct stack_var): Add conflicts member.
581         (stack_vars_conflict, stack_vars_conflict_alloc,
582         n_stack_vars_conflict): Remove.
583         (add_stack_var): Initialize conflicts member.
584         (triangular_index, resize_stack_vars_conflict): Remove.
585         (add_stack_var_conflict, stack_var_conflict_p): Rewrite in
586         terms of new member.
587         (union_stack_vars): Only run over the conflicts.
588         (partition_stack_vars): Remove special case.
589         (expand_used_vars_for_block): Don't call resize_stack_vars_conflict,
590         don't create self-conflicts.
591         (account_used_vars_for_block): Don't create any conflicts.
592         (fini_vars_expansion): Free bitmaps, don't free or clear removed
593         globals.
594
595 2009-12-03  Bernd Schmidt  <bernd.schmidt@analog.com>
596
597         PR middle-end/42202
598         * regrename.c (live_in_chains): New variable.
599         (verify_reg_tracked): New static function.
600         (scan_rtx_reg): Update live_in_chains.
601         (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if
602         we're already tracking the reg.
603         (build_def_use): Likewise.  Initialize live_in_chains.
604
605 2009-12-03  Ken Werner  <ken.werner@de.ibm.com>
606
607         * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof
608         startup files.
609         * config/spu/spu-protos.h (spu_function_profiler): Add prototype.
610         * config/spu/spu.c (spu_function_profiler): New function.
611         * config/spu/spu.h (FUNCTION_PROFILER): Invoke
612         spu_function_profiler.
613         (NO_PROFILE_COUNTERS): Define.
614         (PROFILE_BEFORE_PROLOGUE): Likewise.
615
616 2009-12-03  Dave Korn  <dave.korn.cygwin@gmail.com>
617
618         * ggc-page.c (struct free_object): Pull definition out ...
619         (struct globals): .. from here.
620
621 2009-12-02  Richard Guenther  <rguenther@suse.de>
622
623         * fold-const.c (div_if_zero_remainder): Honor that sizetypes
624         are sign-extending.  Simplify.
625
626 2009-12-02  Richard Henderson  <rth@redhat.com>
627
628         PR tree-opt/42215
629         * tree-loop-distribution.c (build_size_arg_loc): Tidy.
630         (generate_memset_zero): Convert to sizetype properly.  Tidy.
631
632 2009-12-02  Richard Guenther  <rguenther@suse.de>
633
634         * lto-streamer-out.c (pack_ts_decl_common_value_fields):
635         Do not pretend we have value exprs.
636
637 2009-12-02  Richard Guenther  <rguenther@suse.de>
638
639         PR middle-end/41491
640         * fold-const.c (try_move_mult_to_index): Do not leak
641         domain types into the IL.
642
643 2009-12-02  Richard Guenther  <rguenther@suse.de>
644
645         PR middle-end/42088
646         * tree.c (free_lang_data): Disable if not using LTO.
647
648 2009-12-02  Richard Guenther  <rguenther@suse.de>
649
650         PR middle-end/42229
651         * cfgloopmanip.c (remove_path): Avoid cancelling loops twice.
652
653 2009-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
654
655         PR middle-end/42224
656         * tree.h (int_or_pointer_precision): Remove.
657         * tree.c (int_or_pointer_precision): Remove.
658         (integer_pow2p): Use TYPE_PRECISION instead.
659         (tree_log2): Likewise.
660         (tree_floor_log2): Likewise.
661         (signed_or_unsigned_type_for): Likewise.
662         * fold-const.c (fit_double_type): Likewise.
663         * varasm.c (initializer_constant_valid_p): Likewise.
664
665 2009-12-02  Ira Rosen  <irar@il.ibm.com>
666
667         * doc/invoke.texi (-fdump-tree-slp): Document.
668         (-ftree-vectorizer-verbose): Update.
669         (-ftree-slp-vectorize): Document.
670
671 2009-12-02  Nick Clifton  <nickc@redhat.com>
672
673         * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
674         no fixed registers are available for interrupt handlers.  Do not
675         fix normal registers.
676         (MUST_SAVE_ACC_REGISTER): New macro.
677         (rx_get_stack_layout): Create a stack frame for fast interrupt
678         handlers, if necessary.  Push extra registers if needed in order
679         to save the accumulator.
680         (rx_expand_prologue): Create a stack frame for fast interrupt
681         handlers, if necessary.
682         (rx_expand_builtin_mvfc): Handle the case where there is no target.
683
684 2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
685
686         * config/i386/abmintrin.h (__lzcnt16): New.
687         (__lzcnt): New.
688         (__lzcnt64): New.
689         * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
690         * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
691         (bdesc_special_args): Add __builtin_clzs.
692         (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
693
694 2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
695
696         * config/i386/abmintrin.h (_mm_popcnt_u32): New.
697         (_mm_popcnt_u64): New.
698
699 2009-12-01  Sebastian Pop  <sebastian.pop@amd.com>
700
701         * config/i386/abmintrin.h: New.
702         * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
703         * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
704
705 2009-12-01  Uros Bizjak  <ubizjak@gmail.com>
706
707         * config/i386/i386.md (SWI124): Rename from CRC32MODE.
708         (crc32modesuffix): Remove.
709         (crc32modeconstraint): Ditto.
710         (sse4_2_crc32<mode>): Update for renamed mode iterator.  Use
711         imodesuffix instead of crc32modesuffix and <r>m instead of
712         crc32modeconstraint.
713
714 2009-12-01  Jakub Jelinek  <jakub@redhat.com>
715
716         PR c++/42234
717         * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
718         contains no statements.
719
720 2009-12-01  Grigori Fursin  <grigori.fursin@inria.fr>
721             Joern Rennecke  <amylaar@spamcop.net>
722
723         * cgraphunit.c (plugin.h): Include.
724         (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
725         PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
726         * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
727         (enum plugin_event): Define by including plugin.def.
728         Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
729         (plugin_event_name): Change type to const char **.
730         (get_event_last, get_named_event_id, unregister_callback): Declare.
731         (register_callback): Change type of event argument to int.
732         (highlev-plugin-common.h): New file.
733         * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
734         $(HASHTAB_H)
735         (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
736         (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
737         (s-header-vars): New rule.
738         (install-plugin): Depend on s-header-vars.  Install b-header-vars.
739         * params.c (get_num_compiler_params): New function.
740         * params.h (get_num_compiler_params): Declare.
741         * passes.c (plugin.h): Include.
742         (make_pass_instance): Invoke PLUGIN_NEW_PASS.
743         (do_per_function_toporder, pass_init_dump_file): No longer static.
744         (pass_fini_dump_file): Likewise.
745         (execute_one_pass): Likewise.  Invoke PLUGIN_OVERRIDE_GATE and
746         PLUGIN_PASS_EXECUTION.
747         (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
748         PLUGIN_EARLY_GIMPLE_PASSES_END.
749         * plugin.c (plugin_event_name_init): New array, defined by
750         including plugin.def.
751         (FMT_FOR_PLUGIN_EVENT): Update.
752         (plugin_event_name): Change type to const char ** and initialize
753         to plugin_event_name_init.
754         (event_tab, event_last, event_horizon): New variable.
755         (get_event_last): New function.
756         (plugin_callbacks_init): New array.
757         (plugin_callbacks: Change type to struct callback_info **.
758         Initialize to plugin_callbacks_init.
759         (htab_event_eq, get_named_event_id, unregister_callback): New function.
760         (invoke_plugin_va_callbacks): Likewise.
761         (register_callback): Change type of event argument to int.
762         Handle new events.  Allow dynamic events.
763         (invoke_plugin_callbacks): Likewise.  Return success status.
764         (plugins_active_p): Allow dynamic callbacks.
765         * plugin.def: New file.
766         * plugin.h (invoke_plugin_callbacks): Update prototype.
767         (invoke_plugin_va_callbacks): Declare.
768         * tree-optimize.c (plugin.h): Include.
769         (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
770         PLUGIN_ALL_PASSES_END.
771         * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
772         (pass_fini_dump_file, do_per_function_toporder): Likewise.
773         * doc/plugin.texi: Document new event types.
774
775 2009-12-01  Martin Jambor  <mjambor@suse.cz>
776
777         PR tree-optimization/42237
778         * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
779         in between references into two.
780
781 2009-12-01  Richard Guenther  <rguenther@suse.de>
782
783         * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
784         to the block of the call when remapping a type.
785
786 2009-12-01  Martin Jambor  <mjambor@suse.cz>
787
788         * cgraph.h (struct cgraph_edge): Reorder fields.  Make loop_nest
789         unsigned short int.
790         * ipa-prop.h (struct ipa_param_call_note): Likewise.
791         * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
792
793 2009-12-01  Richard Guenther  <rguenther@suse.de>
794
795         * final.c (rest_of_clean_state): If -fcompare-debug is
796         given dump final insns without UIDs.
797         * tree-ssa-live.c (remove_unused_scope_block_p): Remove
798         after_inlining checks.
799
800 2009-11-30  Chao-ying Fu  <fu@mips.com>
801
802         * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
803
804 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
805
806         * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
807         status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
808         * configure: Regenerate.
809         * config.in: Regenerate.
810
811         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
812         options for Cygwin DLL libstdc++ support wrappers.
813         (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
814         according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
815         (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
816         whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
817         (LINK_SPEC): Include CXX_WRAP_SPEC.
818         * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
819         (i386_find_on_wrapper_list): Check if a function is found on the list
820         of libstdc++ wrapper options.
821         (i386_pe_file_end): If we are importing a wrapped function, also emit
822         an external declaration for the real version.
823         * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
824         Cygwin targets. Update copyright year.
825
826 2009-11-30  Steve Ellcey  <sje@cup.hp.com>
827             Jakub Jelinek <jakub@redhat.com>
828
829         * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
830         before forcing mode.
831
832 2009-11-30  Anatoly Sokolov  <aesok@post.ru>
833
834         * config/sh/sh.c (sh_promote_prototypes): Make static.
835         (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
836         functions.
837         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
838         * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use
839         sh_function_value_regno_p.
840         (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
841         * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
842         (sh_promote_prototypes) : Remove.
843
844 2009-11-30  Julian Brown  <julian@codesourcery.com>
845
846         * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
847         reloads to LO_REGS.
848
849 2009-11-30  Richard Henderson  <rth@redhat.com>
850
851         * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
852         (bdesc_special_args): Update insn codes.
853         (avx_vpermilp_parallel): Correct range check.
854         (ix86_rtx_costs): Handle vector permutation rtx codes.
855         (struct expand_vec_perm_d): Move earlier.
856         (get_mode_wider_vector): New.
857         (expand_vec_perm_broadcast_1): New.
858         (ix86_expand_vector_init_duplicate): Use it.  Tidy AVX modes.
859         (expand_vec_perm_broadcast): New.
860         (ix86_expand_vec_perm_builtin_1): Use it.
861         * config/i386/i386-protos.h: Update.
862         * config/i386/predicates.md (avx_vbroadcast_operand): New.
863         * config/i386/sse.md (AVX256MODE24P): New.
864         (ssescalarmodesuffix2s): New.
865         (avxhalfvecmode, avxscalarmode): Fill out to all modes.
866         (avxmodesuffixf2c): Add V8SI, V4DI.
867         (vec_dupv4sf): New expander.
868         (*vec_dupv4sf_avx): Add vbroadcastss alternative.
869         (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
870         V4SF and V4SI.  Move C alternatives to front.  Add insertps and
871         pinsrd alternatives.
872         (*vec_set<mode>_0_sse2): Split out from ...
873         (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
874         (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
875         destination; use ix86_vec_interleave_v2df_operator_ok, instead of
876         ix86_fixup_binary_operands.
877         (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
878         (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
879         (*avx_movddup, *sse3_movddup): Remove.  New splitter from
880         vec_select form to vec_duplicate form.
881         (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
882         ix86_vec_interleave_v2df_operator_ok.
883         (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
884         (*avx_unpcklpd256): ... here.
885         (*vec_dupv4si_avx): New.
886         (*vec_dupv2di_avx): Add movddup alternative.
887         (*vec_dupv2di_sse3): New.
888         (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
889         avx_vbroadcastss256; represent with vec_duplicate instead of
890         nested vec_concat operations.
891         (avx_vbroadcastf128_<mode>): Rename from
892         avx_vbroadcastf128_p<avxmodesuffixf2c>256.
893         (*avx_vperm_broadcast_v4sf): New.
894         (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
895
896 2009-11-30  Martin Jambor  <mjambor@suse.cz>
897
898         PR middle-end/42196
899         * tree-sra.c (struct access): New field grp_different_types.
900         (dump_access): Dump grp_different_types.
901         (compare_access_positions): Prefer scalars and vectors over other
902         scalar types.
903         (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
904         (sra_modify_expr): Use the original also when dealing with a complex
905          or vector group accessed as multiple types.
906
907 2009-11-30  Richard Henderson  <rth@redhat.com>
908
909         * config/i386/i386.c (avx_vperm2f128_parallel): New.
910         * config/i386/i386-protos.h: Declare it.
911         * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
912         avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
913         * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
914         (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
915         (*avx_vperm2f128<mode>_nozero): New.
916
917 2009-11-30  Richard Henderson  <rth@redhat.com>
918
919         * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
920         (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
921         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
922         V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
923         (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
924         (bdesc_args): Add them.
925         (ix86_expand_builtin): Expand them.
926         (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
927
928 2009-11-30  Martin Jambor  <mjambor@suse.cz>
929
930         PR middle-end/42206
931         * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
932
933 2009-11-30  Jakub Jelinek  <jakub@redhat.com>
934
935         * ipa-reference.c (propagate): Only dump bitmaps if computed.
936
937 2009-11-30  Olga Golovanevsky  <olga@il.ibm.com>
938
939         PR middle-end/39806
940         * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
941         (new_var_hash): Likewise.
942         (is_in_new_vars_htab): Likewise.
943         (add_to_new_vars_htab): Likewise.
944
945 2009-11-30  Ira Rosen  <irar@il.ibm.com>
946
947         * tree-vect-stmts.c (vectorizable_assignment): Support
948         multiple types.
949
950 2009-11-30  Richard Guenther  <rguenther@suse.de>
951
952         * doc/contrib.texi (Contributors): Add myself.
953
954 2009-11-30  Richard Guenther  <rguenther@suse.de>
955
956         * tree.c (free_lang_data): Do not set debug_info_level to
957         none if terse.
958
959 2009-11-30  Richard Guenther  <rguenther@suse.de>
960
961         PR middle-end/42119
962         PR fortran/38530
963         * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
964         of CONST_DECLs.
965
966 2009-11-30  Richard Guenther  <rguenther@suse.de>
967
968         * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
969         variable UID order.
970
971 2009-11-30  Richard Guenther  <rguenther@suse.de>
972
973         * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
974         * tree-pass.h (TDF_NOUID): Likewise.
975         * print-rtl.c: Include tree-pass.h.
976         (print_mem_expr): Pass dump_flags.
977         (print_rtx): Likewise.
978         * print-tree.c: Include tree-pass.h.
979         (print_node_brief): Handle TDF_NOUID.
980         (print_node): Likewise.
981         * tree-pretty-print.c (dump_decl_name): Likewise.
982         (dump_generic_node): Likewise.
983         * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
984         dependency.
985
986 2009-11-30  Nick Clifton  <nickc@redhat.com>
987
988         * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
989         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
990         stormy16-lib2-count-leading-zeros.c.
991         * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
992         __stormy16_count_leading_zeros() into this function.
993         (__ctzhi2): Use __builtin_clz.
994         (__ffshi2): Likewise.
995
996 2009-11-30  Eric Botcazou  <ebotcazou@adacore.com>
997
998         * config/sparc/sparc.c (DF_MODES): Simplify.
999         (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
1000         (TF_MODES, OF_MODES): Adjust for above change.
1001         (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
1002         *  config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
1003
1004 2009-11-30  Paolo Bonzini  <bonzini@gnu.org>
1005
1006         PR rtl-optimization/41812
1007         * fwprop.c (local_md, local_lr): New globals.
1008         (process_defs, process_uses): Remove local_md argument.  Never
1009         consider dead pseudos to have singleton def-use chains.
1010         (single_def_use_enter_block): Perform LR simulation.
1011         (build_single_def_use_links): Remove local_md local variable.
1012         Add DF_NOTE.  Allocate local_lr.
1013         (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
1014         * df-problems.c (df_md_scratch): New.
1015         (df_md_alloc, df_md_free): Allocate/free it.
1016         (df_md_local_compute): Only include live registers in init.
1017         (df_md_transfer_function): Prune the in-set computed by
1018         the confluence function, and the gen-set too.
1019
1020 2009-11-30  Hans-Peter Nilsson  <hp@axis.com>
1021
1022         PR rtl-optimization/40086
1023         * reorg.c (relax_delay_slots): When looking for redundant insn at
1024         the branch target, use next_real_insn, not next_active_insn.
1025
1026 2009-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1027
1028         * doc/install.texi: Update minimum MPC version to 0.8.
1029
1030 2009-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
1031
1032         * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
1033         HONOR_SIGNED_ZEROS final condition.
1034         (fnmsubsf4_powerpc_1): Same.
1035         (fnmadddf4_fpr_1): Same.
1036         (fnmsubdf4_fpr_1): Same.
1037
1038 2009-11-29  Ira Rosen  <irar@il.ibm.com>
1039
1040         PR tree-optimization/42193
1041         * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
1042         to 1 in case of basic block SLP.
1043         (vectorizable_load): Likewise.
1044
1045 2009-11-28  Jan Hubicka  <jh@suse.cz>
1046
1047         * cgraph.c (same_body_alias_1): Break out of
1048         (same_body_alias): ... here; remove comdat check; it is handled
1049         in cp already.
1050         (cgraph_add_thunk): New.
1051         (dump_cgraph_node): Dump aliases and thunks.
1052         * cgraph.h (cgraph_thunk_info): New structure.
1053         (struct cgraph_node): Add thunk info.
1054         (cgraph_add_thunk): New.
1055         * cgraphunit.c (cgraph_emit_thunks): Remove.
1056         (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
1057         (assemble_thunk): New function.
1058         (cgraph_expand_function): Handle thunks.
1059         (thunk_adjust): New.
1060         (init_lowered_empty_function): New.
1061         * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
1062         Remove.
1063         * lto-cgraph.c (lto_output_node): Stream thunk info.
1064         (input_node): Likewise.
1065         * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
1066         * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
1067         (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
1068         * i386.c (x86_output_mi_thunk): Make output prettier.
1069
1070 2009-11-28  Richard Guenther  <rguenther@suse.de>
1071
1072         PR tree-optimization/42183
1073         * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
1074         address taken.  Merge the addressable state of the NRV
1075         variable and the result instead of copying it.
1076
1077 2009-11-28  Jakub Jelinek  <jakub@redhat.com>
1078
1079         * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
1080         malloc_fname variable.
1081         (check_allocation_function): Remove unused gsi and bb_level_0
1082         variables.
1083         (transform_access_sites): Remove unused d_type_size and d_type_size_k
1084         variables.
1085         * omega.c (resurrect_subs): Remove unused n variable.
1086         (omega_solve_geq): Remove unused neweqns variable.
1087         * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
1088         * tree-inline.c (declare_return_variable): Remove USE_P argument,
1089         return use instead of var.
1090         (remap_decl, remap_block): Remove unused fn variable.
1091         (expand_call_inline): Remove unused retvar variable, adjust
1092         declare_return_variable caller.
1093         (optimize_inline_calls): Remove unused prev_fn variable.
1094         * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
1095         variable.
1096         (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
1097         variables.
1098         * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
1099         properly.
1100         * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
1101         variable.
1102         (vect_create_epilog_for_reduction): Remove unused bytesize variable.
1103         * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
1104         parameter.  Remove unused par_stmt variable.
1105         (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
1106         (expand_omp_sections): Remove unused l1 variable.
1107         (lower_omp_for): Remove unused ilist variable.
1108         * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
1109         Remove unused has_upstream_mem_write_p variable.
1110         * recog.c (decode_asm_operands): Remove unused noperands variable.
1111         * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
1112         size2 variable.
1113         * libgcov.c (__gcov_merge_delta): Remove unused last variable.
1114         * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
1115         base_nm variable.
1116         (gen_conditions_for_pow): Remove unused ec variable.
1117         * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
1118         variable.
1119         * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
1120         fndecl variable.
1121         * tree-ssa-sink.c (statement_sink_location): Remove unused code
1122         variable.
1123         * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
1124         variables.
1125         * tree-complex.c (create_one_component_var): Remove unused inner_type
1126         variable.
1127         * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
1128         unnecessarily when GEN_*CALL omits that argument.
1129         * regrename.c (regrename_optimize): Remove unused regs_seen variable.
1130         (build_def_use): Remove unused icode variable.
1131         * ipa-pure-const.c (check_call): Remove unused callee and avail
1132         variables.
1133         * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
1134         * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
1135         variable.
1136         (vect_pattern_recog): Remove unused stmt variable.
1137         * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
1138         new_regions variable.
1139         * postreload.c (reload_cse_simplify_operands): Remove unused mode
1140         variable.
1141         * tree-parloops.c (create_call_for_reduction_1): Remove unused
1142         addr_type variable.
1143         (create_parallel_loop): Remove unused res variable.
1144         (gen_parallel_loop): Remove unused nloop variable.
1145         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
1146         * value-prof.c (gimple_mod_subtract_transform,
1147         gimple_stringops_transform): Remove unused value variable.
1148         (gimple_stringops_values_to_profile): Remove unused fcode variable.
1149         * tree-vrp.c (register_new_assert_for): Remove unused found variable.
1150         (vrp_visit_switch_stmt): Remove unused n variable.
1151         * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
1152         variable.
1153         (vectorizable_operation): Remove unused shift_p variable.
1154         (vectorizable_store): Remove unused first_stmt_vinfo variable.
1155         * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
1156         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
1157         variable.
1158         (vect_permute_store_chain): Remove unused scalar_dest variable.
1159         (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
1160         variable.
1161         * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
1162         local_info variable.
1163         * tree-optimize.c (tree_rest_of_compilation): Remove unused node
1164         variable.
1165         * optabs.c (expand_binop): Remove unused equiv_value variable.
1166         (emit_libcall_block): Remove unused prev variable.
1167         (init_optabs): Remove unused int_mode variable.
1168         * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
1169         variable.
1170         (do_structure_copy): Remove unused lhsbase and rhsbase variables.
1171         (find_func_aliases): Remove unused rhstype variable.
1172         (ipa_pta_execute): Remove unused varid variable.
1173
1174 2009-11-28  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
1175
1176         * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
1177
1178 2009-11-28  David Binderman  <dcb314@hotmail.com>
1179
1180         * ira-color.c (put_allocno_into_bucket): Remove set but not used
1181         local variable hard_regs_num.
1182         * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
1183         * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
1184         * lower-subreg.c (decompose_multiword_subregs): Remove next.
1185
1186 2009-11-27  Martin Jambor  <mjambor@suse.cz>
1187
1188         PR middle-end/42006
1189         * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
1190         instead of create_tmp_var.  Set DECL_GIMPLE_REG_P to one manually
1191         for vector and complex types.
1192         (get_adjustment_for_base): Describe return value in the comment.
1193
1194 2009-11-27  Nick Clifton  <nickc@redhat.com>
1195
1196         * longlong.h (count_leading_zeros): Define macro for stormy16 target.
1197         (COUNT_LEADING_ZEROS_0): Likewise.
1198         * config/stormy16/stormy16-lib2.c: Arrange for separate
1199         compilation of each function.
1200         (__ffshi2): New function.
1201         (__stormy16_count_leading_zeros): New function.
1202         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
1203         compile each function into its own object file.
1204         (stormy16-lib2-ashlsi3.c): New stub file.
1205         (stormy16-lib2-ashrsi3.c): New stub file.
1206         (stormy16-lib2-clzhi2.c): New stub file.
1207         (stormy16-lib2-count-leading-zeros.c): New stub file.
1208         (stormy16-lib2-ctzhi2.c): New stub file.
1209         (stormy16-lib2-divsi3.c): New stub file.
1210         (stormy16-lib2-ffshi2.c): New stub file.
1211         (stormy16-lib2-lshrsi3.c): New stub file.
1212         (stormy16-lib2-modsi3.c): New stub file.
1213         (stormy16-lib2-parityhi2.c): New stub file.
1214         (stormy16-lib2-popcounthi2.c): New stub file.
1215         (stormy16-lib2-udivmodsi4.c): New stub file.
1216         (stormy16-lib2-udivsi3.c): New stub file.
1217         (stormy16-lib2-umodsi3.c): New stub file.
1218
1219 2009-11-27  Richard Henderson  <rth@redhat.com>
1220
1221         * config/i386/sse.md (vec_interleave_highv16qi,
1222         vec_interleave_lowv16qi, vec_interleave_highv8hi,
1223         vec_interleave_lowv8hi, vec_interleave_highv4si,
1224         vec_interleave_lowv4si, vec_interleave_highv2di,
1225         vec_interleave_lowv2di, vec_interleave_highv4sf,
1226         vec_interleave_lowv4sf, vec_interleave_highv2df,
1227         vec_interleave_lowv2df): Remove expanders.
1228         (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
1229         sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
1230         sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
1231         Rename to their proper vec_interleave equivalent.  Update all users
1232         to the new name.
1233         * config/i386/i386.c, config/i386/i386.md: Update all users.
1234
1235 2009-11-27  Michael Matz  <matz@suse.de>
1236
1237         PR rtl-optimization/42084
1238         * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
1239         use it to stop walking.
1240         (expand_gimple_cond): Adjust call to above.
1241
1242 2009-11-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1243
1244         PR target/41810
1245         * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
1246         [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
1247         __extension__ to allow cast from function pointer to object
1248         pointer in C++.
1249         * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
1250
1251 2009-11-27  Steven Bosscher  <steven@gcc.gnu.org>
1252
1253         * config/ia64/itanium1.md: Remove.
1254         * config/ia64/ia64.md: Do not include it.
1255         * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
1256         "itanium1", and "merced" from the processor alias table.
1257         (clocks, add_cycles): Remove global variables.
1258         (ia64_sched_reorder2): Don't set/use them.
1259         (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
1260         (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
1261
1262 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1263
1264         * config/s390/s390.c (last_scheduled_insn): New variable.
1265         (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
1266         functions.
1267         (s390_sched_reorder, s390_sched_variable_issue): New functions.
1268         (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
1269         defined.
1270
1271 2009-11-27  Michael Matz  <matz@suse.de>
1272
1273         PR c++/41906
1274         * tree-eh.c (lower_catch): Stop after expanding a catch-all.
1275
1276 2009-11-27  Richard Guenther  <rguenther@suse.de>
1277
1278         * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
1279         TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
1280         * loop-init.c (pass_rtl_move_loop_invariants): Use
1281         TV_LOOP_MOVE_INVARIANTS.
1282         (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
1283         (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
1284         (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
1285
1286 2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1287
1288         * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
1289
1290 2009-11-27  Jakub Jelinek  <jakub@redhat.com>
1291
1292         * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
1293         unused insn variable.
1294         * genemit.c (output_peephole2_scratches): Only declare and initialize
1295         _regs_allocated if it will be ever used.
1296         * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
1297         succ_bb variable.
1298         (create_empty_loop_on_edge): Remove unused freq and cnt variables.
1299         * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
1300         variable.
1301
1302         * opts.c (decode_options): If optimize is bigger than 255,
1303         set it to 255.
1304
1305 2009-11-26  Richard Henderson  <rth@redhat.com>
1306
1307         * config/i386/sse.md (mulv16qi3): Change back from an expander
1308         to an insn-and-split.
1309         (mulv4si): Mention AVX not XOP for AVX exception.
1310         (*sse2_mulv4si3): Likewise.
1311         (mulv2di3): Use vmulld not vpmacsdd for XOP expansion.  Tidy.
1312
1313 2009-11-26  Bernd Schmidt  <bernd.schmidt@analog.com>
1314
1315         * cfgexpand (n_stack_vars_conflict): New static variable.
1316         (triangular_index): Reduce likelyhood of overflow by performing
1317         the division before the multiplication.
1318         (resize_stack_vars_conflict): Call fatal_error if overflow
1319         occurred in triangular_index.  Update n_stack_vars_conflict.
1320
1321         PR rtl-opt/38582
1322         * regrename.c (struct du_chain): Remove member earlyclobber.
1323         (scan_rtx_reg): Don't set it.  Remove argument earlyclobber,
1324         all callers changed.
1325         (scan_rtx): Remove argument earlyclobber, all callers changed.
1326         (hide_operands, restore_operands, record_out_operands): New functions,
1327         broken out of build_def_use.
1328         (build_def_use): Call them as necessary.
1329
1330         * regrename.c (struct du_head): New members id, conflicts,
1331         hard_conflicts and cannot_rename.
1332         (enum scan_actions): Remove terminate_all_read and
1333         terminate_overlapping_read; add mark_all_read.
1334         (scan_actions_name): Likewise.
1335         (du_head_p): New typedef.  Define a vector type for it.
1336         (id_to_chain): New static variable.
1337         (note_sets, clear_dead_regs): Delete functions.
1338         (free_chain_data): New function.
1339         (merge_overlapping_regs): Simply walk the conflicts bitmap.
1340         Remove argument B, all callers changed.
1341         (regrename_optimize): Allocate id_to_chain.  Ignore chains that have
1342         the cannot_rename bit set.  Update regno and nregs of a renamed chain.
1343         Call free_chain_data when done.
1344         (do_replace): Remove death notes when the renamed reg is set in the
1345         last insn; add them if not.
1346         (mark_conflict, note_sets_clobbers): New static function.
1347         (fail_current_block, current_id, open_chains_set, live_hard_regs): New
1348         static variables.
1349         (scan_rtx_reg): Keep track of conflicts between chains, and between
1350         chains and hard regs.  Don't terminate chains when we find a read we
1351         can't handle, mark it unrenameable instead.  For terminate_write,
1352         terminate chains that are written with an exact match or a superset
1353         of registers.  Set fail_current_block if multi-word lifetimes are too
1354         complex to handle.
1355         (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
1356         (build_def_use): Initialize current_id, live_chains and live_hard_regs;
1357         free memory for them when done.
1358         Rearrange the steps so that earlyclobbers are noted before reads
1359         are processed.  Add new steps to keep track of hard register lifetimes
1360         outside insn operands.
1361
1362 2009-11-26  Richard Guenther  <rguenther@suse.de>
1363
1364         * tree-ssa-dce.c (nr_walks): New variable.
1365         (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
1366         (perform_tree_ssa_dce): Init nr_walks.
1367
1368 2009-11-26  Michael Matz  <matz@suse.de>
1369
1370         PR tree-optimization/41905
1371         * tree-eh.c (lower_eh_constructs_2): Don't add assignments
1372         below statements that can't fall thru.
1373
1374 2009-11-26  Michael Matz  <matz@suse.de>
1375
1376         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
1377         expand_builtin_sprintf): Remove.
1378         (expand_builtin): Don't call them.
1379
1380 2009-11-26  Richard Guenther  <rguenther@suse.de>
1381
1382         * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
1383
1384 2009-11-26  Nick Clifton  <nickc@redhat.com>
1385
1386         * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
1387         being used incorrectly.
1388         (rx_function_ok_for_sibcall): New function.  Do not allow indirect
1389         sibcalls, or sibcalls from interrupt functions.
1390         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
1391         * config/rx/rx.md (sibcall): Convert to a define_expand.  Check
1392         for a MEM inside a MEM.
1393         (sibcall_value): Likewise.
1394         (sibcall_internal): New pattern containing old sibcall pattern.
1395         (sibcall_value_internal): Likewise.
1396
1397 2009-11-25  Richard Henderson  <rth@redhat.com>
1398
1399         * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
1400         optional 3rd argument to define the mode.
1401         * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
1402         (V2UDI, V4USI, V8UHI, V16UQI): New.
1403         (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
1404         V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
1405         V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
1406         * config/i386/i386-modes.def: Rearrange for double-wide AVX.
1407         * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
1408         * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
1409         (bdesc_args): Add the builtin definitions to match.
1410         (ix86_expand_builtin): Expand them.
1411         (ix86_builtin_vectorization_cost): Rename from
1412         x86_builtin_vectorization_cost.
1413         (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
1414         doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
1415         expand_vec_perm_blend, expand_vec_perm_vpermil,
1416         expand_vec_perm_pshufb, expand_vec_perm_1,
1417         expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
1418         expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
1419         expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
1420         ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
1421         ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
1422         ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
1423         TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1424         * sse.md (SSEMODE_EO): New.
1425         (vec_extract_even<mode>): Use SSEMODE_EO and
1426         ix86_expand_vec_extract_even_odd.
1427         (vec_extract_odd<mode>): Likewise.
1428         (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
1429         vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
1430
1431 2009-11-25  Richard Henderson  <rth@redhat.com>
1432
1433         * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
1434         * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
1435         * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
1436         * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
1437         the vector constant here...
1438         (vect_transform_slp_perm_load): ... do it here instead.  Validate
1439         that the permutation vector is implementable by the target.
1440
1441 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
1442
1443         * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
1444         * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
1445
1446         * print-rtl.c (print_rtx): When printing newline, append
1447         print_rtx_head and indentation after the newline.
1448
1449         PR target/42165
1450         * config/i386/i386.c (print_operand): For 32-byte memory use
1451         YMMWORD in -masm=intel mode.  Use TBYTE instead of XWORD.
1452         * config/i386/i386.md (crc32modesuffix): Expand to nothing
1453         in -masm=intel mode.
1454         (sse4_2_crc32di): Print just crc32 instead of crc32q in
1455         -masm=intel mode.
1456         * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
1457         memory operand in -masm=intel mode.
1458         * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
1459         *sse2_pinsrw): Likewise.
1460         (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
1461         q suffix in -masm=intel mode.
1462
1463 2009-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1464
1465         PR target/10127
1466         PR ada/20548
1467         PR middle-end/42004
1468         * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
1469         (dwarf2out_stack_adjust): ...this.  Do not adjust the arg size for
1470         ACCUMULATE_OUTGOING_ARGS targets.  Rename former version to...
1471         (dwarf2out_notice_stack_adjust): ...this.  Adjust for above renaming.
1472         (dwarf2out_frame_debug_expr): Revert previous change and adjust for
1473         above renaming.
1474         (dwarf2out_frame_debug): Add ??? comment.  Adjust for above renaming.
1475
1476 2009-11-25  Uros Bizjak  <ubizjak@gmail.com>
1477
1478         * config/i386/predicates.md (emms_operation): New predicate.
1479         (vzeroupper_operation): Ditto.
1480         (vzeroall_operation): Improve pattern recognition.
1481         * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
1482         (avx_vzeroupper): Change insn pattern to expander.
1483         (*avx_vzeroupper): New insn pattern.  Use vzeroupper_operation
1484         predicate.
1485         (*avx_vzeroall): Remove operands 1 and 2.
1486         * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
1487         (mmx_femms): Ditto.
1488         (*mmx_emms): New insn pattern.  Use emms_operation predicate.
1489         (*mmx_femms): Ditto.
1490         * config/i386/i386.c (enum ix86_builtins)
1491         <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
1492         (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
1493         Remove initailization.
1494         <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
1495
1496 2009-11-25  Paul Brook  <paul@codesourcery.com>
1497
1498         * config/arm/arm.md (consttable_4): Handle (high ...).
1499
1500 2009-11-25  Robert Nelson  <robert.nelson@digikey.com>
1501             Richard Earnshaw  <rearnsha@arm.com>
1502
1503         * arm.h (enum vfp_reg_type): Add VFP_NONE.
1504         * arm.c (all_fpus): Use it for floating point units that aren't based
1505         on the VFP architecture.
1506         (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
1507         enum machine_mode.
1508
1509 2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>
1510
1511         * alias.c: Remove trailing white spaces.
1512         * alloc-pool.c: Likewise.
1513         * alloc-pool.h: Likewise.
1514         * attribs.c: Likewise.
1515         * auto-inc-dec.c: Likewise.
1516         * basic-block.h: Likewise.
1517         * bb-reorder.c: Likewise.
1518         * bt-load.c: Likewise.
1519         * builtins.c: Likewise.
1520         * builtins.def: Likewise.
1521         * c-common.c: Likewise.
1522         * c-common.h: Likewise.
1523         * c-cppbuiltin.c: Likewise.
1524         * c-decl.c: Likewise.
1525         * c-format.c: Likewise.
1526         * c-lex.c: Likewise.
1527         * c-omp.c: Likewise.
1528         * c-opts.c: Likewise.
1529         * c-parser.c: Likewise.
1530         * c-pretty-print.c: Likewise.
1531         * c-tree.h: Likewise.
1532         * c-typeck.c: Likewise.
1533         * caller-save.c: Likewise.
1534         * calls.c: Likewise.
1535         * cfg.c: Likewise.
1536         * cfganal.c: Likewise.
1537         * cfgexpand.c: Likewise.
1538         * cfghooks.c: Likewise.
1539         * cfghooks.h: Likewise.
1540         * cfglayout.c: Likewise.
1541         * cfgloop.c: Likewise.
1542         * cfgloop.h: Likewise.
1543         * cfgloopmanip.c: Likewise.
1544         * cfgrtl.c: Likewise.
1545         * cgraph.c: Likewise.
1546         * cgraph.h: Likewise.
1547         * cgraphbuild.c: Likewise.
1548         * cgraphunit.c: Likewise.
1549         * cif-code.def: Likewise.
1550         * collect2.c: Likewise.
1551         * combine.c: Likewise.
1552         * convert.c: Likewise.
1553         * coverage.c: Likewise.
1554         * crtstuff.c: Likewise.
1555         * cse.c: Likewise.
1556         * cselib.c: Likewise.
1557         * dbgcnt.c: Likewise.
1558         * dbgcnt.def: Likewise.
1559         * dbgcnt.h: Likewise.
1560         * dbxout.c: Likewise.
1561         * dce.c: Likewise.
1562         * ddg.c: Likewise.
1563         * ddg.h: Likewise.
1564         * defaults.h: Likewise.
1565         * df-byte-scan.c: Likewise.
1566         * df-core.c: Likewise.
1567         * df-problems.c: Likewise.
1568         * df-scan.c: Likewise.
1569         * df.h: Likewise.
1570         * dfp.c: Likewise.
1571         * diagnostic.c: Likewise.
1572         * diagnostic.h: Likewise.
1573         * dominance.c: Likewise.
1574         * domwalk.c: Likewise.
1575         * double-int.c: Likewise.
1576         * double-int.h: Likewise.
1577         * dse.c: Likewise.
1578         * dwarf2asm.c: Likewise.
1579         * dwarf2asm.h: Likewise.
1580         * dwarf2out.c: Likewise.
1581         * ebitmap.c: Likewise.
1582         * ebitmap.h: Likewise.
1583         * emit-rtl.c: Likewise.
1584         * et-forest.c: Likewise.
1585         * except.c: Likewise.
1586         * except.h: Likewise.
1587         * expmed.c: Likewise.
1588         * expr.c: Likewise.
1589         * expr.h: Likewise.
1590         * final.c: Likewise.
1591         * flags.h: Likewise.
1592         * fold-const.c: Likewise.
1593         * function.c: Likewise.
1594         * function.h: Likewise.
1595         * fwprop.c: Likewise.
1596         * gcc.c: Likewise.
1597         * gcov-dump.c: Likewise.
1598         * gcov-io.c: Likewise.
1599         * gcov-io.h: Likewise.
1600         * gcov.c: Likewise.
1601         * gcse.c: Likewise.
1602         * genattr.c: Likewise.
1603         * genattrtab.c: Likewise.
1604         * genautomata.c: Likewise.
1605         * genchecksum.c: Likewise.
1606         * genconfig.c: Likewise.
1607         * genflags.c: Likewise.
1608         * gengtype-parse.c: Likewise.
1609         * gengtype.c: Likewise.
1610         * gengtype.h: Likewise.
1611         * genmddeps.c: Likewise.
1612         * genmodes.c: Likewise.
1613         * genopinit.c: Likewise.
1614         * genpreds.c: Likewise.
1615         * gensupport.c: Likewise.
1616         * ggc-common.c: Likewise.
1617         * ggc-page.c: Likewise.
1618         * ggc-zone.c: Likewise.
1619         * ggc.h: Likewise.
1620         * gimple-iterator.c: Likewise.
1621         * gimple-low.c: Likewise.
1622         * gimple-pretty-print.c: Likewise.
1623         * gimple.c: Likewise.
1624         * gimple.def: Likewise.
1625         * gimple.h: Likewise.
1626         * gimplify.c: Likewise.
1627         * graphds.c: Likewise.
1628         * graphite-clast-to-gimple.c: Likewise.
1629         * gthr-nks.h: Likewise.
1630         * gthr-posix.c: Likewise.
1631         * gthr-posix.h: Likewise.
1632         * gthr-posix95.h: Likewise.
1633         * gthr-single.h: Likewise.
1634         * gthr-tpf.h: Likewise.
1635         * gthr-vxworks.h: Likewise.
1636         * gthr.h: Likewise.
1637         * haifa-sched.c: Likewise.
1638         * hard-reg-set.h: Likewise.
1639         * hooks.c: Likewise.
1640         * hooks.h: Likewise.
1641         * hosthooks.h: Likewise.
1642         * hwint.h: Likewise.
1643         * ifcvt.c: Likewise.
1644         * incpath.c: Likewise.
1645         * init-regs.c: Likewise.
1646         * integrate.c: Likewise.
1647         * ipa-cp.c: Likewise.
1648         * ipa-inline.c: Likewise.
1649         * ipa-prop.c: Likewise.
1650         * ipa-pure-const.c: Likewise.
1651         * ipa-reference.c: Likewise.
1652         * ipa-struct-reorg.c: Likewise.
1653         * ipa-struct-reorg.h: Likewise.
1654         * ipa-type-escape.c: Likewise.
1655         * ipa-type-escape.h: Likewise.
1656         * ipa-utils.c: Likewise.
1657         * ipa-utils.h: Likewise.
1658         * ipa.c: Likewise.
1659         * ira-build.c: Likewise.
1660         * ira-color.c: Likewise.
1661         * ira-conflicts.c: Likewise.
1662         * ira-costs.c: Likewise.
1663         * ira-emit.c: Likewise.
1664         * ira-int.h: Likewise.
1665         * ira-lives.c: Likewise.
1666         * ira.c: Likewise.
1667         * jump.c: Likewise.
1668         * lambda-code.c: Likewise.
1669         * lambda-mat.c: Likewise.
1670         * lambda-trans.c: Likewise.
1671         * lambda.h: Likewise.
1672         * langhooks.c: Likewise.
1673         * lcm.c: Likewise.
1674         * libgcov.c: Likewise.
1675         * lists.c: Likewise.
1676         * loop-doloop.c: Likewise.
1677         * loop-init.c: Likewise.
1678         * loop-invariant.c: Likewise.
1679         * loop-iv.c: Likewise.
1680         * loop-unroll.c: Likewise.
1681         * lower-subreg.c: Likewise.
1682         * lto-cgraph.c: Likewise.
1683         * lto-compress.c: Likewise.
1684         * lto-opts.c: Likewise.
1685         * lto-section-in.c: Likewise.
1686         * lto-section-out.c: Likewise.
1687         * lto-streamer-in.c: Likewise.
1688         * lto-streamer-out.c: Likewise.
1689         * lto-streamer.c: Likewise.
1690         * lto-streamer.h: Likewise.
1691         * lto-symtab.c: Likewise.
1692         * lto-wpa-fixup.c: Likewise.
1693         * matrix-reorg.c: Likewise.
1694         * mcf.c: Likewise.
1695         * mode-switching.c: Likewise.
1696         * modulo-sched.c: Likewise.
1697         * omega.c: Likewise.
1698         * omega.h: Likewise.
1699         * omp-low.c: Likewise.
1700         * optabs.c: Likewise.
1701         * optabs.h: Likewise.
1702         * opts-common.c: Likewise.
1703         * opts.c: Likewise.
1704         * params.def: Likewise.
1705         * params.h: Likewise.
1706         * passes.c: Likewise.
1707         * plugin.c: Likewise.
1708         * postreload-gcse.c: Likewise.
1709         * postreload.c: Likewise.
1710         * predict.c: Likewise.
1711         * predict.def: Likewise.
1712         * pretty-print.c: Likewise.
1713         * pretty-print.h: Likewise.
1714         * print-rtl.c: Likewise.
1715         * print-tree.c: Likewise.
1716         * profile.c: Likewise.
1717         * read-rtl.c: Likewise.
1718         * real.c: Likewise.
1719         * recog.c: Likewise.
1720         * reg-stack.c: Likewise.
1721         * regcprop.c: Likewise.
1722         * reginfo.c: Likewise.
1723         * regmove.c: Likewise.
1724         * regrename.c: Likewise.
1725         * regs.h: Likewise.
1726         * regstat.c: Likewise.
1727         * reload.c: Likewise.
1728         * reload1.c: Likewise.
1729         * resource.c: Likewise.
1730         * rtl.c: Likewise.
1731         * rtl.def: Likewise.
1732         * rtl.h: Likewise.
1733         * rtlanal.c: Likewise.
1734         * sbitmap.c: Likewise.
1735         * sched-deps.c: Likewise.
1736         * sched-ebb.c: Likewise.
1737         * sched-int.h: Likewise.
1738         * sched-rgn.c: Likewise.
1739         * sched-vis.c: Likewise.
1740         * sdbout.c: Likewise.
1741         * sel-sched-dump.c: Likewise.
1742         * sel-sched-dump.h: Likewise.
1743         * sel-sched-ir.c: Likewise.
1744         * sel-sched-ir.h: Likewise.
1745         * sel-sched.c: Likewise.
1746         * sel-sched.h: Likewise.
1747         * sese.c: Likewise.
1748         * sese.h: Likewise.
1749         * simplify-rtx.c: Likewise.
1750         * stack-ptr-mod.c: Likewise.
1751         * stmt.c: Likewise.
1752         * stor-layout.c: Likewise.
1753         * store-motion.c: Likewise.
1754         * stringpool.c: Likewise.
1755         * stub-objc.c: Likewise.
1756         * sync-builtins.def: Likewise.
1757         * target-def.h: Likewise.
1758         * target.h: Likewise.
1759         * targhooks.c: Likewise.
1760         * targhooks.h: Likewise.
1761         * timevar.c: Likewise.
1762         * tlink.c: Likewise.
1763         * toplev.c: Likewise.
1764         * toplev.h: Likewise.
1765         * tracer.c: Likewise.
1766         * tree-affine.c: Likewise.
1767         * tree-affine.h: Likewise.
1768         * tree-browser.def: Likewise.
1769         * tree-call-cdce.c: Likewise.
1770         * tree-cfg.c: Likewise.
1771         * tree-cfgcleanup.c: Likewise.
1772         * tree-chrec.c: Likewise.
1773         * tree-chrec.h: Likewise.
1774         * tree-complex.c: Likewise.
1775         * tree-data-ref.c: Likewise.
1776         * tree-data-ref.h: Likewise.
1777         * tree-dfa.c: Likewise.
1778         * tree-dump.c: Likewise.
1779         * tree-dump.h: Likewise.
1780         * tree-eh.c: Likewise.
1781         * tree-flow-inline.h: Likewise.
1782         * tree-flow.h: Likewise.
1783         * tree-if-conv.c: Likewise.
1784         * tree-inline.c: Likewise.
1785         * tree-into-ssa.c: Likewise.
1786         * tree-loop-distribution.c: Likewise.
1787         * tree-loop-linear.c: Likewise.
1788         * tree-mudflap.c: Likewise.
1789         * tree-nested.c: Likewise.
1790         * tree-nomudflap.c: Likewise.
1791         * tree-nrv.c: Likewise.
1792         * tree-object-size.c: Likewise.
1793         * tree-optimize.c: Likewise.
1794         * tree-outof-ssa.c: Likewise.
1795         * tree-parloops.c: Likewise.
1796         * tree-pass.h: Likewise.
1797         * tree-phinodes.c: Likewise.
1798         * tree-predcom.c: Likewise.
1799         * tree-pretty-print.c: Likewise.
1800         * tree-profile.c: Likewise.
1801         * tree-scalar-evolution.c: Likewise.
1802         * tree-ssa-address.c: Likewise.
1803         * tree-ssa-alias.c: Likewise.
1804         * tree-ssa-ccp.c: Likewise.
1805         * tree-ssa-coalesce.c: Likewise.
1806         * tree-ssa-copy.c: Likewise.
1807         * tree-ssa-copyrename.c: Likewise.
1808         * tree-ssa-dce.c: Likewise.
1809         * tree-ssa-dom.c: Likewise.
1810         * tree-ssa-dse.c: Likewise.
1811         * tree-ssa-forwprop.c: Likewise.
1812         * tree-ssa-ifcombine.c: Likewise.
1813         * tree-ssa-live.c: Likewise.
1814         * tree-ssa-live.h: Likewise.
1815         * tree-ssa-loop-ch.c: Likewise.
1816         * tree-ssa-loop-im.c: Likewise.
1817         * tree-ssa-loop-ivcanon.c: Likewise.
1818         * tree-ssa-loop-ivopts.c: Likewise.
1819         * tree-ssa-loop-manip.c: Likewise.
1820         * tree-ssa-loop-niter.c: Likewise.
1821         * tree-ssa-loop-prefetch.c: Likewise.
1822         * tree-ssa-loop-unswitch.c: Likewise.
1823         * tree-ssa-loop.c: Likewise.
1824         * tree-ssa-math-opts.c: Likewise.
1825         * tree-ssa-operands.c: Likewise.
1826         * tree-ssa-operands.h: Likewise.
1827         * tree-ssa-phiopt.c: Likewise.
1828         * tree-ssa-phiprop.c: Likewise.
1829         * tree-ssa-pre.c: Likewise.
1830         * tree-ssa-propagate.c: Likewise.
1831         * tree-ssa-reassoc.c: Likewise.
1832         * tree-ssa-sccvn.c: Likewise.
1833         * tree-ssa-sink.c: Likewise.
1834         * tree-ssa-structalias.c: Likewise.
1835         * tree-ssa-ter.c: Likewise.
1836         * tree-ssa-threadedge.c: Likewise.
1837         * tree-ssa-threadupdate.c: Likewise.
1838         * tree-ssa-uncprop.c: Likewise.
1839         * tree-ssa.c: Likewise.
1840         * tree-ssanames.c: Likewise.
1841         * tree-switch-conversion.c: Likewise.
1842         * tree-tailcall.c: Likewise.
1843         * tree-vect-data-refs.c: Likewise.
1844         * tree-vect-generic.c: Likewise.
1845         * tree-vect-loop-manip.c: Likewise.
1846         * tree-vect-loop.c: Likewise.
1847         * tree-vect-patterns.c: Likewise.
1848         * tree-vect-slp.c: Likewise.
1849         * tree-vect-stmts.c: Likewise.
1850         * tree-vectorizer.c: Likewise.
1851         * tree-vectorizer.h: Likewise.
1852         * tree-vrp.c: Likewise.
1853         * tree.c: Likewise.
1854         * tree.def: Likewise.
1855         * tree.h: Likewise.
1856         * treestruct.def: Likewise.
1857         * unwind-compat.c: Likewise.
1858         * unwind-dw2-fde-glibc.c: Likewise.
1859         * unwind-dw2.c: Likewise.
1860         * value-prof.c: Likewise.
1861         * value-prof.h: Likewise.
1862         * var-tracking.c: Likewise.
1863         * varasm.c: Likewise.
1864         * varpool.c: Likewise.
1865         * vec.c: Likewise.
1866         * vec.h: Likewise.
1867         * vmsdbgout.c: Likewise.
1868         * web.c: Likewise.
1869         * xcoffout.c: Likewise.
1870
1871 2009-11-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1872
1873         * pa.c (output_call): Only use sr4 for long interspace calls if
1874         call binds local and generating non PIC code.
1875         (attr_length_call): Adjust length calculation for above.
1876
1877 2009-11-25  Uros Bizjak  <ubizjak@gmail.com>
1878
1879         * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
1880         (add<mode>3_carry): Change operand order of plus RTX.
1881         (*add<mode>3_carry): Ditto.
1882         (*addsi3_carry_zext): Ditto.
1883         (*add<dwi>3_doubleword): Update for changed operand order.
1884         (*negti2_1 splitter): Ditto.
1885         (*negdi2_1 splitter): Ditto.
1886         (<plusminus_insn><mode>3_carry): Macroize expander from
1887         {add,sub}<mode>3_carry patterns using plusminus code iterator.
1888         (*<plusminus_insn><mode>3_carry): Macroize insn from
1889         *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
1890         (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
1891         patterns using SDWIM mode iterator.
1892         (*neg<dwi>2_doubleword): New insn_and_split pattern.  Macroize
1893         pattern from *neg{di,ti}2_1 patterns and corresponding splitters
1894         using DWIH mode iterator.
1895         (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
1896         using SWI mode iterator.
1897         (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
1898         (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
1899         patterns using SWIM mode iterator.
1900         (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
1901         patterns using SWI248 mode iterator.
1902         (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
1903         patterns using SWI mode iterator.
1904         (*one_cmpl<mode>2_2 splitter): Macroize splitter from
1905         one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
1906
1907 2009-11-24  Michael Matz  <matz@suse.de>
1908
1909         * expr.c (set_storage_via_libcall): Fix build_call_expr call.
1910
1911 2009-11-24  David Binderman  <dcb314@hotmail.com>
1912
1913         * expr.c (store_field): Remove set but not used local variable
1914         width_mask.
1915         (expand_expr_real_2): Remove treeop2.
1916         * gcse.c (update_ld_motion_stores): Remove new_rtx.
1917         * haifa-sched.c (max_issue): Remove points.
1918         (sched_create_recovery_edges): Remove e.
1919         * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
1920
1921 2009-11-24  Nick Clifton  <nickc@redhat.com>
1922
1923         * config/v850/v850.c (function_arg): Fix handling of zero-length
1924         function arguments.
1925
1926 2009-11-24  Michael Matz  <matz@suse.de>
1927
1928         * tree.h (union tree_ann_d): Don't declare.
1929         (tree_base): Remove ann field.
1930         (struct var_ann_d): Declare forward.
1931         (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
1932         (DECL_VAR_ANN_PTR): New macro.
1933         * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
1934         accept only VAR, PARM or RESULT decls.
1935         (create_tree_common_ann): Remove.
1936         (remove_referenced_var): Use DECL_VAR_ANN_PTR.
1937         * tree-eh.c (lookup_expr_eh_lp): Remove.
1938         * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
1939         DECL_VAR_ANN_PTR.
1940         (ann_type, tree_common_ann, get_tree_common_ann): Remove.
1941         * tree-flow.h (enum tree_ann_type): Remove.
1942         (struct tree_ann_common_d): Remove.
1943         (struct var_ann_d): Remove common field.
1944         (union tree_ann_d): Remove.
1945         (tree_ann_t, tree_ann_common_t): Remove typedefs.
1946         (tree_common_ann, get_tree_common_ann, ann_type,
1947         create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
1948         * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
1949         * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
1950         * builtins.c (expand_builtin_memcpy): Use
1951         currently_expanding_gimple_stmt instead of tree annotation.
1952         (expand_builtin_memset_args): Ditto.
1953         * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
1954         (expand_call_stmt): Don't set tree annotation.
1955         (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
1956         * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
1957         * gimple.h (currently_expanding_gimple_stmt): Declare.
1958
1959 2009-11-24  Paolo Carlini  <paolo.carlini@oracle.com>
1960
1961         * dwarf2out.c (add_location_or_const_value_attribute): Remove
1962         useless NOTE_VAR_LOCATION_STATUS call.
1963         * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
1964
1965 2009-11-24  Rafael Avila de Espindola  <espindola@google.com>
1966
1967         * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
1968         being called recursively.
1969
1970 2009-11-24  Basile Starynkevitch  <basile@starynkevitch.net>
1971
1972         * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
1973         $(MD5_H) params.def params.h prefix.h tree-inline.h.
1974
1975 2009-11-24  Paul Brook  <paul@codesourcery.com>
1976
1977         * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
1978         typo.
1979
1980 2009-11-24  Julian Brown  <julian@codesourcery.com>
1981             Paul Brook  <paul@codesourcery.com>
1982
1983         * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
1984         (arm_dwarf_register_span): New function.
1985         (arm_dbx_register_number): Add VFPv3 dwarf numbering.
1986
1987 2009-11-24  David Binderman  <dcb314@hotmail.com>
1988
1989         * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
1990         local variable bb_note.
1991         * dominance.c (get_dominated_by): Likewise local var n.
1992         (output_file_names): Likewise local var idx.
1993         (add_location_or_const_value_attribute): Likewise local var status.
1994         * dwarf2out.c (gen_variable_die): Likewise local var field.
1995         * emit-rtl.c (no_line_numbers): Remove.
1996         (init_emit_once): Remove line_numbers parameter.
1997         * rtl.h (init_emit_once): Adjust prototype.
1998         * toplev.c (backend_init): Adjust init_emit_once call.
1999
2000 2009-11-24  Richard Guenther  <rguenther@suse.de>
2001
2002         PR tree-optimization/42142
2003         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
2004         Handle iv-dependent (non-)kills properly.
2005         (mark_aliased_reaching_defs_necessary): Pass the basic-block
2006         of the reference statement to mark_aliased_reaching_defs_necessary_1.
2007
2008 2009-11-24  Martin Jambor  <mjambor@suse.cz>
2009
2010         PR tree-optimization/42154
2011         * tree-sra.c (struct access): Added comments.
2012         (sra_modify_expr): Build references to the old aggregate with
2013         build_ref_for_offset instead of reusing access->expr.
2014         (load_assign_lhs_subreplacements): Likewise.
2015
2016 2009-11-24  Uros Bizjak  <ubizjak@gmail.com>
2017
2018         * config/i386/i386.md (add<mode>3_carry): Change insn pattern
2019         to expander.
2020         (sub<mode>3_carry): Ditto.
2021         (x86_mov<mode>cc_0_m1): Ditto.
2022         (*add<mode>3_carry): New insn pattern.  Use VOIDmode match_operator
2023         for ix86_carry_flag_operator operator predicate.
2024         (*sub<mode>3_carry): Ditto.
2025         (*x86_mov<mode>cc_0_m1): Ditto.
2026         (*addsi3_carry_zext): Use VOIDmode match_operator for
2027         ix86_carry_flag_operator operator predicate.
2028         (*subsi3_carry_zext): Ditto.
2029         (*x86_mov<mode>cc_0_m1_s): Ditto.
2030         (*x86_mov<mode>cc_0_m1_neg): Ditto.
2031         * config/i386/predocates.md (ix86_carry_flag_operator): Do not
2032         check operator sub-expressions for FLAGS_REG and const0_rtx.
2033         * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
2034         (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
2035         (ix86_expand_int_addcc): Update calls to
2036         gen_{add,sub}{qi,hi,si,di}3_carry.  Do not set mode of compare_op.
2037         (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
2038         Do not set mode of compare operation.
2039
2040 2009-11-23  Jan Hubicka  <jh@suse.cz>
2041
2042         PR middle-end/42151
2043         * ipa-inline.c (inline_transform): Avoid ICE when transform is called
2044         twice.
2045
2046 2009-11-23  Jan Hubicka  <jh@suse.cz>
2047
2048         * ipa-cp.c (ipcp_compute_node_scale): Work around completely
2049         wrong profile updates.
2050         * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
2051         having largest frequency.
2052         * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
2053         used uninitalized warning.
2054         * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
2055         frequencies.
2056
2057 2009-11-23  Uros Bizjak  <ubizjak@gmail.com>
2058
2059         * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
2060         of gen_rtx_REG to generate operand 5.
2061         (*cmp_ssub_sidi): Ditto.
2062
2063 2009-11-23  Richard Henderson  <rth@redhat.com>
2064
2065         * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
2066         mismatch.
2067
2068 2009-11-23  Paul Brook  <paul@codesourcery.com>
2069
2070         * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
2071         case for noreturn functions.
2072         (arm_compute_save_reg_mask): Remove special noreturn handling.
2073
2074 2009-11-23  Richard Guenther  <rguenther@suse.de>
2075
2076         * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
2077         size for DECL bases.
2078
2079 2009-11-22  Richard Henderson  <rth@redhat.com>
2080
2081         * i386.c (avx_vpermilp_parallel): New function.
2082         * i386-protos.h: Declare it.
2083         * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
2084         avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
2085         * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
2086         (ssescalarnum, ssedoublesizemode): Add AVX modes.
2087         (vpermilbits): Remove.
2088         (avx_vpermil<mode>): Change insns to expanders.
2089         (*avx_vpermil<mode>): New.  Use vec_select.
2090
2091 2009-11-22  Richard Earnshaw  <rearnsha@arm.com>
2092
2093         * opts.c (decode_options): Don't enable flag_schedule_insns
2094         when optimizing for size.
2095         * doc/invoke.texi: Document change.
2096
2097 2009-11-22  Uros Bizjak  <ubizjak@gmail.com>
2098
2099         PR target/42113
2100         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
2101         of scratch register to SImode.
2102         (*cmp_sadd_sidi): Ditto.
2103         (*cmp_ssub_si): Ditto.
2104         (*cmp_ssub_sidi): Ditto.
2105
2106 2009-11-21  Ian Lance Taylor  <iant@google.com>
2107
2108         * Makefile.in (HOST_LIBS): Move higher in file.
2109         (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
2110         is not empty, set to $(CC) and $(CFLAGS).
2111
2112 2009-11-22  Martin Jambor  <mjambor@suse.cz>
2113
2114         * tree-cfg.c (verify_types_in_gimple_reference): Error out on
2115         V_C_E of an SSA_NAME or an invariant if lvalue is required.
2116         (verify_gimple_call): Verify LHS also with with
2117         verify_types_in_gimple_reference.
2118
2119 2009-11-21  Martin Jambor  <mjambor@suse.cz>
2120
2121         PR middle-end/42025
2122         * tree-sra.c (access_precludes_ipa_sra_p): New function.
2123         (splice_param_accesses): Check all accesses by calling
2124         access_precludes_ipa_sra_p.
2125         (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
2126         not convert types if it is true.
2127         (sra_ipa_modify_assign): Convert types in case of mismatch.
2128
2129 2009-11-21  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2130
2131         * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
2132         for operand 1.
2133
2134 2009-11-21  Adam Nemet  <adambnemet@gmail.com>
2135
2136         * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
2137         (mips_mulsidi3_gen_fn): Declare new function.
2138         * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
2139         * config/mips/mips.md (<u>mulsidi3): Change condition to use
2140         mips_mulsidi3_gen_fn.  Use mips_mulsidi3_gen_fn to generate the insn.
2141         (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
2142         (mulsidi3_64bit_dmul): New define_insn.
2143
2144 2009-11-21  Ben Elliston  <bje@au.ibm.com>
2145
2146         * gengtype-lex.l: Enable noinput flex option.
2147         (YY_NO_INPUT): Remove define.
2148
2149 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
2150
2151         * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
2152         (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
2153         (insert_debug_temps_for_defs): Handle PHI nodes.
2154         * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
2155         SSA names.
2156
2157 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
2158
2159         * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
2160         after remove_phi_node.
2161
2162 2009-11-21  Alexandre Oliva  <aoliva@redhat.com>
2163
2164         PR tree-optimization/42078
2165         * gimple.h (gimple_replace_lhs): New declaration.
2166         * gimple.c (gimple_replace_lhs): New function.
2167         * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
2168         modifying the call.
2169
2170 2009-11-20  Sebastian Pop  <sebastian.pop@amd.com>
2171
2172         * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
2173         (xop_mulv2div2di3_low): Same.
2174         (*xop_pmacsdqh_mem): Same.
2175
2176 2009-11-20  Richard Henderson  <rth@redhat.com>
2177
2178         * config/i386/i386-builtin-types.awk: New file.
2179         * config/i386/i386-builtin-types.def: New file.
2180         * config/i386/t-i386: Use them to build i386-builtin-types.inc.
2181         * config/i386/i386.c: Include it.
2182         (ix86_builtin_type_tab, ix86_get_builtin_type): New.
2183         (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
2184         (struct builtin_isa): Remove GTY marker.  Replace tree type with
2185         ix86_builtin_func_type; add set_and_not_built_p.
2186         (def_builtin): Change type parameter to tcode; use
2187         ix86_get_builtin_func_type; update all callers.  Accept zero mask
2188         to mean the builtin is unconditionally available.
2189         (ix86_add_new_builtins): Use set_and_not_built_p instead of type
2190         being set to NULL.
2191         (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
2192         Update some users to rationalized enumeration codes from new include.
2193         (enum multi_arg_type): Remove.  Replace all enumeration values
2194         with defines to new ix86_builtin_func_type.
2195         (ix86_init_mmx_sse_builtins): Don't build any types here.  Defer
2196         all type resolution to def_builtin.
2197         (ix86_init_builtin_types): Split out from ...
2198         (ix86_init_builtins): ... here.  Use ix86_get_builtin_func_type.
2199
2200 2009-11-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
2201
2202         PR target/41787
2203         * config/rs6000/rs6000.c (struct machine_function): Revert
2204         2009-10-23 change to set VRSAVE to non-0 if we use VSX.
2205         (rs6000_expand_to_rtl_hook): Ditto.
2206         (rs6000_check_vector_mode): Ditto.
2207         (compute_vrsave_mask): Ditto.
2208
2209 2009-11-20  Paul Brook  <paul@codesourcery.com>
2210
2211         * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
2212         * config/arm/arm-cores.def: Add cortex-a5.
2213         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
2214         * config/arm/arm-tune.md: Regenerate.
2215
2216 2009-11-20 Olga Golovanevsky <olga@il.ibm.com>
2217
2218         PR middle-end/39960
2219         * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
2220         (ref_pos): New field in structure.
2221         (insert_new_var_in_stmt): New function.
2222
2223
2224 2009-11-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2225
2226         * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
2227         * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
2228         (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
2229         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
2230         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
2231         INT_LEAST64_TYPE): Define.
2232         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
2233         UINT_LEAST64_TYPE): Define.
2234         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2235         INT_FAST64_TYPE): Define.
2236         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
2237         UINT_FAST64_TYPE): Define.
2238         (INTPTR_TYPE, UINTPTR_TYPE): Define.
2239
2240 2009-11-20  Julian Brown  <julian@codesourcery.com>
2241
2242         * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
2243         specially for Thumb-1.
2244         (ASM_OUTPUT_REG_POP): Likewise.
2245
2246 2009-11-19  Jason Merrill  <jason@redhat.com>
2247
2248         * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
2249
2250 2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
2251             Rafael Avila de Espindola  <espindola@google.com>
2252
2253         * doc/plugins.texi (Plugin initialization): Added advices for
2254         retrieving the version of GCC at plugin compilation and loading times.
2255
2256 2009-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
2257
2258         * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
2259         (dump_active_plugins): output to file everything. Use
2260         internationalized dump & FMT_FOR_PLUGIN_EVENT.
2261
2262 2009-11-19  Richard Guenther  <rguenther@suse.de>
2263
2264         * gimple.c (canonicalize_cond_expr_cond): Strip conversions
2265         around truth-valued expressions.
2266         * tree.c (free_lang_data): Untangle check for LTO frontend.
2267
2268 2009-11-19  Jakub Jelinek  <jakub@redhat.com>
2269
2270         * tree.c (need_assembler_name_p): Use cgraph_get_node instead
2271         of cgraph_node_for_decl.
2272         * cgraph.h (cgraph_node_for_decl): Remove prototype.
2273         * cgraph.c (cgraph_node_for_decl): Remove.
2274         (cgraph_get_node): Just return NULL if !cgraph_hash.
2275
2276 2009-11-19  Paul Brook  <paul@codesourcery.com>
2277
2278         * config.gcc: Add new ARM --with-fpu options.
2279         * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
2280         * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
2281
2282 2009-11-18  Richard Guenther  <rguenther@suse.de>
2283
2284         * gimple.h (union gimple_statement_d): Add gsmembase member.
2285         (gimple_vuse_op): Use gsmembase for access.
2286         (gimple_vdef_op): Likewise.
2287         (gimple_vuse): Likewise.
2288         (gimple_vdef): Likewise.
2289         (gimple_vuse_ptr): Likewise.
2290         (gimple_vdef_ptr): Likewise.
2291         (gimple_set_vuse): Likewise.
2292         (gimple_set_vdef): Likewise.
2293         * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
2294
2295 2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
2296
2297         * doc/arm-neon-intrinsics.texi: Regenerated.
2298
2299 2009-11-18  Daniel Jacobowitz  <dan@codesourcery.com>
2300
2301         * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
2302
2303 2009-11-18  Paul Brook  <paul@codesourcery.com>
2304             Daniel Jacobowitz  <dan@codesourcery.com>
2305
2306         * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
2307         (arm_arch7em): New variable.
2308         (all_architectures): Add armv7e-m.
2309         (arm_override_options): Set arm_arch7em.
2310         * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
2311         Include arm_arch7em.
2312         (arm_arch7em): Declare.
2313
2314 2009-11-18  Richard Guenther  <rguenther@suse.de>
2315
2316         * lto-streamer-in.c (input_gimple_stmt): Assert that we find
2317         a valid field decl if checking is enabled.
2318
2319 2009-11-18  Martin Jambor  <mjambor@suse.cz>
2320
2321         * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
2322         (lto_ipa_fixup_call_notes): Declare.
2323         * ipa-prop.c (ipa_note_param_call): Store gimple uid.
2324         (update_call_notes_after_inlining): Copy call stmt uid to the new
2325         edge.
2326         (ipa_write_param_call_note): New function.
2327         (ipa_read_param_call_note): New function
2328         (ipa_write_node_info): Write also param call notes.  Removed a bogus
2329         comment, reformatted to fit 80 columns.
2330         (ipa_read_node_info): Read also param call notes. Removed a bogus
2331         comment.  Remove ipa_edge_args_vector growth.
2332         (lto_ipa_fixup_call_notes): New function.
2333         * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
2334         * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
2335         inlining regardless of flag_wpa.
2336         (cgraph_decide_inlining_of_small_functions): Likewise.
2337         (cgraph_decide_inlining): Likewise.
2338         (inline_read_summary): Likewise.
2339
2340 2009-11-18  Jan Hubicka  <jh@suse.cz>
2341
2342         * predict.c (compute_function_frequency): Export.
2343         * predict.h (compute_function_frequency): Declare.
2344         * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
2345
2346 2009-11-18  Martin Jambor  <mjambor@suse.cz>
2347
2348         * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
2349         on all nodes we write summaries for.
2350
2351 2009-11-18  Shujing Zhao  <pearly.zhao@oracle.com>
2352
2353         PR middle-end/22201
2354         * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
2355         (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
2356         (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
2357         (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
2358         (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
2359         (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
2360         (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
2361         description string.
2362
2363 2009-11-18  Jakub Jelinek  <jakub@redhat.com>
2364
2365         * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
2366         unnecessarily.
2367         (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
2368
2369         PR c++/3187
2370         * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
2371         fields.
2372         (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2373         prototypes.
2374         * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
2375         cgraph_materialize_all_clones): Handle same_body aliases.
2376         * cgraph.c (cgraph_allocate_node): New function.
2377         (cgraph_create_node): Use it.
2378         (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
2379         cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
2380         (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
2381         functions.
2382         * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
2383         (input_node): Stream in same_body aliases.
2384         * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
2385         for same_body aliases.
2386         (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
2387
2388 2009-11-18  Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
2389
2390         PR other/39888
2391         * config/darwin.h: Use the extension stub libraries to access
2392         current libgcc_s features.
2393
2394 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
2395
2396         PR debug/41926
2397         * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
2398         (vect_transform_loop): Call it.
2399
2400 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
2401
2402         * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
2403         released SSA names.
2404
2405 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
2406
2407         PR debug/41888
2408         PR debug/41886
2409         * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
2410         are ok.
2411         * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
2412         (try_generate_gimple_bb): Skip debug stmts when finding data refs.
2413         * sese.c (sese_build_liveouts_bb): Skip debug stmts.
2414         (sese_bad_liveouts_use): New.
2415         (sese_reset_debug_liveouts_bb): New.
2416         (sese_build_liveouts): Use it.
2417         (rename_variables_in_stmt): Reset debug stmts rather than creating
2418         new vars for them.
2419         (expand_scalar_variable_stmt): Likewise.
2420
2421 2009-11-18  Alexandre Oliva  <aoliva@redhat.com>
2422
2423         * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
2424         (df_ref_remove): Likewise.
2425
2426 2009-11-17  Jan Hubicka  <jh@suse.cz>
2427
2428         * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
2429         info.
2430
2431 2009-11-17  Eric Botcazou  <ebotcazou@adacore.com>
2432
2433         * toplev.c (process_options): Remove dead code.
2434         * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
2435
2436 2009-11-17  Rafael Avila de Espindola  <espindola@google.com>
2437
2438         * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
2439         nodes.
2440
2441 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2442
2443         PR tree-optimization/41857
2444         * tree-ssa-address.c (move_hint_to_base): Use void pointer to
2445         TYPE's address space instead of pointer to TYPE.
2446
2447 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2448
2449         * reload.c (find_reloads_address): Fix typo.
2450
2451 2009-11-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2452
2453         * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
2454         registers in leaf functions if possible.
2455
2456 2009-11-17  Maxim Kuvyrkov  <maxim@codesourcery.com>
2457
2458         * config/m68k/m68k-devices.def: Add MCF5441x family.
2459
2460 2009-11-17  Jan Hubicka  <jh@suse.cz>
2461
2462         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
2463         removed node.
2464         * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
2465
2466 2009-11-17  Uros Bizjak  <ubizjak@gmail.com>
2467
2468         * config/i386/predicates.md (x86_64_szext_general_operand): Do not
2469         nest ior expressions.
2470         (x86_64_szext_nonmemory_operand): Ditto.
2471         (call_insn_operand): Ditto.
2472
2473 2009-11-16  Alexandre Oliva  <aoliva@redhat.com>
2474
2475         * stmt.c (expand_asm_stmt): Get locus from stmt.
2476
2477 2009-11-16  Alexandre Oliva  <aoliva@redhat.com>
2478
2479         * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
2480         Create the decl label for the new dest block on demand.  Require
2481         a fallthrough edge if no asm labels were redirected.
2482
2483 2009-11-16  Uros Bizjak  <ubizjak@gmail.com>
2484
2485         * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
2486         operand 1 predicate.
2487         (cstoresi4): Ditto for operand 2.
2488         (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
2489         patterns using SDWIM mode iterator.
2490         (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
2491         using SWIM mode iterator.
2492         (cmpdi_1): Rename from cmpdi_1_rex64.
2493         (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
2494         SWI48 mode iterator.
2495         (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
2496         using SWI mode iterator.
2497         (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
2498         (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
2499         (*cmpqi_ext_3_insn): Make private.
2500         (*cmpqi_ext_3_insn_rex64): Make private.
2501         (cmpstrnsi): Update for renamed cmpdi_1_rex64.
2502         * config/i386/predicates.md (cmpsi_operand): Remove.
2503
2504 2009-11-16  Paul Brook  <paul@codesourcery.com>
2505
2506         * doc/invoke.texi: Document ARM VFPv4 based FPUs.
2507         * config/arm/arm.c (all_fpus): Add VFPv4 entries.
2508
2509 2009-11-14  Jan Hubicka  <jh@suse.cz>
2510
2511         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
2512         ENTRY_BLOCK_PTR.
2513         * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
2514         zero out all callees.
2515         * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
2516         frequency and count match.
2517         * ipa-inline.c (update_noncloned_frequencies): New function.
2518         (cgraph_clone_inlined_nodes): Use it.
2519         * tree-inline.c (copy_bb): Fix frequency scaling; output
2520         diagnostic on frequency mismatches to dump file.
2521         (initialize_cfun): Do not scale frequency; fix count scaling;
2522         initialize entry and exit block frequencies; copy profile info.
2523         (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
2524         (copy_body): Use frequency_scale as argument.
2525         (expand_call_inline): Compute frequency scale and output diagnostic
2526         to dump file.
2527         (delete_unreachable_blocks_update_callgrah): Remove checking that
2528         has to be done after edge redirection.
2529         (tree_function_versioning): Update initialize_cfun and copy_body call.
2530
2531 2009-11-14  Jan Hubicka  <jh@suse.cz>
2532
2533         * cgraph.c (cgraph_release_function_body): Update use of
2534         ipa_transforms_to_apply.
2535         (cgraph_remove_node): Remove ipa_transforms_to_apply.
2536         * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
2537         * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
2538         copied body.
2539         (cgraph_materialize_clone): Remove original if dead.
2540         * lto-streamer-in.c (lto_read_body): Remove FIXME and
2541         ipa_transforms_to_apply hack.
2542         * function.h (struct function): Add ipa_transforms_to_apply.
2543         * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
2544         * tree-inline.c (copy_bb): Update sanity check.
2545         (initialize_cfun): Do not copy ipa_transforms_to_apply.
2546         (expand_call_inline): remove dead clone originals.
2547         (tree_function_versioning): Merge transformation queues.
2548         * passes.c (add_ipa_transform_pass): Remove.
2549         (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
2550         tracking.
2551         (execute_all_ipa_transforms): Update.
2552         (execute_one_pass): Update.
2553
2554 2009-11-14  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
2555
2556         PR target/21078, 21080
2557         * config/avr/avr.c (avr_return_addr_rtx): New function for
2558         builtin_return_address.
2559         (expand_prologue): Calculate stack usage.
2560         (avr_asm_function_end_prologue): Output stack size and offset label.
2561         * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
2562         (machine_function): Add stack_usage.
2563         * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
2564
2565 2009-11-14  Anatoly Sokolov  <aesok@post.ru>
2566
2567         * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
2568         new 'outgoing' argument.
2569         (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
2570         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2571         * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
2572         iq2000_function_value_regno_p.
2573         (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2574         * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
2575         Declare.
2576
2577 2009-11-14  Richard Earnshaw  <rearnsha@arm.com>
2578
2579         PR target/42031
2580         * arm.md (adddi_sesidi_di): Place tied contraint first.
2581         (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
2582         (subdi_zesidi_di, subdi_sesidi_di): Likewise.
2583         (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
2584         (mulsi3addsi, mulsi3addsi_compare0): Likewise.
2585         (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
2586         (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
2587         (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
2588         (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
2589         (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
2590
2591 2009-11-14  Uros Bizjak  <ubizjak@gmail.com>
2592
2593         * config/i386/predicates.md (call_register_no_elim_operand):
2594         New predicate.  Reject stack register as valid call operand
2595         for 32bit targets.
2596         (call_insn_operand): Use call_register_no_elim_operand.
2597
2598 2009-11-13  Richard Henderson  <rth@redhat.com>
2599
2600         * function.c (stack_protect_prologue): Don't bypass expand_expr
2601         for stack_protect_guard and guard_decl.
2602         (stack_protect_epilogue): Likewise.
2603
2604 2009-11-13  Jan Hubicka  <jh@suse.cz>
2605
2606         * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
2607         when to PUBLIC is set.
2608
2609 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
2610
2611         PR middle-end/42029
2612         * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
2613         tmp_load if needed.
2614
2615 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
2616
2617         PR target/41900
2618         * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
2619         *call_value_1): Use "lsm" as operand 1 constraint.
2620         * config/i386/predicates.md (call_insn_operand): Depend on
2621         index_register_operand to avoid %esp register.
2622
2623 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
2624
2625         Revert:
2626         2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
2627
2628         PR target/41900
2629         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2630         (TARGET_CALL_ESP): New define.
2631         * config/i386/i386.c (initial_ix86_tune_features): Initialize
2632         X86_ARCH_CALL_ESP.
2633         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2634         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2635         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
2636         TARGET_CALL_ESP.
2637         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2638         New patterns, use "lsm" as operand 1 constraint.
2639         * config/i386/predicates.md (call_insn_operand): Depend on
2640         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2641
2642 2009-11-13  Jason Merrill  <jason@redhat.com>
2643
2644         PR debug/26965
2645         * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
2646         Don't emit a second declaration at any scope.
2647
2648 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
2649
2650         PR rtl-optimization/41697
2651         * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
2652         a conditional jump has a single successor.
2653
2654 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
2655
2656         * sched-deps.c (init_deps): New parameter lazy_reg_last.  Don't
2657         allocate reg_last when in case lazy_reg_last is true.
2658         (init_deps_reg_last): New.
2659         (free_deps): When max_reg is 0, this context is already freed.
2660         * sched-int.h (init_deps_reg_last): Export.
2661         (init_deps): Update prototype.
2662         * sched-ebb.c (schedule_ebb): Update the call to init_deps.
2663         * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
2664         * ddg.c (build_intra_loop_deps): Likewise.
2665         * sel-sched-ir.c (copy_deps_context, create_deps_context,
2666         reset_deps_context, deps_init_id): Likewise.
2667         (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
2668         (free_data_for_scheduled_insn): New, break down from ...
2669         (free_first_time_insn_data): ... here.
2670         (has_dependence_p): Allocate reg_last now, when it is needed.
2671         (extend_insn_data): When maximal LUID is big enough, allocate
2672         per-insn data in smaller chunks.
2673         * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
2674         * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
2675         in scheduled insn.
2676
2677 2009-11-13  Uros Bizjak  <ubizjak@gmail.com>
2678
2679         * config/i386/i386.md (call_value): Fix comment.
2680         (sibcall_value): Ditto.
2681
2682 2009-11-13  Eric Botcazou  <ebotcazou@adacore.com>
2683
2684         * config/i386/linux-unwind.h (x86_frob_update_context): New function.
2685         (MD_FROB_UPDATE_CONTEXT): Define.
2686
2687 2009-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2688             Laurent GUERBY  <laurent@guerby.net>
2689
2690         * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
2691         Do not schedule an %sp restore.  Compensate for RETURN_ADDR_OFFSET.
2692         (sparc_fallback_frame_state): Tidy.  Compensate for RETURN_ADDR_OFFSET.
2693
2694 2009-11-12  Jan Hubicka  <jh@suse.cz>
2695
2696         * ipa.c (function_and_variable_visibility): Fix my accidentail commit
2697         and clear DECL_COMMON on localized declarations.
2698
2699 2009-11-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2700
2701         PR rtl-opt/38582
2702         * regrename.c (struct du_head): New structure; some elements moved
2703         from...
2704         (struct du_chain): ... this one.
2705         (open_chains, closed_chains): Now of type struct du_head *.
2706         (do_replace): Accept du_head argument, not du_chain.  All callers
2707         changed.  Modified code to match new data structures.
2708         (build_def_use): Return a list of du_head structures.  Modified code
2709         to match new data structures.
2710         (dump_def_use_chain): Accept du_head argument, not du_chain.  All
2711         callers changed.  Modified code to match new data structures.
2712         (merge_overlapping_regs): Accept du_head argument, not du_chain.  All
2713         callers changed.  Modified code to match new data structures.
2714         (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
2715         Allocate a du_head structure as well as a du_chain when creating a
2716         new chain.  Modified other code to match new data structures.
2717
2718 2009-11-12  Jan Hubicka  <jh@suse.cz>
2719
2720         * cgraph.h (varpool_node_name): Declare.
2721         * cgraphunit.c (process_function_and_variable_attributes): Set
2722         force_output flag on used variables.
2723         * ipa.c (function_and_variable_visibility): Dump externally visible
2724         and needed variables.
2725         * varpool.c (varpool_node_name): Export.
2726         (decide_is_variable_needed): Check COMDAT for externally visible vars;
2727         ignore needed flag.
2728
2729 2009-11-12  Uros Bizjak  <ubizjak@gmail.com>
2730
2731         PR middle-end/41930
2732         * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
2733         processing if XEXP (x, i) is NULL.
2734
2735 2009-11-12  Jan Hubicka  <jh@suse.cz>
2736
2737         * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
2738         imply PUBLIC || EXTERNAL.
2739
2740 2009-11-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
2741
2742         PR middle-end/41440
2743         * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
2744         single successor block, ending with jump created by RTL expander.
2745
2746 2009-11-11  Jan Hubicka  <jh@suse.cz>
2747
2748         PR middle-end/41729
2749         * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
2750         and WEAK variables at -fwhole-program.
2751
2752         PR middle-end/41735
2753         * ipa.c (whole_program_function_and_variable_visility): COMDAT
2754         functions/variables are not needed even if they are externally visible.
2755
2756 2009-11-11  Jan Hubicka  <jh@suse.cz>
2757
2758         (patch by Richard Guenther)
2759         * lto-streamer-out.c (output_function): Output head of argument list
2760         earlier.
2761         * lto-streamer-in.c (input_function): Re-map arguments into merged
2762         declaration.
2763
2764 2009-11-11  Jan Hubicka  <jh@suse.cz>
2765
2766         * lto-cgraph.c: Include gcov-io.h
2767         (output_profile_summary): New function.
2768         (output_cgraph): Use it.
2769         (input_profile_summary): New function.
2770         (input_cgraph): Use it.
2771         * coverage.c (build_ctr_info_value): Use varpool; initalize
2772         DECL_ASSEMBLER_NAME.
2773         (create_coverage): Likewise.
2774         * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
2775         (tree_init_edge_profiler): Likewise.
2776         * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
2777
2778 2009-11-11  Kai Tietz  <kai.tietz@onevision.com>
2779
2780         * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2781         * c-pragma.c (def_pragma_macro_value): Likewise.
2782         (def_pragma_macro): Likewise.
2783         (pushed_macro_table): Likewise.
2784         (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
2785         * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
2786
2787 2009-11-11  Basile Starynkevitch  <basile@starynkevitch.net>
2788
2789         * doc/plugins.texi (Registering custom attributes): section
2790         renamed as (Registering custom attributes or pragmas).
2791         Mentions custom attributes & pragmas, and c_register_pragma, with
2792         a small example.
2793         * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
2794         pragmas.
2795         * doc/extend.texi (Function Attributes): Mentions that plugin can
2796         provide their attributes.
2797
2798 2009-11-11  Jon Beniston  <jon@beniston.com>
2799
2800         * config.gcc: Add lm32 elf and uclinux targets.
2801         * config/lm32: New directory.
2802         * config/lm32/lm32.c: New file.
2803         * config/lm32/lm32.h: New file.
2804         * config/lm32/lm32.md: New file.
2805         * config/lm32/lm32.opt: New file.
2806         * config/lm32/lm32-protos.h: New file.
2807         * config/lm32/constraints.md: New file.
2808         * config/lm32/predicates.md: New file.
2809         * config/lm32/sfp-machine.h: New file.
2810         * config/lm32/t-fprules-softfp: New file.
2811         * config/lm32/uclinux-elf.h: New file.
2812         * doc/invoke.texi: Document lm32 options.
2813         * doc/contrib.texi: Document lm32 porter.
2814         * doc/install.texi: Document lm32 targets.
2815
2816 2009-11-11  Martin Jambor  <mjambor@suse.cz>
2817
2818         PR lto/41932
2819         * ipa-prop.c (ipa_update_after_lto_read): Call
2820         ipa_check_create_node_params and ipa_check_create_edge_args.  Also
2821         call ipa_initialize_node_params instead of ipa_populate_param_decls.
2822
2823 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2824
2825         * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
2826         (neon_expand_vector_init): Use them.  Also handle non-constant
2827         vectors with identical elements and vectors with only one
2828         non-constant element.
2829         (arm_print_operand): Handle 'y' modifier.
2830         * config/arm/arm-protos.h (neon_make_constant): Declare.
2831         * config/arm/neon.md (neon_vdup_n<mode>): Split into two
2832         patterns.  Use VX instead of VDQW for the first one.  Allow
2833         a VFP alternative and V32 modes for the second one.
2834         * config/arm/neon.ml (shape_elt): Add Alternatives.
2835         (ops): Use Alternatives for vdup lane instructions.
2836         * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
2837         * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
2838
2839 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2840
2841         * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
2842         operands.
2843         (movti, mov<mode>): Call force_reg on one operand if required.
2844         * config/arm/vec-common.md (mov<mode>): Likewise.
2845
2846 2009-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
2847
2848         * config/arm/arm.c (arm_override_options): Enable scheduling for
2849         Thumb-2.
2850
2851 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2852
2853         PR target/10127
2854         PR ada/20548
2855         * expr.h (anti_adjust_stack_and_probe): Declare.
2856         * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
2857         parameter and rewrite head comment.
2858         (allocate_dynamic_stack_space): Adjust call to above function.
2859         * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
2860
2861         * tree.h (dwarf2out_args_size): Delete.
2862         * dwarf2out.c (dwarf2out_args_size): Make static and move around.
2863         (dwarf2out_args_size_adjust): Delete prototype and move around.
2864         (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
2865         ACCUMULATE_OUTGOING_ARGS targets.
2866
2867 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2868
2869         * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
2870         DECL_SIZE of DECL_RESULT before evaluating it.
2871
2872 2009-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2873
2874         PR tree-optimization/41987
2875         * fold-const.c (const_binop): Avoid using fold_buildN().
2876
2877 2009-11-10  Martin Jambor  <mjambor@suse.cz>
2878
2879         * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
2880         (execute_all_ipa_stmt_fixups): Declare.
2881         * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
2882         * ipa-inline.c (pass_ipa_inline): Likewise.
2883         * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
2884         * ipa-reference.c (pass_ipa_reference): Likewise.
2885         * ipa.c (pass_ipa_whole_program_visibility): Likewise.
2886         * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
2887         (pass_ipa_lto_finish_out): Likewise.
2888         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
2889         * passes.c (execute_ipa_stmt_fixups): New function.
2890         (execute_all_ipa_stmt_fixups): New function.
2891         * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
2892
2893 2009-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2894
2895         PR ada/20548
2896         * explow.c (probe_stack_range): Fix typo.
2897         * config/sparc/sparc.md (probe_stack): New expander.
2898
2899 2009-11-09  Dave Korn  <dave.korn.cygwin@gmail.com>
2900
2901         * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
2902
2903 2009-11-09  Jason Merrill  <jason@redhat.com>
2904
2905         * gdbinit.in (pgq): New function for printing gimple sequence.
2906
2907 2009-11-09  Paul Brook  <paul@codesourcery.com>
2908             Daniel Jacobowitz  <dan@codesourcery.com>
2909             Sandra Loosemore  <sandra@codesourcery.com>
2910
2911         * doc/extend.texi (Half-Precision): Update wording to reflect
2912         that there are now multiple -mfpu options that enable fp16
2913         hardware support.
2914         * doc/invoke.texi: Update list of ARM -mfpu= options.
2915         * config.gcc: Update ARM --with-fpu option list.
2916         * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
2917         vfpv3xd and vfpv3xd-fp16.
2918         (use_vfp_abi): New function.
2919         (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
2920         when undesirable.
2921         (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
2922         aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
2923         (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
2924         arm_9e_rtx_costs): Only expect double-precision operations if the FPU
2925         provides them.
2926         (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
2927         NEON.
2928         (arm_print_operand): Handle 'p' modifier.
2929         (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
2930         TARGET_FP16.
2931         * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
2932         (TARGET_FP16): Define.
2933         * config/arm/vfp.md: Disable double-precision patterns if the FPU
2934         does not provide them.
2935         (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
2936         double-precision values on a single-precision FPU.
2937         (movdf_vfp, thumb2_movdf_vfp): Likewise.  Use "Dy" for
2938         double-precision constants.
2939         (movhf_vfp_neon): New pattern (was movhf_vfp).
2940         (movhf_vfp): Remove NEON instructions.
2941         * config/arm/constraints.md: Add new "Dy" constraint for
2942         double-precision constants.  Update description of "Dv".
2943         * config/arm/arm.md: Disable double-precision patterns if the FPU
2944         does not provide them
2945
2946 2009-11-09  Jakub Jelinek  <jakub@redhat.com>
2947
2948         * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
2949         (print_operand) <case 'Y'>: Likewise.  Fix a pasto in operand lossage
2950         diagnostics.
2951
2952 2009-11-08  H.J. Lu  <hongjiu.lu@intel.com>
2953
2954         * collect2.c (main): Search PLUGIN_LD for plugin linker.
2955
2956         * configure.ac (--with-plugin-ld): New.  Default to ld.
2957         * configure: Regenerated.
2958         * config.in: Likewise.
2959
2960         * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
2961         (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
2962
2963 2009-11-08  Jonathan Gray  <jsg@openbsd.org>
2964
2965         * config/openbsd-stdint.h: Change to reflect what
2966         c_common_nodes_and_builtins expects.
2967
2968 2009-11-08  Paolo Carlini  <paolo.carlini@oracle.com>
2969
2970         * builtins.c (apply_args_reg_offset): Remove commented out delaration.
2971
2972 2009-11-08  Jakub Jelinek  <jakub@redhat.com>
2973
2974         PR target/41985
2975         * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
2976         function contains at least one local dynamic name.
2977         (print_operand) <case '&'>: Instead output operand lossage diagnostics
2978         here if that happens.
2979
2980 2009-11-08  Zbigniew Chamski  <zbigniew.chamski@gmail.com>
2981             Joern Rennecke  <amylaar@spamcop.net>
2982
2983         * cfgrtl.c (pass_free_cfg): Add pass name.
2984         * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
2985         (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
2986         * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
2987         * df-core.c (pass_df_initialize_no_opt): Likewise.
2988         * except.c (pass_rtl_eh): Likewise.
2989         * function.c (pass_init_function, pass_leaf_regs): Likewise.
2990         * gcse.c (pass_rtl_pre): Change pass name.
2991         * passes.c (pass_postreload): Add pass name.
2992         (make_pass_instance): Don't use duplicate-tracking logic for
2993         names starting with '*'.
2994         (next_pass_1): Assert that pass has a name.
2995         (register_one_dump_file): If there is an space in the name,
2996         skip past it.
2997         * predict.c (pass_strip_predict_hints): Add pass name.
2998         * reg-stack.c (pass_stack_regs): Likewise.
2999         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
3000         * tree-cfg.c (pass_warn_function_return,
3001         pass_warn_function_noreturn): Add pass name.
3002         * tree-dfa.c (pass_referenced_vars): Likewise.
3003         * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
3004         Fix whitespace before comment.
3005         (pass_fixup_cfg): Add pass name, fix whitespace before comment.
3006         (pass_init_datastructures): Add pass name.
3007         * tree-ssa-loop.c (pass_record_bounds): Likewise.
3008         * tree-ssa.c (pass_early_warn_uninitialized,
3009         pass_late_warn_uninitialized): Likewise.
3010         * tree.c (pass_ipa_free_lang_data): Likewise.
3011         * doc/passes.texi (pass manager): Document how to disambiguate
3012         pass names.
3013
3014 2009-11-08  Paolo Bonzini  <bonzini@gnu.org>
3015
3016         * df-problems.c: Fix documentation for forward simulation of LR.
3017         (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
3018         (df_simulate_finalize_forwards): Remove.
3019         * df.h (df_simulate_finalize_forwards): Remove.
3020
3021 2009-11-08  Richard Guenther  <rguenther@suse.de>
3022
3023         * tree-ssa-structalias.c (build_succ_graph): Properly make
3024         variables escape if they are stored to anything.
3025
3026 2009-11-08  Richard Guenther  <rguenther@suse.de>
3027
3028         PR rtl-optimization/41928
3029         * loop-invariant.c (free_loop_data): If we didn't allocate
3030         loop data do not try to free it.
3031
3032 2009-11-07  Jason Merrill  <jason@redhat.com>
3033
3034         * tree.c (reconstruct_complex_type): Preserve attributes.
3035
3036 2009-11-07  Richard Guenther  <rguenther@suse.de>
3037
3038         * tree-ssa-structalias.c (build_succ_graph): Feed stores
3039         to anything only to variables that can take pointers.
3040         (get_constraint_for_ssa_var): Properly exclude full
3041         variables from expanding.
3042         (first_vi_for_offset): Avoid overflow in arithmetic.
3043         (first_or_preceding_vi_for_offset): Likewise.
3044         (count_num_arguments): Fix implementation.
3045         (gate_ipa_pta): Do not run when not optimizing.
3046
3047 2009-11-07  David Binderman <dcb314@hotmail.com>
3048
3049         * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
3050         expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
3051         set but not used variables.
3052         (apply_args_reg_offset): Comment out as unused.
3053         * calls.c (flags_from_decl_or_type): Likewise.
3054         * genautomata.c (check_regexp_units_distribution): Likewise.
3055
3056 2009-11-07  Uros Bizjak  <ubizjak@gmail.com>
3057
3058         * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
3059         xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
3060         *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
3061         xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
3062         xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
3063         xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
3064         operand alternatives.
3065
3066 2009-11-06  Michael Matz  <matz@suse.de>
3067
3068         PR middle-end/41963
3069         * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
3070         of a potential reciprocal to really be reciprocals.
3071
3072 2009-11-06  Jakub Jelinek  <jakub@redhat.com>
3073
3074         * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
3075         lwpintrin.h after immintrin.h.
3076         * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
3077         typedefs.
3078
3079         PR middle-end/41935
3080         * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
3081         or non-constant index, allow index one past the last element and
3082         allow exceeding array bound in arrays that might be used as flexible
3083         array members.
3084
3085 2009-11-05  Richard Henderson  <rth@redhat.com>
3086
3087         * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
3088
3089 2009-11-05  Paul Brook  <paul@codesourcery.com>
3090
3091         * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
3092         (arm_fpu_desc): New.
3093         (all_fpus): Add FPU details.
3094         (fp_model_for_fpu): Remove.
3095         (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
3096         (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
3097         (arm_file_start): Use arm_fpu_desc.
3098         * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
3099         TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
3100         arm_fpu_desc.
3101         (TARGET_FPA_EMU2): Define.
3102         (arm_fp_model, fputype, arm_fpu_tune): Remove.
3103         (vfp_reg_type, arm_fpu_desc): New.
3104         * config/arm/arm.md (attr fpu): Simplify.
3105         * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
3106         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
3107         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
3108         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
3109         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
3110
3111 2009-11-05  Michael Matz  <matz@suse.de>
3112
3113         * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
3114         on TARGET_RECIP.
3115         * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
3116         for 1/sqrtf.
3117
3118 2009-11-04  Jason Merrill  <jason@redhat.com>
3119
3120         PR c++/36912
3121         * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
3122         or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
3123         (output_constant): Avoid crash after error.
3124
3125 2009-11-05  Martin Jambor  <mjambor@suse.cz>
3126
3127         * tree-sra.c (struct access): Changed comment of next_sibling field.
3128         (analyze_modified_params): Loop over accesses of a group rather than
3129         over all with the ame base, pass a common bitmap to
3130         walk_aliased_vdefs.
3131         (unmodified_by_ref_scalar_representative): Build link lists of
3132         accesses of a group.
3133         (splice_param_accesses): Likewise.
3134
3135 2009-11-04  Kenneth Zadeck  <zadeck@naturalbridge.com>
3136
3137         * df-scan.c (df-uses-record): Add case zero_extract of mem.
3138
3139 2009-11-04  Eric Botcazou  <ebotcazou@adacore.com>
3140
3141         PR target/10127
3142         PR ada/20548
3143         * config/i386/i386.md (probe_stack): New expander.
3144         (logical operation peepholes): Do not split stack checking probes.
3145
3146 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
3147             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3148
3149         * doc/invoke.texi (-mlwp): Add documentation.
3150         * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
3151         * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
3152         (x86_64-*-*): Ditto.
3153         * config/i386/lwpintrin.h: New file, provide x86 compiler
3154         intrinisics for LWP.
3155         * config/i386/cpuid.h (bit_LWP): Define LWP bit.
3156         * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
3157         * config/i386/i386-c.c (ix86_target_macros_internal): Check
3158         ISA_FLAG for LWP.
3159         * config/i386/i386.h (TARGET_LWP): New macro for LWP.
3160         * config/i386/i386.opt (-mlwp): New switch for LWP support.
3161         * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
3162         (OPTION_MASK_ISA_LWP_UNSET): New.
3163         (ix86_handle_option): Handle -mlwp.
3164         (isa_opts): Handle -mlwp.
3165         (enum pta_flags): Add PTA_LWP.
3166         (override_options): Add LWP support.
3167         (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
3168         (IX86_BUILTIN_LLWPCB32): Ditto.
3169         (IX86_BUILTIN_LLWPCB64): Ditto.
3170         (IX86_BUILTIN_SLWPCB16): Ditto.
3171         (IX86_BUILTIN_SLWPCB32): Ditto.
3172         (IX86_BUILTIN_SLWPCB64): Ditto.
3173         (IX86_BUILTIN_LWPVAL16): Ditto.
3174         (IX86_BUILTIN_LWPVAL32): Ditto.
3175         (IX86_BUILTIN_LWPVAL64): Ditto.
3176         (IX86_BUILTIN_LWPINS16): Ditto.
3177         (IX86_BUILTIN_LWPINS32): Ditto.
3178         (IX86_BUILTIN_LWPINS64): Ditto.
3179         (enum  ix86_special_builtin_type): Add LWP intrinsic support.
3180         (builtin_description): Ditto.
3181         (ix86_init_mmx_sse_builtins): Ditto.
3182         (ix86_expand_special_args_builtin): Ditto.
3183         * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
3184         LWP support.
3185         (UNSPEC_SLWP_INTRINSIC): Ditto.
3186         (UNSPECV_LWPVAL_INTRINSIC): Ditto.
3187         (UNSPECV_LWPINS_INTRINSIC): Ditto.
3188         (lwp_llwpcbhi1): New lwp pattern.
3189         (lwp_llwpcbsi1): Ditto.
3190         (lwp_llwpcbdi1): Ditto.
3191         (lwp_slwpcbhi1): Ditto.
3192         (lwp_slwpcbsi1): Ditto.
3193         (lwp_slwpcbdi1): Ditto.
3194         (lwp_lwpvalhi3): Ditto.
3195         (lwp_lwpvalsi3): Ditto.
3196         (lwp_lwpvaldi3): Ditto.
3197         (lwp_lwpinshi3): Ditto.
3198         (lwp_lwpinssi3): Ditto.
3199         (lwp_lwpinsdi3): Ditto.
3200
3201 2009-11-04  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3202             Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3203
3204         PR rtl-opt/41833
3205         * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
3206         a vec_duplicate.
3207
3208 2009-11-04  Richard Guenther  <rguenther@suse.de>
3209             Rafael Avila de Espindola  <espindola@google.com>
3210
3211         * gcc.c (process_command): Handle arguments name@offset.
3212
3213 2009-11-04  Harsha Jagasia  <harsha.jagasia@amd.com>
3214             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3215
3216         * config.gcc (i[34567]86-*-*): Include xopintrin.h.
3217         (x86_64-*-*): Ditto.
3218         * config/i386/xopintrin.h: New file, provide common x86 compiler
3219         intrinisics for XOP.
3220         * config/i386/cpuid.h (bit_XOP): Define XOP bit.
3221         * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
3222         * config/i386/i386-c.c(ix86_target_macros_internal): Check
3223         ISA_FLAG for XOP.
3224         * config/i386/i386.h(TARGET_XOP): New macro for XOP.
3225         * config/i386/i386.opt (-mxop): New switch for XOP support.
3226         * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
3227         (UNSPEC_XOP_TRUEFALSE)
3228         (UNSPEC_XOP_PERMUTE)
3229         (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
3230         (PPERM_*): New constants for vpperm instruction.
3231         (xop_pcmov_<mode>): Add XOP conditional mov instructions.
3232         * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
3233         (OPTION_MASK_ISA_XOP_UNSET): New.
3234         (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
3235         (ix86_handle_option): Handle -mxop.
3236         (isa_opts): Handle -mxop.
3237         (enum pta_flags): Add PTA_XOP.
3238         (override_options): Add XOP support.
3239         (print_operand): Add code for XOP compare instructions.
3240         (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
3241         (ix86_expand_int_vcond): Extend for XOP compare instruction.
3242
3243         (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
3244         (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
3245         (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
3246         (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
3247         (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
3248         (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
3249         (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
3250
3251         (IX86_BUILTIN_VPCMOV256): Ditto.
3252         (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
3253         (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
3254         (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
3255         (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
3256         (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
3257         (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
3258
3259         (IX86_BUILTIN_VPPERM): Ditto.
3260
3261         (IX86_BUILTIN_VPMACSSWW): Ditto.
3262         (IX86_BUILTIN_VPMACSWW): Ditto.
3263         (IX86_BUILTIN_VPMACSSWD): Ditto.
3264         (IX86_BUILTIN_VPMACSWD): Ditto.
3265         (IX86_BUILTIN_VPMACSSDD): Ditto.
3266         (IX86_BUILTIN_VPMACSDD): Ditto.
3267         (IX86_BUILTIN_VPMACSSDQL): Ditto.
3268         (IX86_BUILTIN_VPMACSSDQH): Ditto.
3269         (IX86_BUILTIN_VPMACSDQL): Ditto.
3270         (IX86_BUILTIN_VPMACSDQH): Ditto.
3271         (IX86_BUILTIN_VPMADCSSWD): Ditto.
3272         (IX86_BUILTIN_VPMADCSWD): Ditto.
3273
3274         (IX86_BUILTIN_VPHADDBW): Ditto.
3275         (IX86_BUILTIN_VPHADDBD): Ditto.
3276         (IX86_BUILTIN_VPHADDBQ): Ditto.
3277         (IX86_BUILTIN_VPHADDWD): Ditto.
3278         (IX86_BUILTIN_VPHADDWQ): Ditto.
3279         (IX86_BUILTIN_VPHADDDQ): Ditto.
3280         (IX86_BUILTIN_VPHADDUBW): Ditto.
3281         (IX86_BUILTIN_VPHADDUBD): Ditto.
3282         (IX86_BUILTIN_VPHADDUBQ): Ditto.
3283         (IX86_BUILTIN_VPHADDUWD): Ditto.
3284         (IX86_BUILTIN_VPHADDUWQ): Ditto.
3285         (IX86_BUILTIN_VPHADDUDQ): Ditto.
3286         (IX86_BUILTIN_VPHSUBBW): Ditto.
3287         (IX86_BUILTIN_VPHSUBWD): Ditto.
3288         (IX86_BUILTIN_VPHSUBDQ): Ditto.
3289
3290         (IX86_BUILTIN_VPROTB): Ditto.
3291         (IX86_BUILTIN_VPROTW): Ditto.
3292         (IX86_BUILTIN_VPROTD): Ditto.
3293         (IX86_BUILTIN_VPROTQ): Ditto.
3294         (IX86_BUILTIN_VPROTB_IMM): Ditto.
3295         (IX86_BUILTIN_VPROTW_IMM): Ditto.
3296         (IX86_BUILTIN_VPROTD_IMM): Ditto.
3297         (IX86_BUILTIN_VPROTQ_IMM): Ditto.
3298
3299         (IX86_BUILTIN_VPSHLB): Ditto.
3300         (IX86_BUILTIN_VPSHLW): Ditto.
3301         (IX86_BUILTIN_VPSHLD): Ditto.
3302         (IX86_BUILTIN_VPSHLQ): Ditto.
3303         (IX86_BUILTIN_VPSHAB): Ditto.
3304         (IX86_BUILTIN_VPSHAW): Ditto.
3305         (IX86_BUILTIN_VPSHAD): Ditto.
3306         (IX86_BUILTIN_VPSHAQ): Ditto.
3307
3308         (IX86_BUILTIN_VFRCZSS): Ditto.
3309         (IX86_BUILTIN_VFRCZSD): Ditto.
3310         (IX86_BUILTIN_VFRCZPS): Ditto.
3311         (IX86_BUILTIN_VFRCZPD): Ditto.
3312         (IX86_BUILTIN_VFRCZPS256): Ditto.
3313         (IX86_BUILTIN_VFRCZPD256): Ditto.
3314
3315         (IX86_BUILTIN_VPCOMEQUB): Ditto.
3316         (IX86_BUILTIN_VPCOMNEUB): Ditto.
3317         (IX86_BUILTIN_VPCOMLTUB): Ditto.
3318         (IX86_BUILTIN_VPCOMLEUB): Ditto.
3319         (IX86_BUILTIN_VPCOMGTUB): Ditto.
3320         (IX86_BUILTIN_VPCOMGEUB): Ditto.
3321         (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
3322         (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
3323
3324         (IX86_BUILTIN_VPCOMEQUW): Ditto.
3325         (IX86_BUILTIN_VPCOMNEUW): Ditto.
3326         (IX86_BUILTIN_VPCOMLTUW): Ditto.
3327         (IX86_BUILTIN_VPCOMLEUW): Ditto.
3328         (IX86_BUILTIN_VPCOMGTUW): Ditto.
3329         (IX86_BUILTIN_VPCOMGEUW): Ditto.
3330         (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
3331         (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
3332
3333         (IX86_BUILTIN_VPCOMEQUD): Ditto.
3334         (IX86_BUILTIN_VPCOMNEUD): Ditto.
3335         (IX86_BUILTIN_VPCOMLTUD): Ditto.
3336         (IX86_BUILTIN_VPCOMLEUD): Ditto.
3337         (IX86_BUILTIN_VPCOMGTUD): Ditto.
3338         (IX86_BUILTIN_VPCOMGEUD): Ditto.
3339         (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
3340         (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
3341
3342         (IX86_BUILTIN_VPCOMEQUQ): Ditto.
3343         (IX86_BUILTIN_VPCOMNEUQ): Ditto.
3344         (IX86_BUILTIN_VPCOMLTUQ): Ditto.
3345         (IX86_BUILTIN_VPCOMLEUQ): Ditto.
3346         (IX86_BUILTIN_VPCOMGTUQ): Ditto.
3347         (IX86_BUILTIN_VPCOMGEUQ): Ditto.
3348         (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
3349         (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
3350
3351         (IX86_BUILTIN_VPCOMEQB): Ditto.
3352         (IX86_BUILTIN_VPCOMNEB): Ditto.
3353         (IX86_BUILTIN_VPCOMLTB): Ditto.
3354         (IX86_BUILTIN_VPCOMLEB): Ditto.
3355         (IX86_BUILTIN_VPCOMGTB): Ditto.
3356         (IX86_BUILTIN_VPCOMGEB): Ditto.
3357         (IX86_BUILTIN_VPCOMFALSEB): Ditto.
3358         (IX86_BUILTIN_VPCOMTRUEB): Ditto.
3359
3360         (IX86_BUILTIN_VPCOMEQW): Ditto.
3361         (IX86_BUILTIN_VPCOMNEW): Ditto.
3362         (IX86_BUILTIN_VPCOMLTW): Ditto.
3363         (IX86_BUILTIN_VPCOMLEW): Ditto.
3364         (IX86_BUILTIN_VPCOMGTW): Ditto.
3365         (IX86_BUILTIN_VPCOMGEW): Ditto.
3366         (IX86_BUILTIN_VPCOMFALSEW): Ditto.
3367         (IX86_BUILTIN_VPCOMTRUEW): Ditto.
3368
3369         (IX86_BUILTIN_VPCOMEQD): Ditto.
3370         (IX86_BUILTIN_VPCOMNED): Ditto.
3371         (IX86_BUILTIN_VPCOMLTD): Ditto.
3372         (IX86_BUILTIN_VPCOMLED): Ditto.
3373         (IX86_BUILTIN_VPCOMGTD): Ditto.
3374         (IX86_BUILTIN_VPCOMGED): Ditto.
3375         (IX86_BUILTIN_VPCOMFALSED): Ditto.
3376         (IX86_BUILTIN_VPCOMTRUED): Ditto.
3377
3378         (IX86_BUILTIN_VPCOMEQQ): Ditto.
3379         (IX86_BUILTIN_VPCOMNEQ): Ditto.
3380         (IX86_BUILTIN_VPCOMLTQ): Ditto.
3381         (IX86_BUILTIN_VPCOMLEQ): Ditto.
3382         (IX86_BUILTIN_VPCOMGTQ): Ditto.
3383         (IX86_BUILTIN_VPCOMGEQ): Ditto.
3384         (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
3385         (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
3386
3387         (enum multi_arg_type): New enum for describing the various XOP
3388         intrinsic argument types.
3389         (bdesc_multi_arg): New table for XOP intrinsics.
3390         (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
3391         (ix86_expand_multi_arg_builtin): New function for creating XOP
3392         intrinsics.
3393
3394         * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
3395         (xop_pmacsww): Ditto.
3396         (xop_pmacssww): Ditto.
3397         (xop_pmacsdd): Ditto.
3398         (xop_pmacssdd): Ditto.
3399         (xop_pmacssdql): Ditto.
3400         (xop_pmacssdqh): Ditto.
3401         (xop_pmacsdql): Ditto.
3402         (xop_pmacsdql_mem): Ditto.
3403         (xop_mulv2div2di3_low): Ditto.
3404         (xop_pmacsdqh): Ditto.
3405         (xop_pmacsdqh_mem): Ditto.
3406         (xop_mulv2div2di3_high): Ditto.
3407         (xop_pmacsswd): Ditto.
3408         (xop_pmacswd): Ditto.
3409         (xop_pmadcsswd): Ditto.
3410         (xop_pmadcswd): Ditto.
3411         (xop_pcmov_<mode>): Ditto.
3412         (xop_pcmov_<mode>256): Ditto.
3413         (xop_phaddbw): Ditto.
3414         (xop_phaddbd): Ditto.
3415         (xop_phaddbq): Ditto.
3416         (xop_phaddwd): Ditto.
3417         (xop_phaddwq): Ditto.
3418         (xop_phadddq): Ditto.
3419         (xop_phaddubw): Ditto.
3420         (xop_phaddubd): Ditto.
3421         (xop_phaddubq): Ditto.
3422         (xop_phadduwd): Ditto.
3423         (xop_phadduwq): Ditto.
3424         (xop_phaddudq): Ditto.
3425         (xop_phsubbw): Ditto.
3426         (xop_phsubwd): Ditto.
3427         (xop_phsubdq): Ditto.
3428         (xop_pperm): Ditto.
3429         (rotl<mode>3): Ditto.
3430         (rotr<mode>3): Ditto.
3431         (xop_rotl<mode>3): Ditto.
3432         (xop_rotr<mode>3): Ditto.
3433         (vrotr<mode>3): Ditto.
3434         (vrotl<mode>3): Ditto.
3435         (xop_vrotl<mode>3): Ditto.
3436         (vlshr<mode>3): Ditto.
3437         (vashr<mode>3): Ditto.
3438         (vashl<mode>3
3439         (xop_ashl<mode>3): Ditto.
3440         (xop_lshl<mode>3): Ditto.
3441         (ashlv16qi3): Ditto.
3442         (lshlv16qi3): Ditto.
3443         (ashrv16qi3): Ditto.
3444         (ashrv2di3): Ditto.
3445         (xop_frcz<mode>2): Ditto.
3446         (xop_vmfrcz<mode>2): Ditto.
3447         (xop_frcz<mode>2256): Ditto.
3448         (xop_maskcmp<mode>3): Ditto.
3449         (xop_maskcmp_uns<mode>3): Ditto.
3450         (xop_maskcmp_uns2<mode>3): Ditto.
3451         (xop_pcom_tf<mode>3): Ditto.
3452
3453         * doc/invoke.texi (-mxop): Add documentation.
3454         * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
3455
3456 2009-11-03  Mark Mitchell  <mark@codesourcery.com>
3457
3458         PR driver/11810
3459         * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
3460         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
3461         * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
3462
3463 2009-11-04  Richard Earnshaw  <rearnsha@arm.com>
3464
3465         PR target/40835
3466         * arm.md (peephole2 patterns for move and compare): New.
3467
3468 2009-11-04  Nick Clifton  <nickc@redhat.com>
3469
3470         * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
3471         Make sure that it does not allow CONST_DOUBLEs.
3472         * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
3473         * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
3474         * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
3475         * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
3476         * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
3477         * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
3478         * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
3479         * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
3480         * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
3481         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
3482         * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
3483         * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
3484         * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
3485         * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
3486         * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
3487
3488 2009-11-04  Richard Guenther  <rguenther@suse.de>
3489
3490         PR tree-optimization/41919
3491         * tree-vrp.c (test_for_singularity): Properly compare values.
3492
3493 2009-11-04  Revital Eres  <eres@il.ibm.com>
3494
3495         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3496         Consider peeling for alignment only for stores and remove
3497         redundant assignment.
3498
3499 2009-11-04  Maxim Kuvyrkov  <maxim@codesourcery.com>
3500
3501         PR target/41302
3502         * config/m68k/m68k.c (m68k_reg_present_p): New static function.
3503         (m68k_ok_for_sibcall_p): Handle different result return locations.
3504
3505 2009-11-04  Richard Guenther  <rguenther@suse.de>
3506
3507         * c-opts.c (c_common_post_options): Move LTO option processing
3508         code ...
3509         * opts.c (decode_options): ... here.
3510
3511 2009-11-04  Jakub Jelinek  <jakub@redhat.com>
3512
3513         * c-common.c (fold_offsetof_1): Use %wd instead of
3514         HOST_WIDE_INT_PRINT_DEC.
3515
3516 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
3517
3518         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
3519         __pic__ or __PIC__.
3520
3521 2009-11-04  Maciej W. Rozycki  <macro@linux-mips.org>
3522
3523         * config.gcc (vax-*-linux*): Keep the original contents of
3524         tmake_file while adding vax/t-linux.
3525
3526 2009-11-03  Eric Botcazou  <ebotcazou@adacore.com>
3527
3528         PR target/10127
3529         PR ada/20548
3530         * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
3531         (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
3532         (STACK_CHECK_MOVING_SP): Likewise.
3533         * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
3534         * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
3535         Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
3536         * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
3537         Document PROBE_STACK.
3538         * explow.c (anti_adjust_stack_and_probe): New function.
3539         (allocate_dynamic_stack_space): Do not directly allocate space if
3540         STACK_CHECK_MOVING_SP, instead invoke above function.
3541         (emit_stack_probe): Handle probe_stack insn.
3542         (PROBE_INTERVAL): New macro.
3543         (STACK_GROW_OPTAB): Likewise.
3544         (STACK_GROW_OFF): Likewise.
3545         (probe_stack_range): Use Pmode and memory_address consistently.  Fix
3546         loop condition in the small constant case.  Rewrite in the general
3547         case to be immune to wraparounds.  Make sure the address of probes
3548         is valid.  Try to use [base + disp] addressing mode if possible.
3549         * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
3550         checking is enabled and STACK_CHECK_MOVING_SP.
3551         * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
3552         return 1 for volatile references to the stack pointer.
3553         * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
3554         __builtin_alloca if stack checking is enabled.
3555         * unwind-dw2.c (uw_identify_context): Take into account whether the
3556         context is that of a signal frame or not.
3557         * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
3558         * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
3559
3560 2009-11-03  Jakub Jelinek  <jakub@redhat.com>
3561
3562         PR rtl-optimization/41917
3563         * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
3564         operand isn't known to be 0, return 1.
3565
3566 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
3567
3568         * config/mips/mips.md: Fix typos.
3569
3570 2009-11-03  Richard Sandiford  <rdsandiford@googlemail.com>
3571
3572         * doc/invoke.texi: Fix typo.
3573
3574 2009-11-03  Paul Brook  <paul@codesourcery.com>
3575
3576         * config/arm/neon.ml (vectype): Add T_floatSF.
3577         (string_of_vectype): Ditto.
3578         * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
3579         (deftypes): Use float for float32_t.
3580         * config/arm/arm_neon.h: Regenerate.
3581
3582 2009-11-03  Nick Clifton  <nickc@redhat.com>
3583             Kevin Buettner  <kevinb@redhat.com>
3584
3585         * config/rx/predicates.md (rx_store_multiple_vector): Reverse
3586         order of expected registers.
3587         (rx_load_multiple_vector): Likewise.
3588         (rx_rtsd_vector): Likewise.
3589         * config/rx/rx.c (rx_cpu_type): New variable.
3590         (rx_print_operand): Fix bug printing 64-bit constant values.
3591         (rx_emit_stack_pushm): Reverse order of pushed registers.
3592         (gen_rx_store_vector): Likewise.
3593         (is_fast_interrupt_func): Only accept "fast_interrupt" as the
3594         attribute name.
3595         (is_exception_func): Rename to is_interrupt_func and only accept
3596         "interrupt" as the attribute name.
3597         (rx_get_stack_layout): Use new function name.
3598         (rx_func_attr_inlinable): Likewise.
3599         (rx_attribute_table): Remove "exception".
3600         (rx_expand_prologue): If necessary push the accumulator register
3601         in the prologue of interrupt functions.
3602         (rx_expand_epilogue): If necessary pop the accumulator.
3603         (rx_builtins): Add RX_BUILTIN_MVTIPL.
3604         (rx_expand_builtin_stz): Remove.
3605         (rx_expand_builtin_mvtipl): New function.
3606         (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
3607         (rx_expand_builtin): Likewise.
3608         (rx_enable_fpu): New variable.
3609         (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
3610         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
3611         on rx_cpu_type.  Define __RX_FPU_INSNS__ if FPU insns are allowed.
3612         (enum rx_cpu_types): Define.
3613         (ASM_SPEC): Pass -m32bit-doubles on to assembler.
3614         (INCOMING_FRAME_SP_OFFSET): Define.
3615         (ARG_POINTER_CFA_OFFSET): Define.
3616         (FRAME_POINTER_CFA_OFFSET): Define.
3617         (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
3618         (ALLOW_RX_FPU_INSNS): Define.
3619         * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
3620         fast_math_flags_set_p.
3621         (UNSPEC_BUILTIN_MVTIPL): Define.
3622         (revl): Rename to bswapsi2.
3623         (bswaphi2): New pattern.
3624         (mvtachi): Mark as volatile because it uses a register unknown to GCC.
3625         (mvtaclo): Likewise.
3626         (racw): Likewise.
3627         (mvtc): Remove clobber of cc0.
3628         (mvtcp): Delete.
3629         (opecp): Delete.
3630         * config/rx/rx.opt (mieee): Remove.
3631         (fpu): Add.
3632         (nofpu): Add.
3633         (mcpu=): Add.
3634         (patch=): Add.
3635         (msave-acc-in-interrupts): Add.
3636         * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
3637         (MULTILIB_DIRS): Likewise.
3638         (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
3639         * doc/extend.texi: Remove description of "exception" function
3640         attribute.
3641         * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
3642         -msave-acc-in-interrupts options.
3643
3644 2009-11-03  Richard Guenther  <rguenther@suse.de>
3645
3646         * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
3647
3648 2009-11-03  Dodji Seketeli  <dodji@redhat.com>
3649
3650         PR c++/38699
3651         * c-common.c (fold_offsetof_1): Issue errors when the member
3652         designator of the offsetof expression is not legitimate.
3653
3654 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
3655
3656         * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
3657         names instead of numerical constants.
3658         (sse_prologue_save): Ditto.
3659         (*sse_prologue_save_insn): Ditto.
3660
3661 2009-11-03  Uros Bizjak  <ubizjak@gmail.com>
3662
3663         PR target/41900
3664         * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
3665         (TARGET_CALL_ESP): New define.
3666         * config/i386/i386.c (initial_ix86_tune_features): Initialize
3667         X86_ARCH_CALL_ESP.
3668         * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
3669         *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
3670         *call_1, *call_value_pop_1 and *call_value_1.  Depend on
3671         TARGET_CALL_ESP.
3672         (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
3673         New patterns, use "lsm" as operand 1 constraint.
3674         * config/i386/predicates.md (call_insn_operand): Depend on
3675         index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
3676
3677 2009-11-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3678
3679         PR tree-optimization/41857
3680         * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
3681         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
3682         to create_mem_ref.
3683         * tree-ssa-address.c (move_hint_to_base): New function.
3684         (most_expensive_mult_to_index): Add TYPE argument.  Use mode and
3685         address space associated with TYPE.
3686         (addr_to_parts): Add TYPE and BASE_HINT arguments.  Pass TYPE to
3687         most_expensive_mult_to_index.  Call move_hint_to_base.
3688         (create_mem_ref): Add BASE_HINT argument.  Pass BASE_HINT and
3689         TYPE to addr_to_parts.
3690
3691 2009-11-02  Martin Jambor  <mjambor@suse.cz>
3692
3693         PR tree-optimization/41750
3694         * tree-sra.c (analyze_modified_params): Loop over all
3695         representatives of components of a parameter.
3696
3697 2009-11-02  Jakub Jelinek  <jakub@redhat.com>
3698
3699         PR tree-optimization/41841
3700         * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
3701         local variables of not yet materialized clones.
3702
3703         PR debug/41893
3704         * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
3705         for a VOIDmode variable.
3706
3707         PR c++/41774
3708         * c-pragma.c (visstack): Change into vector of ints rather than
3709         enum symbol_visibility.
3710         (push_visibility): Add kind argument, push default_visibility together
3711         with kind.
3712         (pop_visibility): Add kind argument, return true if successful, fail
3713         if visibility stack is empty or if stack top is of different kind.
3714         (handle_pragma_visibility): Don't check length of visstack, instead
3715         call pop_visibility and issue diagnostics if it failed.  Pass 0
3716         as last argument to push_visibility and pop_visibility.
3717         * c-pragma.h (push_visibility): Add kind argument.
3718         (pop_visibility): Likewise.  Return bool instead of void.
3719
3720 2009-11-01  Eric Botcazou  <ebotcazou@adacore.com>
3721
3722         * tree.def (TARGET_MEM_REF): Update comment.
3723         * alias.c (get_alias_set): Retrieve the original memory reference for
3724         a TARGET_MEM_REF before proceeding.
3725
3726 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
3727
3728         * config/frv/frv.c (frv_function_value, frv_libcall_value,
3729         frv_function_value_regno_p): New functions.
3730         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3731         * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
3732         (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
3733         * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
3734
3735 2009-10-31  Anatoly Sokolov  <aesok@post.ru>
3736
3737         * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
3738         new 'outgoing' argument.
3739         (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
3740         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
3741         * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3742         LIBCALL_VALUE): Remove.
3743         (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
3744         * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
3745         (mh10300_function_value_regno_p): Declare.
3746
3747 2009-10-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3748
3749         * config/arm/cortex-a9.md: New - integer pipeline description.
3750
3751 2009-10-31  Eric Botcazou  <ebotcazou@adacore.com>
3752
3753         * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
3754         aborting if the sizes of the two references don't match.
3755
3756 2009-10-31  Toon Moene  <toon@moene.org>
3757
3758         * ipa-inline.c (cgraph_decide_inlining):
3759         Include reason for not inlining called-once functions in dump file.
3760
3761 2009-10-30  Daniel Gutson  <dgutson@codesourcery.com>
3762
3763         * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
3764         * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
3765         (LINK_SPEC): BE_LINK_SPEC added.
3766
3767 2009-10-30  Richard Guenther  <rguenther@suse.de>
3768
3769         PR lto/41858
3770         * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
3771
3772 2009-10-30  Nathan Sidwell  <nathan@codesourcery.com>
3773
3774         * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
3775         * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
3776         label.
3777
3778 2009-10-30  Martin Jambor  <mjambor@suse.cz>
3779
3780         * tree-sra.c (build_ref_for_offset_1): Remove a comment.
3781
3782 2009-10-30  H.J. Lu  <hongjiu.lu@intel.com>
3783
3784         PR target/40838
3785         * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
3786         first.  Move assert on stack_alignment_estimated just before
3787         setting stack_realign_needed.
3788         (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
3789         Don't call update_stack_boundary.
3790
3791         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
3792         (verride_options): Don't check ix86_force_align_arg_pointer here.
3793         (ix86_function_ok_for_sibcall): Use it.
3794         (ix86_update_stack_boundary): Likewise.
3795
3796         * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
3797
3798 2009-10-30  Richard Earnshaw  <rearnsha@arm.com>
3799
3800         * arm.md (QHSI): New mode iterator.
3801         (movqi): If generating for thumb, then truncate any immediate to
3802         8 bits.
3803         * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
3804         with...
3805         (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
3806         version.
3807
3808 2009-10-29  Cary Coutant  <ccoutant@google.com>
3809
3810         PR debug/41700
3811         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
3812         locations in the source).
3813         (store_vcall_insn): New function.
3814         (lookup_vcall_insn): New function.
3815         (dwarf2out_virtual_call_token): Use store_vcall_insn.
3816         (dwarf2out_copy_call_info): New function.
3817         (dwarf2out_virtual_call): Use lookup_vcall_insn.
3818         * emit-rtl.c (try_split): Call copy_call_info debug hook.
3819         * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
3820         * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
3821         (debug_nothing_rtx_rtx): New dummy hook.
3822         * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
3823         (xcoff_debug_hooks): Likewise.
3824         * sdbout.c (sdb_debug_hooks): Likewise.
3825         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3826
3827 2009-10-29  David Daney  <ddaney@caviumnetworks.com>
3828
3829         * doc/invoke.texi (mmcount-ra-address): Document new command line
3830         option.
3831         * config/mips/mips.opt (mmcount-ra-address): New option.
3832         * config/mips/mips-protos.h (mips_function_profiler): Declare new
3833         function.
3834         * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
3835         member.
3836         (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
3837         (mips_function_profiler): Moved from FUNCTION_PROFILER, and
3838         rewritten.
3839         * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
3840         mips_function_profiler.
3841
3842 2009-10-29  Steve Ellcey  <sje@cup.hp.com>
3843
3844         PR middle-end/37565
3845         PR target/38018
3846         * doc/tm.texi (OVERRIDE_OPTIONS): Update.
3847         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3848         * optc-gen.awk (cl_target_option_restore): Include call to
3849         targetm.override_options_after_change.
3850         * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3851         * target.h (override_options_after_change): New.
3852         * c-common.c (parse_optimize_options): Call
3853         targetm.override_options_after_change.
3854         * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3855         (ia64_override_options_after_change): New.
3856         (ia64_override_options) Add call to above.
3857
3858 2009-10-29  Michael Matz  <matz@suse.de>
3859
3860         * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
3861         (gate_convert_to_rsqrt): Ditto.
3862         (pass_convert_to_rsqrt): Ditto.
3863         * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
3864         * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
3865         to pass list.
3866
3867         * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
3868
3869 2009-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3870
3871         * config/arm/arm.c (find_best_start): Fix type of remainder to be
3872         unsigned.
3873
3874 2009-10-29  Martin Jambor  <mjambor@suse.cz>
3875
3876         PR tree-optimization/41775
3877         * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
3878         (generate_subtree_copies): Do not unshare agg.
3879         (load_assign_lhs_subreplacements): Do not unshare rhs.
3880         (sra_modify_assign): Do not unshare exprs.
3881         (propagate_subacesses_accross_link): Renamed to
3882         propagate_subaccesses_across_link.
3883
3884 2009-10-29  Richard Earnshaw  <rearnsha@arm.com>
3885
3886         * arm.c (count_insns_for_constant): Rework to support counting for
3887         thumb2 immediates as well.
3888         (find_best_start): Split out from arm_gen_constant.
3889         (arm_gen_constant): Rework to support XOR with immediate.
3890
3891 2009-10-29  Chao-ying Fu  <fu@mips.com>
3892
3893         * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
3894         functions.
3895         (mips_expand_synci_loop):  Use the length rtx to control the
3896         synci loop from the begin rtx that points to the first byte of
3897         the cache line.
3898
3899 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
3900
3901         * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
3902
3903 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
3904
3905         * dbxout.c (dbxout_common_check): Accept non public trees.
3906         * dwarf2out.c (fortran_common): Accept non public trees.
3907
3908 2009-10-28  Rafael Avila de Espindola  <espindola@google.com>
3909
3910         * common.opt (fuse-linker-plugin): New option.
3911         * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
3912         fuse-linker-plugin.
3913         * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
3914
3915 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3916
3917         PR rtl-optimization/39715
3918         * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
3919         (gen_cstoresi_ltu_thumb1): New splitter.
3920
3921 2009-10-28  Richard Guenther  <rguenther@suse.de>
3922
3923         PR lto/41808
3924         PR lto/41839
3925         * tree-ssa.c (useless_type_conversion_p): Do not treat
3926         conversions to pointers to incomplete types as useless.
3927         * gimple.c (gimple_types_compatible_p): Compare struct tags,
3928         not typedef names.
3929
3930 2009-10-28  Jakub Jelinek  <jakub@redhat.com>
3931
3932         * var-tracking.c (emit_note_insn_var_location): Don't call the second
3933         vt_expand_loc unnecessarily when location is not a register nor
3934         memory.
3935
3936         PR middle-end/41837
3937         * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
3938         fields don't have DECL_NAME.
3939
3940         PR debug/41801
3941         * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
3942         call convert_memory_address on addr.
3943
3944         PR target/41762
3945         * config/i386/i386.c (ix86_pic_register_p): Don't call
3946         rtx_equal_for_cselib_p for VALUEs discarded as useless.
3947
3948 2009-10-28  Richard Sandiford  <rdsandiford@googlemail.com>
3949
3950         * var-tracking.c (emit_note_insn_var_location): Get the mode of
3951         a variable part from its REG, MEM or VALUE.
3952
3953 2009-10-28  Richard Guenther  <rguenther@suse.de>
3954
3955         * gimple.c (gimple_get_alias_set): Fix comment typo.
3956
3957 2009-10-28  Richard Guenther  <rguenther@suse.de>
3958
3959         * tree.c (free_lang_data_in_type): Do not call get_alias_set.
3960         (free_lang_data): Unconditionally compute alias sets for all
3961         standard integer types.  Bail out if gate bailed out previously.
3962         Do not reset the types_compatible_p langhook.
3963         (gate_free_lang_data): Remove.
3964         (struct pass_ipa_free_lang_data): Enable unconditionally.
3965         * gimple.c (gimple_get_alias_set): Use the same alias-set for
3966         all pointer types.
3967
3968 2009-10-28  Richard Guenther  <rguenther@suse.de>
3969
3970         PR middle-end/41855
3971         * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
3972         (ref_maybe_used_by_call_p_1): Fix bcopy handling.
3973         (call_may_clobber_ref_p_1): Likewise.
3974         * tree-ssa-structalias.c (find_func_aliases): Likewise.
3975         * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
3976
3977 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3978
3979         PR rtl-optimization/41812
3980
3981         Revert:
3982         2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3983
3984         * df-problems.c (df_md_scratch): New.
3985         (df_md_alloc, df_md_free): Allocate/free it.
3986         (df_md_local_compute): Only include live registers in init.
3987         (df_md_transfer_function): Prune the in-set computed by
3988         the confluence function, and the gen-set too.
3989
3990 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3991
3992         PR rtl-optimization/39715
3993         * combine.c (simplify_comparison): Use extensions to
3994         widen comparisons.  Try an ANDing first.
3995
3996 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
3997
3998         PR rtl-optimization/40741
3999         * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
4000         a small constant is cheap.
4001         * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
4002         force_reg on the LHS.
4003         (xorsi3): Likewise, and split the XOR if the constant is complex
4004         and not in Thumb mode.
4005
4006 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
4007
4008         * expmed.c (emit_store_flag): Check costs before
4009         transforming to the opposite representation.
4010
4011 2009-10-28  Paolo Bonzini  <bonzini@gnu.org>
4012
4013         * config/sh/sh.md (cbranchfp4_media): Remove hack extending
4014         cstore result to DImode.
4015
4016 2009-10-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4017
4018         * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
4019         inside the unspec vector.
4020
4021 2009-10-27  Richard Henderson  <rth@redhat.com>
4022
4023         * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
4024
4025 2009-10-27  Richard Henderson  <rth@redhat.com>
4026
4027         PR c++/41819
4028         * tree-eh.c (eh_region_may_contain_throw_map): Rename from
4029         eh_region_may_contain_throw; update users.
4030         (eh_region_may_contain_throw): New function.
4031         (lower_catch): Check flag_exceptions before creating exception region.
4032         (lower_eh_filter, lower_eh_must_not_throw): Likewise.
4033         (lower_cleanup): Tidy existing flag_exceptions check to match.
4034
4035 2009-10-27  Kai Tietz <kai.tietz@onevision.com>
4036
4037         PR/41799
4038         * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
4039         * config/i386/mingw.opt: Add fset-stack-executable.
4040         * config/i386/i386.c (ix86_trampoline_init): Make call to
4041         emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
4042         defined and its value is not zero.
4043         * doc/invoke.texi
4044
4045 2009-10-27  Richard Guenther  <rguenther@suse.de>
4046
4047         * tree-ssa-structalias.c (find_func_aliases): In IPA mode
4048         handle calls to externally visible functions like in regular mode.
4049         (create_variable_info_for): Do not create function infos here.
4050         (have_alias_info): Remove write-only variable.
4051         (solve_constraints): New function split out from common code
4052         in compute_points_to_sets and ipa_pta_execute.
4053         (compute_points_to_sets): Adjust.
4054         (ipa_pta_execute): Likewise.  Handle clones and externally visible
4055         functions like in non-IPA mode.
4056
4057 2009-10-27  Jakub Jelinek  <jakub@redhat.com>
4058
4059         PR c/41842
4060         * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
4061         error_mark_node.
4062
4063 2009-10-27  Richard Guenther  <rguenther@suse.de>
4064
4065         * tree-complex.c (expand_complex_div_wide): Check for
4066         INTEGER_CST, not TREE_CONSTANT on comparison folding result.
4067
4068 2009-10-27  Revital Eres  <eres@il.ibm.com>
4069
4070         PR tree-optimization/40648
4071         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
4072         Change decision of when to peel for alignment.
4073
4074 2009-10-27  Richard Guenther  <rguenther@suse.de>
4075
4076         PR lto/41821
4077         * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
4078
4079 2009-10-27  Aldy Hernandez  <aldyh@redhat.com>
4080
4081         PR bootstrap/41451
4082         * fold-const.c (fold_binary_loc): Do not call
4083         protected_set_expr_location.
4084
4085 2009-10-27  Wei Guozhi  <carrot@google.com>
4086
4087         PR target/41705
4088         * target.h (have_conditional_execution): Add a new target hook
4089         function.
4090         * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
4091         * targhooks.h (default_have_conditional_execution): Likewise.
4092         * targhooks.c (default_have_conditional_execution): Likewise.
4093         * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
4094         * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
4095         (arm_have_conditional_execution): New function.
4096         * ifcvt.c (noce_process_if_block, find_if_header,
4097         cond_exec_find_if_block, dead_or_predicable): Change the usage of
4098         macro HAVE_conditional_execution to a target hook call.
4099         * recog.c (peephole2_optimize): Likewise.
4100         * sched-rgn.c (add_branch_dependences): Likewise.
4101         * final.c (asm_insn_count, final_scan_insn): Likewise.
4102         * bb-reorder.c (HAVE_conditional_execution): Remove it.
4103
4104 2009-10-26  Ben Elliston  <bje@au.ibm.com>
4105             Michael Meissner  <meissner@linux.vnet.ibm.com>
4106             Ulrich Weigand  <uweigand@de.ibm.com>
4107
4108         * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
4109         * config/spu/spu_cache.h: New file.
4110
4111         * config/spu/cachemgr.c: New file.
4112         * config/spu/cache.S: New file.
4113
4114         * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
4115         (ADDR_SPACE_EA): Define.
4116         (TARGET_ADDR_SPACE_KEYWORDS): Define.
4117         * config/spu/spu.c (EAmode): New macro.
4118         (TARGET_ADDR_SPACE_POINTER_MODE): Define.
4119         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
4120         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
4121         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
4122         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
4123         (TARGET_ADDR_SPACE_CONVERT): Likewise.
4124         (TARGET_ASM_SELECT_SECTION): Likewise.
4125         (TARGET_ASM_UNIQUE_SECTION): Likewise.
4126         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
4127         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
4128         (ea_symbol_ref): New function.
4129         (spu_legitimate_constant_p): Handle __ea qualified addresses.
4130         (spu_addr_space_legitimate_address_p): New function.
4131         (spu_addr_space_legitimize_address): Likewise.
4132         (cache_fetch): New global.
4133         (cache_fetch_dirty): Likewise.
4134         (ea_alias_set): Likewise.
4135         (ea_load_store): New function.
4136         (ea_load_store_inline): Likewise.
4137         (expand_ea_mem): Likewise.
4138         (spu_expand_mov): Handle __ea qualified memory references.
4139         (spu_addr_space_pointer_mode): New function.
4140         (spu_addr_space_address_mode): Likewise.
4141         (spu_addr_space_subset_p): Likewise.
4142         (spu_addr_space_convert): Likewise.
4143         (spu_section_type_flags): Handle "._ea" section.
4144         (spu_select_section): New function.
4145         (spu_unique_section): Likewise.
4146         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
4147         and __EA64__ predefined macros.
4148         * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
4149         -matomic-updates switches.
4150
4151         * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
4152         (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
4153         libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
4154         libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
4155         ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
4156         ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
4157         $(T)cache128k.o): Likewise.
4158         ($(T)libgcc_%.a): Likewise.
4159
4160         * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
4161         * config/spu/spu.opt (-mea32/-mea64): Add switches.
4162         (-maddress-space-conversion): Likewise.
4163         (-mcache-size=): Likewise.
4164         (-matomic-updates): Likewise.
4165         * doc/invoke.texi (-mea32/-mea64): Document.
4166         (-maddress-space-conversion): Likewise.
4167         (-mcache-size=): Likewise.
4168         (-matomic-updates): Likewise.
4169
4170 2009-10-26  Ben Elliston  <bje@au.ibm.com>
4171             Michael Meissner  <meissner@linux.vnet.ibm.com>
4172             Ulrich Weigand  <uweigand@de.ibm.com>
4173
4174         * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
4175
4176         * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
4177         defined, add the named address space keywords.
4178         (c_addr_space_name): New function.
4179         (complete_array_type): Preserve named address space.
4180         (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
4181         instead of targetm.valid_pointer_mode.
4182
4183         * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
4184         RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
4185         (ADDR_SPACE_KEYWORD): New macro.
4186         (c_addr_space_name): Add prototype.
4187
4188         * c-tree.h (struct c_declspecs): Add address_space member.
4189         (declspecs_add_addrspace): Add prototype.
4190
4191         * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
4192
4193         * c-parser.c (c_parse_init): Add assertion.
4194         (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
4195         (c_lex_one_token): Handle address space keywords.
4196         (c_token_starts_typename): Likewise.
4197         (c_token_starts_declspecs): Likewise.
4198         (c_parser_declspecs): Likewise.
4199         (c_parser_postfix_expression_after_paren_type): Diagnose compound
4200         literal within function qualified with named address space.
4201
4202         * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
4203         address space qualifiers.
4204         (shadow_tag_warned): Warn about useless address space qualifiers.
4205         (quals_from_declspecs): Handle address space qualifiers.
4206         (grokdeclarator): Likewise.
4207         (build_null_declspecs): Likewise.
4208         (declspecs_add_addrspace): New function.
4209
4210         * c-typeck.c (addr_space_superset): New function.
4211         (qualify_type): Handle named address spaces.
4212         (composite_type): Likewise.
4213         (common_pointer_type): Likewise.
4214         (comp_target_types): Likewise.
4215         (build_conditional_expr): Likewise.
4216         (handle_warn_cast_qual): Likewise.
4217         (build_c_cast): Likewise.
4218         (convert_for_assignment): Likewise.
4219         (build_binary_op): Likewise.
4220         (pointer_diff): Handle named address spaces.  Use intermediate
4221         integer type of sufficient size if required.
4222
4223 2009-10-26  Ben Elliston  <bje@au.ibm.com>
4224             Michael Meissner  <meissner@linux.vnet.ibm.com>
4225             Ulrich Weigand  <uweigand@de.ibm.com>
4226
4227         * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
4228         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
4229         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
4230
4231         * target.h (struct target_def): Add pointer_mode, address_mode,
4232         and valid_pointer_mode to addr_space substructure.
4233         * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
4234         (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
4235         (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
4236         (TARGET_ADDR_SPACE_HOOKS): Add them.
4237         * targhooks.c (target_default_pointer_address_modes_p): New function.
4238         * target.h (target_default_pointer_address_modes_p): Add prototype.
4239         * targhooks.c (default_addr_space_pointer_mode): New function.
4240         (default_addr_space_address_mode): Likewise.
4241         (default_addr_space_valid_pointer_mode): Likewise.
4242         * targhooks.h (default_addr_space_pointer_mode): Add prototype.
4243         (default_addr_space_address_mode): Likewise.
4244         (default_addr_space_valid_pointer_mode): Likewise.
4245         * output.h (default_valid_pointer_mode): Move to ...
4246         * targhooks.h (default_valid_pointer_mode): ... here.
4247         * varasm.c (default_valid_pointer_mode): Move to ...
4248         * targhooks.c (default_valid_pointer_mode): ... here.
4249
4250         * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
4251         instead of targetm.valid_pointer_mode.
4252
4253         * fold-const.c (fit_double_type): Use int_or_pointer_precision.
4254         * tree.c (integer_pow2p): Likewise.
4255         (tree_log2): Likewise.
4256         (tree_floor_log2): Likewise.
4257         (signed_or_unsigned_type_for): Support pointer type of different size.
4258         (int_or_pointer_precision): New function.
4259         * tree.h (int_or_pointer_precision): Add prototype.
4260         * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
4261         * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
4262         incoming pointer type instead of POINTER_SIZE.
4263
4264         * tree.c (build_pointer_type): Use appropriate pointer mode
4265         instead of ptr_mode.
4266         (build_reference_type): Likewise.
4267         * expr.c (store_expr): Likewise.
4268         (expand_expr_addr_expr): Likewise.
4269         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
4270         * cfgexpand.c (expand_debug_expr): Likewise.
4271
4272         * auto-inc-dec.c: Include "target.h".
4273         (try_merge): Use appropriate address mode instead of Pmode.
4274         (find_inc): Likewise.
4275         * combine.c (find_split_point): Likewise.
4276         * cselib.c (cselib_record_sets): Likewise.
4277         * dse.c (replace_inc_dec): Likewise.
4278         (canon_address): Likewise.
4279         * var-tracking.c (replace_expr_with_values): Likewise.
4280         (count_uses): Likewise.
4281         (add_uses): Likewise.
4282         (add_stores): Likewise.
4283         * emit-rtl.c: Include "target.h".
4284         (adjust_address_1): Use appropriate address mode instead of Pmode.
4285         (offset_address): Likewise.
4286         * explow.c (break_out_memory_refs): Likewise.
4287         (memory_address_addr_space): Likewise.
4288         (promote_mode): Likewise.
4289         * expr.c (move_by_pieces): Likewise.
4290         (emit_block_move_via_loop): Likewise.
4291         (store_by_pieces): Likewise.
4292         (store_by_pieces_1): Likewise.
4293         (expand_assignment): Likewise.
4294         (store_constructor): Likewise.
4295         (expand_expr_addr_expr): Likewise.
4296         (expand_expr_real_1): Likewise.
4297         * cfgexpand.c (expand_debug_expr): Likewise.
4298         * ifcvt.c (noce_try_cmove_arith): Likewise.
4299         * regcprop.c (kill_autoinc_value): Likewise.
4300         * regmove.c (try_auto_increment): Likewise.
4301         * reload.c (find_reloads): Likewise.
4302         (find_reloads_address): Likewise.
4303         (find_reloads_address_1): Likewise.
4304         * sched-deps.c: Include "target.h".
4305         (sched_analyze_1): Use appropriate address mode instead of Pmode.
4306         (sched_analyze_2): Likewise.
4307         * sel-sched-dump.c: Include "target.h".
4308         (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
4309         * stor-layout.c (layout_type): Likewise.
4310         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
4311         (multiplier_allowed_in_address_p): Likewise.
4312         (get_address_cost): Likewise.
4313         * varasm.c (make_decl_rtl): Likewise.
4314
4315         * expr.c (expand_assignment): Always convert offsets to appropriate
4316         address mode.
4317         (store_expr): Likewise.
4318         (store_constructor): Likewise.
4319         (expand_expr_real_1): Likewise.
4320
4321         * reload.h (form_sum): Add MODE argument.
4322         * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
4323         Update recursive calls.
4324         (subst_indexed_address): Update calls to form_sum.
4325
4326         * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
4327         * tree-ssa-address.c: Include "target.h".
4328         (templates): Replace by ...
4329         (mem_addr_template_list): ... this new vector.
4330         (TEMPL_IDX): Handle address space numbers.
4331         (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
4332         (addr_for_mem_ref): Add ADDRSPACE argument.  Use per-address-space
4333         instead of global cache.  Update call to gen_addr_rtx.
4334         (valid_mem_ref_p): Update call to addr_for_mem_ref.
4335         * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
4336
4337         * rtl.h (convert_memory_address_addr_space): Add prototype.
4338         (convert_memory_address): Define as macro.
4339         * explow.c (convert_memory_address): Rename to ...
4340         (convert_memory_address_addr_space): ... this.  Add ADDRSPACE argument.
4341         Use appropriate pointer and address modes instead of ptr_mode / Pmode.
4342         Update recursive calls.
4343         (memory_address_addr_space): Call convert_memory_address_addr_space.
4344         * expmed.c (make_tree): Likewise.
4345         * expr.c (expand_assignment): Likewise.
4346         (expand_expr_addr_expr_1): Likewise.  Also, add ADDRSPACE argument.
4347         (expand_expr_addr_expr): Likewise.  Also, update call.
4348
4349         * alias.c (find_base_value): Guard pointer size optimizations.
4350         (find_base_term): Likewise.
4351         * rtlanal.c (nonzero_bits1): Likewise.
4352         (num_sign_bit_copies1): Likewise.
4353         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
4354
4355         * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
4356         (emit-rtl.o): Likewise.
4357         (auto-inc-dec.o): Likewise.
4358         (sched-deps.o): Likewise.
4359
4360 2009-10-26  Ben Elliston  <bje@au.ibm.com>
4361             Michael Meissner  <meissner@linux.vnet.ibm.com>
4362             Ulrich Weigand  <uweigand@de.ibm.com>
4363
4364         * doc/extend.texi (Named Address Spaces): New section.
4365         * coretypes.h (addr_space_t): New type.
4366         (ADDR_SPACE_GENERIC): New define.
4367         (ADDR_SPACE_GENERIC_P): New macro.
4368
4369         * doc/tm.texi (Named Address Spaces): New section.
4370         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
4371         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
4372         (TARGET_ADDR_SPACE_SUBSET_P): Document.
4373         (TARGET_ADDR_SPACE_CONVERT): Document.
4374         * target.h (struct gcc_target): Add addr_space substructure.
4375         * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
4376         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
4377         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
4378         (TARGET_ADDR_SPACE_CONVERT): Likewise.
4379         (TARGET_ADDR_SPACE_HOOKS): Likewise.
4380         (TARGET_INITIALIZER): Initialize addr_space hooks.
4381         * targhooks.c (default_addr_space_legitimate_address_p): New function.
4382         (default_addr_space_legitimize_address): Likewise.
4383         (default_addr_space_subset_p): Likewise.
4384         (default_addr_space_convert): Likewise.
4385         * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
4386         (default_addr_space_legitimize_address): Likewise.
4387         (default_addr_space_subset_p): Likewise.
4388         (default_addr_space_convert): Likewise.
4389
4390         * doc/rtl.texi (MEM_ADDR_SPACE): Document.
4391         * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
4392         (MEM_ADDR_SPACE): New macro.
4393         * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
4394         address space memory attribute.
4395         (mem_attrs_htab_hash): Handle address space memory attribute.
4396         (mem_attrs_htab_eq): Likewise.
4397         (set_mem_attributes_minus_bitpos): Likewise.
4398         (set_mem_alias_set): Likewise.
4399         (set_mem_align): Likewise.
4400         (set_mem_expr): Likewise.
4401         (set_mem_offset): Likewise.
4402         (set_mem_size): Likewise.
4403         (adjust_address_1): Likewise.
4404         (offset_address): Likewise.
4405         (widen_memoy_address): Likewise.
4406         (get_spill_slot_decl): Likewise.
4407         (set_mem_attrs_for_spill): Likewise.
4408         (set_mem_addr_space): New function.
4409         * emit-rtl.h (set_mem_addr_space): Add prototype.
4410         * print-rtl.c (print_rtx): Print address space memory attribute.
4411         * expr.c (expand_assignment): Set address space memory attribute
4412         of generated MEM RTXes as appropriate.
4413         (expand_expr_real_1): Likewise.
4414         * cfgexpand.c (expand_debug_expr): Likewise.
4415         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
4416
4417         * tree.h (struct tree_base): Add address_space bitfield.  Reduce
4418         size of "spare" bitfield.
4419         (TYPE_ADDR_SPACE): New macro.
4420         (ENCODE_QUAL_ADDR_SPACE): Likewise.
4421         (DECODE_QUAL_ADDR_SPACE): Likewise.
4422         (CLEAR_QUAL_ADDR_SPACE): Likewise.
4423         (KEEP_QUAL_ADDR_SPACE): Likewise.
4424         (TYPE_QUALS): Encode type address space.
4425         (TYPE_QUALS_NO_ADDR_SPACE): New macro.
4426         * tree.c (set_type_quals): Set type address space.
4427         (build_array_type): Inherit array address space from element type.
4428         * print-tree.c (print_node_brief): Print type address space.
4429         (print_node): Likewise.
4430         * tree-pretty-print.c (dump_generic_node): Likewise.
4431
4432         * explow.c (memory_address): Rename to ...
4433         (memory_address_addr_space): ... this.  Add ADDRSPACE argument.
4434         Use address-space aware variants of memory address routines.
4435         * recog.c (memory_address_p): Rename to ...
4436         (memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
4437         Use address-space aware variants of memory address routines.
4438         (offsettable_address_p): Rename to ...
4439         (offsettable_address_addr_space_p): ... this.  Add ADDRSPACE argument.
4440         Use address-space aware variants of memory address routines.
4441         * reload.c (strict_memory_address_p): Rename to ...
4442         (strict_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
4443         Use address-space aware variants of memory address routines.
4444         (maybe_memory_address_p): Rename to ...
4445         (maybe_memory_address_addr_space_p): ... this.  Add ADDSPACE argument.
4446         Use address-space aware variants of memory address routines.
4447         * expr.h (memory_address_addr_space): Add prototype.
4448         (memory_address): Define as macro.
4449         * recog.h (memory_address_addr_space_p): Add prototype.
4450         (memory_address_p): Define as macro.
4451         (offsettable_address_addr_space_p): Add prototype.
4452         (offsettable_address_p): Define as macro.
4453         (strict_memory_address_addr_space_p): Add prototype.
4454         (strict_memory_address_p): Define as macro.
4455
4456         * combine.c (find_split_point): Use address-space aware variants
4457         of memory address routines.
4458         * emit-rtl.c (operand_subword): Likewise.
4459         (change_address_1): Likewise.
4460         (adjust_address_1): Likewise.
4461         (offset_address): Likewise.
4462         * expr.c (emit_move_insn): Likewise.
4463         (expand_assignment): Likewise.
4464         (expand_expr_real_1): Likewise.
4465         * recog.c (verify_changes): Likewise.
4466         (general_operand): Likewise.
4467         (offsettable_memref_p): Likewise.
4468         (offsettable_nonstrict_memref_p): Likewise.
4469         (constrain_operands): Likewise.
4470         * reload.c (get_secondary_mem): Likewise.
4471         (find_reloads_toplev): Likewise.
4472         (find_reloads_address): Likewise.
4473         (find_reloads_subreg_address): Likewise.
4474         * reload1.c (reload): Likewise.
4475         * rtlhooks.c (gen_lowpart_if_possible): Likewise.
4476         * rtl.h (address_cost): Add ADDRSPACE argument.
4477         * rtlanal.c (address_cost): Add ADDRSPACE argument.  Use address-space
4478         aware variant of memory address routines.
4479         * loop-invariant.c (create_new_invariant): Update address_cost call.
4480         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
4481         * fwprop.c (should_replace_address): Add ADDRSPACE argument.
4482         Use address-space aware variant of memory address routines.
4483         (propagate_rtx_1): Update call to should_replace_address.
4484         * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
4485         argument.
4486         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
4487         ADDRSPACE argument.  Use per-address-space instead of global cache.
4488         Use address-space aware variant of memory address routines.
4489         (get_address_cost): Likewise.
4490         (get_computation_cost_at): Update calls.
4491         * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
4492         Use address-space aware variant of memory address routines.
4493         (create_mem_ref_raw): Update call to valid_mem_ref_p.
4494         (most_expensive_mult_to_index): Update call to
4495         multiplier_allowed_in_address_p.
4496
4497         * dwarf2out.c (modified_type_die): Output DW_AT_address_class
4498         attribute to indicate named address spaces.
4499
4500         * varasm.c (get_variable_section): DECLs in named address spaces
4501         cannot be "common".
4502
4503         * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
4504         for addresses in a non-generic address space.
4505
4506         * expr.c (emit_block_move_hints): Do not use libcalls for
4507         memory in non-generic address spaces.
4508         (clear_storage_hints): Likewise.
4509         (expand_assignment): Likewise.
4510
4511         * fold-const.c (operand_equal_p): Expressions refering to different
4512         address spaces are not equivalent.
4513
4514         * rtl.c (rtx_equal_p_cb): MEMs refering to different address
4515         spaces are not equivalent.
4516         (rtx_equal_p): Likewise.
4517         * cse.c (exp_equiv_p): Likewise.
4518         * jump.c (rtx_renumbered_equal_p): Likewise.
4519         * reload.c (operands_match_p): Likewise.
4520
4521         * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
4522         address spaces may alias.
4523         (true_dependence): Likewise.
4524         (canon_true_dependence): Likewise.
4525         (write_dependence_p): Likewise.
4526
4527         * dse.c (canon_address): Handle named address spaces.
4528         * ifcvt.c (noce_try_cmove_arith): Likewise.
4529
4530         * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
4531         * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
4532         * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
4533         to handle conversions between different address spaces.
4534         * fold-const.c (fold_convert_loc): Likewise.
4535         (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
4536         * tree-pretty-print.c (dump_generic_node): Likewise.
4537         * gimple-pretty-print.c (dump_unary_rhs): Likewise.
4538         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
4539         * tree-inline.c (estimate_operator_cost): Likewise.
4540         * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
4541         to different address spaces are not useless.
4542
4543 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
4544
4545         PR bootstrap/41345
4546         * cfgcleanup.c (trivially_empty_bb_p): New function.
4547         (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
4548
4549         PR debug/41828
4550         * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
4551         add_name_and_src_coords_attributes, gen_namespace_die,
4552         dwarf2out_set_name): Handle dwarf2_name returning NULL.
4553
4554 2009-10-26  Nick Clifton  <nickc@redhat.com>
4555
4556         * config.gcc: Add support for RX target.
4557         * config/rx: New directory.
4558         * config/rx/constraints.md: New file.
4559         * config/rx/predicates.md: New file.
4560         * config/rx/rx.c: New file.
4561         * config/rx/rx.h: New file.
4562         * config/rx/rx.md: New file.
4563         * config/rx/rx.opt: New file.
4564         * config/rx/rx-protos.h: New file.
4565         * config/rx/t-rx: New file.
4566         * doc/extend.texi: Document RX function attributes.
4567         * doc/invoke.texi: Document RX specific command line options.
4568         * doc/contrib.texi: Document RX contribution.
4569         * doc/md.texi: Document RX constraints.
4570         * doc/install.texi: Document RX support.
4571
4572 2009-10-26  Michael Matz  <matz@suse.de>
4573
4574         PR tree-optimization/41783
4575         * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
4576         case for simple diamonds.
4577         * tree-ssa-alias.h (get_continuation_for_phi): Declare.
4578         * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
4579         argument, use alias oracle to skip some vdefs.
4580         (phi_translate_1): Change call to above, don't allocate new
4581         value ids if they can stay the same.
4582         (compute_avail): Allow vuse walking when looking up references.
4583
4584 2009-10-26  Richard Guenther  <rguenther@suse.de>
4585
4586         PR tree-optimization/41826
4587         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
4588         access to re-allocated vector fields.
4589
4590 2009-10-26  Richard Guenther  <rguenther@suse.de>
4591
4592         * graphite-sese-to-poly.c (check_poly_representation): Fix
4593         compile without checking.
4594
4595 2009-10-26  Janus Weil  <janus@gcc.gnu.org>
4596
4597         PR fortran/41714
4598         * gimple.h (tree_annotate_all_with_location): Remove prototype.
4599         * gimplify.c (tree_should_carry_location_p,
4600         tree_annotate_one_with_location,tree_annotate_all_with_location):
4601         Remove obsolete functions.
4602
4603 2009-10-25  Kaz Kojima  <kkojima@gcc.gnu.org>
4604
4605         PR target/41813
4606         * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
4607
4608 2009-10-25  Richard Guenther  <rguenther@suse.de>
4609
4610         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
4611         Stream DECL_RESTRICTED_P.
4612         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4613
4614 2009-10-25  Richard Sandiford  <rdsandiford@googlemail.com>
4615
4616         * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
4617         a note when expanding to nothing.
4618
4619 2009-10-25  Richard Guenther  <rguenther@suse.de>
4620
4621         PR middle-end/41814
4622         * tree.c (find_decls_types_r): Deal with Java overloading
4623         BINFO_VIRTUALS for its own purpose.
4624
4625 2009-10-24  Adam Nemet  <anemet@caviumnetworks.com>
4626
4627         * config/mips/predicates.md (hilo_operand): New predicate.
4628         * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
4629         define_insn.  Correct !ISA_HAS_EXT_INS length from 24 to 28.  Move
4630         splitter part from here ...:
4631         (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here.  Swap
4632         op0 and op4 to match the DINS case.
4633         (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
4634
4635 2009-10-24  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
4636
4637         PR middle-end/19154
4638         * avr.md (QIDI): Add new mode iterator.
4639         (sbrx_branch<mode>): Create new zero extract bit, test and jump
4640         patterns for all QI thru DI modes combinations.
4641         (sbrx_and_branch<mode>): Create new and based bit test and jump
4642         patterns for QI thru SI modes.
4643         avr.c (avr_out_sbxx_branch): Use only bit number.
4644
4645 2009-10-24  Jan Hubicka  <jh@suse.cz>
4646
4647         * ipa-reference.c (check_call): Noreturn notrhow calls do not write
4648         to memory.
4649         (analyze_function): When analyzing noreturn nothrow call, do not
4650         compute written stats; free bitmaps of vars early if possible.
4651         (generate_summary): Only update bitmaps if computed.
4652         (propagate): Only dump bitmaps if computed.
4653         (ipa_reference_read_summary): Fix pasto.
4654
4655 2009-10-24  Eric Botcazou  <ebotcazou@adacore.com>
4656
4657         * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
4658         (aliasing_component_refs_p): ...this.  Return true if there is no
4659         common base and the base access types have the same alias set.
4660         (indirect_ref_may_alias_decl_p): Adjust for above renaming.
4661         (indirect_refs_may_alias_p): Likewise.
4662
4663 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
4664
4665         PR c/40033
4666         * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
4667         a C_MAYBE_CONST_EXPR.
4668
4669 2009-10-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
4670
4671         PR target/41787
4672         * config/rs6000/rs6000.c (struct machine_function): Add
4673         vsx_or_altivec_used_p to record if vector types are used.
4674         (rs6000_expand_to_rtl_hook): Rename from
4675         rs6000_alloc_sdmode_stack_slot.  If VSX, check to see if there are
4676         any vector operations, so if there are, we can set VRSAVE to
4677         non-zero when only floating point vector registers are used.
4678         (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
4679         (rs6000_check_vector_mode): Inner function to check if vector
4680         types are used in the code.
4681         (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
4682         vector instructions are used.
4683
4684         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
4685         Indicate that VSX registers which overlap floating point
4686         registers, can't be used across a call, since the ABI only states
4687         the scalar part of the register will be saved and restored.
4688
4689 2009-10-23  Joseph Myers  <joseph@codesourcery.com>
4690
4691         PR c/41673
4692         * alias.c (get_alias_set): Call langhook before returning 0 for
4693         types with structural equality.
4694         * c-common.c (c_common_get_alias_set): Use alias set of element
4695         type for arrays with structural comparison.
4696
4697 2009-10-23  Richard Guenther  <rguenther@suse.de>
4698
4699         PR middle-end/41805
4700         * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
4701         gimple_call_nothrow_p.
4702
4703 2009-10-23  Richard Guenther  <rguenther@suse.de>
4704
4705         PR tree-optimization/41778
4706         * tree-ssa-pre.c (do_regular_insertion): Only insert if a
4707         redundancy along a path in the CFG we want to optimize for speed
4708         is going to be removed.
4709         (execute_pre): Do partial-PRE only if the function is to be
4710         optimized for speed.
4711         (gate_pre): Do not turn off all of PRE when not optimizing a
4712         function for speed.
4713
4714 2009-10-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4715
4716         * builtins.c (fold_builtin_cabs): Use validate_arg().
4717         (fold_builtin_cexp): Fix if-logic.
4718         (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
4719
4720 2009-10-22  Jeff Law  <law@redhat.com>
4721
4722         * ira-lives.c (process_single_reg_class_operands): Update the
4723         hard reg costs for all the hard registers desired by the
4724         single reg class operand.
4725
4726 2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>
4727
4728         * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
4729         for rtxes that aren't handled specially.
4730
4731 2009-10-22  Richard Sandiford  <rdsandiford@googlemail.com>
4732
4733         * rtl.h (shallow_copy_rtvec): Declare.
4734         * rtl.c (shallow_copy_rtvec): New function.
4735         * cselib.c (cselib_subst_to_values): Use it.  Only modify an
4736         rtx field if the subrtx has changed.
4737
4738 2009-10-22  Anatoly Sokolov  <aesok@post.ru>
4739
4740         * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
4741         (m32c_function_value): Make static, add new 'outgoing' argument.
4742         (m32c_libcall_value): Make static, add new 'fun' argument.
4743         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
4744         * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
4745         (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
4746         * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
4747         (m32c_function_value, m32c_libcall_value): Delete declaration.
4748
4749 2009-10-22  Diego Novillo  <dnovillo@google.com>
4750
4751         * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
4752
4753 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
4754
4755         * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
4756         space.
4757
4758 2009-10-22  Richard Guenther  <rguenther@suse.de>
4759
4760         * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
4761         * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
4762         (lto_symtab_merge): Do not merge cgraph nodes here.
4763         (lto_symtab_resolve_can_prevail_p): Simplify.
4764         (lto_symtab_resolve_symbols): Store cgraph node.
4765         (lto_symtab_merge_decls_1): Simplify.  Do not drop non-prevailing
4766         functions from the symtab.
4767         (lto_symtab_merge_cgraph_nodes_1): New function.
4768         (lto_symtab_merge_cgraph_nodes): Likewise.
4769
4770 2009-10-22  Richard Guenther  <rguenther@suse.de>
4771
4772         PR lto/41791
4773         * lto-streamer-out.c (lto_output_location): Stream the
4774         system header flag.
4775         * lto-streamer-in.c (lto_input_location): Likewise.
4776
4777 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
4778
4779         * cfgloopmanip.c (duplicate_subloops): Export.
4780         * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
4781         (transform_to_exit_first_loop): Duplicate bbs starting from
4782         header up to loop->latch instead of exit->src.
4783         Initialize control variable to the correct number of iterations.
4784         (gather_scalar_reductions): Do not register double reductions.
4785         (parallelize_loops): Dump which loop is tested.
4786         Indicate whether the parallelized loop is inner or not.
4787         Remove the innermost-loop requirement.
4788         * cfgloop.h (duplicate_subloops): Export.
4789         * tree-cfg.c (add_phi_args_after_redirect): New function.
4790         (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
4791         Call duplicate_subloops.
4792         Update number of iterations at the exit condition.
4793         Don't redirect nexits always to the loop exit.
4794         Redirect copied edges from latch to the loop exit.
4795
4796 2009-10-22  Jan Hubicka  <jh@suse.cz>
4797
4798         * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
4799         flag_ltrans check.
4800         * ipa-inline.c (cgraph_mark_inline_edge,
4801         cgraph_decide_inlining_of_small_function,
4802         cgraph_decide_inlining, inline_read_summary): Disable indirect
4803         inlining for WPA for time being.
4804
4805         PR tree-optimize/40556
4806         * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
4807
4808 2009-10-22  Richard Guenther  <rguenther@suse.de>
4809
4810         * lto-streamer.h (lto_symtab_clear_resolution): Remove.
4811         * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
4812
4813 2009-10-22  Jan Hubicka  <jh@suse.cz>
4814
4815         PR lto/41730
4816         * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
4817         global vars.
4818         (check_call): Handle only indirect calls.
4819         (propagate_bits): Update comment.
4820         (write_node_summary_p): Turn bogus check to assert.
4821         (ipa_reference_write_summary): Stream calls_read_all properly.
4822         (ipa_reference_read_summary): Stream in calls_read_all properly.
4823         (read_write_all_from_decl): New function.
4824         (propagate): Handle OVERWRITABLE nodes and external calls here.
4825         * ipa-pre-const.c (check_call): In IPA mode handle indirect
4826         calls only.
4827         (analyze_function): Do not check visibility here.
4828         (add_new_function): We summary OVERWRITABLE too.
4829         (generate_summary): Stream OVERWRITABLE nodes too.
4830         (propagate): Handle external calls and OVERWRITABLE nodes here.
4831         (local_pure_const): Check visibility here.
4832
4833 2009-10-22  Jan Hubicka  <jh@suse.cz>
4834
4835         * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
4836         (pass_ipa_cp): Register them.
4837         (ipcp_init_stage): Analyze all functions for whopr/lto.
4838         (ipcp_propagate_stage): Skip external calls.
4839         (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
4840         * ipa-reference.c (write_node_summary_p): Fix thinko about
4841         availability.
4842         * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
4843         when in ltrans, skip executing of ipa passes since everything
4844         should've been done.
4845         * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
4846         (inline_generate_summary): Likewise.
4847         (inline_read_summary): New function.
4848         (inline_write_summary): New function.
4849         (pass_ipa_inline): Register new hooks.
4850         * ipa-prop.c: Inlcude lto-streamer.h
4851         (ipa_edge_args_vector): Update declaration.
4852         (ipa_count_arguments, ipa_compute_jump_functions,
4853         ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
4854         (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
4855         ipa_read_node_info): New static functions.
4856         (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
4857         (duplicate_array): Use xmalloc.
4858         (duplicate_ggc_array): New.
4859         (ipa_edge_duplication_hook): Use it.
4860         (ipa_update_after_lto_read): New function.
4861         * ipa-prop.h (ipa_prop_write_jump_functions,
4862         ipa_prop_read_jump_functions): Declare.
4863         (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
4864         jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
4865         (ipa_edge_args_vector): Move into GGC.
4866         (ipa_check_create_edge_args): Update.
4867         (ipa_update_after_lto_read): New.
4868         * passes.c (ipa_write_summaries_1): When in wpa, do not write
4869         summaries.
4870         (ipa_read_summaries): When in ltrans, so not read summaries.
4871         * lto-streamer.c (lto_get_section_name): Add
4872         LTO_section_jump_functions.
4873         * lto-streamer.h (LTO_section_jump_functions): New section.
4874         (produce_asm): Declare.
4875         * lto-cgraph.c (output_cgraph): Output edges in reverse order.
4876         * lto-streamer-out.c (produce_asm): Export.
4877         * lto-streamer-in.c: Include tree-pass.h
4878         (input_function): Free dominance info when done.
4879         (lto_read_body): Push ipa_inline in ltrans stage.
4880         * gengtype.c (open_base_files): Add ipa-prop.h into includes.
4881         * Makefile.in (GTFILES): Add ipa-prop.h
4882
4883 2009-10-22  Matthias Klose  <doko@ubuntu.com>
4884
4885         * doc/install.texi: Document --enable-browser-plugin.
4886
4887 2009-10-21  Vladimir Makarov  <vmakarov@redhat.com>
4888
4889         * doc/invoke.texi (fira-loop-pressure): Update default value.
4890         * opts.c (decode_options): Remove default value setting for
4891         flag_ira_loop_pressure.
4892         * config/ia64/ia64.c (ia64_override_options): Set
4893         flag_ira_loop_pressure up for -O3.
4894         * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
4895
4896 2009-10-21  Sebastian Pop  <sebastian.pop@amd.com>
4897
4898         PR tree-optimization/41497
4899         * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
4900         chrec_dont_know if the evolution function returned by follow_ssa_edge
4901         is constant in the analyzed loop and is not compatible with the
4902         initial value before the loop.
4903         * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
4904
4905 2009-10-21  Joseph Myers  <joseph@codesourcery.com>
4906
4907         * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
4908
4909 2009-10-21  Jakub Jelinek  <jakub@redhat.com>
4910
4911         PR other/25507
4912         * doc/invoke.texi: Document -print-multi-os-directory.
4913
4914 2009-10-21  Jack Howarth  <howarth@bromo.med.uc.edu>
4915
4916         PR c++/41313
4917         * gcc/config/darwin10.h: Use default_emit_unwind_label.
4918         * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
4919         when darwin_emit_unwind_label is used.
4920
4921 2009-10-21  Eric Botcazou  <ebotcazou@adacore.com>
4922
4923         * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
4924         order of checks.
4925
4926 2009-10-20  Richard Henderson  <rth@redhat.com>
4927
4928         * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
4929         before emit_post_landing_pad.
4930
4931 2009-10-20  Adam Nemet  <anemet@caviumnetworks.com>
4932
4933         * config/mips/mips.c (mips_binary_cost): Add new argument speed.
4934         Use when calling rtx_costs.
4935         (mips_rtx_costs): Fix formatting.  Use argument speed rather than the
4936         global optimize_size.  Pass speed to mips_binary_cost.
4937
4938 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
4939
4940         * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
4941         of TREE_CONSTANT.
4942
4943 2009-10-20  Richard Sandiford  <rdsandiford@googlemail.com>
4944
4945         * rtl.h (simplify_replace_fn_rtx): Declare.
4946         (wrap_constant, unwrap_constant): Delete.
4947         * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
4948         (expand_debug_expr): Don't call wrap_constant.
4949         * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
4950         (auto_adjust_pair): Fold into...
4951         (propagate_for_debug_subst): ...here.  Only define for AUTO_INC_DEC.
4952         Just return a new value.
4953         (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
4954         otherwise use simplify_replace_rtx.
4955         * cselib.c (wrap_constant): Reinstate old definition.
4956         (cselib_expand_value_rtx_1): Don't wrap constants.
4957         * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
4958         simplify_replace_rtx.
4959         (bypass_block): Fix formatting in calls to simplify_replace_rtx.
4960         * reload1.c (reload): Skip all uses for an insn before adjusting it.
4961         Use simplify_replace_rtx.
4962         * simplify-rtx.c (simplify_replace_fn_rtx): New function,
4963         adapted from...
4964         (simplify_replace_rtx): ...here.  Turn into a wrapper for
4965         simplify_replace_fn_rtx.
4966         (simplify_unary_operation): Don't unwrap CONSTs.
4967         * var-tracking.c (check_wrap_constant): Delete.
4968         (vt_expand_loc_callback): Don't call it.
4969         (vt_expand_loc): Likewise.
4970
4971 2009-10-20  Pascal Obry  <obry@adacore.com>
4972             Eric Botcazou  <ebotcazou@adacore.com>
4973
4974         * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
4975
4976 2009-10-20  Michael Matz  <matz@suse.de>
4977
4978         * loop-invariant.c (create_new_invariant): Use different magic number.
4979
4980 2009-10-20  Richard Earnshaw  <rearnsha@arm.com>
4981
4982         PR target/39247
4983         * arm.c (arm_override_options): Forcibly disable hot/cold block
4984         partitioning.
4985
4986 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
4987
4988         PR debug/41739
4989         * haifa-sched.c (try_ready): Skip debug deps updating speculation
4990         status.
4991
4992 2009-10-20  Richard Guenther  <rguenther@suse.de>
4993
4994         * ggc-page.c: Include cfgloop.h.
4995         (struct max_alignment): Drop long double, add void *.
4996         (extra_order_size_table): Add low non-power-of-two multiples
4997         of MAX_ALIGNMENT.  Drop small type-based entries, add
4998         tree_type, cgraph_node and loop.
4999         * alloc-pool.c (struct allocation_object_def): Drop long double
5000         aligning element.
5001
5002 2009-10-20  Jakub Jelinek  <jakub@redhat.com>
5003
5004         PR debug/41340
5005         * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
5006         referenced just in DEBUG_INSNs.
5007
5008 2009-10-20  Richard Guenther  <rguenther@suse.de>
5009
5010         PR lto/41761
5011         * gimple.c (gimple_register_type): Make sure we register
5012         the types main variant first.
5013
5014 2009-10-20  Richard Guenther  <rguenther@suse.de>
5015
5016         * gimple.c (gimple_types_compatible_p): Simplify.  Move
5017         cheap checks before hashtable queries.  Add checks for
5018         TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
5019
5020 2009-10-20  Eric Botcazou  <ebotcazou@adacore.com>
5021
5022         * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
5023         without size or with size that can't be represented as a host integer.
5024
5025 2009-10-20  Alexandre Oliva  <aoliva@redhat.com>
5026
5027         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
5028         the removal of a debug stmt as a significant change.
5029
5030 2009-10-20  Wolfgang Gellerich  <gellerich@de.ibm.com>
5031
5032         * config/s390/s390.md: Added agen condition to operand
5033         forwarding bypasses.  Added bypass for early address generation
5034         use of int results.  Updated comments.
5035
5036 2009-10-20  Stefan Dösinger  <stefan@codeweavers.com>
5037
5038         * config/i386/i386.c: Remove signal.h #include.
5039
5040 2009-10-20  Jie Zhang  <jie.zhang@analog.com>
5041
5042         * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
5043         * doc/rtl.texi: Document ss_abs.
5044
5045 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
5046
5047         * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
5048         * c-lex.c (c_lex_with_flags): Likewise.  Test C_LEX_STRING_NO_JOIN
5049         instead of C_LEX_RAW_STRINGS.
5050         (lex_string): Handle CPP_UTF8STRING.
5051         * c-parser.c (c_parser_postfix_expression): Likewise.
5052         * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
5053         (C_LEX_STRING_NO_JOIN): ... this.
5054
5055 2009-10-19  Anatoly Sokolov  <aesok@post.ru>
5056
5057         * config/cris/cris.c (cris_function_value, cris_libcall_value,
5058         cris_function_value_regno_p): New functions.
5059         (cris_promote_function_mode): Update comment.
5060         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
5061         * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
5062         (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
5063         * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
5064
5065 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
5066
5067         * unwind-dw2.c (execute_stack_op): Fix operand order for
5068         DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
5069
5070 2009-10-19  Eric Botcazou  <ebotcazou@adacore.com>
5071
5072         * gimple-low.c (struct lower_data): Add cannot_fallthru field.
5073         (lower_stmt) <GIMPLE_BIND>: Add comment.
5074         <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
5075         and return.
5076         <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
5077         Otherwise lower it and set cannot_fallthru to true.
5078         <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
5079         <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
5080         <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
5081         to true for a noreturn call.  Do not remove statements.
5082         <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
5083         Set cannot_fallthru to false on function exit.
5084         (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
5085         <GIMPLE_ASSIGN>: Remove.
5086
5087 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5088
5089         * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
5090
5091 2009-10-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5092
5093         * config/s390/s390.c (s390_z10_optimize_cmp): Use
5094         next/prev_active_insn to skip DEBUG_INSNs as well.
5095
5096 2009-10-19  Joseph Myers  <joseph@codesourcery.com>
5097
5098         * config/arm/arm.c (output_move_neon): Use DImode in call to
5099         adjust_address.
5100
5101 2009-10-19  Matthias Klose  <doko@ubuntu.com>
5102
5103         PR target/40134
5104         * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
5105
5106 2009-10-19  Jakub Jelinek  <jakub@redhat.com>
5107
5108         * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
5109
5110 2009-10-17  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
5111
5112         PR middle-end/41738
5113         * optabs.c (expand_binop): Make mode of shift count expression mode
5114         of shift count not target.
5115         Remove indent nit.
5116
5117 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
5118
5119         * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
5120         case.  Force using values to replace references within the statement.
5121         (convert_local_reference_stmt): Likewise.
5122
5123 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
5124
5125         * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
5126         remove a subsequent GOTO or RETURN statement.
5127
5128 2009-10-17  Andy Hutchinson  <hutchinsonandy@aim.com>
5129
5130         * config/avr.md (*movqi): Add zero as equally preferable constraint
5131         as general register.
5132         (*movhi): Ditto.
5133
5134 2009-10-17  Eric Botcazou  <ebotcazou@adacore.com>
5135
5136         * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
5137
5138 2009-10-17  Richard Guenther  <rguenther@suse.de>
5139
5140         * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
5141
5142 2009-10-17  Richard Guenther  <rguenther@suse.de>
5143
5144         * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
5145         operands in COMPONENT_REFs.
5146
5147 2009-10-17  Anatoly Sokolov  <aesok@post.ru>
5148
5149         * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
5150         if not defined. Change type of second argument to const_rtx.
5151         (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
5152         macro not defined.
5153         * targhooks.h (default_libcall_value): Update prototype.
5154         * target.h (struct gcc_target): Change type of second argument of
5155         libcall_value to const_rtx.
5156         * config/arm/arm.c (arm_libcall_value): Change type of second argument
5157         to const_rtx.
5158         (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
5159         * doc/tm.texi (TARGET_LIBCALL_VALUE):  Revise documentation.
5160
5161 2009-10-17  Jakub Jelinek  <jakub@redhat.com>
5162
5163         PR debug/40521
5164         * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
5165         * cgraphunit.c (cgraph_optimize): Call it.
5166         * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
5167         (dwarf2out_assembly_start): ... here.  New hook.
5168         (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
5169         * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
5170         hook.
5171         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
5172         * sdbout.c (sdb_debug_hooks): Likewise.
5173         * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
5174         (vmsdbgout_assembly_start): New hook.
5175
5176 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
5177
5178         * rtl.h (RTL_LOCATION): Fix typo.
5179
5180 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
5181
5182         * print-rtl.c (print_rtx): Print locators in asm_operands
5183         and asm_input.
5184
5185 2009-10-17  Alexandre Oliva  <aoliva@redhat.com>
5186
5187         PR debug/41535
5188         * sched-deps.c (depl_on_debug_p): New.
5189         (attach_dep_link): Reject debug deps before nondebug deps.
5190         (add_to_deps_list): Insert debug deps after nondebug deps.
5191         (sd_lists_empty_p): Stop at first nonempty list.  Disregard debug
5192         deps.
5193         (sd_add_dep): Do not reject debug deps.
5194         (add_insn_mem_dependence): Don't count debug deps.
5195         (remove_from_deps): Likewise.
5196         (sched_analyze_2): Set up mem deps on debug insns.
5197         (sched_analyze_insn): Record reg uses for deps on debug insns.
5198         * haifa-sched.c (schedule_insn): Reset deferred debug insn.  Don't
5199         try_ready nondebug insn after debug insn.
5200         * ddg.c (create_ddg_dep_from_intra_loop_link,
5201         create_ddg_dep_no_link): Don't reject debug deps.
5202
5203 2009-10-16  Richard Guenther  <rguenther@suse.de>
5204
5205         * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
5206         (maybe_merge_incomplete_and_complete_type): Likewise.
5207         (lto_symtab_merge): Do not call them.  Do not warn for
5208         complete vs. incomplete compatible types.
5209         (lto_symtab_merge_decls_2): Simplify.
5210         * gimple.c (gimple_force_type_merge): Remove.
5211         (gimple_types_compatible_p): Make it static.
5212         * gimple.h (gimple_force_type_merge): Remove.
5213         (gimple_types_compatible_p): Likewise.
5214
5215 2009-10-16  Jakub Jelinek  <jakub@redhat.com>
5216
5217         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
5218         DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
5219
5220 2009-10-16  Richard Guenther  <rguenther@suse.de>
5221
5222         PR tree-optimization/41728
5223         * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
5224         if fold_stmt did anything.
5225
5226 2009-10-16  Richard Guenther  <rguenther@suse.de>
5227
5228         PR lto/41715
5229         * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
5230         (maybe_fixup_handled_component): New function.
5231         (input_gimple_stmt): Fixup mismatched decl replacements.
5232
5233 2009-10-16  Richard Guenther  <rguenther@suse.de>
5234
5235         PR lto/41713
5236         * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
5237         the same as VAR_DECL.
5238
5239 2009-10-16  Richard Guenther  <rguenther@suse.de>
5240
5241         * gimple.c (iterative_hash_gimple_type): For integer types
5242         also hash their minimum and maximum values and the string flag.
5243         For array types hash their domain and the string flag.
5244
5245 2009-10-16  Richard Guenther  <rguenther@suse.de>
5246
5247         * gimple.c (gimple_types_compatible_p): Restrict completing
5248         types to record or unions.  Simplify completion.
5249         Do not merge records or unions with different
5250         TYPE_STRUCTURAL_EQUALITY_P tag.
5251         (iterative_hash_gimple_type): Restrict non-recursing into
5252         pointer targets for records and unions.
5253
5254 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
5255
5256         PR debug/41717
5257         * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
5258         * dwarf2out.c (mem_loc_descriptor): Don't handle
5259         POST_INT/POST_DEC/POST_MODIFY like SUBREG.  For SUBREG
5260         punt if it is not lowpart subreg or if inner mode isn't
5261         MODE_INT.
5262
5263 2009-10-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5264
5265         * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
5266         investigating previous or next insns.
5267
5268 2009-10-16  Eric Botcazou  <ebotcazou@adacore.com>
5269
5270         * tree-sra.c (build_ref_for_offset_1): Update comment.
5271
5272 2009-10-16  Wolfgang Gellerich  <gellerich@de.ibm.com>
5273
5274         * config/s390/s390.md (atype): Added missing values.
5275
5276 2009-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5277
5278         PR target/41702
5279         * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
5280         (casesi64p): Update pattern to reflect above.
5281
5282 2009-10-15  Steve Ellcey  <sje@cup.hp.com>
5283
5284         PR rtl-optimization/41697
5285         * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
5286
5287 2009-10-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5288
5289         PR target/23983
5290         * config/rs6000/predicates.md: Update copyright year.
5291         * config/rs6000/altivec.md: Ditto.
5292
5293         * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
5294         (MD_INCLUDES): Add a2.md.
5295
5296         * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
5297         RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
5298         (builtin_classify): New static vector to classify various builtins
5299         to get the tree attributes correct.
5300         (def_builtin): Set the attributes of builtins based on what the
5301         builtin does (i.e. memory operation, floating point, saturation
5302         need special attributes, others are pure functions).
5303
5304         * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
5305         the builtins.
5306         (enum rs6000_builtins): Include rs6000-builtin.def to define the
5307         builtins.  Change the end marker to MAX_RS6000_BUILTINS from
5308         RS6000_BUILTIN_COUNT.
5309         (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
5310         MAX_RS6000_BUILTINS.
5311
5312         * config/rs6000/rs6000-builtin.def: New file that combines the
5313         builtin enumeration name and attributes.
5314
5315 2009-10-15  H.J. Lu  <hongjiu.lu@intel.com>
5316
5317         * config/i386/linux.h (ASM_SPEC): Add --32.
5318
5319 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
5320
5321         * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
5322         and DW_TAG_template_alias.
5323         (dwarf_attr_name): Handle DW_AT_main_subprogram,
5324         DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
5325         DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
5326         DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
5327         DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
5328         and DW_AT_GNU_odr_signature.
5329         (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
5330         DW_FORM_flag_present and DW_FORM_ref_sig8.
5331         (output_signature): Only print name on the first byte.
5332         (output_die): Likewise for dw_val_class_data8.
5333
5334 2009-10-15  Alexander Monakov  <amonakov@ispras.ru>
5335
5336         * doc/invoke.texi: Clarify that most optimizations are not enabled
5337         without -O.
5338
5339 2009-10-15  Richard Guenther  <rguenther@suse.de>
5340
5341         PR lto/41668
5342         * gimple.c (compare_type_names_p): Handle anonymous names
5343         differently based on new mode argument.
5344         (gimple_types_compatible_p): For structs also compare the tags.
5345         (iterative_hash_type_name): Rename to ...
5346         (iterative_hash_name): ... this.  Hash all names.
5347         (iterative_hash_gimple_type): Fix hashing the struct tag of
5348         pointer targets.  Hash field decl names.
5349
5350 2009-10-15  Richard Guenther  <rguenther@suse.de>
5351
5352         PR lto/41669
5353         * gimple.c (gimple_get_alias_set): Avoid recursing on
5354         invalid type topology.
5355
5356 2009-10-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5357
5358         * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
5359
5360 2009-10-15  Richard Guenther  <rguenther@suse.de>
5361
5362         * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
5363
5364 2009-10-15  Jakub Jelinek  <jakub@redhat.com>
5365
5366         * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
5367         add --with-tune{,-32,-64} configured default for -mtune if explicit
5368         -mcpu is used.
5369
5370 2009-10-14  Daniel Gutson  <dgutson@codesourcery.com>
5371
5372         * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
5373
5374 2009-10-14  DJ Delorie  <dj@redhat.com>
5375
5376         * config/h8300/h8300.c (F): New.
5377         (Fpa): New.
5378         (h8300_emit_stack_adjustment): Call them.
5379         (push): Likewise.
5380         (h8300_push_pop): Likewise.
5381         (h8300_expand_prologue): Likewise.
5382         * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
5383         (MUST_USE_SJLJ_EXCEPTIONS): Define.
5384         (INCOMING_RETURN_ADDR_RTX): Define.
5385         (INCOMING_FRAME_SP_OFFSET): Define.
5386         (DWARF_CIE_DATA_ALIGNMENT): Define.
5387
5388 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
5389
5390         * stor-layout.c (place_field): Don't emit -Wpadded warnings for
5391         fields in builtin structs.
5392         (finalize_record_size): Likewise.
5393
5394 2009-10-14  Richard Guenther  <rguenther@suse.de>
5395
5396         * gimple.c (gtc_ob): New global.
5397         (struct type_pair_d): Replace pointers with type UIDs.
5398         (type_pair_hash): Adjust.
5399         (type_pair_eq): Likewise.
5400         (lookup_type_pair): Likewise.  Allocate from an obstack.
5401         (gimple_force_type_merge): Adjust.
5402         (gimple_types_compatible_p): Likewise.
5403         (free_gimple_type_tables): Free the obstack.
5404
5405 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
5406
5407         * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
5408         stmts setting DEBUG_EXPR_DECLs.
5409
5410         * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
5411         Don't crash if mode1 is VOIDmode.
5412
5413 2009-09-26  Vladimir Makarov  <vmakarov@redhat.com>
5414
5415         * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
5416         * params.h (IRA_LOOP_RESERVED_REGS): New.
5417         * tree-pass.h (pass_subregs_of_mode_init,
5418         pass_subregs_of_mode_finish): Remove.
5419         * passes.c (pass_subregs_of_mode_init,
5420         pass_subregs_of_mode_finish): Remove.
5421         (pass_reginfo_init): Move before loop optimizations.
5422         * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
5423         * common.opt (fira-loop-pressure): New.
5424         * toplev.h (flag_ira_loop_pressure): New.
5425         * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
5426         * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
5427         Make external and void type functions.
5428         (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
5429         pass_subregs_of_mode_finish): Remove.
5430         * ira-costs.c (init_costs): Call init_subregs_of_mode.
5431         * regmove.c: Include ira.h.
5432         (regmove_optimize): Call ira_set_pseudo_classes after IRA based
5433         register pressure calculation in loops.
5434         * loop-invariant.c: Include REGS_H and ira.h.
5435         (struct loop_data): New members max_reg_pressure, regs_ref, and
5436         regs_live.
5437         (struct invariant): New member orig_regno.
5438         (curr_loop): New variable.
5439         (find_exits): Initialize regs_ref and regs_live.
5440         (create_new_invariant): Initialize orig_regno.
5441         (get_cover_class_and_nregs): New.
5442         (get_inv_cost): Make aregs_needed an array.  Use regs_needed as an
5443         array.  Add code for flag_ira_loop_pressure.
5444         (gain_for_invariant): Make new_regs an array.  Add code for
5445         flag_ira_loop_pressure.
5446         (best_gain_for_invariant): Ditto.
5447         (set_move_mark): New parameter gain.  Use it for debugging output.
5448         (find_invariants_to_move): Make regs_needed and new_regs an array.
5449         Add code for flag_ira_loop_pressure.
5450         (move_invariant_reg): Set up orig_regno.
5451         (move_invariants): Set up reg classes for pseudos for
5452         flag_ira_loop_pressure.
5453         (free_loop_data): Clear regs_ref and regs_live.
5454         (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
5455         get_regno_cover_class, change_pressure, mark_regno_live,
5456         mark_regno_death, mark_reg_store, mark_reg_clobber,
5457         mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
5458         (move_loop_invariants): Calculate pressure.  Initialize curr_loop.
5459         * ira.c (ira): Call ira_set_pseudo_classes after IRA based
5460         register pressure calculation in loops if new regs were added.
5461         Call finish_subregs_of_mode.
5462         * opts.c (decode_options): Set up flag_ira_loop_pressure.
5463         * Makefile.in (loop-invariant.o): Add ira.h.
5464         (regmove.o): Ditto.
5465         * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
5466         Describe.
5467         * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
5468
5469 2009-10-14  Richard Guenther  <rguenther@suse.de>
5470
5471         * lto-symtab.c (lto_symtab_compatible): Fold in ...
5472         (lto_symtab_merge): ... here.  Rewrite both to take the
5473         prevailing and a to-be-merged entry and to queue diagnostics properly.
5474         (lto_symtab_resolve_replaceable_p): New predicate for
5475         symbol resolution.
5476         (lto_symtab_resolve_can_prevail_p): Likewise.
5477         (lto_symtab_resolve_symbols): Rewrite.  Fold in code that
5478         handles merging commons by choosing the largest decl.  Fold
5479         in code that gives ODR errors.
5480         (lto_symtab_merge_decls_2): Simplify a lot.  Emit queued
5481         diagnostics here.
5482         (lto_symtab_merge_decls_1): Re-structure.  Deal with the
5483         case of no prevailing decl here.  Diagnose mismatches
5484         in object types here.  Drop all but the prevailing decls.
5485         (lto_symtab_prevailing_decl): Return the single prevailing decl.
5486         * lto-streamer-in.c (lto_input_tree_ref): Deal with
5487         VIEW_CONVERT_EXPRs in decl slots.  Unshare the tree in this case.
5488
5489 2009-10-14  Richard Guenther  <rguenther@suse.de>
5490
5491         PR lto/41521
5492         * lto-streamer-in.c (input_bb): Replace debug stmts with
5493         nops instead of dropping them.
5494
5495 2009-10-14  Nick Clifton  <nickc@redhat.com>
5496
5497         * gcc/doc/extended.texi: Replace the dash character with @minus{}
5498         in situations where it is being used as a minus symbol.
5499         * gcc/doc/tm.texi: Likewise.
5500         * gcc/doc/md.texi: Likewise.
5501
5502 2009-10-14  Jakub Jelinek  <jakub@redhat.com>
5503
5504         PR preprocessor/41543
5505         * input.h (BUILTINS_LOCATION): Change to 1 from 2.
5506         Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
5507         * tree.c: Include intl.h.
5508         (expand_location): Handle BUILTINS_LOCATION.
5509         * Makefile.in (tree.o): Depend on intl.h.
5510
5511         PR debug/41695
5512         * dwarf2out.c (dwarf2out_var_location): Always clear
5513         last_postcall_label when changing last_label.
5514
5515 2009-10-14  Pascal Obry  <obry@adacore.com>
5516
5517         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
5518         (process_command): Handle -E as done with -c and -S.  Do not add
5519         the target executable suffix to the output file when -E is used.
5520         (main): Adjust error message accordingly.
5521
5522 2009-10-14  Alexandre Oliva  <aoliva@redhat.com>
5523
5524         PR debug/41343
5525         PR debug/41447
5526         PR debug/41264
5527         PR debug/41338
5528         * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
5529         decl with rtl.
5530         (tree_code_size): Likewise.
5531
5532 2009-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5533
5534         * builtins.c (fold_builtin_1): Support complex "arc" functions.
5535         * real.h (HAVE_mpc_arc): Define.
5536
5537 2009-10-14  Kaz Kojima  <kkojima@gcc.gnu.org>
5538
5539         * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
5540         (struct builtin_description): Add fndecl field.
5541         (bdesc): Remove const qualifier.  Update initializer.
5542         (sh_media_init_builtins): Remove const qualifier for d.  Record
5543         the result of add_builtin_function to the fndecl field.
5544         (sh_builtin_decl): New.
5545         (sh_media_builtin_decl): New.
5546
5547 2009-10-14  Hans-Peter Nilsson  <hp@axis.com>
5548
5549         PR target/38948
5550         * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
5551         requests between special registers.
5552
5553 2009-10-13  Eric Botcazou  <ebotcazou@adacore.com>
5554
5555         * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
5556
5557 2009-10-13  Richard Henderson  <rth@redhat.com>
5558
5559         PR tree-optimization/41377
5560         * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
5561         (cleanup_empty_eh_merge_phis): New change_region parameter;
5562         pass it on to redirect_eh_edge_1.  Update callers.
5563         (cleanup_empty_eh_unsplit): Don't require an existing EH label
5564         at the destination block.
5565
5566 2009-10-13  Basile Starynkevitch  <basile@starynkevitch.net>
5567
5568         * passes.c (register_pass): Replaced gcc_unreachable by
5569         fatal_error on failure. Mentions plugins in comments & messages.
5570
5571 2009-10-13  Jakub Jelinek  <jakub@redhat.com>
5572
5573         PR target/41693
5574         * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
5575         * sched-vis.c (print_value): Use it.
5576         * cselib.c (cselib_hash_rtx): Likewise.
5577         * print-rtl.c (print_rtx): Likewise.
5578         * cfgexpand.c (expand_debug_rtx): Likewise.
5579         * var-tracking.c (vt_expand_loc_callback): Likewise.
5580
5581 2009-10-13  Richard Guenther  <rguenther@suse.de>
5582
5583         PR lto/41565
5584         * opts.c (handle_option): Split out code to handle setting
5585         the options flag var ...
5586         (set_option): ... here.
5587         * opts.h (set_option): Declare.
5588         * lto-opts.c (register_user_option_p): Include -fexceptions
5589         and all position independent code variants.
5590         (handle_common_option): Remove.
5591         (lto_reissue_options): Use set_option.
5592
5593 2009-10-13  Martin Jambor  <mjambor@suse.cz>
5594
5595         PR tree-optimization/41661
5596         * ipa-prop.c (compute_complex_pass_through): Allow only operations
5597         that are tcc_comparisons or do not change the type in any
5598         un-usleless way.
5599         * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
5600         folding tcc_comparison operations.
5601
5602 2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5603
5604         * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
5605         properly.
5606
5607 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
5608
5609         PR debug/41343
5610         PR debug/41447
5611         PR debug/41264
5612         PR debug/41338
5613         * tree.def (DEBUG_EXPR_DECL): New.
5614         * rtl.def (DEBUG_EXPR): New.
5615         * gengtype.c (adjust_field_rtx_def): Handle it.
5616         * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
5617         (insert_debug_temp_for_var_def): ... this.  Drop support for
5618         moving.  Take iterator for def stmt; insert debug stmt before it.
5619         Scan early for use count and kind in debug stmts.
5620         (propagate_defs_into_debug_stmts): Rename to...
5621         (insert_debug_temps_for_defs): ... this.  Likewise.
5622         * tree.h (DEBUG_TEMP_UID): New.
5623         * tree.c (next_debug_decl_uid): New.
5624         (make_node_stat): Count debug decls separately.
5625         (copy_node_stat): Likewise.
5626         * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
5627         * var-tracking.c (dv_is_decl_p): Recognize it.
5628         (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
5629         (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
5630         (vt_expand_loc_callback): Expand DEBUG_EXPRs.
5631         (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
5632         * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
5633         (cselib_hash_rtx): Likewise.
5634         (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
5635         * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
5636         debug bind stmts.
5637         * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
5638         (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
5639         * rtl.c (copy_rtx): Likewise.
5640         (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
5641         * print-rtl.c (print_rtx): Likewise.
5642         * sched-vis.c (print_value): Likewise.
5643         (print_insn): Handle DEBUG_EXPR_DECL.
5644         * tree-dump.c (dequeue_and_dump): Likewise.
5645         * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
5646         * gimple-iterator (gsi_replace): Check for same lhs.
5647         (gsi_remove): Insert debug temps.
5648         * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
5649         (move_computations_stmt): Drop explicit propagation into debug stmts.
5650         (rewrite_bittest): Likewise.  Use gsi_remove for propagation.
5651         * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
5652         * tree-ssa-sink.c (statement_sink_location): Likewise.
5653         * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
5654         * tree-ssanames.c (release_ssa_name): Adjust for rename.
5655         * tree-flow.h: Likewise.
5656         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
5657         debug temps without values.
5658         (eliminate_unnecessary_stmts): Don't discard just-inserted
5659         debug stmts.
5660
5661 2009-10-12  Hans-Peter Nilsson  <hp@axis.com>
5662
5663         PR target/26515
5664         * config/cris/cris.md (andu): Check that operand 1 is one of the
5665         general registers.  Fix typo in head comment.
5666
5667 2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>
5668
5669         * config/i386/i386.md (vswapmov): New.
5670         * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
5671         (ix86_function_ms_hook_prologue): New.
5672         (ix86_expand_prologue): Handle ms_hook_prologue attribute.
5673         * configure.ac: Test for swap suffix support in as.
5674         * configure: Rebuild.
5675
5676 2009-10-12  Jakub Jelinek  <jakub@redhat.com>
5677
5678         PR target/41680
5679         * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
5680         paradoxical subregs to prevent partial register stalls if the inner
5681         mode is integer mode.
5682
5683 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
5684
5685         * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
5686
5687 2009-10-12  Dodji Seketeli  <dodji@redhat.com>
5688
5689         PR c++/41570
5690         * gcc/dwarf2out.c (template_parameter_pack_die,
5691         gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
5692
5693 2009-10-12  Alexandre Oliva  <aoliva@redhat.com>
5694
5695         PR debug/41616
5696         * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
5697         on updates too.
5698         (maybe_register_def): Likewise.  Take stmt iterator.
5699         (rewrite_update_stmt): Take stmt iterator and pass it on.
5700         (rewrite_update_enter_block): Pass stmt iterator.
5701
5702 2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5703
5704         * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
5705         (spu_builtin_decl): New function.
5706
5707 2009-10-12  Uros Bizjak  <ubizjak@gmail.com>
5708
5709         * config/i386/i386.md (SWIM): New mode iterator.
5710         (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
5711         using SWIM mode iterator.
5712         (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
5713         patterns using SWI48 mode iterator.
5714         (*x86_mov<mode>cc_0_m1_se):  Macroize insn from
5715         *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
5716         (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
5717         (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
5718         patterns using SWI248 mode iterator.
5719         * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
5720         gen_x86_movdicc_0_m1_rex64 for renamed function
5721
5722 2009-10-11  Jose Ruiz  <ruiz@adacore.com>
5723             Eric Botcazou  <ebotcazou@adacore.com>
5724
5725         PR target/33743
5726         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
5727         * config/sparc/sol2-unwind.h: New file.
5728
5729 2009-10-11  Olivier Hainque  <hainque@adacore.com>
5730             Eric Botcazou  <ebotcazou@adacore.com>
5731
5732         PR target/33743
5733         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
5734         * config/i386/sol2-unwind.h: New file.
5735
5736 2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>
5737
5738         PR target/41665
5739         * config/i386/i386.md (addsi_1_zext): Get the proper second
5740         operand for lea.
5741
5742 2009-10-11  Richard Sandiford  <rdsandiford@googlemail.com>
5743
5744         * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
5745         all OLD_RTXes, not just REGs.  Use copy_rtx to create the
5746         replacement value.
5747
5748 2009-10-11  Richard Guenther  <rguenther@suse.de>
5749
5750         * gimple.c (iterative_hash_type_name): Do not handle special
5751         anonymous names.
5752
5753 2009-10-11  Uros Bizjak  <ubizjak@gmail.com>
5754
5755         * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
5756         (*setcc_si_1_and): Ditto.
5757         (*setcc_si_1_movzbl): Ditto.
5758         (*setcc_<mode>_2): Ditto.
5759         (*setcc_qi): Rename from *setcc_1.
5760         (*setcc_qi_slp): Rename from *setcc_2.
5761
5762         (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
5763         (*zero_extendqisi2_movzbw_and splitter): Ditto.
5764
5765         * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
5766         "if" condition, there is already assert with reload_completed present.
5767
5768 2009-10-11  Gerald Pfeifer  <gerald@pfeifer.com>
5769
5770         * plugin.c (try_init_one_plugin): Improve constness of variable err.
5771
5772 2009-10-10  Gerald Pfeifer  <gerald@pfeifer.com>
5773
5774         * doc/install.texi (Final install): Refer to
5775         http://gcc.gnu.org/bugs/ for bug reporting.
5776
5777 2009-10-10  Peter Bergner  <bergner@vnet.ibm.com>
5778
5779         * configure.ac: Add test for dci instruction.
5780         * configure: Regenerate.
5781         * config.in: Likewise.
5782         * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
5783         * doc/invoke.texi: Add cpu_type 476 and 476fp.
5784         (-mmulhw): Add 476 to description.
5785         (-mdlmzb): Likewise.
5786         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
5787         * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
5788         (processor_target_table): Add 476 and 476fp entries.
5789         (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
5790         (rs6000_issue_rate): Add CPU_PPC476.
5791         * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
5792         (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
5793         (processor_type): Add PROCESSOR_PPC476.
5794         (EXTRA_SPECS): Add asm_cpu_476 string.
5795         * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
5796         (define_attr "cpu"): Add ppc476.
5797         Include 476.md.
5798         Update comments for 476.
5799         (isel_signed, isel_unsigned): Change to use "isel" type attribute.
5800         * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
5801         Update copyright year.
5802         * config/rs6000/476.md: New file.
5803         * config/rs6000/40x.md: Add description for "isel" attribute.
5804         Update copyright year.
5805         * config/rs6000/440.md: Likewise.
5806         * config/rs6000/603.md: Likewise.
5807         * config/rs6000/6xx.md: Likewise.
5808         * config/rs6000/7450.md: Likewise.
5809         * config/rs6000/7xx.md: Likewise.
5810         * config/rs6000/8540.md: Likewise.
5811         * config/rs6000/cell.md: Likewise.
5812         * config/rs6000/e300c2c3.md: Likewise.
5813         * config/rs6000/e500mc.md: Likewise.
5814         * config/rs6000/mpc.md: Likewise.
5815         * config/rs6000/power4.md: Likewise.
5816         * config/rs6000/power5.md: Likewise.
5817         * config/rs6000/power6.md: Likewise.
5818         * config/rs6000/power7.md: Likewise.
5819         * config/rs6000/rios1.md: Likewise.
5820         * config/rs6000/rios2.md: Likewise.
5821         * config/rs6000/rs64.md: Likewise.
5822
5823 2009-10-10  Richard Guenther  <rguenther@suse.de>
5824
5825         PR tree-optimization/41654
5826         * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
5827         a cond expr before calling gimple_cond_set_condition_from_tree.
5828         (ifcombine_iforif): Likewise.
5829
5830 2009-10-09  Ian Lance Taylor  <iant@google.com>
5831
5832         * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
5833         * configure: Rebuild.
5834
5835 2009-10-09  Neil Vachharajani <nvachhar@google.com>
5836
5837         * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
5838         deprecated.
5839
5840 2009-10-09  Richard Guenther  <rguenther@suse.de>
5841
5842         PR lto/41638
5843         * target-def.h (TARGET_BUILTIN_DECL): Define.
5844         (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
5845         * target.h (struct gcc_target): Add builtin_decl target hook.
5846         * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
5847         * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
5848         target builtins.
5849         * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
5850         not gcc_unreachable.
5851         (lto_output_builtin_tree): Sorry if the target does not support
5852         streaming target builtins.
5853         * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
5854         (rs6000_builtin_decl): New function.
5855         * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
5856         (ix86_builtin_decl): New function.
5857
5858 2009-10-09  Jakub Jelinek  <jakub@redhat.com>
5859
5860         PR preprocessor/41445
5861         * c-ppoutput.c (do_line_change): New function.
5862         (cb_line_change): Use it.
5863         (scan_translation_unit): Call do_line_change if
5864         avoid_paste or PREV_WHITE and token location is on a different line
5865         than print.src_line.
5866
5867         PR debug/40521
5868         * dwarf2out.c (dwarf2out_init): Test whether
5869         HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
5870         it is defined.
5871
5872         PR rtl-optimization/41646
5873         * calls.c (expand_call): For BLKmode types returned in registers
5874         avoid likely spilled hard regs in copy_blkmode_from_reg generated
5875         insns.
5876
5877 2009-10-09  Richard Guenther  <rguenther@suse.de>
5878
5879         PR tree-optimization/41634
5880         * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
5881         we remove the correct elements.
5882         (optimize_stmt): Make sure to update stmt operands before
5883         optimizing redundancies.
5884
5885 2009-10-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5886
5887         * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
5888
5889 2009-10-09  Richard Guenther  <rguenther@suse.de>
5890
5891         PR driver/41637
5892         * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
5893         globals.
5894         (lto_wrapper_exit): New function.
5895         (fatal): Use it.
5896         (fatal_perror): Likewise.
5897         (fork_execute): Use global args_name, do not free it.
5898         (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
5899         * lto-streamer.h: Remove duplicate prototypes.
5900
5901 2009-10-09  Richard Guenther  <rguenther@suse.de>
5902
5903         * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
5904         before calling stmt_can_throw_external.
5905
5906 2009-10-09  Eric Botcazou  <ebotcazou@adacore.com>
5907
5908         PR tree-optimization/40071
5909         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
5910         pointer if the original data reference doesn't conflict with the
5911         created vector data reference.  Fix long line.
5912
5913 2009-10-09  Uros Bizjak  <ubizjak@gmail.com>
5914
5915         * config/i386/i386.md (any_div): New code iterator.
5916         (u): Handle div and udiv.
5917         (sgnprefix): Ditto.
5918         (<u>divqi3): Macroize insn from {,u}divqi3  using any_div
5919         code iterator.
5920         (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
5921         lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
5922         (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
5923         lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
5924
5925 2009-10-08  Joseph Myers  <joseph@codesourcery.com>
5926
5927         * gcc.c (main): Remove trailing "." from diagnostics.
5928
5929 2009-10-08  Cary Coutant  <ccoutant@google.com>
5930
5931         Add support for debugging with ICF (Identical Code Folding).
5932         * calls.c (debug.h): New #include.
5933         (emit_call_1): Call virtual_call_token debug hook.
5934         * common.opt (-fenable-icf-debug): New option.
5935         * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
5936         locations in the source).
5937         (poc_label_num): New variable.
5938         (dcall_entry, vcall_entry): New typedefs.
5939         (dcall_table, vcall_table): New variables.
5940         (struct vcall_insn): New type.
5941         (vcall_insn_table): New variable.
5942         (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
5943         (size_of_dcall_table): New function.
5944         (output_dcall_table): New function.
5945         (size_of_vcall_table): New function.
5946         (output_vcall_table): New function.
5947         (dwarf2out_direct_call): New function.
5948         (vcall_insn_table_hash): New function.
5949         (vcall_insn_table_eq): New function.
5950         (dwarf2out_virtual_call_token): New function.
5951         (dwarf2out_virtual_call): New function.
5952         (dwarf2out_init): Allocate new tables and sections.
5953         (prune_unused_types): Mark DIEs referenced from direct call table.
5954         (dwarf2out_finish): Output direct and virtual call tables.
5955         * final.c (final_scan_insn): Call direct_call and virtual_call
5956         debug hooks.
5957         * debug.h (struct gcc_debug_hooks): Add direct_call,
5958         virtual_call_token, virtual_call hooks.
5959         (debug_nothing_uid): New function.
5960         * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
5961         (debug_nothing_uid): New function.
5962         * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
5963         (xcoff_debug_hooks): Likewise.
5964         * sdbout.c (sdb_debug_hooks): Likewise.
5965         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5966         * doc/invoke.texi (-fenable-icf-debug): New option.
5967
5968 2009-10-08  Alexandre Oliva  <aoliva@redhat.com>
5969
5970         PR debug/41353
5971         * regmove.c (regmove_backward_pass): Replace src with dst in the
5972         debug insn, and check for dst before rather than after.
5973
5974 2009-10-08  Janis Johnson <janis187@us.ibm.com>
5975
5976         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
5977         (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
5978
5979 2009-10-08  Jan Hubicka  <jh@suse.cz>
5980
5981         PR middle-end/41626
5982         * cgraphbuild.c (record_reference): When parameter DATA is NULL,
5983         do not mark cgraph nodes as needed.
5984         (record_references_in_initializer): Add new only_vars parameter.
5985         * cgraph.h (record_references_in_initializer): New parameter.
5986         * varasm.c (assemble_variable): Update call.
5987         * varpool.c (varpool_analyze_pending_decls): Always look for
5988         referenced vars.
5989
5990 2009-10-08  Anatoly Sokolov  <aesok@post.ru>
5991
5992         * config/avr/avr.c (last_insn_address) Remove variable.
5993         (expand_prologue): Don't initialise last_insn_address variable.
5994         (final_prescan_insn): Don't output insn size.
5995         * config/avr/avr.opt (msize): Remove switch.
5996         * doc/invoke.texi (AVR Options): Remove documentation of -msize
5997         switch.
5998
5999 2009-10-08  Adam Nemet  <anemet@caviumnetworks.com>
6000
6001         * combine.c (label_tick_ebb_start): Fix comment.
6002         (combine_instructions): Set label_tick and label_tick_ebb_start before
6003         calling setup_incoming_promotions.  Start them from 1.  Increment
6004         label_tick instead of deriving it from the BB index.  Rather than
6005         comparing ticks use the block from the previous iteration to decide
6006         whether to start a new EBB.  Remove empty lines before function.
6007
6008 2009-10-08  Michael Matz  <matz@suse.de>
6009
6010         PR middle-end/41573
6011         * builtins.c (fold_builtin_isascii): Use fold_build2.
6012         (fold_builtin_isdigit): Ditto.
6013         * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
6014         * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
6015         remove_useless_stmts_cond, remove_useless_stmts_tf,
6016         remove_useless_stmts_tc, remove_useless_stmts_bind,
6017         remove_useless_stmts_goto, remove_useless_stmts_label,
6018         remove_useless_stmts_1, remove_useless_stmts,
6019         pass_remove_useless_stmts): Remove.
6020         * tree-pass.h (pass_remove_useless_stmts): Don't declare.
6021         * passes.c (init_optimization_passes): Don't add
6022         pass_remove_useless_stmts.
6023         * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
6024         * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
6025         static constants.
6026         * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
6027         for static constants.
6028         * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
6029         * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
6030
6031 2009-10-08  Richard Guenther  <rguenther@suse.de>
6032
6033         * gimple.c (free_gimple_type_tables): New function.
6034         * gimple.h (free_gimple_type_tables): Declare.
6035
6036 2009-10-07  Mark Heffernan  <meheff@google.com>
6037
6038         * ipa-prop.c (ipa_print_node_params) Only print
6039         names of named arguments.
6040
6041 2009-10-08  Rafael Avila de Espindola  <espindola@google.com>
6042
6043         * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
6044         being statically linked.
6045
6046 2009-10-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6047
6048         * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
6049
6050 2009-10-08  Jan Hubicka  <jh@suse.cz>
6051
6052         PR bootstrap/41620
6053         * ipa.c (cgraph_externally_visible_p,
6054         function_and_variable_visibility,
6055         whole_program_function_and_variable_visibility): Skip non-finalized
6056         nodes.
6057
6058 2009-10-08  Nick Clifton  <nickc@redhat.com>
6059
6060         * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
6061         CONST_DOUBLEs.
6062
6063 2009-10-08  Andreas Tobler  <a.tobler@schweiz.org>
6064
6065         PR bootstrap/37739
6066         * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
6067
6068 2009-10-07  Joseph Myers  <joseph@codesourcery.com>
6069
6070         PR c/41182
6071         * c-common.c (c_fully_fold_internal): Strip nops from the result
6072         of recursive calls to c_fully_fold_internal.
6073         (c_wrap_maybe_const): New.
6074         (c_save_expr): Use c_wrap_maybe_const.
6075         * c-common.h (c_wrap_maybe_const): Declare.
6076         * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
6077         build_binary_op): Use c_wrap_maybe_const.
6078
6079 2009-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6080
6081         * real.c: Fix comment to reflect actual exponent size.
6082
6083 2009-10-08  Ben Elliston  <bje@au.ibm.com>
6084
6085         * config/rs6000/a2.md: Add FSF comment header.
6086
6087 2009-10-07  Uros Bizjak  <ubizjak@gmail.com>
6088
6089         * config/i386/i386.md (any_extend): New code iterator.
6090         (u, s): New code attributes.
6091         (sgnprefix): Ditto.
6092         (DWIH): Rewrite as code iterator for SI and DI modes.
6093         (DWI): Rewrite as mode attribute.
6094         (dwi): New mode attribute.
6095         (di): Depend on SI mode and DI mode.
6096         (doubleint_general_operand): Remove mode attribute.
6097
6098         (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
6099         DWIH mode iterator.
6100
6101         (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
6102         (*sub<mode>3_doubleword): Ditto.
6103
6104         (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
6105         using SWIM248 mode iterator.
6106         (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
6107         using SWI48 mode iterator.
6108         (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
6109         patterns using DWIH mode iterator and any_extend code iterator.
6110         (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
6111         using any_extend code iterator.
6112         (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
6113         patterns using DWIH mode iterator and any_extend code iterator.
6114         (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
6115         using any_extend code iterator.
6116         (<s>mul<mode>3_highpart): Macroize expander from
6117         {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
6118         and any_extend code iterator.
6119         (*<s>muldi3_highpart_1): Macroize insn from
6120         *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
6121         (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
6122         patterns using any_extend code iterator.
6123         (*<s>mulsi3_highpart_zext): Macroize insn from
6124         *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
6125
6126 2009-10-07  Jakub Jelinek  <jakub@redhat.com>
6127
6128         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
6129         DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
6130         refering to a DIE with DW_AT_const_value.
6131
6132 2009-10-07  Vladimir Makarov  <vmakarov@redhat.com>
6133
6134         PR middle-end/22072
6135         * ira-lives.c (check_and_make_def_conflict): Process all operands.
6136
6137 2009-10-06  Jan Hubicka  <jh@suse.cz>
6138
6139         * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
6140         correctly.
6141
6142 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
6143
6144         * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
6145         *lea_2_rex64): Move before *add<mode>_1 pattern.
6146
6147 2009-10-07  Jan Hubicka  <jh@suse.cz>
6148
6149         * collect2.c (main): Add -fno-whole-program.
6150         * gcc.c (set_collect_gcc_options): Do not remove whole program here.
6151
6152 2009-10-07  Jan Hubicka  <jh@suse.cz>
6153
6154         * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
6155         has no address taken.
6156         * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
6157         never needed.
6158         (cgraph_clone_node): Clear externally_visible flag for clones.
6159         * cgraph.h (cgraph_only_called_directly_p,
6160         cgraph_can_remove_if_no_direct_calls_p): New predicates.
6161         * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
6162         * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
6163         (ipcp_initialize_node_lattices, ipcp_estimate_growth,
6164         ipcp_insert_stage): Likwise.
6165         * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
6166         externally_visible flag.
6167         (verify_cgraph_node): Verify that inline clones look right.
6168         (process_function_and_variable_attributes): Do not set
6169         externally_visible flags.
6170         (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
6171         been already run.
6172         * lto-cgraph.c (lto_output_node): Assert that inline clones are not
6173         boundaries.
6174         * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
6175         clear externally_visible when turning into inline clones
6176         (cgraph_mark_inline_edge): Use new predicates.
6177         (cgraph_estimate_growth): Likewise.
6178         (cgraph_decide_inlining): Likewise.
6179         * ipa.c (cgraph_postorder): Likewise.
6180         (cgraph_remove_unreachable_nodes): Likewise; sanity check
6181         that inline clones are not needed.
6182         (cgraph_externally_visible_p): New predicate.
6183         (function_and_variable_visibility): Add whole_program parameter;
6184         always set externally_visible flag; handle COMDAT function
6185         privatization.
6186         (local_function_and_variable_visibility): New function.
6187         (gate_whole_program_function_and_variable_visibility): New function.
6188         (whole_program_function_and_variable_visibility): New function.
6189         (pass_ipa_whole_program_visibility): New function.
6190         * passes.c  (init_optimization_passes): Add whole program visibility
6191         pass.
6192         (do_per_function_toporder, function_called_by_processed_nodes_p): Do
6193         not care about needed/reachable flags.
6194         * varpool.c: Include flags.h
6195         (decide_is_variable_needed): When doing LTO assume whole-program mode.
6196         (varpool_finalize_decl): When we are in LTO read-back, all variables
6197         are analyzed.
6198         (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
6199
6200 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6201
6202         * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
6203         add MASK_HARD_DFP.
6204
6205 2009-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6206
6207         * config.gcc: Don't include the makefile fragments intended for
6208         libgcc.
6209         * config/s390/fixdfdi.h: File removed.
6210         * config/s390/libgcc-glibc.ver: File removed.
6211         * config/s390/s390.h: Remove the fixdfdi.h hack.
6212         * config/s390/t-crtstuff: File moved to libgcc dir.
6213         * config/s390/t-linux: Likewise.
6214         * config/s390/t-tpf: libgcc specific parts removed.
6215         * config/s390/t-linux64: Likewise.
6216
6217 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
6218
6219         * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
6220         (lto-compress.o): Likewise.
6221
6222 2009-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
6223
6224         PR target/41512
6225         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
6226         dllexport to class members here.
6227         (i386_pe_determine_dllimport_p): Only check static class data for
6228         definition.
6229         (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
6230         * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
6231         functions for vague linkage.
6232         (i386_pe_type_dllexport_p): Fix formatting.
6233         (maybe_add_dllexport) New function.
6234         (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
6235         to class members.
6236
6237 2009-10-07  Ben Elliston  <bje@au.ibm.com>
6238
6239         * config/rs6000/a2.md: Remove duplicated lines.
6240
6241 2009-10-07  Ben Elliston  <bje@au.ibm.com>
6242
6243         * config.gcc (powerpc*-*-*): Handle a2.
6244         * config/rs6000/rs6000.md (cpu): Add ppca2.  Include "a2.md".
6245         * config/rs6000/a2.md: New file.
6246         * config/rs6000/rs6000.opt (mno-update): New.
6247         (mupdate): Return to using a mask, not a var.
6248         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
6249         (enum processor_type): Add PROCESSOR_PPCA2.
6250         * config/rs6000/rs6000.c (ppca2_cost): New costs.
6251         (rs6000_override_options): Add "a2" to processor_target_table.
6252         Update rs6000_always_hint logic.  Correctly set rs6000_cost for a2.
6253         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
6254
6255 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
6256
6257         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
6258         Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
6259         reference to nonexistent gen_truncxfxf2 function.
6260
6261 2009-10-06  Uros Bizjak  <ubizjak@gmail.com>
6262
6263         * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
6264         (DWIH, g, di, doubleint_general_operand): New mode attributes.
6265         (general_operand): Handle TI mode.
6266         (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
6267         using SDWIM mode iterator.
6268         (*add<mode>3_doubleword): New insn_and_split pattern.  Macroize
6269         pattern from *add{di,ti}3_1 patterns and corresponding splitters
6270         using DWI mode iterator.
6271         (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
6272         patterns using SWI mode iterator.
6273         (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
6274         using SWI48 mode iterator.
6275         (*add<mode>_1): Ditto from add{si,di}_1 patterns.
6276         (*add<mode>_2): Ditto from add{si,di}_2 patterns.
6277         (*add<mode>_3): Ditto from add{si,di}_3 patterns.
6278         (*add<mode>_5): Ditto from add{si,di}_5 patterns.
6279         (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
6280         using SDWIM mode iterator.
6281         (*sub<mode>3_doubleword): New insn_and_split pattern.  Macroize
6282         pattern from *sub{di,ti}3_1 patterns and corresponding splitters
6283         using DWI mode iterator.
6284         (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
6285         patterns using SWI mode iterator.
6286         (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
6287         (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
6288         (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
6289         (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
6290         patterns using plusminus code iterator.
6291         (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
6292         sub<mode>3 patterns using plusminus code iterator.
6293         * config/i386/i386.c (override_options): Update the call to
6294         gen_subdi_carry_rex64 for renamed function.
6295         (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
6296         and gen_adddi3_carry_rex64 for renamed functions.  Use indirect
6297         calls to instruction expanders.
6298
6299 2009-10-06  Martin Jambor  <mjambor@suse.cz>
6300
6301         PR bootstrap/41395
6302         * opts.c (decode_options): Run IPA-SRA at -O2.
6303
6304 2009-10-06  Richard Guenther  <rguenther@suse.de>
6305
6306         * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
6307
6308 2009-10-06  Tobias Burnus  <burnus@net-b.de>
6309
6310         PR lto/41591
6311         * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
6312         -flto and -fwhole-program flags can be combined.
6313
6314 2009-10-06  Ryan Mansfield  <rmansfield@qnx.com>
6315
6316         PR driver/41217
6317         * gcc.c (process_command): Check that -o argument was specified.
6318
6319 2009-10-06  Jerry Quinn  <jlquinn@optonline.net>
6320
6321         * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
6322
6323 2009-10-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6324
6325         * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
6326         * doc/invoke.texi (Warning Options): Annotate allowed languages
6327         for -Wunsuffixed-float-constants.
6328
6329 2009-10-05  Jakub Jelinek  <jakub@redhat.com>
6330
6331         * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
6332         DW_TAG_{const,volatile}_type if its DW_AT_type already has the
6333         same name and isn't the main variant.
6334
6335         PR debug/41558
6336         * dwarf2out.c (loc_by_reference): Removed.
6337         (dw_loc_list_1): New function.
6338         (dw_loc_list): Remove toplev argument, add want_address argument.
6339         Don't look at decl_by_reference_p at all.  Use dw_loc_list_1.
6340         (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
6341         want_address == 2 to dw_loc_list.  For successful dw_loc_list
6342         set have_address to 1 only if want_address is not 0.
6343
6344 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
6345
6346         * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
6347         * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
6348         a code block followed by two pointers.
6349         (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
6350         * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
6351         (MIPS_MOVE): Likewise.
6352         (MIPS_LUI): Likewise.
6353         (MIPS_JR): Likewise.
6354         (MIPS_BAL): Likewise.
6355         (MIPS_NOP): Likewise.
6356         (mips_asm_trampoline_template): Delete.
6357         (mips_trampoline_code_size): New function.
6358         (mips_trampoline_init): Add shorter sequences for all cases
6359         except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
6360         Calculate the opcodes directly, rather than copying from a template.
6361         Only flush the code part of the trampoline.
6362         (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
6363
6364 2009-10-05  Richard Sandiford  <rdsandiford@googlemail.com>
6365
6366         * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
6367         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
6368         (INCOMING_RETURN_ADDR_RTX): Likewise.
6369         (FUNCTION_PROFILER): Likewise.  Replace GP_REG_FIRST + 1
6370         with AT_REGNUM.
6371         * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
6372         with RETURN_ADDR_REGNUM.
6373         (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
6374         * config/mips/mips.c (mips16_build_call_stub): Replace
6375         GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
6376         with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
6377         (mips_print_operand_punctuation): Likewise.
6378         (mips_frame_set): Likewise.
6379         (mips16e_output_save_restore): Likewise.
6380         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
6381         (mips_save_reg_p): Likewise.
6382         (mips_return_addr): Likewise.
6383         (mips_set_return_address): Likewise.
6384         (mips_direct_save_slot_move_p): Likewise.
6385         (mips_output_function_prologue): Likewise.
6386         (mips_restore_reg): Likewise.
6387         (mips_expand_epilogue): Likewise.
6388         (mips_epilogue_uses): Likewise.
6389         * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
6390         (*mov<mode>_ra): Use it instead of a hard-coded 31.
6391         (clear_hazard_<mode>): Likewise.
6392         (call_internal): Likewise.
6393         (call_internal_direct): Likewise.
6394         (call_direct_split): Likewise.
6395         (call_value_internal): Likewise.
6396         (call_value_split): Likewise.
6397         (call_value_internal_direct): Likewise.
6398         (call_value_direct_split): Likewise.
6399         (call_value_multiple_internal): Likewise.
6400         (call_value_multiple_split): Likewise.
6401
6402 2009-10-05  Eric Botcazou  <ebotcazou@adacore.com>
6403             Jakub Jelinek  <jakub@redhat.com>
6404
6405         PR rtl-optimization/41511
6406         * combine.c (record_value_for_reg): Pass explicit values as argument
6407         to get_last_value_validate.
6408         (get_last_value_validate): Document INSN parameter.
6409         For non-readonly MEMs, assume they might have been modified if INSN
6410         was in another basic block.
6411         (get_last_value): Minor reformatting.
6412
6413 2009-10-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6414
6415         PR tree-opt/40992
6416         * final.c (asm_str_count): Split out from asm_insn_count.
6417         * rtl.h (asm_str_count): New prototype.
6418         * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
6419         asm_str_count.
6420
6421 2009-10-05  Sriraman Tallam  <tmsriram@google.com>
6422
6423         * doc/plugins.texi: Change plugin_pass to register_pass_info.
6424
6425 2009-10-05  Basile Starynkevitch  <basile@starynkevitch.net>
6426             Rafael Espindola  <espindola@google.com>
6427
6428         * gengtype.c (write_types): Moved call to write_func_for_structure
6429         into seperate loops.
6430
6431 2009-10-05  Richard Guenther  <rguenther@suse.de>
6432
6433         PR lto/41281
6434         * lto-cgraph.c (output_cgraph): Output toplevel asms.
6435         (input_cgraph_1): Input toplevel asms.
6436
6437 2009-10-05  Richard Guenther  <rguenther@suse.de>
6438
6439         PR lto/40902
6440         * lto-symtab.c (lto_compatible_attributes_p): Remove.
6441         (external_aggregate_decl_p): Likewise.
6442         (lto_symtab_compatible): Re-structure.  Remove dead code.
6443         For variables ignore toplevel qualifiers when comparing types.
6444         Issue warnings, not errors for mismatched user-alignment.
6445
6446 2009-10-05  Richard Guenther  <rguenther@suse.de>
6447
6448         PR lto/41552
6449         PR lto/41487
6450         * lto-symtab.c (struct lto_symtab_base_def): Remove.
6451         (struct lto_symtab_identifier_def): Likewise.
6452         (struct lto_symtab_decl_def): Likewise.
6453         (struct lto_symtab_entry_def): New.
6454         (lto_symtab_identifier_t): Rename to ...
6455         (lto_symtab_entry_t): ... this.
6456         (lto_symtab_decls): Remove.
6457         (lto_symtab_base_hash): Rename to ...
6458         (lto_symtab_entry_hash): ... this.
6459         (lto_symtab_base_eq): Rename to ...
6460         (lto_symtab_entry_eq): ... this.
6461         (lto_symtab_base_marked_p): Rename to ...
6462         (lto_symtab_entry_marked_p): ... this.
6463         (lto_symtab_identifier_marked_p): Remove.
6464         (lto_symtab_decl_marked_p): Likewise.
6465         (lto_symtab_maybe_init_hash_tables): Rename to ...
6466         (lto_symtab_maybe_init_hash_table): ... this.
6467         (lto_symtab_set_resolution_and_file_data): Remove.
6468         (lto_symtab_register_decl): New function.
6469         (lto_symtab_get_identifier): Remove.
6470         (lto_symtab_get): New function.
6471         (lto_symtab_get_resolution): Adjust.
6472         (lto_symtab_get_identifier_decl): Remove.
6473         (lto_symtab_set_identifier_decl): Likewise.
6474         (lto_symtab_merge_decl): Rename to ...
6475         (lto_symtab_merge): ... this.  Rewrite.
6476         (lto_symtab_merge_var): Remove.
6477         (lto_symtab_merge_fn): Likewise.
6478         (lto_symtab_prevailing_decl): Adjust.
6479         (lto_cgraph_replace_node): New function.
6480         (lto_symtab_merge_decls_2): Likewise.
6481         (lto_symtab_merge_decls_1): Likewise.
6482         (lto_symtab_fixup_var_decls): Likewise.
6483         (lto_symtab_resolve_symbols): Likewise.
6484         (lto_symtab_merge_decls): Likewise.
6485         (lto_symtab_prevailing_decl): Adjust.
6486         (lto_symtab_get_symtab_def): Remove.
6487         (lto_symtab_get_file_data): Likewise.
6488         (lto_symtab_clear_resolution): Adjust.
6489         (lto_symtab_clear_resolution): Likewise.
6490         * lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
6491         (input_cgraph_1): Likewise.
6492         * lto-streamer-in.c (get_resolution): Do not provide fake
6493         symbol resolutions here.
6494         (deferred_global_decls): Remove.
6495         (lto_register_deferred_decls_in_symtab): Likewise.
6496         (lto_register_var_decl_in_symtab): Change signature, register
6497         variable via lto_symtab_register_decl.
6498         (lto_register_function_decl_in_symtab): Likewise.
6499         (lto_read_tree): Adjust.
6500         * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
6501         (lto_symtab_merge_var): Likewise.
6502         (lto_symtab_merge_fn): Likewise.
6503         (lto_symtab_register_decl): Declare.
6504         (lto_symtab_merge_decls): Likewise.
6505
6506 2009-10-05  Richard Guenther  <rguenther@suse.de>
6507
6508         PR tree-optimization/23821
6509         * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
6510         * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
6511         simple IV increments.
6512
6513 2009-10-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6514
6515         * config/arm/arm.c (arm_override_options): Really initialize
6516         flag_dwarf2_cfi_asm to 0.
6517
6518 2009-10-05  Doug Kwan  <dougkwan@google.com>
6519
6520         PR rtl-optimization/41574
6521         * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
6522         floating point and we are not doing unsafe math optimizations.
6523
6524 2009-10-03  Simon Baldwin  <simonb@google.com>
6525             Cary Coutant  <ccoutant@google.com>
6526             Rafael Espindola  <espindola@google.com>
6527             Richard Guenther  <rguenther@suse.de>
6528             Jan Hubicka  <jh@suse.cz>
6529             Doug Kwan <dougkwan@google.com>
6530             H.J. Lu  <hongjiu.lu@intel.com>
6531             Bill Maddox  <maddox@google.com>
6532             Ryan Mansfield  <rmansfield@qnx.com>
6533             Diego Novillo  <dnovillo@google.com>
6534             Ollie Wild  <aaw@google.com>
6535             Kenneth Zadeck <zadeck@naturalbridge.com>
6536
6537         * lto-cgraph.c: New file.
6538         * lto-compress.c: New file.
6539         * lto-compress.h: New file.
6540         * lto-opts.c: New file.
6541         * lto-section-in.c: New file.
6542         * lto-section-out.c: New file.
6543         * lto-streamer-in.c: New file.
6544         * lto-streamer-out.c: New file.
6545         * lto-streamer.c: New file.
6546         * lto-streamer.h: New file.
6547         * lto-symtab.c: New file.
6548         * lto-wpa-fixup.c: New file.
6549         * lto-wrapper.c: New file.
6550
6551 2009-10-03  Simon Baldwin  <baldwin@google.com>
6552             Ben Elliston  <bje@au.ibm.com>
6553             Rafael Espindola  <espindola@google.com>
6554             Nathan Froyd  <froydnj@codesourcery.com>
6555             Jan Hubicka  <jh@suse.cz>
6556             Doug Kwan  <dougkwan@google.com>
6557             Diego Novillo  <dnovillo@google.com>
6558             Kenneth Zadeck  <zadeck@naturalbridge.com>
6559
6560         * Makefile.in (enable_lto): New.
6561         (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
6562         (LINKER_PLUGIN_API_H): Define.
6563         (LTO_SYMTAB_H): Define.
6564         (LTO_STREAMER_H): Define.
6565         (TREE_VECTORIZER_H): Define.
6566         (INCLUDES): Add LIBELFINC.
6567         (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
6568         lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
6569         lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
6570         (MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
6571         (native): Add lto-wrapper$(exeext)
6572         (lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
6573         lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
6574         lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
6575         (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
6576         (varasm.o): Add dependency on tree-iterator.h.
6577         (cgraph.o): Add dependency on cif-code.def.
6578         (ipa-reference.o): Add dependency on LTO_STREAMER_H.
6579         (ipa-pure-const.o): Likewise.
6580         (GTFILES): Add lto-symtab.c.
6581         (install-lto-wrapper): New.
6582         * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
6583         and enable_lto.  If LIBELFLIBS is set, define HAVE_libelf.
6584         * config.in: Regenerate.
6585
6586 2009-10-03  Rafael Espindola  <espindola@google.com>
6587             Diego Novillo  <dnovillo@google.com>
6588
6589         * cgraphunit.c (ipa_passes): Prevent lto1 from calling
6590         ipa_write_summaries.
6591         Call execute_ipa_summary_passes for all_regular_ipa_passes and
6592         all_lto_gen_passes.
6593         (cgraph_optimize): Make extern.
6594
6595 2009-10-03  Nathan Froyd  <froydnj@codesourcery.com>
6596             Kenneth Zadeck <zadeck@naturalbridge.com>
6597
6598         * toplev.c (in_lto_p): Declare.
6599         * collect2.c (scan_prog_file): Read all the output when reading
6600         information for LTO.
6601         (enum lto_mode_d): Declare.
6602
6603 2009-10-03  Richard Guenther  <rguenther@suse.de>
6604             Diego Novillo  <dnovillo@google.com>
6605
6606         * gimple.c: Include target.h and alias.h.
6607         (gimple_types): Declare.
6608         (type_hash_cache): Declare.
6609         (gimple_alloc_stat): Make extern.
6610         (gimple_build_eh_must_not_throw): Call
6611         gimple_eh_must_not_throw_set_fndecl.
6612         (struct type_pair_d): Declare.
6613         (type_pair_t): Declare.
6614         (type_pair_hash): New.
6615         (type_pair_eq): New.
6616         (lookup_type_pair): New.
6617         (gimple_force_type_merge): New.
6618         (compare_type_names_p): New.
6619         (compare_field_offset): New.
6620         (gimple_types_compatible_p): New.
6621         (struct sccs): Declare.
6622         (next_dfs_num): Declare.
6623         (iterative_hash_gimple_type): New.
6624         (visit): New.
6625         (iterative_hash_type_name): New.
6626         (iterative_hash_gimple_type): New.
6627         (gimple_type_hash): New.
6628         (gimple_type_eq): New.
6629         (gimple_register_type): New.
6630         (print_gimple_types_stats): New.
6631         (gimple_signed_or_unsigned_type): New.
6632         (gimple_unsigned_type): New.
6633         (gimple_signed_type): New.
6634         (gimple_get_alias_set): New.
6635         (gimple_decl_printable_name): Do not use DMGL_TYPES.
6636         * gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
6637         (gimple_force_type_merge): Declare.
6638         (gimple_types_compatible_p): Declare.
6639         (gimple_register_type): Declare.
6640         (print_gimple_types_stats): Declare.
6641         (gimple_unsigned_type): Declare.
6642         (gimple_signed_type): Declare.
6643         (gimple_get_alias_set): Declare.
6644         (gimple_eh_must_not_throw_set_fndecl): New.
6645
6646 2009-10-03  Jan Hubicka  <jh@suse.cz>
6647             Kenneth Zadeck <zadeck@naturalbridge.com>
6648
6649         * ipa-pure-const.c: Include lto-streamer.h.
6650         (register_hooks): Factor out of ...
6651         (generate_summary): ... here.
6652         (pure_const_write_summary): New.
6653         (pure_const_read_summary): New.
6654         (pass_ipa_pure_const): Add pure_const_write_summary and
6655         pure_const_read_summary.
6656         * ipa-reference.c: Include lto-streamer.h.
6657         (add_new_function): New.
6658         (remove_node_data): New.
6659         (duplicate_node_data): New.
6660         (ipa_init): Guard against multiple calls.
6661         Move hook setup from analyze_function.
6662         (write_node_summary_p): New.
6663         (ipa_reference_write_summary): New.
6664         (ipa_reference_read_summary): New.
6665         (pass_ipa_reference): Add ipa_reference_write_summary and
6666         ipa_reference_read_summary.
6667         * cgraph.h (cgraph_local_info): Add field lto_file_data.
6668         (struct cgraph_edge): Add fields lto_stmt_uid and
6669         call_stmt_cannot_inline_p.
6670         (cgraph_optimize): Declare.
6671         (cgraph_decide_is_function_needed): Declare.
6672         (reset_inline_failed): Declare.
6673         (enum LTO_cgraph_tags): Declare.
6674         (LTO_cgraph_tag_names): Declare.
6675         (LCC_NOT_FOUND): Define.
6676
6677 2009-10-03  Doug Kwan  <dougkwan@google.com>
6678             Rafael Espindola  <espindola@google.com>
6679             Jan Hubicka  <jh@suse.cz>
6680             Diego Novillo  <dnovillo@google.com>
6681             Kenneth Zadeck  <zadeck@naturalbridge.com>
6682
6683         * passes.c (all_regular_ipa_passes): New.
6684         (all_ipa_passes): Rename to all_small_ipa_passes.
6685         (init_optimization_passes): Init all_regular_ipa_passes.
6686         * tree-pass.h (all_regular_ipa_passes): New.
6687         (all_ipa_passes): Rename to all_small_ipa_passes.
6688         * passes.c (all_lto_gen_passes): New.
6689         (init_optimization_passes): Initialize all_lto_gen_passes.
6690         (execute_ipa_summary_passes): Make non-static.
6691         (ipa_write_summaries_1): New.
6692         (ipa_write_summaries_2): New.
6693         (ipa_write_summaries): New.
6694         (ipa_write_summaries_of_cgraph_node_set): New.
6695         (ipa_read_summaries_1): New.
6696         (ipa_read_summaries): New.
6697         (execute_ipa_pass_list): Call cgraph_process_new_functions.
6698         (execute_regular_ipa_pass_list): Remove.
6699         (init_optimization_passes): Schedule
6700         pass_rebuild_cgraph_edges and pass_early_inline outside
6701         of pass_all_early_optimizations.  Document reason.
6702         (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
6703         pass_ipa_lto_finish_out): New pass.
6704         (pass_ipa_summary_passes): Start and stop timers if the pass has them.
6705         (execute_all_ipa_transforms): New.
6706         (execute_one_pass): Don't call execute_one_ipa_transform_pass.
6707         (dump_properties, debug_properties): New.
6708         * tree-optimize.c (gate_all_early_local_passes): Return
6709         false if we are in lto1.
6710         (tree_rest_of_compilation): Call execute_all_ipa_transforms.
6711         * tree-pass.h (execute_all_ipa_transforms): Declare.
6712         (pass_ipa_function_and_variable_visibility): Declare.
6713         (pass_ipa_early_inline): Declare.
6714         (pass_ipa_lto_gimple_out): Declare.
6715         (pass_ipa_lto_wpa_fixup): Declare.
6716         (pass_ipa_lto_finish_out): Declare.
6717         (all_small_ipa_passes, all_regular_ipa_passes,
6718         all_lto_gen_passes): Declare.
6719         (execute_ipa_summary_passes): Declare.
6720         (execute_all_ipa_transforms): Declare.
6721         (ipa_write_summaries): Declare
6722         (ipa_write_summaries_of_cgraph_node_set): Declare.
6723         (ipa_read_summaries): Declare.
6724
6725 2009-10-03  Doug Kwan  <dougkwan@google.com>
6726             Ollie Wild  <aaw@google.com>
6727
6728         * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.
6729
6730         * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
6731         (lto_mode): New variable.
6732         (maybe_run_lto_and_relink): Handle the -fwpa option.
6733         (main): Handle the -fwpa option.
6734         (maybe_unlink_list): New function.
6735         * gcc.c (link_lto_options): Replace -flto with -fwpa.
6736         * common.opt (flto): New flag.
6737         * toplev.c (flag_generate_lto): Declare.
6738
6739 2009-10-03  Simon Baldwin  <simonb@google.com>
6740
6741         * common.opt (flto-compression-level): New flag.
6742
6743         * opts.c: Include lto-opts.h.
6744         (handle_option): Call lto_register_user_option for each
6745         valid option handled.
6746         (decode_options): Clear registered options before the options
6747         handling loop.
6748
6749 2009-10-03  Cary Coutant  <ccoutant@google.com>
6750
6751         * collect2.c (is_elf): New function.
6752         (scan_prog_file): Require LTO object to be in ELF format.
6753
6754 2009-10-03  Rafael Espindola  <espindola@google.com>
6755
6756         * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
6757         libgcc to the linker.
6758
6759         * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.
6760
6761         * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
6762         (collect_execute): Add flags argument. Pass flags to pex_run. Update
6763         all callers.
6764         * collect2.h (collect_execute): Add flags argument.
6765         * tlink.c (tlink_execute): Update call to collect_execute.
6766         * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
6767         (use_linker_plugin): New.
6768         (use_linker_plugin_spec_function): New.
6769         (LINK_COMMAND_SPEC): Pass plugin options to the linker.
6770         (linker_plugin_file_spec): New.
6771         (lto_wrapper_spec): New.
6772         (lto_gcc_spec): New.
6773         (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
6774         (static_spec_functions): Add use-linker-plugin.
6775         (process_command): Handle -use-linker-plugin.
6776         (main): Use lto_wrapper_spec instead of lto_wrapper. Set
6777         linker_plugin_file_spec and lto_gcc_spec.
6778         (use_linker_plugin_spec_function): New.
6779
6780 2009-10-03  Richard Guenther  <rguenther@suse.de>
6781
6782         PR lto/41547
6783         PR lto/41548
6784         * tree.h (is_lang_specific): Include LANG_TYPE.
6785         * tree.c (find_decls_types_r): Manually add interesting parts
6786         of TYPE_FIELDS.  Walk BINFO_VIRTUALS.  Do not walk TYPE_METHODS.
6787
6788         * gimple.c (type_pair_hash): Make symmetric.
6789         (type_pair_eq): Likewise.
6790         (lookup_type_pair): Increase initial hashtable size.
6791         (gimple_force_type_merge): Rely on type-pair symmetry.
6792         (visit): Remove excessive checking code.
6793         (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
6794         (gimple_register_type): Remove getenv calls, shrink initial
6795         hashtable size.
6796
6797         PR middle-end/41502
6798         * cgraphunit.c (ipa_passes): Do not remove bodies of extern
6799         inline functions if not generating lto output.
6800
6801         PR lto/41379
6802         * toplev.c (finalize): In WPA mode remove the asm file.
6803
6804 2009-10-03  Doug Kwan  <dougkwan@google.com>
6805
6806         * ipa-inline.c (cgraph_mark_inline): Check
6807         edge->call_stmt_cannot_inline_p instead of calling
6808         gimple_call_cannot_inline_p.
6809         (cgraph_decide_inlining): Do nothing in WPA and LTRANS.
6810         (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
6811         (inline_generate_summary): Do nothing in LTRANS.
6812         * cgraph.c (initialize_inline_failed): Make sure e->call_stmt
6813         exists before calling gimple_call_cannot_inline_p.
6814         (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
6815         (cgraph_clone_edge): Add argument STMT_UID.  Modify all callers.
6816         Update new_edge->lto_stmt_uid.
6817         * cgraphbuild.c (reset_inline_failed): New.
6818
6819         * common.opt (fwpa): New flag.
6820         (fltrans): New option.
6821         * gcc.c (gcc_lto_option_t): New type.
6822         (current_lto_option): New variable.
6823         (lto_single_spec_function): Remove and is replaced by ..
6824         (lto_option_spec_function): New function.
6825         (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
6826         passing the -flto flag.
6827         (cc1_options): Separate non-LTO related parts into ..
6828         (cc1_non_lto_options): Non-LTO related options shared by all FEs.
6829         (lto1_options): New spec for lto FE.
6830         (link_lto_options): New spec for handling LTO flags in linker.
6831         (invoke_lto_single): Re-format to fit in 80 column.  Replace
6832         lto-single with lto-option.
6833         (static_specs): Add cc1_non_lto_options, lto1_options and
6834         link_lto_options.
6835         (static_spec_function): Replace lto-single with lto-option.
6836         (process_command): Handle -flto, -fwpa and -fltran by setting
6837         current_lto_option and not passing it to subprocess unconditionally.
6838
6839 2009-10-03  Bill Maddox  <maddox@google.com>
6840
6841         Add `gcc' driver support for link-time code generation (LTO).
6842
6843         * collect2.c (enum pass): Add new literal PASS_LTOINFO.
6844         (lto_flag, lto_objects, lto_o_file): New variables.
6845         (struct lto_object, struct lto_object_list): New structures.
6846         (collect_exit, handler): Remove LTO temporary output file on exit.
6847         (add_lto_object): New function.
6848         (maybe_run_lto_and_relink): New function. Perform link time code
6849         generation and relinking for object files containing LTO information.
6850         (main): Invoke maybe_run_lto_and_relink().
6851         (dump_argv): New function.  For debugging, currently disabled.
6852         (scan_prog_file): Add LTO information pass.
6853         * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
6854         collect2.
6855         * toplev.c (compile_file): Emit assembler directive to create
6856         the `gnu_lto_v1' marker symbol when compiling with `-flto'.
6857
6858 2009-10-03  Diego Novillo  <dnovillo@google.com>
6859
6860         * c.opt: Add LTO to warn_abi and warn_psabi.
6861
6862         * tree.c (fld_worklist_push): Rename from PUSH.  Convert to static
6863         inline function.  Ignore language-specific nodes.  Update all users.
6864         (find_decls_types_r): Do not traverse the subtrees of
6865         language-specific nodes.  Do not traverse DECL_INITIAL for TYPE_DECLs.
6866         * tree.h (is_lang_specific): New.
6867         * langhooks.h (struct lang_hooks_for_decls): Remove
6868         may_need_assembler_name_p.  Update all users.
6869
6870         * c-common.c (set_builtin_user_assembler_name): Move ...
6871         * builtins.c (set_builtin_user_assembler_name): ... here.
6872         (is_builtin_name): Add comment
6873         (is_builtin_fn): New.
6874         * except.c (output_ttype): Only call
6875         lookup_type_for_runtime if TYPE is not a runtime type.
6876
6877         * passes.c (register_pass): Call position_pass on
6878         all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
6879         * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
6880         (TV_IPA_LTO_DECL_IO): Define.
6881         (TV_IPA_LTO_CGRAPH_IO): Define.
6882         (TV_LTO): Define.
6883         (TV_WHOPR_WPA): Define.
6884         (TV_WHOPR_WPA_IO): Define.
6885         (TV_WHOPR_LTRANS): Define.
6886         (TV_WHOPR_WPA_FIXUP): Define.
6887         (TV_WHOPR_WPA_LTRANS_EXEC): Define.
6888         * tree-cfg.c (tree_node_can_be_shared): Make extern.
6889         * tree-flow.h (tree_node_can_be_shared): Declare.
6890         * tree-inline.c (tree_can_inline_p): Check that E has a
6891         statement associated with it.
6892         * tree.c (free_lang_data_in_binf): Factor out of ...
6893         (free_lang_data_in_type): ... here.
6894         Call RECORD_OR_UNION_TYPE_P.
6895         (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
6896         set.  Call lang_hooks.decls.may_need_assembler_name_p if set.
6897         (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
6898         (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE.  Set
6899         write_symbols to NO_DEBUG.  Set debug_hooks to do_nothing_debug_hooks.
6900         (gate_free_lang_data): Return true if flag_generate_lto is set.
6901         (walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
6902         * c-common.h (set_builtin_user_assembler_name): Move ...
6903         * tree.h (set_builtin_user_assembler_name): ... here.
6904
6905         * common.opt (flto-report): New flag.
6906         * opts.c (complain_wrong_lang): Do not complain if running lto1.
6907         * collect2.c (scan_prog_file): Send the error output of
6908         'nm' to HOST_BIT_BUCKET.
6909
6910 2009-10-03  Ollie Wild  <aaw@google.com>
6911
6912         * langhooks-def.h (lhd_begin_section): New function declaration.
6913         (lhd_write_section): New function declaration.
6914         (lhd_end_section): New function declaration.
6915         (LANG_HOOKS_BEGIN_SECTION): New macro.
6916         (LANG_HOOKS_WRITE_SECTION_DATA): New macro.
6917         (LANG_HOOKS_END_SECTION): New macro.
6918         (LANG_HOOKS_LTO): New macro.
6919         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
6920         * langhooks.c (output.h): Add include.
6921         (saved_section): New static variable.
6922         (lhd_begin_section): New function.
6923         (lhd_write_section_data): New function.
6924         (lhd_end_section): New function.
6925         * langhooks.h (struct lang_hooks_for_lto): New structure.
6926         (struct lang_hooks): Add member lto.
6927         * Makefile.in (langhooks.o): Add dependency on output.h.
6928
6929         * c-opts.c (c_common_post_options): Handle -flto and -fwhopr.
6930
6931 2009-10-03  Richard Guenther  <rguenther@suse.de>
6932
6933         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
6934         Handle LTO.
6935
6936 2009-10-03  Simon Baldwin  <simonb@google.com>
6937             Richard Guenther  <rguenther@suse.de>
6938             Janis Johnson  <janis187@us.ibm.com>
6939             Doug Kwan  <dougkwan@google.com>
6940             Diego Novillo  <dnovillo@google.com>
6941             Ramana Radhakrishnan  <ramana.r@gmail.com>
6942             Ollie Wild  <aaw@google.com>
6943
6944         * doc/install.texi: Add documentation for libelf and --enable-lto.
6945         * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
6946         -flto-report, -flto-compression-level and -use-linker-plugin.
6947         * doc/sourcebuild.texi: Document use of zlib.  Document lto-plugin.
6948         Add section for LTO Testing.
6949
6950 2009-10-02  Cary Coutant  <ccoutant@google.com>
6951
6952         Add support for comdat type sections for DWARF v4.
6953         Merge from dwarf4 branch.
6954
6955         * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
6956         (dw_die_ref): Define vector type.
6957         (enum dw_val_class): Add dw_val_class_data8.
6958         (struct dw_val_struct): Add v.val_data8.
6959         (comdat_type_node_ref): New type.
6960         (struct die_struct): Move die_symbol into a union; add new field
6961         die_type_node.  Change all uses.
6962         (comdat_type_node): New type.
6963         (skeleton_chain_node): New type.
6964         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
6965         (comdat_type_list): New variable.
6966         (dwarf_tag_name): Add DW_TAG_type_unit.
6967         (dwarf_attr_name): Add DW_AT_signature.
6968         (add_AT_data8): New function.
6969         (replace_child): New function.
6970         (move_all_children): New function.
6971         (print_signature): New function.
6972         (print_die): Print signature information; add dw_val_class_data8.
6973         (attr_checksum): Support dw_val_class_data8.
6974         (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
6975         (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
6976         (checksum_sleb128, checksum_uleb128): New functions.
6977         (checksum_die_context): New function.
6978         (loc_checksum_ordered): New function.
6979         (attr_checksum_ordered): New function.
6980         (struct checksum_attributes): New structure.
6981         (collect_checksum_attributes): New function.
6982         (die_checksum_ordered): New function.
6983         (generate_type_signature): New function.
6984         (same_dw_val_p): Add dw_val_class_data8.
6985         (is_symbol_die): Use new is_declaration_die function.
6986         (is_declaration_die): New function.
6987         (should_move_die_to_comdat): New function.
6988         (clone_die): New function.
6989         (clone_tree): New function.
6990         (clone_as_declaration): New function.
6991         (copy_declaration_context): New function.
6992         (generate_skeleton_ancestor_tree): New function.
6993         (generate_skeleton_bottom_up): New function.
6994         (generate_skeleton): New function.
6995         (remove_child_or_replace_with_skeleton): New function.
6996         (break_out_comdat_types): New function.
6997         (struct decl_table_entry): New type.
6998         (htab_decl_hash): New function.
6999         (htab_decl_eq): New function.
7000         (htab_decl_del): New function.
7001         (copy_ancestor_tree): New function.
7002         (copy_decls_walk): New function.
7003         (copy_decls_for_unworthy_types): New function.
7004         (build_abbrev_table): Don't assert on missing die_symbol when doing
7005         comdat type sections.
7006         (size_of_die): Use DW_FORM_sig8 for external references.  Add
7007         dw_val_class_data8.
7008         (unmark_dies): Don't assert for unmarked dies when doing comdat
7009         type sections.
7010         (value_format): Support DW_FORM_sig8 and dw_val_class_data8.
7011         (output_signature): New function.
7012         (output_die): Likewise.
7013         (output_compilation_unit_header): Mark output as DWARF version 3
7014         even if generating DWARF 4.
7015         (output_comdat_type_unit): New function.
7016         (output_line_info): Mark output as DWARF version 3 even if generating
7017         DWARF 4.
7018         (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
7019         DWARF-4.
7020         (dwarf2out_end_source_file): Likewise.
7021         (prune_unused_types_walk_attribs): Don't follow references into
7022         comdat type sections.
7023         (prune_unused_types_mark): When generating type units, do not mark
7024         children of non-defining declarations of types; do mark children of
7025         type entries.
7026         (prune_unused_types): Process comdat type sections.
7027         (htab_ct_hash): New function.
7028         (htab_ct_eq): New function.
7029         (dwarf2out_finish): Move types to comdat sections when using DWARF-4.
7030         Add a pointer to the line table from type unit entries so
7031         DW_AT_decl_file has meaning.
7032         * varasm.c (default_elf_asm_named_section): Use identifier name as
7033         comdat key instead of lang hook.
7034
7035 2009-10-02  Neil Vachharajani  <nvachhar@google.com>
7036
7037         * gcov-io.c (gcov_open): Open files read-only when MODE < 0.
7038
7039 2009-10-02  Uros Bizjak  <ubizjak@gmail.com>
7040
7041         * config/i386/i386.md (SWIM248): New mode iterator.
7042         (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
7043         divmodhi4 patterns using SWIM248 macro.
7044         (*divmod<mode>4): Macroize insn_and_split pattern from
7045         *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
7046         and their corresponding splitters usign SWIM248 macro.  Split SImode
7047         insn to generate cltd and DImode insn to generate cqto instead of
7048         move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
7049         (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
7050         (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
7051         *divmodsi_noext patterns using SWIM248 macro.
7052         (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
7053         udivmodhi4 patterns using SWIM248 macro.
7054         (*udivmod<mode>4): Macroize insn_and_split pattern from
7055         *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
7056         corresponding splitters using SWIM248 macro.
7057         (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
7058         *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
7059
7060 2009-10-02  Eric Botcazou  <ebotcazou@adacore.com>
7061
7062         * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
7063         of zero-sized element is zero-sized regardless of its extent.
7064
7065 2009-10-02  Jakub Jelinek  <jakub@redhat.com>
7066
7067         PR debug/40521
7068         * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
7069         * configure: Regenerated.
7070         * config.in: Regenerated.
7071         * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
7072         !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
7073         (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
7074         not emitting .eh_frame, emit .cfi_sections .debug_frame
7075         directive.
7076
7077         PR debug/41404
7078         PR debug/41353
7079         * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
7080         CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
7081         with '\0'.
7082         (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
7083         vars use DECL_RTL with resetting it back to NULL afterwards.
7084         * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
7085         rtx_equal_p instead of asserting it is a SYMBOL_REF.
7086         (value_format): For dw_val_class_addr only use DW_FORM_addr if
7087         the attribute type allows it, otherwise use DW_FORM_dataN.
7088         (mem_loc_descriptor): Handle CONST_STRING.
7089         (add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
7090         Handle MEM with CONST_STRING address using add_AT_string.
7091         (rtl_for_decl_init): Return MEM with CONST_STRING address instead of
7092         CONST_STRING for const arrays initialized with a string literal.
7093         (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
7094         (dwarf2out_finish): Call resolve_addr.
7095
7096 2009-10-02  Andreas Schwab  <schwab@linux-m68k.org>
7097             Maxim Kuvyrkov  <maxim@codesourcery.com>
7098
7099         * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.
7100
7101 2009-10-02  Nick Clifton  <nickc@redhat.com>
7102
7103         * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
7104         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
7105
7106 2009-10-01  Jan Hubicka  <jh@suse.cz>
7107
7108         * cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
7109         (cgraph_create_virtual_clone): Just pass redirect_callers
7110         around.
7111         * cgraph.h (cgraph_clone_node): Update prototype.
7112         * ipa-pure-const.c (self_recursive_p): New function.
7113         (propagate): Use it.
7114         * ipa-inline.c (cgraph_clone_inlined_nodes,
7115         cgraph_decide_recursive_inlining): Update.
7116
7117 2009-10-01  David Daney  <ddaney@caviumnetworks.com>
7118
7119         * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
7120         instructions for TARGET_OCTEON.
7121
7122 2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7123
7124         * config/arm/arm.c (arm_override_options): Turn off
7125         flag_dwarf2_cfi_asm for AAPCS variants.
7126
7127 2009-10-01  Martin Jambor  <mjambor@suse.cz>
7128
7129         PR middle-end/12392
7130         * tree-sra.c (convert_callers): Do not call
7131         compute_inline_parameters on one caller more than once.
7132
7133 2009-10-01  Nick Clifton  <nickc@redhat.com>
7134
7135         * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
7136         an empty string if not already defined.
7137
7138 2009-10-01  Martin Jambor  <mjambor@suse.cz>
7139
7140         PR bootstrap/41395
7141         * tree-sra.c (is_va_list_type): New function.
7142         (find_var_candidates): Call is_va_list_type.
7143         (find_param_candidates): Check that the type or the type pointed
7144         to are not va_list types.
7145
7146 2009-10-01  Martin Jambor  <mjambor@suse.cz>
7147
7148         PR c++/41503
7149         * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
7150         DECL_ARTIFICIAL (param_decl) is true.
7151
7152 2009-09-30  Gabriel Dos Reis  <gdr@cs.tamu.edu>
7153
7154         * tree.h (tree_decl_common::lang_flag_8): New.
7155         * c-common.c (c_common_reswords): Include "constexpr" as C++0x
7156         keyword.
7157         * c-common.h (RID_CONSTEXPR): New.
7158
7159 2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
7160
7161         * config/alpha/alpha.c (alpha_gimplify_va_arg_1):
7162         Use ref-all pointers.
7163         (alpha_gimplify_va_arg): Ditto.
7164
7165 2009-09-30  Jakub Jelinek  <jakub@redhat.com>
7166
7167         PR target/41279
7168         * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
7169         before insn counting loop now that BB_END (bb) is counted.  Ensure
7170         the return value isn't zero.
7171
7172 2009-09-30  Nick Clifton  <nickc@redhat.com>
7173
7174         * config.gcc (sh-symbianelf): Replace definition of extra_objs
7175         with separate definitions of c_target_objs and cxx_target_objs.
7176         * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
7177         and symbian-base.o.
7178         * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
7179         sh_symbian_import_export_class.
7180         * config/sh/sh-protos.h: Fix names of exported symbian functions.
7181         * config/sh/symbian.c: Delete, moving code into...
7182         * config/sh/symbian-base.c: ... here
7183         * config/sh/symbian-c.c: ... and here
7184         * config/sh/symbian-cxx.c: ... and here.
7185
7186 2009-09-30  Uros Bizjak  <ubizjak@gmail.com>
7187
7188         PR target/22093
7189         * config/alpha/alpha.md (unaligned_storehi_be): Force operand
7190         of plus RTX into register.
7191
7192 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7193
7194         * doc/install.texi: Linguistic and markup fixes.
7195         (Configuration) <--disable-cpp>: Remove description.
7196         <--enable-maintainer-mode>: Autotools files are affected, too.
7197         <--with-sysroot>: Improve description.
7198         (Building): Bump required GNU make version.
7199
7200 2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>
7201
7202         * config.gcc (i[34567]86-*-*): Include fma4intrin.h.
7203         (x86_64-*-*): Ditto.
7204
7205         * config/i386/fma4intrin.h: New file, provide common x86 compiler
7206         intrinisics for FMA4.
7207         * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
7208         * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
7209         Add FMA4 check and fma4intrin.h.
7210         * config/i386/i386-c.c(ix86_target_macros_internal): Check
7211         ISA_FLAG for FMA4.
7212         * config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
7213         * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
7214         constant for FMA4 support.
7215         (UNSPEC_FMA4_FMADDSUB): Ditto.
7216         (UNSPEC_FMA4_FMSUBADD): Ditto.
7217         * config/i386/i386.opt (-mfma4): New switch for FMA4 support.
7218         * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration.
7219         (ix86_expand_fma4_multiple_memory): Ditto.
7220         * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
7221         (OPTION_MASK_ISA_FMA4_UNSET): New.
7222         (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4.
7223         (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4.
7224         (ix86_handle_option): Handle -mfma4.
7225         (isa_opts): Handle -mfma4.
7226         (enum pta_flags): Add PTA_FMA4.
7227         (override_options): Add FMA4 support.
7228         (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
7229         (IX86_BUILTIN_VFMADDSD): Ditto.
7230         (IX86_BUILTIN_VFMADDPS): Ditto.
7231         (IX86_BUILTIN_VFMADDPD): Ditto.
7232         (IX86_BUILTIN_VFMSUBSS): Ditto.
7233         (IX86_BUILTIN_VFMSUBSD): Ditto.
7234         (IX86_BUILTIN_VFMSUBPS): Ditto.
7235         (IX86_BUILTIN_VFMSUBPD): Ditto.
7236         (IX86_BUILTIN_VFMADDSUBPS): Ditto.
7237         (IX86_BUILTIN_VFMADDSUBPD): Ditto.
7238         (IX86_BUILTIN_VFMSUBADDPS): Ditto.
7239         (IX86_BUILTIN_VFMSUBADDPD): Ditto.
7240         (IX86_BUILTIN_VFNMADDSS): Ditto.
7241         (IX86_BUILTIN_VFNMADDSD): Ditto.
7242         (IX86_BUILTIN_VFNMADDPS): Ditto.
7243         (IX86_BUILTIN_VFNMADDPD): Ditto.
7244         (IX86_BUILTIN_VFNMSUBSS): Ditto.
7245         (IX86_BUILTIN_VFNMSUBSD): Ditto.
7246         (IX86_BUILTIN_VFNMSUBPS): Ditto.
7247         (IX86_BUILTIN_VFNMSUBPD): Ditto.
7248         (IX86_BUILTIN_VFMADDPS256): Ditto.
7249         (IX86_BUILTIN_VFMADDPD256): Ditto.
7250         (IX86_BUILTIN_VFMSUBPS256): Ditto.
7251         (IX86_BUILTIN_VFMSUBPD256): Ditto.
7252         (IX86_BUILTIN_VFMADDSUBPS256): Ditto.
7253         (IX86_BUILTIN_VFMADDSUBPD256): Ditto.
7254         (IX86_BUILTIN_VFMSUBADDPS256): Ditto.
7255         (IX86_BUILTIN_VFMSUBADDPD256): Ditto.
7256         (IX86_BUILTIN_VFNMADDPS256): Ditto.
7257         (IX86_BUILTIN_VFNMADDPD256): Ditto.
7258         (IX86_BUILTIN_VFNMSUBPS256): Ditto.
7259         (IX86_BUILTIN_VFNMSUBPD256): Ditto.
7260         (enum multi_arg_type): New enum for describing the various FMA4
7261         intrinsic argument types.
7262         (bdesc_multi_arg): New table for FMA4 intrinsics.
7263         (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
7264         (ix86_expand_multi_arg_builtin): New function for creating FMA4
7265         intrinsics.
7266         (ix86_expand_builtin): Add FMA4 intrinsic support.
7267         (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
7268         operand instructions.
7269         (ix86_expand_fma4_multiple_memory): New function to split the
7270         second memory reference from FMA4 instructions.
7271         * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
7272         (ssemodesuffixf2s): Ditto.
7273         (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
7274         instructions.
7275         (fma4_fmsub<mode>4): Ditto.
7276         (fma4_fnmadd<mode>4): Ditto.
7277         (fma4_fnmsub<mode>4): Ditto.
7278         (fma4_vmfmadd<mode>4): Ditto.
7279         (fma4_vmfmsub<mode>4): Ditto.
7280         (fma4_vmfnmadd<mode>4): Ditto.
7281         (fma4_vmfnmsub<mode>4): Ditto.
7282         (fma4_fmadd<mode>4256): Ditto.
7283         (fma4_fmsub<mode>4256): Ditto.
7284         (fma4_fnmadd<mode>4256): Ditto.
7285         (fma4_fnmsub<mode>4256): Ditto.
7286         (fma4_fmaddsubv8sf4): Ditto.
7287         (fma4_fmaddsubv4sf4): Ditto.
7288         (fma4_fmaddsubv4df4): Ditto.
7289         (fma4_fmaddsubv2df4): Ditto.
7290         (fma4_fmsubaddv8sf4): Ditto.
7291         (fma4_fmsubaddv4sf4): Ditto.
7292         (fma4_fmsubaddv4df4): Ditto.
7293         (fma4_fmsubaddv2df4): Ditto.
7294         (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
7295         instructions for intrinsics.
7296         (fma4i_fmsub<mode>4): Ditto.
7297         (fma4i_fnmadd<mode>4): Ditto.
7298         (fma4i_fnmsub<mode>4): Ditto.
7299         (fma4i_vmfmadd<mode>4): Ditto.
7300         (fma4i_vmfmsub<mode>4): Ditto.
7301         (fma4i_vmfnmadd<mode>4): Ditto.
7302         (fma4i_vmfnmsub<mode>4): Ditto.
7303         (fma4i_fmadd<mode>4256): Ditto.
7304         (fma4i_fmsub<mode>4256): Ditto.
7305         (fma4i_fnmadd<mode>4256): Ditto.
7306         (fma4i_fnmsub<mode>4256): Ditto.
7307         (fma4i_fmaddsubv8sf4): Ditto.
7308         (fma4i_fmaddsubv4sf4): Ditto.
7309         (fma4i_fmaddsubv4df4): Ditto.
7310         (fma4i_fmaddsubv2df4): Ditto.
7311         (fma4i_fmsubaddv8sf4): Ditto.
7312         (fma4i_fmsubaddv4sf4): Ditto.
7313         (fma4i_fmsubaddv4df4): Ditto.
7314         (fma4i_fmsubaddv2df4): Ditto.
7315
7316         * doc/invoke.texi (-mfma4): Add documentation.
7317         * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.
7318
7319 2009-09-29  Richard Henderson  <rth@redhat.com>
7320
7321         * tree-eh.c (unsplit_eh): Do not unsplit if there's already
7322         an edge to the new destination block.
7323
7324 2009-09-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7325
7326         PR target/41393
7327         * pa.c (hppa_profile_hook): Use
7328         make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.
7329
7330 2009-09-29  Steve Ellcey  <sje@cup.hp.com>
7331             Alexander Monakov  <amonakov@ispras.ru>
7332
7333         PR target/41365
7334         * config/ia64/predicates.md (not_postinc_destination_operand): New.
7335         (not_postinc_memory_operand): New.
7336         (not_postinc_move_operand): New.
7337         * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
7338         (*cmovsi_internal): Ditto.
7339
7340 2009-09-29  Pat Haugen  <pthaugen@us.ibm.com>
7341
7342         * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
7343         restrict issue_rate in first pass when scheduling for register
7344         pressure.
7345
7346 2009-09-29  Basile Starynkevitch  <basile@starynkevitch.net>
7347             Rafael Avila de Espindola  <espindola@google.com>
7348
7349         * gengtype.c (plugin_output): New.
7350         (get_output_file_with_visibility): Return plugin_output for plugins.
7351         (main): Parse and use the -P option.
7352         * gty.texi: Update the command line format.
7353
7354 2009-09-29  Jakub Jelinek  <jakub@redhat.com>
7355
7356         PR debug/41438
7357         * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
7358         functions.
7359         (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
7360         out if !const_ok_for_output.
7361
7362         PR debug/41474
7363         * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
7364         case VAR_LOCATION>: Remove gcc_unreachable ().
7365
7366 2009-09-29  Harsha Jagasia  <harsha.jagasia@amd.com>
7367
7368         * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
7369         (x86_64-*-*): Ditto.
7370         * config/i386/smmintrin.h: Move instructions in mmintrin-common.h
7371         back to smmintrin.h.
7372         * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit.
7373         * config/i386/x86intrin.h: Remove SSE5.
7374         * config/i386/mmintrin-common.h: Delete file.
7375         * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins.
7376
7377 2009-09-29  Richard Guenther  <rguenther@suse.de>
7378
7379         * alias.c (ao_ref_from_mem): Properly deal with off decl accesses
7380         resulting from stack temporaries on STRICT_ALIGNMENT targets.
7381
7382 2009-09-29  Nick Clifton  <nickc@redhat.com>
7383
7384         * function.c (current_function_name): If there is no current
7385         function just return "<none>".
7386
7387 2009-09-28  Sriraman Tallam  <tmsriram@google.com>
7388
7389         * tree-pass.h (register_pass_info): New structure.
7390         (pass_positioning_ops): Move enum from gcc-plugin.h.
7391         (register_pass): New function.
7392         * gcc-plugin.h (plugin_pass): Delete structure.
7393         (pass_positioning_ops): Delete enum.
7394         * plugin.c (regsiter_pass): Delete function.
7395         (position_pass): Delete function.
7396         (added_pass_nodes): Delete variable.
7397         (prev_added_pass_nodes): Delete variable.
7398         (pass_list_node): Delete structure.
7399         * passes.c (make_pass_instance): New function.
7400         (next_pass_1): Change to call make_pass_instance.
7401         (pass_list_node): Move structure from gcc-plugin.h.
7402         (added_pass_nodes): Move variable from plugin.c.
7403         (prev_added_pass_nodes): Move variable from plugin.c.
7404         (position_pass): New function.
7405         (register_pass): New function.
7406
7407 2009-09-28  Easwaran Raman  <eraman@google.com>
7408
7409         * ifcvt.c (noce_try_abs): Recognize pattern and call
7410         expand_one_cmpl_abs_nojump.
7411         * optabs.c (expand_one_cmpl_abs_nojump): New function.
7412         * optabs.h (expand_one_cmpl_abs_nojump): Declare.
7413
7414 2009-09-28  Ian Lance Taylor  <iant@google.com>
7415
7416         PR middle-end/40500
7417         * c-opts.c (c_common_handle_option): Don't set
7418         warn_jump_misses_init for -Wall.
7419         * doc/invoke.texi (Warning Options): Update documentation.
7420
7421 2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7422
7423         * Makefile.in ($(out_object_file)): Depend on
7424         gt-$(basename $(notdir $(out_file))).h.
7425
7426 2009-09-28  Richard Henderson  <rth@redhat.com>
7427
7428         * except.h (struct eh_region_d): Add use_cxa_end_cleanup.
7429         * except.c (gen_eh_region): Set it.
7430         (duplicate_eh_regions_1): Copy it.
7431         * tree-eh.c (lower_resx): Use it to determine which function
7432         to call to resume.
7433
7434         * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup.
7435         * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
7436         * builtins.def (BUILT_IN_CXA_END_CLEANUP): New.
7437         * tree.c (build_common_builtin_nodes): Remove parameter.  Build
7438         BUILT_IN_CXA_END_CLEANUP if necessary.
7439
7440         * c-common.c (c_define_builtins): Update call to
7441         build_common_builtin_nodes.
7442
7443 2009-09-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7444
7445         * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns.
7446
7447 2009-09-28  Michael Matz  <matz@suse.de>
7448
7449         * builtins.c (interclass_mathfn_icode): New helper.
7450         (expand_builtin_interclass_mathfn): Use it here, and split folding
7451         into ...
7452         (fold_builtin_interclass_mathfn): ... this new folder.
7453         (build_call_nofold_loc): New static helper.
7454         (build_call_nofold): New wrapper macro for above.
7455         (expand_builtin_int_roundingfn): Use it instead of build_call_expr.
7456         (expand_builtin_pow): Ditto.
7457         (expand_builtin_memset_args): Ditto.
7458         (expand_builtin_printf): Ditto.
7459         (expand_builtin_fprintf): Ditto.
7460         (expand_builtin_sprintf): Ditto.
7461         (expand_builtin_memory_chk): Ditto.
7462         (expand_builtin_mempcpy_args): Ditto and don't call folders.
7463         (expand_builtin_stpcpy): Ditto.
7464         (expand_builtin_strcmp): Ditto.
7465         (expand_builtin_strncmp): Ditto.
7466         (expand_builtin_strcpy): Remove FNDECL and MODE arguments.
7467         (expand_builtin_strcpy_args): Don't call folders.
7468         (expand_builtin_memcmp): Ditto.
7469         (expand_builtin_strncpy): Ditto, and use target.
7470         (expand_builtin_memcpy): Ditto.
7471         (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
7472         expand_builtin_strpbrk, expand_builtin_memmove,
7473         expand_builtin_memmove_args, expand_builtin_bcopy,
7474         expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat,
7475         expand_builtin_strspn, expand_builtin_strcspn,
7476         expand_builtin_fputs): Remove these.
7477         (expand_builtin): Don't call the above, change calls to other
7478         expanders that changed prototype.
7479         (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy.
7480         (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call
7481         fold_builtin_interclass_mathfn.
7482         (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy.
7483         (fold_builtin_strcat): Add folding split from expand_builtin_strcat.
7484
7485         * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp.
7486         * passes.c (init_optimization_passes): Move pass_fold_builtins
7487         after last phiopt pass.
7488         * tree-inline.c (fold_marked_statements): When folding builtins
7489         iterate over all instruction potentially generated.
7490         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare
7491         earlier.
7492         (fold_gimple_call): Use it to always fold calls (into potentially
7493         multiple instructions).
7494         * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p
7495         calls into zero at this time.
7496         * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple
7497         statements generated by builtin folding.
7498
7499 2009-09-28  Nick Clifton  <nickc@redhat.com>
7500
7501         * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns.
7502
7503 2009-09-28  Duncan Sands  <baldrick@free.fr>
7504
7505         * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event.
7506         * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES.
7507         (register_callback): Dispatch it.
7508         (invoke_plugin_callbacks): Incorporate in sanity check.
7509         * ggc.h (ggc_register_cache_tab): Add declaration.
7510         * ggc-common.c (ggc_register_root_tab): Simplify.
7511         (const_ggc_cache_tab_t): New typedef.
7512         (extra_cache_vec): New vector of dynamically added cache tables.
7513         (ggc_register_cache_tab): New function.
7514         (ggc_scan_cache_tab): New function.
7515         (ggc_mark_roots): Simplify dynamic roots.  Handle dynamic caches.
7516         * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES.
7517
7518 2009-09-27  Richard Henderson  <rth@redhat.com>
7519
7520         * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under
7521         which we remove __builtin_stack_restore.
7522
7523 2009-09-27  Bernd Schmidt  <bernd.schmidt@analog.com>
7524
7525         * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P,
7526         to test for GRD_INVARIANT.
7527         (simple_rhs_p): Anything that's function_invariant_p is fine.
7528
7529 2009-09-27  Rafael Avila de Espindola  <espindola@google.com>
7530
7531         * gengtype.c (main): Use plunge_files instead of plugin_output.
7532
7533 2009-09-27  Basile Starynkevitch  <basile@starynkevitch.net>
7534             Rafael Avila de Espindola  <espindola@google.com>
7535
7536         * gengtype.c (write_root, write_roots): Add a emit_pch argument.
7537         Don't print pch related info if it is false.
7538         (main): Don't print pch info in plugin mode.
7539
7540 2009-09-27  Eric Botcazou  <ebotcazou@adacore.com>
7541
7542         * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long
7543         with dw_val_class_const_double.
7544         (struct dw_val_struct): Replace val_long_long with val_double and
7545         adjust for above change.
7546         (output_loc_operands): Likewise.
7547         (add_AT_long_long): Rename into...
7548         (add_AT_double): ...this.
7549         (print_die): Replace dw_val_class_long_long with
7550         dw_val_class_const_double and adjust.
7551         (attr_checksum): Likewise.
7552         (same_dw_val_p): Likewise.
7553         (size_of_die): Likewise.
7554         (value_format): Likewise.
7555         (output_die): Likewise.
7556         (loc_descriptor) <CONST_DOUBLE>: Likewise.
7557         (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double
7558         instead of add_AT_long_long.
7559         (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned
7560         value with the precision of its type.
7561
7562 2009-09-27  Andreas Schwab  <schwab@linux-m68k.org>
7563
7564         PR c/41476
7565         * c-typeck.c (build_conditional_expr): Use the readonly and
7566         volatile flags of the operand types, not of the operands itself.
7567
7568 2009-09-27  Peter O'Gorman  <pogma@thewrittenword.com>
7569
7570         * collect2.c (main): Look for -brtl before adding libraries.
7571
7572 2009-09-27  Jonathan Gray  <jsg@openbsd.org>
7573
7574         * config.gcc: Update OpenBSD targets.
7575         * config/openbsd-stdint.h: New file.
7576         * config/openbsd-libpthread.h: New file.
7577         * config/openbsd.h: Update and break out LIB_SPEC definition.
7578         * config/alpha/openbsd.h: Overhaul to reflect ELF migration.
7579         * config/i386/openbsdelf.h: Correct types.
7580         * config/m68k/openbsd.h: Likewise.
7581         * config/mips/openbsd.h: Likewise.
7582         * config/vax/openbsd.h: Likewise.
7583
7584 2009-09-27  Eric Botcazou  <ebotcazou@adacore.com>
7585
7586         * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR.
7587         (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary.
7588         * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum
7589         of the length and zero.
7590
7591 2009-09-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7592
7593         * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h.
7594         (FLAGS_H): Add options.h $(REAL_H).
7595         (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H).
7596         (TREE_VECTORIZER_H): New.
7597         (EBITMAP_H): Renamed from EBIMAP_H.
7598         (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o)
7599         (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o)
7600         (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o)
7601         (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o)
7602         (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o)
7603         (graphite-clast-to-gimple.o, graphite-dependences.o)
7604         (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o)
7605         (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o)
7606         (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o)
7607         (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o)
7608         (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o)
7609         (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o)
7610         (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o)
7611         (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o)
7612         (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies
7613         updated and fixed as per above changes and per
7614         check_makefile_deps.sh output.
7615
7616         PR bootstrap/40928
7617         * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
7618         * configure: Regenerate.
7619
7620 2009-09-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7621
7622         * doc/install.texi: Update minimum MPC version to 0.7.
7623
7624 2009-09-26  Gerald Pfeifer  <gerald@pfeifer.com>
7625
7626         * doc/install.texi (Binaries): Remove reference to the binary
7627         distribution CD-ROM from the FSF.
7628
7629 2009-09-26  Michael Matz  <matz@suse.de>
7630
7631         PR lto/40758
7632         PR middle-end/41470
7633         * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names
7634         that are mentioned in the body.
7635
7636 2009-09-26  Michael Matz  <matz@suse.de>
7637
7638         PR tree-optimization/41454
7639         * tree-ssa-dom (stmts_to_rescan): Remove variable.
7640         (tree_ssa_dominator_optimize): Don't allocate and free it.
7641         (dom_opt_leave_block): Don't iterate over it.
7642         (eliminate_redundant_computations): Don't return a value.
7643         (cprop_operand, cprop_into_stmt): Ditto.
7644         (optimize_stmt): Don't defer updating stmts.
7645
7646 2009-09-25  Dodji Seketeli  <dodji@redhat.com>
7647
7648         * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies,
7649         generic_parameter_die, template_parameter_pack_die,
7650         gen_formal_parameter_die, gen_subprogram_die): Adjust after
7651         renaming DW_TAG_formal_parameter_pack and
7652         DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack
7653         and DW_TAG_GNU_template_parameter_pack.
7654
7655 2009-09-25  Anatoly Sokolov  <aesok@post.ru>
7656
7657         * config/v850/v850.h (FUNCTION_VALUE): Remove.
7658         * config/v850/v850.c (v850_function_value): New function.
7659         (TARGET_FUNCTION_VALUE): Define.
7660
7661 2009-09-25  Jakub Jelinek  <jakub@redhat.com>
7662
7663         * tree-vect-stmts.c (vectorizable_call): Call
7664         mark_symbols_for_renaming after vect_finish_stmt_generation.
7665
7666         * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2
7667         to loc_descriptor_from_tree.
7668         (add_location_or_const_value_attribute): Pass 0 instead of 2
7669         for decl_by_reference_p decls.
7670
7671 2009-09-25  Richard Guenther  <rguenther@suse.de>
7672
7673         PR middle-end/41463
7674         * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing
7675         arrays again.
7676
7677 2009-09-25  Ben Elliston  <bje@au.ibm.com>
7678
7679         * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma
7680         after `power7'.
7681
7682 2009-09-25  Alan Modra  <amodra@bigpond.net.au>
7683
7684         * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
7685         form of instruction.
7686
7687 2009-09-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7688
7689         PR middle-end/41435
7690         * fold-const.c (const_binop): Handle complex int division.
7691         * tree-complex.c (expand_complex_div_straight,
7692         expand_complex_div_wide): Update comments.
7693
7694 2009-09-24  DJ Delorie  <dj@redhat.com>
7695
7696         PR target/41456
7697         * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
7698         (reg_class): Likewise.
7699         (REG_CLASS_NAMES): Likewise.
7700         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
7701         (m32c_override_options): Disable -fivopts for M32C.
7702
7703 2009-09-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7704
7705         * config/rs6000/predicates.md (indexed_or_indirect_operand):
7706         Delete VSX load/store with update support.
7707         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto.
7708         * config/rs6000/vsx.md (vsx_mov<mode>): Ditto.
7709         (vsx_movti): Ditto.
7710         (VSX_U): Delete.
7711         (VSbit): Ditto.
7712         (VStype_load_update): Ditto.
7713         (VStype_store_update): Ditto.
7714         (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto.
7715         (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto.
7716
7717         * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX
7718         load/store with update builtins.
7719
7720 2009-09-24  Kai Tietz  <kai.tietz@onevision.com>
7721
7722         * libgcc2.c (L_trampoline): Prototype for getpagesize
7723         and mprotect in WINNT case.
7724
7725 2009-09-24  Anatoly Sokolov  <aesok@post.ru>
7726
7727         * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro.
7728         * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove.
7729         * config/rs6000/rs6000.c (rs6000_function_value): Make static, add
7730         'outgoing' argument.
7731         (TARGET_FUNCTION_VALUE): Define.
7732
7733 2009-09-24  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7734
7735         * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1.
7736
7737 2009-09-24  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
7738
7739         PR bootstrap/41405
7740         * common.opt: Initialize dwarf_strict to -1.
7741         * toplev.c (process_options): Catch unset dwarf_strict
7742         and set to 0 for all targets not overriding.
7743         * config/darwin.c (darwin_override_options): Catch unset
7744         dwarf_strict and override to 1.
7745
7746 2009-09-24  Jeff Law  <law@redhat.com>
7747
7748         * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks.
7749
7750 2009-09-24  Richard Guenther  <rguenther@suse.de>
7751
7752         PR tree-optimization/36143
7753         PR tree-optimization/38747
7754         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
7755         create VIEW_CONVERT_EXPRs for TBAA compatible accesses.
7756
7757 2009-09-24  Jakub Jelinek  <jakub@redhat.com>
7758
7759         PR bootstrap/41457
7760         * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED,
7761         return false instead of gcc_unreachable ().  For CONST return the
7762         value returned by recursive call instead of always returning true.
7763         (tree_add_const_value_attribute): Return the value returned by
7764         add_const_value_attribute instead of always returning true if rtl
7765         is non-NULL.
7766
7767 2009-09-23  Justin Seyster  <jrseys@gmail.com>
7768
7769         * Makefile.in (PLUGIN_HEADERS): Include real.h.
7770
7771 2009-09-24  Jakub Jelinek  <jakub@redhat.com>
7772
7773         * cgraphunit.c (cgraph_lower_function): Revert last change.
7774         * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN
7775         instead of DECL_NO_STATIC_CHAIN.
7776         * tree-cfg.c (verify_gimple_call): Likewise.
7777         * tree-nested.c (get_chain_decl, get_chain_field,
7778         convert_tramp_reference_op, convert_gimple_call): Likewise.
7779         (convert_all_function_calls): Likewise.  Always set or clear
7780         DECL_STATIC_CHAIN initially, for !n->outer clear it.
7781         (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code.
7782         * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN
7783         if nested.
7784         * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of
7785         DECL_NO_STATIC_CHAIN.
7786         * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN
7787         instead of DECL_NO_STATIC_CHAIN.
7788         (ix86_function_regparm, find_drap_reg): Likewise.  Don't test
7789         decl_function_context.
7790         * varasm.c (initializer_constant_valid_p): Likewise.
7791         * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ...
7792         (DECL_STATIC_CHAIN): ... this.
7793         * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN
7794         instead of DECL_NO_STATIC_CHAIN.
7795
7796 2009-09-23  Basile Starynkevitch  <basile@starynkevitch.net>
7797             Rafael Avila de Espindola  <espindola@google.com>
7798
7799         * gengtype.c (nb_plugin_files): Make it unsigned to match
7800         num_gt_files. Adjust other variables to avoid warnings.
7801         (main): Allocate an all zero lang_bitmap before each plugin file name
7802         to match regular file names.
7803
7804 2009-09-23  Richard Henderson  <rth@redhat.com>
7805
7806         * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
7807         (TARGET_STATIC_CHAIN): Mention that this hook must be used for
7808         static chain passed in memory.
7809         * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison.
7810         * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN,
7811         STATIC_CHAIN_INCOMING.  Issue a sorry if there's no
7812         STATIC_CHAIN_REGNUM defined.
7813
7814         * config/picochip/picochip-protos.h: s/class/klass/.
7815         * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New.
7816         (picochip_static_chain): New.
7817         * config/picochip/picochip.h (STATIC_CHAIN): Remove.
7818         (STATIC_CHAIN_INCOMING): Remove.
7819
7820         * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New.
7821         (xtensa_static_chain): New.
7822         * config/xtensa/xtensa.h (STATIC_CHAIN): Remove.
7823         (STATIC_CHAIN_INCOMING): Remove.
7824
7825 2009-09-23  Anatoly Sokolov  <aesok@post.ru>
7826
7827         * config/pa/pa.h (FUNCTION_VALUE): Remove macro.
7828         * config/pa/pa-protos.h (function_value): Remove.
7829         * config/pa/pa.c (pa_function_value): Rename from function_value.
7830         Make static, add 'outgoing' argument.
7831         (TARGET_FUNCTION_VALUE): Define.
7832
7833 2009-09-23  Anatoly Sokolov  <aesok@post.ru>
7834
7835         * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf
7836         instead of cfun->machine->is_leaf.
7837         * config/avr/avr.h (machine_function): Remove is_leaf field.
7838
7839 2009-09-23  Jakub Jelinek  <jakub@redhat.com>
7840
7841         PR debug/41439
7842         * dwarf2out.c (address_of_int_loc_descriptor): Don't emit
7843         DW_OP_piece after DW_OP_stack_value, adjust size calculations
7844         for it, when DW_OP_stack_value and DW_OP_implicit_value has
7845         the same size, prefer DW_OP_stack_value.
7846         (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref,
7847         loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value.
7848
7849 2009-09-23  Alexandre Oliva  <aoliva@redhat.com>
7850
7851         PR debug/41353
7852         * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses.
7853
7854 2009-09-23  Alexandre Oliva  <aoliva@redhat.com>
7855
7856         PR debug/41248
7857         * cfgexpand.c (convert_debug_memory_address): New.
7858         (expand_debug_expr): Convert base address and offset to the same
7859         mode.  Use it to convert addresses to other modes.  Accept
7860         ptr_mode addresses.
7861
7862 2009-09-23  Dodji Seketeli <dodji@redhat.com>
7863
7864         PR debug/41065
7865         * function.h (types_used_by_vars_hash): Declare new hash table.
7866         (types_used_by_vars_eq, types_used_by_var_decl_insert): Declare
7867         equality and hash function for the hash table.
7868         (types_used_by_cur_var_decl): Declare a new global chained list.
7869         (types_used_by_var_decl_insert): Declare new function.
7870         * function.c (types_used_by_vars_hash): Define the hashtable ...
7871         (types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as
7872         its equality and hash functions.
7873         (hash_types_used_by_vars_entry): New hash helper.
7874         (types_used_by_cur_var_decl): Define the global chained list.
7875         (used_types_insert): Update the list of types used by the global
7876         variable being parsed.
7877         (types_used_by_var_decl_insert): Define new function.
7878         * c-common.h (record_types_used_by_current_var_decl): Declare ...
7879         * c-common.c (record_types_used_by_current_var_decl): ... new
7880         function.
7881         * c-decl.c (finish_decl): Record the types used by the global
7882         variable declaration we've just parsed.
7883         * dwarf2out.c (premark_used_types): Insert a new line between
7884         comment and function.
7885         (premark_used_types_helper): Fix comment.
7886         (premark_types_used_by_global_vars_helper,
7887         premark_types_used_by_global_vars): New functions.
7888         (prune_unused_types): Do not prune types used by global variables.
7889
7890 2009-09-23  Richard Guenther  <rguenther@suse.de>
7891
7892         * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET
7893         produced for bigendian targets with promoted subregs.
7894
7895 2009-09-23  Richard Guenther  <rguenther@suse.de>
7896
7897         * value-prof.c (gimple_ic): Purge old EH edges only after building
7898         the new ones.
7899
7900 2009-09-23  Nick Clifton  <nickc@redhat.com>
7901
7902         * config/arc/arc.c (arc_trampoline_init): Fix typo.
7903
7904 2009-09-23  Jakub Jelinek  <jakub@redhat.com>
7905
7906         PR bootstrap/41405
7907         * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf.
7908
7909         PR bootstrap/41436
7910         * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN
7911         on non-nested functions.
7912
7913 2009-09-23  Jakub Jelinek  <jakub@redhat.com>
7914             Jan Hubicka  <jh@suse.cz>
7915
7916         * dwarf2out.c (loc_list_plus_const): Only define if
7917         DWARF2_DEBUGGING_INFO.
7918         (address_of_int_loc_descriptor): Likewise.
7919
7920         PR debug/41411
7921         * dwarf2out.c (mem_loc_descriptor): Handle HIGH.
7922
7923 2009-09-23  Uros Bizjak  <ubizjak@gmail.com>
7924
7925         PR c/39779
7926         * c-typeck.c (build_binary_op) <short_shift>: Check that integer
7927         constant is more than zero.
7928
7929 2009-09-23  Alan Modra  <amodra@bigpond.net.au>
7930
7931         PR target/40473
7932         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
7933         call final to emit non-scheduled prologue, instead insert at entry.
7934
7935 2009-09-22  Loren J. Rittle  <ljrittle@acm.org>
7936             Joseph S. Myers  <joseph@codesourcery.com>
7937
7938         * doc/install.texi (*-*-freebsd*): Add proper format codes.
7939
7940 2009-09-22  Basile Starynkevitch  <basile@starynkevitch.net>
7941             Rafael Avila de Espindola  <espindola@google.com>
7942
7943         * gengtype.c (is_file_equal): New function.
7944         (close_output_files): Use is_file_equal. Free of->buf.
7945
7946 2009-09-22  Basile Starynkevitch  <basile@starynkevitch.net>
7947             Rafael Avila de Espindola  <espindola@google.com>
7948
7949         * gengtype.c (write_types, write_local): Add the output_header
7950         argument. Update all callers.
7951
7952 2009-09-22  Dodji Seketeli  <dodji@redhat.com>
7953
7954         * dwarf2out.c (template_parameter_pack_die,
7955         gen_formal_parameter_pack_die ): New functions.
7956         (make_ith_pack_parameter_name): Remove this function.
7957         (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
7958         DW_TAG_formal_parameter_pack.
7959         (gen_generic_params_dies): Represent each template parameter pack
7960         by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
7961         represented by usual DW_TAG_template_*_parameter DIEs that are
7962         children of the DW_TAG_template_parameter_pack element DIE.
7963         (generic_parameter_die): This doesn't deal with parameter pack
7964         names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
7965         of parameter pack DIEs.
7966         (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
7967         in certain cases, e.g. for pack elements.
7968         (gen_formal_types_die, gen_decl_die): Adjust usage of
7969         gen_formal_parameter_die.
7970         (gen_subprogram_die): Represent each function parameter pack by a
7971         DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
7972         represented by usual DW_TAG_formal_parameter DIEs that are children
7973         of the DW_TAG_formal_parameter_pack DIE. Remove references to
7974         ____builtin_va_alist decls as no part of the compiler uses those
7975         anymore.
7976         * langhooks.h (struct lang_hooks_for_decls): Add
7977         function_parm_expanded_from_pack_p, get_generic_function_decl
7978         and function_parameter_pack_p hooks.  Fix comment for
7979         get_innermost_generic_parms hook.
7980         * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
7981         LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
7982         macros and use them to initialize lang_hook.
7983
7984 2009-09-22  Richard Henderson  <rth@redhat.com>
7985
7986         * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
7987         (TRAMPOLINE_ADJUST_ADDRESS): Poison.
7988         * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
7989         on TRAMPOLINE_TEMPLATE.
7990         (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
7991         TRAMPOLINE_ADJUST_ADDRESS.
7992         * targhooks.c (default_asm_trampoline_template): Remove.
7993         (default_trampoline_adjust_address): Remove.
7994         (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
7995         * targhooks.h: Update decls.
7996
7997 2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
7998
7999         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
8000         * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
8001         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
8002
8003 2009-09-22  Alexandre Oliva  <aoliva@redhat.com>
8004
8005         PR debug/41295
8006         * reload1.c (reload): Reset debug insns with pseudos without
8007         equivalences.
8008
8009 2009-09-22  Janis Johnson  <janis187@us.ibm.com>
8010
8011         * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
8012         unconditional true for decimal float modes.
8013         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
8014         * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.
8015
8016 2009-09-22  Loren J. Rittle  <ljrittle@acm.org>
8017
8018         * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
8019         Enable a new case for __FreeBSD__ >= 7.
8020         * crtstuff.c:  Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
8021         * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
8022         * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
8023         and USE_LD_AS_NEEDED.
8024
8025         * doc/install.texi (*-*-freebsd*): Update target information.
8026
8027 2009-09-22  Richard Guenther  <rguenther@suse.de>
8028
8029         PR middle-end/41395
8030         * tree-dfa.c (get_ref_base_and_extent): Handle trailing
8031         arrays really properly.
8032
8033 2009-09-22  Richard Henderson  <rth@redhat.com>
8034
8035         PR target/41246
8036         * target.h (struct gcc_target): Add asm_out.trampoline_template,
8037         calls.static_chain, calls.trampoline_init,
8038         calls.trampoline_adjust_address.
8039         * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8040         (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
8041         (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
8042         * builtins.c (expand_builtin_setjmp_receiver): Use
8043         targetm.calls.static_chain; only clobber registers.
8044         (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
8045         set up memory attributes properly for the trampoline block.
8046         (expand_builtin_adjust_trampoline): Use
8047         targetm.calls.trampoline_adjust_address.
8048         * calls.c (prepare_call_address): Add fndecl argument.  Use
8049         targetm.calls.static_chain.
8050         * df-scan.c (df_need_static_chain_reg): Remove.
8051         (df_get_entry_block_def_set): Use targetm.calls.static_chain;
8052         consolodate static chain handling.
8053         * doc/tm.texi: Document new hooks.
8054         * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
8055         (init_emit_regs): Don't initialize them.
8056         * expr.h (prepare_call_address): Update decl.
8057         * final.c (profile_function): Use targetm.calls.static_chain.
8058         * function.c (expand_function_start): Likewise.
8059         * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
8060         * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
8061         only clobber registers.
8062         * targhooks.c (default_static_chain): New.
8063         (default_asm_trampoline_template, default_trampoline_init): New.
8064         (default_trampoline_adjust_address): New.
8065         * targhooks.h: Declare them.
8066         * varasm.c (assemble_trampoline_template): Use
8067         targetm.asm_out.trampoline_template.  Make the memory block const
8068         and set its size.
8069
8070         * config/alpha/alpha.c (alpha_trampoline_init): Rename from
8071         alpha_initialize_trampoline.  Make static.  Merge VMS parameter
8072         differences into the TARGET_ABI_OPEN_VMS code block.
8073         (TARGET_TRAMPOLINE_INIT): New.
8074         * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
8075         (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
8076         * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
8077         (INITIALIZE_TRAMPOLINE): Remove.
8078
8079         * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
8080         (TRAMPOLINE_TEMPLATE): Merge with ...
8081         (INITIALIZE_TRAMPOLINE): ... this and move ...
8082         * config/arc/arc.c (arc_trampoline_init): ... here.
8083         (TARGET_TRAMPOLINE_INIT): New.
8084
8085         * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8086         (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
8087         (arm_asm_trampoline_template): New.
8088         (arm_trampoline_init, arm_trampoline_adjust_address): New.
8089         * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
8090         THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
8091         code to arm_asm_trampoline_template.
8092         (TRAMPOLINE_ADJUST_ADDRESS): Move code to
8093         arm_trampoline_adjust_address.
8094         (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
8095         adjust for target hook parameters.
8096
8097         * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
8098         Remove.
8099
8100         * config/bfin/bfin-protos.h (initialize_trampoline): Remove.
8101         * config/bfin/bfin.c (bfin_asm_trampoline_template): New.
8102         (bfin_trampoline_init): Rename from initialize_trampoline;
8103         make static; update for target hook parameters.
8104         (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
8105         * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
8106         bfin_asm_trampoline_template.
8107         (INITIALIZE_TRAMPOLINE): Remove.
8108
8109         * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
8110         TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
8111         cris_trampoline_init): New.
8112         * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
8113         cris_asm_trampoline_template.
8114         (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
8115         adjust for target hook parameters.
8116
8117         * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
8118
8119         * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
8120         TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
8121         fr30_trampoline_init): New.
8122         * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
8123         fr30_asm_trampoline_template.
8124         (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
8125         adjust for target hook parameters.
8126
8127         * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
8128         (frv_trampoline_init): Rename from frv_initialize_trampoline;
8129         make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
8130         * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
8131         * config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
8132
8133         * config/h8300/h8300.c (h8300_trampoline_init): New.
8134         (TARGET_TRAMPOLINE_INIT): New.
8135         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
8136         to h8300_trampoline_init and adjust for hook parameters.
8137
8138         * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
8139         * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
8140         (ia64_trampoline_init): Rename from ia64_initialize_trampoline;
8141         make static; adjust for hook parameters.
8142         * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
8143
8144         * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8145         (TARGET_TRAMPOLINE_INIT): New.
8146         (iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
8147         * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
8148         iq2000_asm_trampoline_template.
8149         (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
8150         (TRAMPOLINE_CODE_SIZE): New.
8151         (TRAMPOLINE_SIZE): Use it.
8152         (TRAMPOLINE_ALIGNMENT): Follow Pmode.
8153
8154         * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
8155         * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
8156         (m32c_trampoline_init): Rename from m32c_initialize_trampoline;
8157         adjust for hook parameters.
8158         * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
8159
8160         * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
8161         (m32r_trampoline_init): New.
8162         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
8163         m32r_trampoline_init.
8164
8165         * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
8166         (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
8167         make static; update for hook parameters.
8168         * config/m68hc11/m68hc11-protos.h: Update.
8169         * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.
8170
8171         * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8172         (TARGET_TRAMPOLINE_INIT): New.
8173         (mcore_function_value): Fix typo.
8174         (mcore_asm_trampoline_template, mcore_trampoline_init): New.
8175         * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
8176         to mcore_asm_trampoline_template.
8177         (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.
8178
8179         * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
8180         * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
8181         (mep_trampoline_init): Rename from mep_init_trampoline; make static;
8182         update for hook parameters.
8183         * config/mep/mep-protos.h (mep_init_trampoline): Remove.
8184
8185         * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
8186         mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
8187         mips_trampoline_init): New.
8188         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
8189         mips_asm_trampoline_template.
8190         (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
8191         update for hook parameters.
8192
8193         * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8194         (TARGET_TRAMPOLINE_INIT): New.
8195         (mmix_trampoline_size): Remove.
8196         (mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
8197         make static.  Remove out-of-date tetra vs octa comment.
8198         (mmix_trampoline_init): Rename from mmix_initialize_trampoline;
8199         make static; update for hook parameters.
8200         * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
8201         (INITIALIZE_TRAMPOLINE): Remove.
8202         (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
8203         (TRAMPOLINE_ALIGNMENT): New.
8204         * gcc/config/mmix/mmix-protos.h: Update.
8205
8206         * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
8207         mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
8208         mn10300_trampoline_init): New.
8209         * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
8210         mn10300_asm_trampoline_template.
8211         (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.
8212
8213         * config/moxie/moxie.c (moxie_static_chain,
8214         moxie_asm_trampoline_template, moxie_trampoline_init,
8215         TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
8216         TARGET_TRAMPOLINE_INIT): New.
8217         * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
8218         moxie_trampoline_init.
8219         (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
8220         (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
8221
8222         * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
8223         pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
8224         pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
8225         pa_trampoline_adjust_address): New.
8226         * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
8227         pa_asm_trampoline_template.
8228         (TRAMPOLINE_ALIGNMENT): New.
8229         (TRAMPOLINE_CODE_SIZE): Move to pa.c.
8230         (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
8231         adjust for hook parameters.
8232         (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.
8233
8234         * config/pdp11/pdp11.c (pdp11_trampoline_init): New.
8235         (TARGET_TRAMPOLINE_INIT): New.
8236         * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
8237         (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.
8238
8239         * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.
8240
8241         * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
8242         * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
8243         (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
8244         make static; adjust parameters for the hook.
8245         * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.
8246
8247         * config/s390/s390.c (s390_asm_trampoline_template): Rename from
8248         s390_trampoline_template; make static.
8249         (s390_trampoline_init): Rename from s390_initialize_trampoline;
8250         make static; adjust for target hook.
8251         (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
8252         * config/s390/s390-protos.h: Remove trampoline decls.
8253         * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
8254         (TRAMPOLINE_TEMPLATE): Remove.
8255         (TRAMPOLINE_ALIGNMENT): New.
8256
8257         * config/score/score-protos.h (score_initialize_trampoline): Remove.
8258         * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8259         (TARGET_TRAMPOLINE_INIT): New.
8260         (score_asm_trampoline_template): New.
8261         (score_trampoline_init): Rename from score_initialize_trampoline;
8262         make static; adjust for hook parameters.
8263         * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
8264         score[37]_asm_trampoline_template.
8265         (INITIALIZE_TRAMPOLINE): Remove.
8266         * config/score/score3.c (score3_asm_trampoline_template): New.
8267         (score3_trampoline_init): Rename from score3_initialize_trampoline;
8268         adjust for target hook.
8269         * config/score/score7.c (score7_asm_trampoline_template): New.
8270         (score7_trampoline_init): Rename from score7_initialize_trampoline;
8271         adjust for target hook.
8272         * config/score/score3.h, config/score/score7.h: Update.
8273
8274         * config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
8275         * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
8276         (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
8277         (sh_trampoline_init): Rename from sh_initialize_trampoline;
8278         make static; adjust for target hook parameters.
8279         (sh_trampoline_adjust_address): New.
8280         * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
8281         (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.
8282
8283         * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
8284         (sparc32_initialize_trampoline): Rename from
8285         sparc_initialize_trampoline; make static; replace tramp parameter
8286         with m_tramp and update memory accesses.
8287         (sparc64_initialize_trampoline): Similarly.
8288         (sparc_trampoline_init): New.
8289         * config/sparc/sparc-protos.h: Remove trampoline decls.
8290         * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
8291         * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.
8292
8293         * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
8294         (array_to_constant): Make ARR parameter const.
8295         (spu_trampoline_init): Rename from spu_initialize_trampoline;
8296         make static; update for hook parameters.
8297         * config/spu/spu-protos.h: Update decls.
8298         * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.
8299
8300         * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
8301         from xstormy16_initialize_trampoline; make static; update for
8302         hook parameters.
8303         (TARGET_TRAMPOLINE_INIT): New.
8304         * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.
8305
8306         * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8307         (TARGET_TRAMPOLINE_INIT): New.
8308         (v850_can_eliminate): Make static.
8309         (v850_asm_trampoline_template, v850_trampoline_init): New.
8310         * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
8311         v850_asm_trampoline_template.
8312         (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
8313         and adjust for target hook parameters.
8314
8315         * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8316         (TARGET_TRAMPOLINE_INIT): New.
8317         (vax_asm_trampoline_template, vax_trampoline_init): New.
8318         * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
8319         vax_asm_trampoline_template.
8320         (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.
8321
8322         * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
8323         (TARGET_TRAMPOLINE_INIT): New.
8324         (xtensa_asm_trampoline_template): Rename from
8325         xtensa_trampoline_template; make static.
8326         (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
8327         make static; update for hook parameters.
8328         * config/xtensa/xtensa-protos.h: Remove trampoline decls.
8329         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
8330         (INITIALIZE_TRAMPOLINE): Remove.
8331
8332         * config/i386/i386.c (ix86_function_regparm): Do not issue an
8333         error for nested functions with regparm=3.
8334         (ix86_compute_frame_layout): Adjust frame pointer offset for
8335         ix86_static_chain_on_stack.
8336         (ix86_expand_prologue): Handle ix86_static_chain_on_stack.
8337         (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
8338         don't reset to UNITS_PER_WORD.
8339         (ix86_emit_leave): Adjust ix86_cfa_state.
8340         (ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
8341         (ix86_static_chain): New.
8342         (ix86_trampoline_init): Rename from x86_initialize_trampoline;
8343         make static; update for target hook parameters; use ix86_static_chain.
8344         (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
8345         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
8346         (INITIALIZE_TRAMPOLINE): Remove.
8347         (TRAMPOLINE_SIZE): Use 24 for 64-bit.
8348         (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
8349         to the end.  Add static_chain_on_stack.
8350         (ix86_static_chain_on_stack): New.
8351
8352         * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
8353         (m68k_output_mi_thunk): Don't use static_chain_rtx.
8354         (m68k_trampoline_init): New.
8355         * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
8356         m68k_trampoline_init and adjust for hook parameters.
8357         * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
8358         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.
8359
8360 2009-09-22  Jakub Jelinek  <jakub@redhat.com>
8361
8362         * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
8363         for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
8364
8365         * reload1.c (reload): Call wrap_constant when substituting
8366         reg for equiv inside of DEBUG_INSNs.
8367
8368         PR bootstrap/41405
8369         * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
8370         add_call_src_coords_attributes, add_high_low_attributes,
8371         gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
8372         gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
8373         dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
8374         when -gdwarf-2 -gstrict-dwarf.
8375         (loc_list_from_tree): Likewise.  Avoid using DWARF4 additions when
8376         -gdwarf-[23] -gstrict-dwarf.
8377         (address_of_int_loc_descriptor, loc_descriptor,
8378         loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
8379         DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
8380         * common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
8381
8382 2009-09-22  Richard Guenther  <rguenther@suse.de>
8383
8384         PR tree-optimization/41428
8385         * tree-ssa-ccp.c (ccp_fold_stmt): New function.
8386         (ccp_finalize): Pass it to substitute_and_fold.
8387
8388 2009-09-22  Richard Guenther  <rguenther@suse.de>
8389
8390         * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
8391         (substitute_and_fold): Adjust prototype.
8392         * tree-vrp.c (vrp_evaluate_conditional): Make static.
8393         (simplify_stmt_using_ranges): Likewise.
8394         (fold_predicate_in): Move here from tree-ssa-propagate.c.
8395         (vrp_fold_stmt): New function.
8396         (vrp_finalize): Pass it to substitute_and_fold.
8397         * tree-flow.h (vrp_evaluate_conditional): Remove.
8398         (simplify_stmt_using_ranges): Likewise.
8399         * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
8400         * tree-ssa-copy.c (fini_copy_prop): Likewise.
8401         * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
8402         member.
8403         (fold_predicate_in): Move to tree-vrp.c.
8404         (substitute_and_fold): Use the callback instead of calling into
8405         tree-vrp.c functions directly.
8406
8407 2009-09-22  Jakub Jelinek  <jakub@redhat.com>
8408
8409         * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
8410         comparison warning on rs6000.
8411
8412         PR middle-end/41429
8413         * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
8414         GIMPLE_EH_MUST_NOT_THROW cleanup.
8415         (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
8416
8417 2009-09-22  Jack Howarth  <howarth@bromo.med.uc.edu>
8418
8419         PR middle-end/41260
8420         * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
8421         * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
8422         LIB_SPEC for darwin10 and later since it always uses the unwinder in
8423         libSystem which is derived from the gcc 4.2.1 unwinder.
8424
8425 2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
8426
8427         PR middle-end/41357
8428         * varasm.c (default_encode_section_info): Copy TLS model into
8429         sym_ref flags regardless of backend support for TLS, for all
8430         model types except TLS_MODEL_EMULATED.
8431
8432 2009-09-22  Dave Korn  <dave.korn.cygwin@gmail.com>
8433
8434         PR bootstrap/41404
8435         * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
8436         we can handle it correctly.
8437
8438 2009-09-21  Gerald Pfeifer  <gerald@pfeifer.com>
8439
8440         * doc/install.texi (os2): Remove section.
8441
8442 2009-09-21  Gerald Pfeifer  <gerald@pfeifer.com>
8443
8444         * doc/standards.texi (Objective-C): Adjust two URLs.
8445
8446 2009-09-21  Giuseppe Scrivano <gscrivano@gnu.org>
8447
8448         * tree-tailcall.c (process_assignment): Don't check if a
8449         multiplication or an addition are already present.
8450         (find_tail_calls): Combine multiple additions and multiplications.
8451         (adjust_accumulator_values): Emit accumulators.
8452
8453 2009-09-21  Kai Tietz  <kai.tietz@onevision.com>
8454
8455         * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
8456         xmm register restore.
8457
8458 2009-09-21  Jan Hubicka  <jh@suse.cz>
8459
8460         * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
8461         (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
8462         restore at the end.
8463
8464 2009-09-21  Eric Botcazou  <ebotcazou@adacore.com>
8465
8466         * stor-layout.c (layout_type): Remove obsolete code.
8467
8468 2009-09-20  H.J. Lu  <hongjiu.lu@intel.com>
8469
8470         PR middle-end/41395
8471         * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.
8472
8473 2009-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8474
8475         PR middle-end/30789
8476         * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter.
8477         (do_mpc_ckconv): Accept FORCE_CONVERT parameter.
8478         (fold_builtin_2, do_mpc_arg1): Update accordingly.
8479         * fold-const.c (const_binop): Likewise.
8480         * real.h (do_mpc_arg2): Update prototype.
8481
8482 2009-09-20  Jan Hubicka  <jh@suse.cz>
8483
8484         * dwarf2out.c (add_const_value_attribute): Return true if successful.
8485         (add_location_or_const_value_attribute): Rewrite using
8486         loc_list_from_tree.
8487         (tree_add_const_value_attribute): Return true if successful.
8488         (tree_add_const_value_attribute_for_decl): Likewise.
8489
8490         * dwarf2out.c (address_of_int_loc_descriptor): Break out from ...
8491         (loc_descriptor): ... here;
8492         (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
8493         (cst_pool_loc_descr): Break out from ...; do not reffer constant
8494         pool items that was not marked for output.
8495         (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR;
8496         (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
8497         (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
8498         handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR,
8499         IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of
8500         CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use
8501         DW_OP_stack_value to get address of items that are not available
8502         as addresses.
8503         (dw_loc_list): Handle single element lists correctly.
8504
8505 2009-09-20  Kai Tietz  <kai.tietz@onevision.com>
8506             Pascal Obry  <obry@adacore.com>
8507
8508         * unwind-dw2-fde.c (classify_object_over_fdes):
8509         Cast the constant 1 to _Unwind_Ptr.
8510         (add_fdes): Likewise.
8511         (linear_search_fdes): Likewise.
8512
8513 2009-09-20  Eric Botcazou  <ebotcazou@adacore.com>
8514
8515         * stor-layout.c (set_sizetype): Avoid useless type copy.
8516
8517 2009-09-20  Richard Sandiford  <rdsandiford@googlemail.com>
8518
8519         * configure.ac (gcc_cv_ld_mips_personality_relaxation): New
8520         feature check.
8521         (HAVE_LD_PERSONALITY_RELAXATION): New macro definition.
8522         * configure, config.in: Regenerate.
8523         * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect |
8524         DW_EH_PE_absptr.
8525         * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro.
8526         (ASM_PREFERRED_EH_DATA_FORMAT): Define.  Use MIPS_EH_INDIRECT
8527         for global data if the output could be used in a shared library.
8528         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
8529         to 0 if TARGET_WRITABLE_EH_FRAME.
8530
8531 2009-09-20  Paolo Bonzini <bonzini@gnu.org>
8532
8533         PR rtl-optimization/39886
8534         * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
8535         just when insn is equal to BB_END (bb).
8536
8537 2009-09-19  Adam Nemet  <anemet@caviumnetworks.com>
8538
8539         * config/mips/mips.opt (mrelax-pic-calls): New option.
8540         * config/mips/mips.c (mips_strip_unspec_address): Move it up in
8541         the file.
8542         (mips_unspec_call): Change "unspec_call" expander into this.
8543         (mips_strip_unspec_call): New function.
8544         (mips_got_load): Call mips_unspec_call instead of
8545         gen_unspec_call<mode>.
8546         (mips16_build_call_stub): Fix comment for fp_code.  Adjust call to
8547         MIPS_CALL.
8548         (mips_cfg_in_reorg): New function.
8549         (mips16_lay_out_constants): Use it to decide whether to call
8550         CFG-aware insn splitting.
8551         (r10k_insert_cache_barriers): Move CFG set-up code from here to
8552         mips_reorg.  Move DF set-up code from here ...
8553         (mips_df_reorg): ... to here.  Call r10k_insert_cache_barriers
8554         from here.
8555         (mips_reorg): Call mips_df_reorg instead of
8556         r10k_insert_cache_barriers.  Move CFG set-up code here from
8557         r10k_insert_cache_barriers.
8558         (mips_call_expr_from_insn): New function.
8559         (mips_pic_call_symbol_from_set): Likewise.
8560         (mips_find_pic_call_symbol): Likewise.
8561         (mips_annotate_pic_call_expr): Likewise.
8562         (mips_get_pic_call_symbol): Likewise.
8563         (mips_annotate_pic_calls): Likewise.
8564         (mips_override_options): Disable -mrelax-pic-calls unless PIC
8565         calls are used.
8566         (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
8567         * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
8568         * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
8569         directive.
8570         * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
8571         (unspec_call<mode>): Remove it.
8572         (sibcall_internal, sibcall_value_internal,
8573         sibcall_value_multiple_internal, call_internal, call_split,
8574         call_value_internal, call_value_split,
8575         call_value_multiple_internal, call_value_multiple_split): Pass
8576         SIZE_OPNO to MIPS_CALL.
8577         (call_internal_direct, call_direct_split,
8578         call_value_internal_direct, call_value_direct_split): Pass -1 as
8579         SIZE_OPNO to MIPS_CALL.
8580         * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
8581         * configure: Regenerate.
8582         * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
8583         and -mno-relax-pic-calls.
8584         (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.
8585
8586 2009-09-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8587
8588         PR bootstrap/35619
8589         * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created
8590         in the directory this rule is called from, rather than the
8591         toplevel 'gcc' directory, to fix in-tree build.
8592
8593 2009-09-19  Chris Demetriou  <cgd@google.com>
8594
8595         PR preprocessor/28435:
8596         * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate
8597         to cpplib that the preprocessor output is needed.
8598
8599 2009-09-19  Jakub Jelinek  <jakub@redhat.com>
8600
8601         * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>,
8602         *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>,
8603         *return_and_restore_fpregs_<mode>,
8604         *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier.
8605
8606         PR bootstrap/41397
8607         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse
8608         instead of assuming it has always a REG inside of it.
8609
8610 2009-09-18  Gerald Pfeifer  <gerald@pfeifer.com>
8611
8612         * config/freebsd.h: Update comment on types.
8613         (WINT_TYPE): Define.
8614
8615 2009-09-18  Jason Merrill  <jason@redhat.com>
8616
8617         * c.opt: Add -fno-deduce-init-list.
8618
8619 2009-09-18  Neil Vachharajani  <nvachhar@google.com>
8620
8621         * value-prof.c (interesting_stringop_to_profile_p): Added output
8622         argument to indicate which parameter is the size parameter.
8623         * value-prof.c (gimple_stringop_fixed_value): Use
8624         INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
8625         * value-prof.c (gimple_stringops_transform): Update call sites to
8626         INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.
8627
8628 2009-09-18  Uros Bizjak  <ubizjak@gmail.com>
8629
8630         PR target/38288
8631         From David Binderman <dcb314@hotmail.com>:
8632         * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
8633         local variable f.  Remove stale comments.
8634         (ix86_compute_frame_layout): Remove useless local variable total_size.
8635         Remove #if 0'd code.
8636         (legitimate_address_p): Remove useless local variables
8637         reason_rtx and reason.
8638         (ix86_split_copysign_const): Remove useless local variable op1.
8639         (scale_counter): Remove useless local variable piece_size_mask.
8640
8641 2009-09-18  Jakub Jelinek  <jakub@redhat.com>
8642
8643         * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
8644         output decl.
8645
8646 2009-09-17  Michael Haubenwallner  <michael.haubenwallner@salomon.at>
8647
8648         PR target/40913
8649         * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
8650
8651 2009-09-17  Jakub Jelinek  <jakub@redhat.com>
8652
8653         * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
8654         TYPE_STUB_DECL.
8655
8656 2009-09-17  Alexandre Oliva  <aoliva@redhat.com>
8657
8658         * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
8659         DW_OP_implicit_value even without dwarf_version 4.
8660
8661 2009-09-17  Jan Hubicka  <jh@suse.cz>
8662
8663         * dwarf2out.c: Include tree-pass.h and gimple.h.
8664         (loc_list_plus_const): New function.
8665         (loc_descriptor_from_tree_1): Rename to ...
8666         (loc_descriptor_from_tree): ... remove original.
8667         (loc_list_from_tree): New function.
8668         (add_AT_location_description): Accept location list.
8669         (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
8670         (concatn_mem_loc_descriptor): Remove.
8671         (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
8672         returning NULL.
8673         (secname_for_decl): Move up.
8674         (hidden_reference_p): New function; break out from ...
8675         (loc_by_refernece): ... here; move up.
8676         (dw_loc_list): New function.
8677         (single_element_loc_list): New function.
8678         (single_element_loc_list_p): New function.
8679         (add_loc_descr_to_each): New function.
8680         (add_loc_list): New function.
8681         (loc_descr_from_tree): Make wraper of loc_list_from_tree.
8682         (loc_list_from_tree): Reroganized from loc_descr_from_tree;
8683         add diagnostics why expansion failed.
8684         (add_location_or_const_value_attribute): Support location lists.
8685         (add_bound_info): Likewise.
8686         (descr_info_loc): Update call of loc_descriptor_from_tree.
8687         (gen_variable_die): Work on location lists.
8688         * final.c (pass_final): Add dump file.
8689         * Makefile.in (dwarf2out.o): Add new dependencies.
8690
8691 2009-09-17  Janis Johnson  <janis187@us.ibm.com>
8692
8693         PR c/41049
8694         * real.c decimal_from_integer, decimal_integer_string): New.
8695         (real_from_integer): Use them as special case for decimal float.
8696         * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
8697         (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
8698         Do not append zero after the decimal point in string to convert.
8699
8700 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
8701
8702         * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
8703         for ARRAY_REFs.  Use array_ref_{low,up}_bound to determine bounds.
8704
8705 2009-09-17  Martin Jambor  <mjambor@suse.cz>
8706
8707         * common.opt (fipa-sra): New switch.
8708         * opts.c (decode_options): Turn flag_ipa_sra on for opt2.
8709         * timevar.def (TV_IPA_SRA): New timevar.
8710         * params.def (ipa-sra-ptr-growth-factor): New parameter.
8711         * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
8712         * tree-sra.c: Include cgraph.c.
8713         (enum sra_mode): Added SRA_MODE_EARLY_IPA.
8714         (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
8715         and grp_not_necessarilly_dereferenced.
8716         (func_param_count): New variable.
8717         (encountered_apply_args): New variable.
8718         (bb_dereferences): New variable.
8719         (final_bbs): New variable.
8720         (no_accesses_representant): New variable.
8721         (no_accesses_p): New function.
8722         (dump_access): Dump the new fields.
8723         (sra_initialize): Set encountered_apply_args to false.
8724         (get_ssa_base_param): New function.
8725         (mark_parm_dereference): New function.
8726         (create_access): Caring for INIDRECT_REFs and different handling of
8727         varialble length accesses in early IPA SRA.  Store the stmt - a new
8728         parameter - to the new access.
8729         (build_access_from_expr_1): New parameter stmt, passed to
8730         create_access.  Handle INDIRECT_REFs.
8731         (build_access_from_expr): Pass the current statement to
8732         build_access_from_expr_1.
8733         (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
8734         passes.
8735         (build_accesses_from_assign): Pass the current statement to
8736         build_access_from_expr_1.  Do not create assign links in IPA-SRA.
8737         (scan_function): Call handle_ssa_defs on phi nodes.  Set bits in
8738         final_bbs when necessary.  Check for calls to __builtin_apply_args.
8739         Fixup EH info if anythng was changed.
8740         (is_unused_scalar_param): New function.
8741         (ptr_parm_has_direct_uses): New function.
8742         (find_param_candidates): New function.
8743         (mark_maybe_modified): New function.
8744         (analyze_modified_params): New function.
8745         (propagate_dereference_distances): New function.
8746         (dump_dereferences_table): New function.
8747         (analyze_caller_dereference_legality): New function.
8748         (unmodified_by_ref_scalar_representative): New function.
8749         (splice_param_accesses): New function.
8750         (decide_one_param_reduction): New function.
8751         (enum ipa_splicing_result): New type.
8752         (splice_all_param_accesses): New function.
8753         (get_param_index): New function.
8754         (turn_representatives_into_adjustments): New function.
8755         (analyze_all_param_acesses): New function.
8756         (get_replaced_param_substitute): New function.
8757         (get_adjustment_for_base): New function.
8758         (replace_removed_params_ssa_names): New function.
8759         (sra_ipa_reset_debug_stmts): New function.
8760         (sra_ipa_modify_expr): New function.
8761         (sra_ipa_modify_assign): New function.
8762         (convert_callers): New function.
8763         (modify_function): New function.
8764         (ipa_sra_preliminary_function_checks): New function.
8765         (ipa_early_sra): New function.
8766         (ipa_early_sra_gate): New function.
8767         (pass_early_ipa_sra): New variable.
8768         * Makefile.in (tree-sra.o): Add cgraph.h to dependencies.
8769
8770 2009-09-17  Michael Matz  <matz@suse.de>
8771
8772         PR middle-end/41347
8773         * tree.c (build_type_attribute_qual_variant): Export.
8774         * tree.h (build_type_attribute_qual_variant): Declare.
8775         * tree-inline.c (remap_type_1): Use it to build variants with
8776         the original qualifiers and attributes.
8777
8778 2009-09-17  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8779
8780         * cfglayout.c (fixup_reorder_chain): Accept conditional jumps
8781         without a fallthrough edge.
8782
8783 2009-09-16  DJ Delorie  <dj@redhat.com>
8784
8785         * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
8786         chip and ignore the "fast_interrupt" attribute if so.
8787
8788 2009-09-16  Richard Henderson  <rth@redhat.com>
8789
8790         PR middle-end/41360
8791         * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02
8792         barrier fix.
8793
8794 2009-09-16  Richard Henderson  <rth@redhat.com>
8795
8796         PR target/41246
8797         * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain
8798         is set only if DECL_NO_STATIC_CHAIN is unset.
8799         * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New.
8800         (FOR_EACH_NEST_INFO): New.
8801         (walk_all_functions): Use it.
8802         (finalize_nesting_tree): Likewise.
8803         (unnest_nesting_tree): Likewise.
8804         (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next.
8805         (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN.
8806         (convert_gimple_call): Early out if gimple_call_chain already set.
8807         (convert_all_function_calls): Iterate until no new functions
8808         require a static chain.
8809         (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset
8810         when building a trampoline.  Use dump_function_to_file instead
8811         of dump_function.
8812         (lower_nested_functions): Open dump_file.  Validate that decls
8813         that have DECL_NO_STATIC_CHAIN from the front end don't have that
8814         bit reset by this pass.
8815
8816 2009-09-16  Michael Matz  <matz@suse.de>
8817
8818         PR fortran/41212
8819         * tree.h (struct tree_decl_common): Add decl_restricted_flag,
8820         shorten decl_common_unused.
8821         (DECL_RESTRICTED_P): New accessor.
8822         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it
8823         to disambiguate marked decls and restrict pointers.
8824
8825 2009-09-16  Richard Henderson  <rth@redhat.com>
8826
8827         PR middle-end/41360
8828         * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix.
8829
8830 2009-09-16  Jakub Jelinek  <jakub@redhat.com>
8831
8832         * integrate.c (set_block_abstract_flags): Call
8833         set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
8834
8835 2009-09-16  Richard Guenther  <rguenther@suse.de>
8836
8837         PR middle-end/34011
8838         * tree-flow-inline.h (may_be_aliased): Compute readonly variables
8839         as non-aliased.
8840
8841 2009-09-16  DJ Delorie  <dj@redhat.com>
8842             Kaz Kojima  <kkojima@gcc.gnu.org>
8843
8844         * config/sh/sh.c (output_stack_adjust): Add new argument frame_p.
8845         (sh_expand_prologue): Update calls to output_stack_adjust.
8846         (sh_expand_epilogue): Likewise.
8847
8848 2009-09-15  Adam Nemet  <anemet@caviumnetworks.com>
8849
8850         PR bootstrap/41349
8851         * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when
8852         trying to limit the extent of searches in the insn stream.
8853
8854 2009-09-15  Nathan Froyd  <froydnj@codesourcery.com>
8855             Jakub Jelinek  <jakub@redhat.com>
8856
8857         PR target/41175
8858         PR target/40677
8859         * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
8860         problem.
8861         (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
8862         SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits.
8863         (rs6000_savres_strategy): Always save FP registers inline if the
8864         target doesn't support hardware double-precision.  Set the above
8865         bits in return value when needed.
8866         (rs6000_savres_routine_sym): Fix computation for cache selector.
8867         Mark the generated symbol as a function.  Rename exitp argument to
8868         lr.  Move code for determining the name of the symbol...
8869         (rs6000_savres_routine_name): ...here.  New function.  Add cases for
8870         getting the names right on AIX and 64-bit Linux.
8871         (savres_routine_name): New variable.
8872         (rs6000_make_savres_rtx): Rename exitp argument to lr.  Don't assert
8873         lr isn't set when savep.  Use r12 resp. r1 instead of r11 depending
8874         on what the target routine uses as a base register.  If savep && lr
8875         describe saving of r0 into memory slot.
8876         (rs6000_emit_prologue): Correct use of call_used_regs.  Fix out of
8877         line calls for AIX ABI.
8878         (rs6000_output_function_prologue): Use rs6000_savres_routine_name to
8879         determine FP save/restore functions.
8880         (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and
8881         frame_reg_rtx != sp_reg_rtx.  Use gen_add3_insn instead of
8882         gen_addsi3.
8883         (rs6000_emit_epilogue): Adjust computation of restore_lr.
8884         Duplicate restoration of LR and execute the appropriate one
8885         depending on whether GPRs are being restored inline.  Set r11 from
8886         offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is
8887         r11, adjust sp_offset.  Use gen_add3_insn instead of gen_addsi3.
8888         Fix out of line calls for AIX ABI.
8889         * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>):
8890         New insn.
8891         * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for
8892         register 11.
8893         (*restore_gpregs_spe): Likewise.
8894         (*return_and_restore_gpregs_spe): Likewise.
8895         * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
8896         Define to empty string unconditionally.
8897         * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
8898         Define to empty string unconditionally.
8899         (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as
8900         !TARGET_64BIT.
8901
8902 2009-09-15  Jan Hubicka  <jh@suse.cz>
8903
8904         * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50.
8905         * params.def (inline-insns-auto): Likewise.
8906
8907 2009-09-15  Martin Jambor  <mjambor@suse.cz>
8908
8909         * ipa-inline.c (estimate_function_body_sizes): Dump info about
8910         individual statements only at TDF_DETAILS dump level.  Format
8911         source for 80 characters per line.
8912
8913 2009-09-15  Christian Bruel  <christian.bruel@st.com>
8914
8915         * regrename.c (do_replace): Update REG_DEAD notes.
8916
8917 2009-09-15  Revital Eres  <eres@il.ibm.com>
8918
8919         * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document.
8920         * targhooks.c (default_builtin_support_vector_misalignment):
8921         New builtin function.
8922         * targhooks.h (default_builtin_support_vector_misalignment):
8923         Declare.
8924         * target.h (builtin_support_vector_misalignment):
8925         New field in struct gcc_target.
8926         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call
8927         new builtin function.
8928         * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT):
8929         Define.
8930         * config/rs6000/rs6000.c
8931         (rs6000_builtin_support_vector_misalignment): New function.
8932         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define.
8933
8934 2009-09-15  Jie Zhang  <jie.zhang@analog.com>
8935
8936         * config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P
8937         instead of INSN_P.
8938         (bfin_optimize_loop): Likewise.
8939         (bfin_gen_bundles): Likewise.
8940         (workaround_speculation): Likewise.
8941         (find_load): Return NULL_RTX for debug_insn.
8942
8943 2009-09-15  Uros Bizjak  <ubizjak@gmail.com>
8944
8945         * config/alpha/alpha.md (smaxsf3): Disable for IEEE mode.
8946         (sminsf3): Ditto.
8947
8948 2009-09-14  DJ Delorie  <dj@redhat.com>
8949
8950         * config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
8951         * config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in
8952         VLIW mode.
8953
8954 2009-09-14  Richard Henderson  <rth@redhat.com>
8955             Jakub Jelinek  <jakub@redhat.com>
8956
8957         * builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec.
8958         * cfgbuild.c (make_edges): Handle asm goto.
8959         * cfglayout.c (fixup_reorder_chain): Likewise.
8960         * cfgrtl.c (patch_jump_insn): Likewise.
8961         * gimple-pretty-print.c (dump_gimple_asm): Likewise.
8962         * gimple.c (gimple_build_asm_1): Add and use nlabels parameter.
8963         (gimple_build_asm_vec): Add and use labels parameter.
8964         (gimple_build_asm): Remove.
8965         (walk_gimple_asm): Walk labels too.
8966         * gimple.def (GIMPLE_ASM): Update docs.
8967         * gimple.h: Update decls.
8968         (struct gimple_statement_asm): Change nc to use unsigned char;
8969         add nl member.
8970         (gimple_asm_nlabels): New.
8971         (gimple_asm_label_op, gimple_asm_set_label_op): New.
8972         * gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR
8973         into gimple_build_asm_vec.
8974         * jump.c (mark_jump_label_asm): New.
8975         (mark_jump_label): Use it.
8976         (redirect_jump_1): Handle asm goto.
8977         (invert_jump_1): Soft fail if X is null.
8978         * recog.c (extract_asm_operands): New.
8979         (asm_noperands): Use it; handle asm labels.
8980         (decode_asm_operands): Use extract_asm_operands.
8981         (asm_operand_ok): Properly handle empty string.
8982         * reg-stack.c (get_asm_operands_in_out): Rename from
8983         get_asm_operand_n_inputs; use extract_asm_operands; return both
8984         inputs and outputs by reference; update all callers.
8985         * rtl.def (ASM_OPERANDS): Add label vector as operand 6.
8986         * rtl.h (ASM_OPERANDS_LABEL_VEC): New.
8987         (ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New.
8988         (ASM_OPERANDS_SOURCE_LOCATION): Renumber.
8989         (extract_asm_operands): Declare.
8990         * stmt.c (expand_asm_operands): Add and use labels parameter.
8991         (check_unique_operand_names): Likewise.
8992         (resolve_asm_operand_names, resolve_operand_name_1): Likewise.
8993         (expand_asm_stmt): Handle asm labels.
8994         * tree-cfg.c (make_gimple_asm_edges): New.
8995         (make_edges): Use it.
8996         (cleanup_dead_labels): Handle asm labels.
8997         (is_ctrl_altering_stmt): Likewise.
8998         (gimple_redirect_edge_and_branch): Likewise.
8999         * tree.def (ASM_EXPR): Add 5th operand.
9000         * tree.h (ASM_LABELS): New.
9001         (resolve_asm_operand_names): Update decl.
9002
9003         * c-parser.c (c_parser_asm_statement): Parse asm goto.
9004         (c_parser_asm_goto_operands): New.
9005         * c-tree.h (build_asm_expr): Update decl.
9006         * c-typeck.c (build_asm_expr): Add and use labels parameter.
9007         * doc/extend.texi: Document asm goto.
9008
9009 2009-09-14  Richard Henderson  <rth@redhat.com>
9010
9011         * except.h: Update declarations.
9012         (struct pointer_map_t): Forward declare.
9013         (ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove.
9014         (struct eh_landing_pad_d, eh_landing_pad): New.
9015         (struct eh_catch_d, eh_catch): New.
9016         (struct eh_region_d): Remove next_region_sharing_label, aka,
9017         label, tree_label, landing_pad, post_landing_pad, resume,
9018         may_contain_throw.  Rename region_number to index.  Remove
9019         u.eh_catch, u.eh_throw.  Rename u.eh_try.eh_catch to first_catch.
9020         Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg.
9021         (VEC(eh_landing_pad,gc)): New.
9022         (struct eh_status): Remove last_region_number.  Add lp_array,
9023         throw_stmt_table, ttype_data, ehspec_data.
9024         (ehr_next, FOR_ALL_EH_REGION_AT): New.
9025         (FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New.
9026         * except.c (lang_protect_cleanup_actions): Return tree.
9027         (struct ehl_map_entry): Remove.
9028         (init_eh_for_function): Push zero entries for region and lp_array.
9029         (gen_eh_region): Add to region_array immediately.
9030         (gen_eh_region_catch): Operate on eh_catch objects.
9031         (gen_eh_landing_pad): New.
9032         (get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove.
9033         (get_eh_region_no_tree_label, set_eh_region_tree_label): Remove.
9034         (get_eh_region_from_number, get_eh_region_from_number_fn): New.
9035         (get_eh_landing_pad_from_number_fn): New.
9036         (get_eh_landing_pad_from_number): New.
9037         (get_eh_region_from_lp_number_fn): New.
9038         (get_eh_region_from_lp_number): New.
9039         (expand_resx_stmt, note_eh_region_may_contain_throw): Remove.
9040         (get_exception_pointer, get_exception_filter): Remove.
9041         (collect_eh_region_array, can_be_reached_by_runtime): Remove.
9042         (current_function_has_exception_handlers): Simplify.
9043         (bring_to_root, eh_region_replaceable_by_p): Remove.
9044         (replace_region, hash_type_list, hash_eh_region): Remove.
9045         (eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove.
9046         (label_to_region_map, num_eh_regions): Remove.
9047         (get_next_region_sharing_label, must_not_throw_labels): Remove.
9048         (find_exception_handler_labels): Remove.
9049         (duplicate_eh_regions_0, find_prev_try): Remove.
9050         (struct duplicate_eh_regions_data): New.
9051         (duplicate_eh_regions_1): Rewrite.
9052         (duplicate_eh_regions): Return a pointer map instead of an
9053         integer offset.
9054         (copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove.
9055         (redirect_eh_edge_to_label): Remove.
9056         (eh_region_outermost): Rewrite using eh_region pointers
9057         instead of integers.
9058         (add_ttypes_entry): Update for ttype_data move to eh_status.
9059         (add_ehspec_entry): Rewrite with VEC instead of varray.
9060         (assign_filter_values): Likewise.  Export.
9061         (build_post_landing_pads, connect_post_landing_pads): Remove.
9062         (dw2_build_landing_pads): Rewrite to use lp_array.
9063         (struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove.
9064         (sjlj_assign_call_site_values): Rewrite to use lp_array.
9065         (sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise.
9066         (sjlj_mark_call_sites): Update for landing pad numbers.
9067         (finish_eh_generation): Rewrite.
9068         (gate_handle_eh): Do nothing for no eh tree.
9069         (pass_rtl_eh): Move up near finish_eh_generation.
9070         (remove_eh_landing_pad): New.
9071         (remove_eh_handler): Export.
9072         (remove_eh_region, remove_eh_handler_and_replace): Remove.
9073         (for_each_eh_label): Rewrite to use lp_array.
9074         (make_reg_eh_region_note): New.
9075         (make_reg_eh_region_note_nothrow_nononlocal): New.
9076         (insn_could_throw_p): New.
9077         (copy_reg_eh_region_note_forward): New.
9078         (copy_reg_eh_region_note_backward): New.
9079         (check_handled, add_reachable_handler): Remove.
9080         (reachable_next_level, foreach_reachable_handler): Remove.
9081         (arh_to_landing_pad, arh_to_label, reachable_handlers): Remove.
9082         (get_eh_region_and_lp_from_rtx): New.
9083         (get_eh_region_from_rtx): New.
9084         (can_throw_internal_1, can_throw_external_1): Remove.
9085         (can_throw_internal): Use get_eh_region_from_rtx.
9086         (can_throw_external): Use get_eh_region_and_lp_from_rtx.
9087         (insn_nothrow_p, can_nonlocal_goto): New.
9088         (expand_builtin_eh_common, expand_builtin_eh_pointer): New.
9089         (expand_builtin_eh_filter, expand_builtin_eh_copy_values): New.
9090         (add_action_record): Use VEC not varray.
9091         (collect_one_action_chain): Update for eh_region changes.
9092         (convert_to_eh_region_ranges): Make static.  Use VEC not varray.
9093         Use get_eh_region_and_lp_from_rtx.
9094         (gate_convert_to_eh_region_ranges): New.
9095         (pass_convert_to_eh_region_ranges): Use it.
9096         (push_uleb128, push_sleb128): Use VEC not varray.
9097         (output_one_function_exception_table): Likewise.
9098         (dump_eh_tree): Update for eh_region changes.
9099         (verify_eh_tree): Likewise.
9100         (verify_eh_region, default_init_unwind_resume_libfunc): Remove.
9101         * tree-eh.c: Include target.h.
9102         (add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn.
9103         Don't disallow GIMPLE_RESX; adjust argument check.
9104         (add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region.
9105         (record_stmt_eh_region): Update for landing pad numbers;
9106         generate a landing pad if necessary.
9107         (remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region.
9108         (remove_stmt_from_eh_lp_fn): Similarly.
9109         (lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn.
9110         Update for lp numbers; don't special case missing throw_stmt_table.
9111         (lookup_expr_eh_lp): Similarly.
9112         (lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region.
9113         (eh_seq, eh_region_may_contain_throw): New.
9114         (struct leh_state): Add ehp_region.
9115         (struct leh_tf_state): Remove eh_label.
9116         (emit_post_landing_pad): New.
9117         (emit_resx, emit_eh_dispatch): New.
9118         (note_eh_region_may_contain_throw): New.
9119         (frob_into_branch_around): Take eh_region not eh label;
9120         emit eh code into eh_seq.
9121         (honor_protect_cleanup_actions): Early exit for no actions.  Don't
9122         handle EXC_PTR_EXPR, FILTER_EXPR.  Use gimple_build_eh_must_not_throw,
9123         lower_eh_must_not_throw.  Emit code to eh_seq.
9124         (lower_try_finally_nofallthru): Emit eh code to eh_seq.
9125         (lower_try_finally_onedest): Likewise.
9126         (lower_try_finally_copy): Likewise.
9127         (lower_try_finally_switch): Likewise.
9128         (lower_try_finally): Initialize ehp_region.
9129         (lower_catch): Update for eh_catch objects.
9130         (lower_eh_filter): Don't handle must_not_throw.
9131         (lower_eh_must_not_throw): New.
9132         (lower_cleanup): Don't set eh_label.
9133         (lower_eh_constructs_2): Resolve eh builtins.
9134         Handle GIMPLE_EH_MUST_NOT_THROW.
9135         (lower_eh_constructs): Initialize eh_region_may_contain_throw.
9136         Add eh_seq to the end of the function body.
9137         (make_eh_dispatch_edges): New.
9138         (make_eh_edge): Remove.
9139         (make_eh_edges): Simplify for landing pads.
9140         (redirect_eh_edge_1): New.
9141         (redirect_eh_edge): Use it.
9142         (redirect_eh_dispatch_edge): New.
9143         (stmt_could_throw_p): Use a switch.  Allow RESX.
9144         (stmt_can_throw_external): Use lookup_stmt_eh_lp.
9145         (stmt_can_throw_internal): Likewise.
9146         (maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New.
9147         (maybe_clean_or_replace_eh_stmt): Update for landing pads.
9148         (maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New.
9149         (gate_refactor_eh): New.
9150         (pass_refactor_eh): Use it.
9151         (lower_resx, execute_lower_resx, pass_lower_resx): New.
9152         (lower_eh_dispatch, execute_lower_eh_dispatch): New.
9153         (gate_lower_ehcontrol, pass_lower_eh_dispatch): New.
9154         (remove_unreachable_handlers): Rename from
9155         tree_remove_unreachable_handlers; rewrite for landing pads;
9156         call remove_eh_handler directly.
9157         (remove_unreachable_handlers_no_lp): New.
9158         (unsplit_eh, unsplit_all_eh): New.
9159         (tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove.
9160         (cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New.
9161         (cleanup_empty_eh_unsplit): New.
9162         (cleanup_empty_eh): Rewrite.
9163         (cleanup_all_empty_eh): New.
9164         (execute_cleanup_eh): Rename from cleanup_eh.  Remove unreachable
9165         handlers first.  Use unsplit_all_eh, cleanup_all_empty_eh.
9166         (gate_cleanup_eh): New.
9167         (pass_cleanup_eh): Use it.
9168         (verify_eh_edges): Move later in file.  Expect one EH edge.
9169         (verify_eh_dispatch_edge): New.
9170
9171         * Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h.
9172         (gtype-desc.o): Add TARGET_H.
9173         (tree.o): Use EXCEPT_H, not except.h.
9174         (cfgbuild.o): Add EXPR_H.
9175         (GTFILES): Add vecprim.h.
9176         * builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER,
9177         BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES.
9178         * builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER,
9179         BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New.
9180         * calls.c (emit_call_1): Use make_reg_eh_region_note.
9181         * cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy
9182         calls to can_throw_internal.
9183         (rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx.
9184         (make_edges): Don't handle RESX; use can_nonlocal_goto.
9185         * cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX.
9186         (expand_gimple_stmt): Use make_reg_eh_region_note.
9187         (expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR.
9188         (gimple_expand_cfg): Don't call convert_from_eh_region_ranges,
9189         or find_exception_handler_labels.
9190         * cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX.  Assert
9191         there is exacly one EH edge.  Use can_nonlocal_goto and
9192         can_throw_internal.
9193         * cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn.
9194         (cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt.
9195         * combine.c (can_combine_p, try_combine): Use insn_nothrow_p.
9196         * cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p.
9197         * dce.c (deletable_insn_p_1): Don't test may_trap_p.
9198         (deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test.
9199         * dse.c (scan_insn): Use insn_could_throw_p.
9200         * emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward.
9201         * expr.c (expand_expr_real): Use make_reg_eh_region_note.
9202         (expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR.
9203         * fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle
9204         EXC_PTR_EXPR or FILTER_EXPR.
9205         (tree_expr_nonzero_warnv_p): Likewise.
9206         * function.h: Include vecprim.h, not varray.h
9207         (struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members;
9208         move ttype_data and ehspec_data members to struct eh_status; change
9209         action_record_data member to a VEC.
9210         * gcse.c (hash_scan_set): Use can_throw_internal.
9211         * gengtype.c (open_base_files): Add target.h to gtype-desc.c.
9212         * gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt.
9213         * gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
9214         (block_may_fallthru): Don't handle RESX_EXPR.
9215         * gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR.
9216         (dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New.
9217         (dump_gimple_stmt): Dump landing pad information with TDF_EH;
9218         handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH.
9219         * gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW,
9220         GIMPLE_EH_DISPATCH, GIMPLE_RESX.
9221         (gimple_size): Likewise.
9222         (gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New.
9223         (gimple_build_resx): Use gimple_build_with_ops.
9224         (DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR.
9225         (is_gimple_val): Likewise.
9226         (is_gimple_stmt): Remove RESX_EXPR.
9227         * gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New.
9228         (GIMPLE_RESX): Reorder with other EH constructs.
9229         * gimple.h (struct gimple_statement_eh_mnt): New.
9230         (struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx.
9231         (gimple_eh_filter_must_not_throw): Remove.
9232         (gimple_eh_filter_set_must_not_throw): Remove.
9233         (gimple_eh_must_not_throw_fndecl): New.
9234         (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New.
9235         (is_gimple_resx): New.
9236         * gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR.
9237         Don't copy EH_FILTER_MUST_NOT_THROW.
9238         * gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New.
9239         * ipa-inline.c (estimate_function_body_sizes): Don't try to
9240         handle must_not_throw_labels specially.
9241         * ipa-pure-const.c (check_call): Update debug statement for LP.
9242         * ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER.
9243         * ipa-utils.c (get_base_var): Likewise.
9244         * libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove.
9245         * lower-subreg.c (move_eh_region_note): Remove.
9246         (resolve_simple_move): Use copy_reg_eh_region_note_forward.
9247         * omp-low.c (new_omp_context): Update for eh_lp_nr.
9248         (create_task_copyfn): Likewise.
9249         (maybe_catch_exception): Use gimple_build_eh_filter.
9250         * optabs.c (emit_libcall_block): Update test for no-nonlocal-goto
9251         REG_EH_REGION.  Use make_reg_eh_region_note_nothrow_nononlocal.
9252         * passes.c (init_optimization_passes): Add pass_lower_eh_dispatch
9253         and pass_lower_resx.
9254         * print-tree.c (print_node): Dump EH_LANDING_PAD_NR.
9255         * recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward,
9256         can_throw_internal, can_nonlocal_goto.
9257         * reload1.c (fixup_eh_region_note): Use insn_could_throw_p,
9258         copy_reg_eh_region_note_forward.
9259         (emit_input_reload_insns): Use copy_reg_eh_region_note_forward.
9260         (emit_output_reload_insns): Likewise.
9261         (copy_eh_notes): Remove.
9262         * rtl.def (RESX): Remove.
9263         * rtl.h: Update declarations.
9264         * sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt.
9265         * tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH.
9266         (update_eh_label): Remove.
9267         (cleanup_dead_labels_eh): New.
9268         (cleanup_deal_labels): Use it instead of update_eh_label.
9269         (gimple_merge_blocks): Update landing pad data structure when
9270         removing a landing pad label.
9271         (remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw
9272         test; handle GIMPLE_EH_MUST_NOT_THROW.
9273         (is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH.
9274         (verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR.
9275         (verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH.
9276         (verify_stmt): Likewise.  Verify landing pads.
9277         (gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH.
9278         (gimple_duplicate_bb): Use maybe_duplicate_eh_stmt.
9279         (struct move_stmt_d): Add eh_map.
9280         (move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New.
9281         (move_stmt_r): Remap eh region numbers in builtin calls,
9282         resx and eh_dispatch.
9283         (move_block_to_fn): Remove eh_offset parameter.  Use
9284         maybe_duplicate_eh_stmt_fn.
9285         (find_outermost_region_in_block): Operate on eh_region pointers
9286         instead of region numbers.
9287         (move_sese_region_to_fn): Expect eh_map instead of eh_offset from
9288         duplicate_eh_regions.
9289         * tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge
9290         test earlier.  Disallow EH landing pads.
9291         * tree-cfa.c (create_tree_common_ann): Don't set ann->rn.
9292         * tree-flow.h: Update declarations.
9293         (struct tree_ann_common_d): Replace rn with lp_nr.
9294         * tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR.
9295         (remap_eh_region_nr, remap_eh_region_tree_nr): New.
9296         (remap_gimple_stmt): Remap eh region numbers in builtin calls,
9297         resx and eh_dispatch.
9298         (copy_bb): Use maybe_duplicate_eh_stmt_fn.
9299         (copy_edges_for_bb): Use make_eh_dispatch_edges.
9300         (copy_cfg_body): Expect eh_map instead of eh_region_offset
9301         from duplicate_eh_regions.
9302         (estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR;
9303         update RESX; handle EH_DISPATCH.
9304         (expand_call_inline): Set eh_lp_nr, not eh_region.
9305         (maybe_inline_call_in_expr): Likewise.
9306         * tree-inline.h (struct copy_body_data): Replace eh_region with
9307         eh_lp_nr, eh_region_offset with eh_map.
9308         * tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt.
9309         * tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New.
9310         * tree-pretty-print.c (dump_generic_node): Don't handle
9311         EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR.
9312         * tree-sra.c (scan_function): Use maybe_clean_eh_stmt.
9313         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle
9314         EXC_PTR_EXPR, FILTER_EXPR.
9315         * tree-ssa-operands.c (get_expr_operands): Likewise.
9316         * tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise.
9317         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9318         (ao_ref_init_from_vn_reference): Likewise.
9319         * tree-ssa-sink.c (statement_sink_location): Likewise.
9320         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9321         (mark_virtual_phi_result_for_renaming): Export.  Tidy.
9322         * tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle
9323         EXC_PTR_EXPR, FILTER_EXPR.
9324         (is_exception_related): Remove.
9325         (compute_avail): Don't call it.
9326         * tree-ssa-structalias.c: Remove VEC definitions for int and unsigned.
9327         * tree.c (find_decls_types_in_eh_region): Update for eh_region changes.
9328         (find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN.
9329         (build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter.
9330         Build EH builtins.
9331         (build_resx): Remove.
9332         * tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove.
9333         * tree.h: Update declarations.
9334         (EH_FILTER_MUST_NOT_THROW): Remove.
9335         (struct tree_label_decl): Add eh_landing_pad_nr.
9336         (EH_LANDING_PAD_NR): New.
9337         * value-prof.c (gimple_ic): Tidy variable names.  Update for
9338         landing pad numbers.
9339         (gimple_stringop_fixed_value): Tidy variable names.  Assert
9340         that neither call stmt can throw.
9341         * vecprim.h (uchar): New.
9342         (VEC(uchar,heap), VEC(uchar,gc)): New.
9343
9344         * c-common.c (c_define_builtins): Update call to
9345         build_common_builtin_nodes.
9346         * c-parser.c (c_parse_file): Don't call
9347         default_init_unwind_resume_libfunc.
9348
9349 2009-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
9350
9351         * config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare.
9352         (mips_cprestore_address_p): Likewise.
9353         (mips_save_gp_to_cprestore_slot): Likewise.
9354         (mips_restore_gp): Rename to...
9355         (mips_restore_gp_from_cprestore_slot): ...this.
9356         (mips_must_initialize_gp_p): Declare.
9357         (mips_emit_save_slot_move): Likewise.
9358         (mips_output_load_label): Return nothing.
9359         (mips_eh_uses): Declare.
9360         * config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed.
9361         (TARGET_CPRESTORE_DIRECTIVE): New macro.
9362         (TARGET_ABSOLUTE_JUMPS): Likewise.
9363         (EH_USES): Likewise.
9364         (FIRST_PSEUDO_REGISTER): Update comment.
9365         (MIPS_ABSOLUTE_JUMP): New macro, extracted from...
9366         (MIPS_CALL): ...here.
9367         (REGISTER_NAMES): Add $cprestore.
9368         * config/mips/mips.c (machine_function): Remove has_gp_insn_p.
9369         Add load_label_length, has_inflexible_gp_insn_p,
9370         has_flexible_gp_insn_p, must_initialize_gp_p and
9371         must_restore_gp_when_clobbered_p.
9372         (mips_expand_call): Don't generate split instructions here.
9373         (mips_split_call): Update the call to mips_restore_gp after
9374         the above name change.
9375         (mips16_cfun_returns_in_fpr_p): Move earlier in file.
9376         (mips_find_gp_ref): New function.
9377         (mips_insn_has_inflexible_gp_ref_p): Likewise.
9378         (mips_cfun_has_inflexible_gp_ref_p): Likewise.
9379         (mips_insn_has_flexible_gp_ref_p): Likewise.
9380         (mips_cfun_has_flexible_gp_ref_p): Likewise.
9381         (mips_function_has_gp_insn): Delete.
9382         (mips_global_pointer): Drop the df_regs_ever_live_p check.
9383         Use the new functions above.  Only return INVALID_REGNUM
9384         for TARGET_ABSOLUTE_JUMPS.
9385         (mips_must_initialize_gp_p): New function.
9386         (mips_get_cprestore_base_and_offset): New function, extracted from...
9387         (mips_cprestore_slot): ...here.  Take a bool parameter.
9388         (mips_cfun_has_cprestore_slot_p): New function.
9389         (mips_cprestore_address_p): Likewise.
9390         (mips_save_gp_to_cprestore_slot): Likewise.
9391         (mips_restore_gp): Rename to...
9392         (mips_restore_gp_from_cprestore_slot): ...this.  Assert
9393         epilogue_completed.  Update the call to mips_cprestore_slot.
9394         Test cfun->machine->must_restore_gp_when_clobbered_p.
9395         (mips_direct_save_slot_move_p): New function.
9396         (mips_emit_save_slot_move): Likewise.
9397         (mips_output_cplocal): Test mips_must_initialize_gp_p () instead
9398         of cfun->machine->global_pointer.
9399         (mips_output_function_prologue): Check mips_must_initialize_gp_p ().
9400         (mips_save_reg): Use mips_emit_save_slot_move.
9401         (mips_expand_prologue): Set must_initialize_gp_p.
9402         Use mips_cfun_has_cprestore_slot_p.  Use gen_potential_cprestore
9403         for all cprestore saves.  Emit a use_cprestore instruction after
9404         setting up the cprestore slot.
9405         (mips_restore_reg): Use mips_emit_save_slot_move.
9406         (mips_process_load_label): New function.
9407         (mips_load_label_length): Likewise.
9408         (mips_output_load_label): Don't return asm: output it here instead.
9409         Use mips_process_load_label.
9410         (mips_adjust_insn_length): Adjust the length of branch instructions
9411         that have length MAX_PIC_BRANCH_LENGTH.
9412         (mips_output_conditional_branch): Update the call to
9413         mips_output_load_label.  Assume the branch target is OPERANDS[0]
9414         rather than OPERANDS[1].  Use MIPS_ABSOLUTE_JUMP for absolute jumps.
9415         (mips_output_order_conditional_branch): Swap the meaning of
9416         OPERANDS[0] and OPERANDS[1].
9417         (mips_variable_issue): Don't count ghost instructions.
9418         (mips_expand_ghost_gp_insns): New function.
9419         (mips_reorg): Rerun mips_reorg_process_insns if it returns true.
9420         (mips_output_mi_thunk): Set must_initialize_gp_p.
9421         (mips_eh_uses): New function.
9422         * config/mips/predicates.md (cprestore_save_slot_operand)
9423         (cprestore_load_slot_operand): New predicates.
9424         * config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec.
9425         (UNSPEC_MOVE_GP): Likewise.
9426         (UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN)
9427         (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room.
9428         (CPRESTORE_SLOT_REGNUM): New register.
9429         (MAX_PIC_BRANCH_LENGTH): New constant.
9430         (jal_macro): Use MIPS_ABSOLUTE_JUMPS.
9431         (length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long
9432         branches.  Fix commentary.
9433         (loadgp_newabi_<mode>): Change from unspec_volatile to unspec.
9434         Only split if mips_must_initialize_gp_p; expand to nothing otherwise.
9435         Change type to "ghost".
9436         (loadgp_absolute_<mode>): Likewise.
9437         (loadgp_rtp_<mode>): Likewise.
9438         (copygp_mips16): Likewise.
9439         (loadgp_blockage): Remove redundant mode attribute.
9440         (potential_cprestore): New instruction.
9441         (cprestore): Turn into an unspec set.
9442         (use_cprestore): New instruction.
9443         (*branch_fp): Swap operands 0 and 1.  Remove redundant mode attribute.
9444         (*branch_fp_inverted): Likewise.
9445         (*branch_order<mode>): Likewise.
9446         (*branch_order<mode>_inverted): Likewise.
9447         (*branch_equality<mode>): Likewise.
9448         (*branch_equality<mode>_inverted): Likewise.
9449         (*branch_bit<bbv><mode>): Likewise.
9450         (*branch_bit<bbv><mode>_inverted): Likewise.
9451         (*branch_equality<mode>_mips16): Remove redundant mode.
9452         (jump): Turn into a define_expand.
9453         (*jump_absolute): New instruction.
9454         (*jump_pic): Likewise.
9455         (*jump_mips16): Rename previously-unnamed pattern.  Remove
9456         redundant mode attribute.
9457         (restore_gp): Split on epilogue_completed rather than
9458         reload_completed.  Change type to "ghost".
9459         (move_gp<mode>): New instruction.
9460         * config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1.
9461         Remove redundant mode attribute.
9462         * config/mips/mips-ps-3d.md (bc1any4t): Likewise.
9463         (bc1any4f, bc1any2t, bc1any2f): Likewise.
9464         (*branch_upper_lower, *branch_upper_lower_inverted): Likewise.
9465
9466 2009-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9467
9468         PR target/41210
9469         * config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI
9470         are returned in the same register (vs34 or v2) that Altivec vector
9471         types are returned in.
9472         (rs6000_libcall_value): Ditto.
9473
9474         PR target/41331
9475         * config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn
9476         instead of explicit addsi3/adddi3 calls.
9477         (rs6000_split_multireg_move): Ditto.
9478         (rs6000_emit_allocate_stack): Ditto.
9479         (rs6000_emit_prologue): Ditto.
9480         (rs6000_output_mi_thunk): Ditto.
9481
9482         * config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer
9483         size is 64 bits if we can use 64-bit registers.
9484
9485 2009-09-14  Bernd Schmidt  <bernd.schmidt@analog.com>
9486
9487         * config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak
9488         symbols.
9489
9490         From Jie Zhang <jie.zhang@analog.com>:
9491         * config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to
9492         save FP and RETS with saveall attribute.
9493         (bfin_expand_epilogue): Ask do_unlink to restore FP and RETS
9494         with saveall attribute.
9495
9496         * config/bfin/bfin.c (bfin_expand_builtin,
9497         case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the
9498         operands.
9499
9500         From Jie Zhang <jie.zhang@analog.com>:
9501         * config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes
9502         before use in two places.
9503         * config/bfin/bfin.md (AREG): Define mode iterator.
9504         (reload_in, reload_out): Use mode iterator AREG.
9505
9506 2009-09-14  Richard Guenther  <rguenther@suse.de>
9507
9508         PR middle-end/41350
9509         * dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm
9510         EH personality path.
9511
9512 2009-09-13  Richard Guenther  <rguenther@suse.de>
9513             Rafael Avila de Espindola  <espindola@google.com>
9514
9515         * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
9516         (LANG_HOOKS_EH_PERSONALITY): Likewise.
9517         (LANG_HOOKS_INITIALIZER): Adjust.
9518         (lhd_pass_through_t): Declare.
9519         * langhooks.h (struct lang_hooks): Add eh_runtime_type and
9520         eh_personality.
9521         * langhooks.c (lhd_pass_through_t): New function.
9522         * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc,
9523         dwarf2out_begin_prologue): Use personality from current_function_decl.
9524         * expr.h (get_personality_function): Declare.
9525         * expr.c (get_personality_function): New function.
9526         (build_personality_function): Likewise.
9527         * libfuncs.h (libfunc_index): Remove LTI_eh_personality.
9528         (eh_personality_libfunc): Remove.
9529         * optabs.c (build_libfunc_function): New function split out from ...
9530         (init_one_libfunc): ... here.
9531         * tree.h (DECL_FUNCTION_PERSONALITY): New.
9532         (tree_function_decl): Add personality.
9533         (lhd_gcc_personality): Declare.
9534         (build_personality_function): Likewise.
9535         * tree.c (gcc_eh_personality_decl): New.
9536         (lhd_gcc_personality): New function.
9537         * except.h (lang_eh_runtime_type): Remove.
9538         (enum eh_personality_kind): New.
9539         (build_personality_function): Declare.
9540         (function_needs_eh_personality): Declare.
9541         * except.c (lang_eh_runtime_type): Remove.
9542         (function_needs_eh_personality): New function.
9543         (add_type_for_runtime): Call lang_hooks.type_for_runtime instead.
9544         (sjlj_emit_function_enter, output_function_exception_table):
9545         Use personality from current_function_decl.
9546         * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY.
9547         * tree-inline.c (tree_can_inline_p): Do not inline across different
9548         EH personalities.
9549         (expand_call_inline): Likewise.  Adjust the callers EH personality.
9550         (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY.
9551         * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY.
9552         * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency.
9553         (c-parser.o): Likewise
9554         * c-tree.h (c_eh_initialized_p): Remove.
9555         (c_maybe_initialize_eh): Likewise.
9556         * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh.
9557         (finish_decl): Don't call c_maybe_initialize_eh.
9558         (c_eh_initialized_p): Remove.
9559         (c_maybe_initialize_eh): Likewise.
9560         * c-parser.c (c_parser_omp_construct): Likewise.
9561         (c_parse_file): Initialize exception handling.
9562
9563 2009-09-13  Kai Tietz  <kai.tietz@onevision.com>
9564
9565         * config.gcc (tm_file): Remove i386/biarch32.h
9566         for i?86-w64-mingw* case.
9567         (i?86-*-mingw* andx86_64-*-mingw*): Add multilib
9568         support.
9569         * config.host: Set for x64 mingw the option
9570         use_long_long_for_widest_fast_int to yes.
9571
9572 2009-09-13  Eric Botcazou  <ebotcazou@adacore.com>
9573
9574         * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
9575         * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P.
9576         (dbxout_begin_function): Likewise.
9577         * final.c (dwarf2_debug_info_emitted_p): New predicate.
9578         (final_start_function): Do not emit debug info if DECL_IGNORED_P is
9579         set on the function.
9580         (final_end_function): Likewise.
9581         (final_scan_insn): Likewise.
9582         (rest_of_handle_final): Likewise.
9583         * varasm.c (assemble_start_function): Likewise.
9584         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9585
9586 2009-09-12  Jason Merrill  <jason@redhat.com>
9587
9588         * dbgcnt.c (dbg_cnt_process_single_pair): constify.
9589         * opts.c (common_handle_option): constify.
9590
9591 2009-09-12  Gerald Pfeifer  <gerald@pfeifer.com>
9592
9593         * doc/install.texi (avr): Remove obsolete reference site.
9594
9595 2009-09-12  Gerald Pfeifer  <gerald@pfeifer.com>
9596
9597         * doc/install.texi (Binaries): Adjust AIX link.
9598
9599 2009-09-12  Akim Demaille  <demaille@gostai.com>
9600
9601         * doc/invoke.texi (-fstrict-aliasing): Correct two examples.
9602         Use an imperative sentence.
9603
9604 2009-09-11  Richard Henderson  <rth@redhat.com>
9605
9606         * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
9607         structure-name and has-tree-operands arguments; update all entries.
9608         * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
9609         update all entries.
9610         * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
9611         (gsstruct_code_size): New.
9612         (gss_for_code_): New.
9613         (gss_for_code): Remove.
9614         (gimple_size): Rewrite using gsstruct_code_size.
9615         (gimple_statement_structure): Move to gimple.h.
9616         * gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
9617         (gss_for_code, gimple_statement_structure): New.
9618         (gimple_ops): Use new arrays; tidy.
9619
9620 2009-09-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9621
9622         * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
9623         operand to be a PLUS expression.
9624         * config/pa/pa.c (pa_secondary_reload): Likewise.
9625
9626 2009-09-11  Jakub Jelinek  <jakub@redhat.com>
9627
9628         * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
9629
9630         * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
9631         XEXP (in_rtx, 8).
9632
9633 2009-09-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9634
9635         From Jie Zhang <jie.zhang@analog.com>:
9636         * doc/extend.texi (node Function Attributes): Document l2
9637         function attribute.
9638         (node Blackfin Variable Attributes): Document l2 variable attributes.
9639
9640 2009-09-11  Loren J. Rittle  <ljrittle@acm.org>
9641
9642         * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
9643         to match the system compiler's configuration at inflection point.
9644         Add comment to remark a remaining difference with system compiler.
9645
9646         * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
9647         * configure: Regenerate.
9648
9649 2009-09-11  Bernd Schmidt  <bernd.schmidt@analog.com>
9650
9651         From Jie Zhang <jie.zhang@analog.com>:
9652         * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
9653         (bfin_handle_l2_attribute): New.
9654         (bfin_attribute_table): Add l2 attribute.
9655
9656 2009-09-11  Michael Matz  <matz@suse.de>
9657
9658         PR middle-end/41275
9659         * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
9660         on the local_decls list.
9661
9662 2009-09-11  Alexandre Oliva  <aoliva@redhat.com>
9663
9664         PR debug/41276
9665         PR debug/41307
9666         * cselib.c (cselib_expand_value_rtx_cb): Document callback
9667         interface.
9668         (cselib_expand_value_rtx_1): Use callback for SUBREGs.  Adjust
9669         for VALUEs, to implement the documented interface.
9670         * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
9671         Adjust for VALUEs and anything else, to implement the
9672         documented interface.
9673
9674 2009-09-10  Nathan Froyd  <froydnj@codesourcery.com>
9675
9676         * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
9677         with actual SPE/paired vector modes before using 64-bit alignment.
9678         Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
9679
9680 2009-09-10  DJ Delorie  <dj@redhat.com>
9681
9682         * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
9683         emitted.
9684
9685         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
9686         * config/mep/mep.c (mep_legitimate_constant_p): New.
9687         * config/mep/mep-protos.h: Prototype it.
9688
9689 2009-09-10  Richard Henderson  <rth@redhat.com>
9690
9691         * print-rtl.c (print_rtx): Fix JUMP_LABEL index.
9692
9693 2009-09-10  Jason Merrill  <jason@redhat.com>
9694
9695         * tree.c (chain_index): New fn.
9696         * tree.h: Declare it.
9697
9698 2009-09-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9699
9700         * config/sol2-c.c (cmn_err_length_specs): Initialize
9701         scalar_identity_flag.
9702
9703 2009-09-10  Richard Henderson  <rth@redhat.com>
9704
9705         * tree.h (struct tree_decl_common): Move align member earlier;
9706         move label_decl_uid member ...
9707         (struct tree_label_decl): ... here.
9708         (LABEL_DECL_UID): Update to match.
9709
9710         * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
9711         not TDF_DETAILS.
9712
9713         * tree-cfg.c (gimple_redirect_edge_and_branch): Do
9714         gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
9715
9716         * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
9717         dest_prev if the edge is complex.
9718
9719         * tree-cfg.c (is_ctrl_stmt): Use a switch.
9720
9721         * tree-cfg.c (gimple_can_merge_blocks_p): Move label and
9722         loop latch tests earlier.
9723
9724         * gimple-iterator.c (gimple_find_edge_insert_loc): Insert
9725         before GIMPLE_RETURN, not after its predecessor; insert
9726         before GIMPLE_RESX.
9727
9728         * gimple-iterator.c (gimple_find_edge_insert_loc): Use
9729         gimple_seq_empty_p to test for no PHI nodes.
9730         * tree-cfg.c (split_critical_edges): Likewise.
9731
9732         * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.
9733
9734 2009-09-10  Hariharan Sandanagobalane  <hariharan@picochip.com>
9735
9736         * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
9737         introduced by the VTA branch merge.
9738
9739 2009-09-10  Uros Bizjak  <ubizjak@gmail.com>
9740
9741         * ira-conflicts.c: Use fputs or putc instead of fprintf
9742         where appropriate.
9743         * cfg.c: Ditto.
9744         * toplev.c: Ditto.
9745         * tree-switch-conversion.c: Ditto.
9746
9747 2009-09-10  Hariharan Sandanagobalane  <hariharan@picochip.com>
9748
9749         * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
9750         introduced by the VTA branch merge.
9751
9752 2009-09-10  Uros Bizjak  <ubizjak@gmail.com>
9753
9754         Revert:
9755         2009-09-09  Uros Bizjak  <ubizjak@gmail.com>
9756
9757         PR rtl-optimization/39779
9758         * expr.c (convert_modes): Return when mode == oldmode after
9759         CONST_INTs are processed.
9760
9761 2009-09-10  Nick Clifton  <nickc@redhat.com>
9762
9763         * config/mep/mep.c (mep_encode_section_info): Copy weakness
9764         attribute and referring decl when creating renamed symbol.
9765
9766 2009-09-10  Richard Guenther  <rguenther@suse.de>
9767
9768         PR middle-end/41257
9769         * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
9770         reachable nodes.
9771         (cgraph_finalize_compilation_unit): Compute reachability
9772         before emitting thunks.  Properly process aliases before
9773         possibly removing unreachable nodes.
9774
9775 2009-09-10  Richard Guenther  <rguenther@suse.de>
9776
9777         PR middle-end/41254
9778         * tree.c (struct free_lang_data_d): Add worklist member.
9779         (find_decls_types_r): Push onto the worklist instead of recursing.
9780         Handle TREE_BINFOs properly.
9781         (find_decls_types): New function wrapped around find_decls_types_r
9782         to process the worklist.
9783         (find_decls_types_in_eh_region): Use it.
9784         (find_decls_types_in_node): Likewise.
9785         (find_decls_types_in_var): Likewise.
9786         (free_lang_data_in_cgraph): Likewise.  Free the worklist.
9787         * tree.h (RECORD_OR_UNION_TYPE_P): New.
9788         (AGGREGATE_TYPE_P): Adjust.
9789
9790 2009-09-09  Jason Merrill  <jason@redhat.com>
9791
9792         * configure.ac: Check glibc version even if we have an in-tree
9793         assembler.
9794
9795 2009-09-09  Anthony Green  <green@moxielogic.com>
9796
9797         * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
9798         the constant 0 when appropriate.
9799         * config/moxie/constraints.md: Add constraint O.
9800
9801         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
9802         to pass up to 6 32-bit argument values in registers.
9803         (moxie_function_arg): Ditto.
9804         (moxie_arg_partial_bytes): Ditto.
9805         * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
9806         (REG_PARM_STACK_SPACE): Ditto.
9807         (FUNCTION_ARG_REGNO_P): Ditto.
9808
9809         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
9810         instruction to allocate stack space.
9811
9812 2009-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
9813
9814         * config/rs6000/rs6000.md (bswapdi2_64bit): Fix
9815         unnecessarily stringent constraints.  Fix address
9816         calculation in the splitters.
9817
9818 2009-09-09  Uros Bizjak  <ubizjak@gmail.com>
9819
9820         PR rtl-optimization/39779
9821         * expr.c (convert_modes): Return when mode == oldmode after
9822         CONST_INTs are processed.
9823
9824 2009-09-09  Kai Tietz  <kai.tietz@onevision.com>
9825
9826         PR/41315
9827         * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
9828         (ix86_expand_prologue): Take frame.padding0 into logic of
9829         to_allocate checks.
9830         (ix86_expand_epilogue): Likewise.
9831
9832 2009-09-09  Jakub Jelinek  <jakub@redhat.com>
9833
9834         * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
9835         New variables.
9836         (SHLIB_LINK, SHLIB_INSTALL): Use them.
9837         * config/t-slibgcc-libgcc: New file.
9838         * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
9839
9840 2009-09-09  Martin Jambor  <mjambor@suse.cz>
9841
9842         PR tree-optimization/41089
9843         * tree-sra.c (find_var_candidates): Do not consider va_lists in
9844         early SRA.
9845
9846 2009-09-09  Richard Henderson  <rth@redhat.com>
9847
9848         * gimple.h (CASE_GIMPLE_OMP): New.
9849         (is_gimple_omp): Use it.
9850         * tree-cfg.c (is_ctrl_altering_stmt): Likewise.
9851         (verify_gimple_debug): Likewise.
9852
9853 2009-09-09  Richard Guenther  <rguenther@suse.de>
9854
9855         PR tree-optimization/41101
9856         * tree-ssa-pre.c (maximal_set): Remove.
9857         (compute_antic_aux): Treat the maximal set as implicitly all ones.
9858         Defer all blocks we didn't visit at least one successor.
9859         (add_to_exp_gen): Do not add to the maximal set.
9860         (make_values_for_phi): Likewise.
9861         (compute_avail): Likewise.
9862         (init_pre): Do not allocate the maximal set.
9863         (execute_pre): Do not dump it.
9864
9865 2009-09-09  Martin Jambor  <mjambor@suse.cz>
9866
9867         * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
9868         an SSA_NAME rather than a is_gimple_variable.
9869
9870 2009-09-09  Richard Guenther  <rguenther@suse.de>
9871
9872         PR middle-end/41317
9873         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
9874         code dealing with plain pointer bases.
9875         (maybe_fold_offset_to_reference): Likewise.
9876         (maybe_fold_stmt_addition): Adjust.
9877
9878 2009-09-09  Richard Guenther  <rguenther@suse.de>
9879
9880         * tree.c (free_lang_data_in_type): Do not free the type variant
9881         chains.
9882         (free_lang_data): Merge char_type_node with its properly signed
9883         variant.
9884         (pass_ipa_free): Collect after freeing language specific data.
9885
9886 2009-09-09  Michael Matz  <matz@suse.de>
9887
9888         PR middle-end/41268
9889         * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
9890         SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
9891         * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
9892         to reflect reality.
9893
9894 2009-09-08  DJ Delorie  <dj@redhat.com>
9895
9896         * config/mep/mep.c (conversions[]): Add "ml" pattern.
9897
9898 2009-09-04  Jason Merrill  <jason@redhat.com>
9899
9900         * tree.c (tree_find_value): Remove.
9901         * tree.h: Remove prototype.
9902         * varasm.c (assemble_external): Use value_member instead.
9903
9904 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
9905
9906         * toplev.c (process_options): Choose default debugging type when
9907         gtoggle enables debug info and type is unset.
9908
9909 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
9910
9911         PR debug/41276
9912         PR debug/41307
9913         * cselib.c (cselib_expand_value_rtx_1): Don't return copy of
9914         invalid subreg.
9915
9916 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
9917
9918         * configure: Rebuilt with modified libtool.m4.
9919
9920 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
9921
9922         PR debug/41229
9923         PR debug/41291
9924         PR debug/41300
9925         * tree-ssa.c (execute_update_addresses_taken): Update debug insns.
9926
9927 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
9928
9929         * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
9930         (remove_statement): Likewise.
9931         (rewrite_use_nonlinear_expr): Adjust.
9932         (remove_unused_ivs): Collect SSA NAMEs to remove and call...
9933         * tree-ssa.c (release_defs_bitset): ... this.  New.
9934         * tree-flow.h (release_defs_bitset): Declare.
9935
9936 2009-09-08  Alexandre Oliva  <aoliva@redhat.com>
9937
9938         PR debug/41232
9939         * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
9940         in the middle block.
9941
9942 2009-09-08  Kai Tietz  <kai.tietz@onevision.com>
9943
9944         * tree-ssa-reassoc.c (find_operand_rank): Cast pointer
9945         via intptr_t to long type.
9946         (insert_operand_rank): Cast long type via intptr_t to
9947         pointer type.
9948         * genattrtab.c (RTL_HASH): Use intptr_t to cast from
9949         pointer to scalar.
9950         * c-pretty-print.c (pp_c_tree_decl_identifier): Cast
9951         from pointer to unsigned via uintptr_t.
9952
9953         * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
9954         uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
9955         and HAVE_INTPTR_T.
9956         * configure: Regenerated.
9957         * config.in: Regenerated
9958         * system.h (stdint.h): Add include.
9959         (inttypes.h): Likewise.
9960         * Makefile.in (aclocal): Add config/stdint.m4.
9961         * aclocal.m4: Regenerated.
9962
9963 2009-09-08  Bernd Schmidt  <bernd.schmidt@analog.com>
9964
9965         * config/bfin/bfin.c (np_check_regno, np_after_branch): New static
9966         variables.
9967         (note_np_check_stores): New function.
9968         (harmless_null_pointer_p): New function.
9969         (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH.  Callers
9970         changed.  Take into account whether we're in the shadow of a condjump
9971         that tested NP_REG for NULL.
9972         Lose all code that tested for SEQUENCEs.
9973         (workaround_speculation): Avoid inserting NOPs for loads that are
9974         either always executed or a NULL pointer.
9975
9976 2009-09-08  Jan Hubicka  <jh@suse.cz>
9977
9978         * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
9979         * params.def (early-inlining-insns): Likewise.
9980
9981 2009-09-08  Jakub Jelinek  <jakub@redhat.com>
9982
9983         PR rtl-optimization/41239
9984         * sched-int.h (struct deps): Add last_function_call_may_noreturn field.
9985         * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
9986         lists.
9987         * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
9988         across calls, as the calls might not always return normally.
9989         (call_may_noreturn_p): New function.
9990         (deps_analyze_insn): Update last_function_call_may_noreturn list.
9991         (init_deps): Initialize it.
9992         (remove_from_deps): Also remove calls from
9993         last_function_call_may_noreturn list.
9994
9995 2009-09-07  Richard Henderson  <rth@redhat.com>
9996
9997         * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
9998         more VR->OPERANDS than LHS operands.  Free LHS before returning.
9999
10000 2009-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
10001
10002         * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
10003         (attr "addrtype"): New member "spreg".
10004         Use it if mem_spfp_address_operand is true for the address.
10005         (attr "type"): New entry "stall".
10006         (cpu_unit "load"): New.
10007         (insn_reservations "load32", "loadp", "loadi"): Add reservation of
10008         "load".
10009         (insn_reservation "loadsp"): New.
10010         (insn_reservation "load_stall1"): New.
10011         (insn_reservation "load_stall3"): New.
10012         (stall): New insn.
10013         * config/bfin/predicates.md (const1_operand, const3_operand): New.
10014         (mem_p_address_operand): Exclude stack and frame pointer based
10015         addresses.
10016         (mem_spfp_address_operand): New; match them here.
10017         * config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
10018         (bfin_reorg): Call it if scheduling insns.
10019         (bfin_gen_bundles): Remove dummy insns created by
10020         add_sched_insns_for_speculation.
10021
10022         From Jie Zhang <jie.zhang@analog.com>:
10023         * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
10024         bfin_si_revision, bfin_workarounds): Move these ...
10025         * config/bfin/bfin.h: ... here.
10026
10027         From Mike Frysinger  <michael.frysinger@analog.com>
10028         * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
10029         BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
10030         * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
10031         bf547m, bf548m, and bf549m.
10032         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
10033         for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
10034         __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
10035         BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
10036         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10037         bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
10038         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10039         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10040         * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
10041         bf542m, bf544m, bf547m, bf548m, and bf549m.
10042
10043         From Jie Zhang <jie.zhang@analog.com>:
10044         * config/bfin/predicates.md (p_register_operand): New predicate.
10045         (dp_register_operand): New predicate.
10046         * config/bfin/bfin-protos.h (WA_05000074): Define.
10047         (ENABLE_WA_05000074): Define.
10048         * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
10049         (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
10050         * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
10051         (define_attr addrtype): Allow load/store register to be P register.
10052         (define_attr storereg): New.
10053         (define_cpu_unit anomaly_05000074): New.
10054         (define_insn_reservation dsp32shiftimm): New.
10055         (define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
10056         (define_insn_reservation loadp): Cannot use slot2.
10057         (define_insn_reservation loadsp): Cannot use slot2.
10058         (define_insn_reservation storep): Cannot use slot2. Does not
10059         apply when working around 05000074.
10060         (define_insn_reservation storep_anomaly_05000074): New.
10061         (define_insn_reservation storei): Does not apply when working
10062         around 05000074.
10063         (define_insn_reservation storei_anomaly_05000074): New.
10064         (define_attr length): Add dsp32shiftimm case.
10065         (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
10066         ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
10067         movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
10068         ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
10069         Set type as dsp32shiftimm for dsp32shiftimm alternatives.
10070
10071 2009-09-07  Martin Jambor  <mjambor@suse.cz>
10072
10073         PR middle-end/41282
10074         * tree-sra.c (create_artificial_child_access): Return NULL if
10075         build_ref_for_offset fails.
10076         (propagate_subacesses_accross_link): Allow build_ref_for_offset
10077         and create_artificial_child_access to fail.
10078
10079 2009-09-06  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
10080
10081         PR c++/41214
10082         * unwind-dw2.c (uw_init_context_1): Mark noinline.
10083         * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
10084         * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
10085
10086 2009-09-07  Bernd Schmidt  <bernd.schmidt@analog.com>
10087
10088         * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
10089         block, ensure it has an exit edge.  Emit a barrier after a jump.
10090
10091 2009-09-07  Nick Clifton  <nickc@redhat.com>
10092
10093         * gcc.c (this_is_linker_script): New variable.  Like
10094         this_is_library_file but for the %T constructor.
10095         (end_going_arg): If this_is_linker_script is set then locate the
10096         script and insert a --script switch before it
10097         (do_spec_2): Initialise this_is_linker_script.
10098         (do_spec_1): Likewise.  Handle %T construct.
10099         (eval_spec_function): Preserve this_is_linker_script.
10100         * doc/invoke.texi: Document %T construct in spec files.
10101         * config/m32c/m32c.h (LIB_SPEC): Use it.
10102
10103 2009-09-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10104
10105         * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
10106         * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
10107         when volatile flag is set.
10108         * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.
10109
10110 2009-09-06  Eric Botcazou  <ebotcazou@adacore.com>
10111
10112         PR bootstrap/41241
10113         * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
10114         (combine_stack_adjustments_for_block): Allow insns between stack
10115         adjustments and stores with corresponding pre-(dec|inc)rement or
10116         pre-modify operation.
10117
10118 2009-09-06  Jakub Jelinek  <jakub@redhat.com>
10119
10120         PR bootstrap/41241
10121         * combine-stack-adj.c (struct csa_memlist): Rename to...
10122         (struct csa_reflist): ... this.  Rename mem field to ref.
10123         (free_csa_memlist): Rename to...
10124         (free_csa_reflist): ... this.
10125         (record_one_stack_memref): Rename to...
10126         (record_one_stack_ref): ... this.  Handle also REG_P.
10127         (try_apply_stack_adjustment): Handle also REG_P.
10128         (struct record_stack_memrefs_data): Rename to...
10129         (struct record_stack_refs_data): ... this.  Rename memlist field to
10130         reflist.
10131         (record_stack_memrefs): Rename to...
10132         (record_stack_refs): ... this.  For DEBUG_INSNs keep traversing
10133         subexpressions instead of failing when a MEM contains SP references.
10134         For SP itself in DEBUG_INSNs queue it also onto reflist chain.
10135         (combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
10136
10137 2009-09-06  Richard Guenther  <rguenther@suse.de>
10138
10139         PR middle-end/41144
10140         * tree.c (build_array_type): Do not record types marked
10141         with structural equality in the canonical type hashtable.
10142
10143 2009-09-06  Richard Guenther  <rguenther@suse.de>
10144
10145         PR middle-end/41261
10146         * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.
10147
10148 2009-09-05  Richard Guenther  <rguenther@suse.de>
10149
10150         PR middle-end/41181
10151         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.
10152
10153 2009-09-05  Richard Guenther  <rguenther@suse.de>
10154
10155         PR debug/41273
10156         * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.
10157
10158 2009-09-05  Richard Guenther  <rguenther@suse.de>
10159
10160         PR middle-end/41271
10161         * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
10162         before comparing function argument types.
10163
10164 2009-09-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10165
10166         PR target/41024
10167         * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
10168         the assembler.
10169
10170 2009-09-04  Uros Bizjak  <ubizjak@gmail.com>
10171
10172         Revert:
10173         2009-08-18  Uros Bizjak  <ubizjak@gmail.com>
10174
10175         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
10176         locators before emit_insn is called.
10177
10178 2009-09-04  Vladimir Makarov  <vmakarov@redhat.com>
10179
10180         PR bootstrap/41241
10181         * ira.c (update_equiv_reg): Revert my previous patch for the PR.
10182         * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
10183         (reginfo_init): Don't call allocate_reg_info.
10184
10185 2009-09-04  Uros Bizjak  <ubizjak@gmail.com>
10186
10187         PR target/41262
10188         * config/alpha/alpha.c (alpha_does_function_need_gp): Use
10189         NONDEBUG_INSN_P instead of INSN_P.
10190
10191 2009-09-04  Alexandre Oliva  <aoliva@redhat.com>
10192
10193         PR debug/41225
10194         * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
10195
10196 2009-09-04  Alexandre Oliva  <aoliva@redhat.com>
10197
10198         PR target/41252
10199         * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
10200         pattern of the split.
10201
10202 2009-09-04  Alexandre Oliva  <aoliva@redhat.com>
10203
10204         * toplev.c (process_options): Move setter of flag_var_tracking
10205         before other tests that depend on it.  Move down setter of
10206         flag_rename_registers.  Don't enable var-tracking-assignments
10207         by default if selective scheduling is enabled.  Warn if both
10208         are enabled.
10209
10210 2009-09-04  Alexandre Oliva  <aoliva@redhat.com>
10211
10212         * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
10213         comment.  Use switch statement to catch overlaps between rtx
10214         and tree codes.  Accept FUNCTION_DECLs in addition to those in...
10215         (IS_DECL_CODE): ... here. Remove.
10216         (check_value_is_not_decl): Remove.
10217         (dv_from_decl, dv_from_value): Check after conversion.
10218
10219 2009-09-04  Richard Guenther  <rguenther@suse.de>
10220
10221         PR middle-end/41257
10222         * (cgraph_finalize_compilation_unit): Move finalizing aliases
10223         after emitting tunks.  Move emitting thunks and ctors from ...
10224         (cgraph_optimize): ... here.  Remove redundant
10225         cgraph_analyze_functions.
10226         * varasm.c (find_decl_and_mark_needed): Remove no longer
10227         necessary check.
10228         (finish_aliases_1): Adjust check for thunk aliases.
10229
10230 2009-09-04  Daniel Gutson  <dgutson@codesourcery.com>
10231
10232         * config/arm/arm.md (ctzsi2): Added braces
10233         to avoid warning that broke booststrap.
10234
10235 2009-09-04  Martin Jambor  <mjambor@suse.cz>
10236
10237         PR tree-optimization/41112
10238         * tree-sra.c (build_ref_for_offset_1): Signal that we cannot
10239         handle variable-bounded arrays.
10240         (expr_with_var_bounded_array_refs_p): New function.
10241         (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.
10242
10243 2009-09-04  Wolfgang Gellerich  <gellerich@de.ibm.com>
10244
10245         * config/s390/2097.md: Removed two incorrect bypasses.
10246         (z10_fsimpdf): Fixed latency.
10247         (z10_fhex): New insn_reservation.
10248         (z10_floaddf): Fixed latency.
10249         (z10_floadsf): Fixed latency.
10250         (z10_ftrunctf): Fixed latency.
10251         (z10_ftruncdf): Fixed latency.
10252         * config/s390/s390.c (z10_cost): Fixed values.
10253         (s390_adjust_priority): Added z10 path.
10254         * config/s390/s390.md (type): Added fhex.
10255         (*mov<mode>_64dfp): Updated type attribute.
10256         (*mov<mode>_64): Updated type attribute.
10257         (*mov<mode>_31): Updated type attribute.
10258         (*mov<mode>"): Likewise.
10259         * config/s390/2084.md (x_fsimpdf): Updated condition.
10260
10261 2009-09-04  Andreas Krebbel  <krebbel1@de.ibm.com>
10262
10263         * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
10264         RTXs in the predicate for operand 1.
10265
10266 2009-09-03  Daniel Gutson  <dgutson@codesourcery.com>
10267
10268         * config/arm/arm.md (UNSPEC_RBIT): New constant.
10269         (rbitsi2): New insn.
10270         (ctzsi2): New expand.
10271         * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
10272
10273 2009-09-03  Martin Jambor  <mjambor@suse.cz>
10274
10275         * tree-sra.c (duplicate_expr_for_different_base): Removed.
10276         (create_artificial_child_access): Use build_ref_for_offset instead
10277         of duplicate_expr_for_different_base.
10278         (propagate_subacesses_accross_link): Likewise.
10279
10280 2009-09-03  Richard Sandiford  <rdsandiford@googlemail.com>
10281
10282         * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
10283         of INSN_P.
10284         (mips16e_collect_argument_saves): Skip debug instructions.
10285         (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
10286         (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
10287         (r10k_insert_cache_barriers): Likewise.
10288         (mips_reorg_process_insns): Likewise.
10289
10290 2009-09-03  Vladimir Makarov  <vmakarov@redhat.com>
10291
10292         PR bootstrap/41241
10293         * ira.c (update_equiv_reg): Remove check on class likely spill.
10294
10295 2009-09-03  Jakub Jelinek  <jakub@redhat.com>
10296
10297         PR debug/41236
10298         * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
10299         SIGN_EXTEND or ZERO_EXTEND.  Don't assume there is a REG inside of
10300         it or SUBREG.
10301
10302         PR debug/41238
10303         * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
10304         the stack slot if it is passed by invisible reference.
10305         * var-tracking.c (vt_add_function_parameters): Handle arguments passed
10306         by invisible reference.
10307
10308 2009-09-03  Bernd Schmidt  <bernd.schmidt@analog.com>
10309
10310         * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
10311         * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
10312         * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
10313         0.
10314         * config/bfin/sync.md: New file.
10315         * config/bfin/bfin.md: Include it.
10316         (UNSPEC_ATOMIC): New.
10317         (UNSPEC_ONES): Provide a unique number.
10318
10319         From Jie Zhang <jie.zhang@analog.com>:
10320         * config/bfin/bfin.c (ret_regs): New.
10321         (must_save_fp_p): Don't return true because of frame_pointer_needed.
10322         (must_save_rets_p): New.
10323         (n_regs_saved_by_prologue): Use must_save_rets_p instead of
10324         current_function_is_leaf.
10325         (do_link): Likewise.
10326         (do_unlink): Likewise.
10327         (expand_interrupt_handler_prologue): Use ret_regs array.
10328         (expand_interrupt_handler_epilogue): Use ret_regs array and
10329         pass return register to gen_return_internal.
10330         (bfin_expand_epilogue): Pass return register to
10331         gen_return_internal.
10332         (bfin_expand_call): Explicitly clobber RETS.
10333         * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
10334         * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
10335         call_insn_fdpic, call_value_insn_fdpic, call_symbol,
10336         call_value_symbol, call_insn, call_value_insn): Explicitly clobber
10337         RETS.
10338         (return_internal): Take a reg rtx rather than the register number.
10339
10340 2009-09-03  H.J. Lu  <hongjiu.lu@intel.com>
10341
10342         * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
10343         when comparing against estimated_loop_iterations_int return.
10344
10345 2009-09-03  Richard Guenther  <rguenther@suse.de>
10346
10347         * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
10348         eh_personality_libfunc.
10349
10350 2009-09-03  Razya Ladelsky  <razya@il.ibm.com>
10351
10352         * tree-parloops.c (separate_decls_in_region): Add space.
10353
10354 2009-09-03  Razya Ladelsky  <razya@il.ibm.com>
10355
10356         * tree-parloops.c (separate_decls_in_region): Change the condition
10357         checking if there are reductions in the loop.
10358
10359 2009-09-03  Razya Ladelsky  <razya@il.ibm.com>
10360
10361         PR tree-optimization/38275
10362         * tree-parloops.c (parallelize_loops): Replace profitability condition
10363         for expected number of iterations.
10364
10365 2009-09-03  Alexandre Oliva  <aoliva@redhat.com>
10366
10367         * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
10368         (bootstrap-debug): Explain conditions in which it becomes default.
10369         (bootstrap-debug-big): Rather than duplicate bootstrap-debug,
10370         make it add to it.
10371
10372 2009-09-03  Namhyung Kim  <namhyung@gmail.com>
10373
10374         * doc/invoke.texi (Optimize Options): Move
10375         -finline-small-functions to the -O2 list.
10376
10377 2009-09-03  Alexandre Oliva  <aoliva@redhat.com>
10378
10379         * toplev.c (process_options): Enable var-tracking-assignments
10380         by default if var-tracking is enabled.
10381
10382 2009-09-02  David Daney  <ddaney@caviumnetworks.com>
10383
10384         * cfgbuild.c (find_bb_boundaries): Split blocks containing a
10385         barrier.
10386         * emit-rtl.c (prev_nonnote_insn_bb): New function.
10387         * rtl.h (prev_nonnote_insn_bb): Declare it.
10388
10389 2009-09-03  Diego Novillo  <dnovillo@google.com>
10390
10391         * cgraph.c (cgraph_node_for_decl): New.
10392         * cgraph.h (cgraph_node_for_decl): Declare.
10393         * tree.c (host_integerp): Return 0 if T is NULL.
10394
10395 2009-09-03  Diego Novillo  <dnovillo@google.com>
10396
10397         * tree.h (struct alias_pair): Move from varasm.c.
10398         (alias_pairs): Likewise.
10399         (TYPE_MAXVAL): Define.
10400         (TYPE_MINVAL): Define.
10401         (iterative_hash_host_wide_int): Declare.
10402         (remove_unreachable_alias_pairs): Declare.
10403         * tree-pass.h (pass_ipa_free_lang_data): Declare.
10404         * diagnostic.c (default_diagnostic_starter): Make extern.
10405         (default_diagnostic_finalizer): Make extern.
10406         * diagnostic.h (default_diagnostic_starter): Declare.
10407         (default_diagnostic_finalizer): Declare.
10408         (default_tree_printer): Declare.
10409         * toplev.c (default_tree_printer): Make extern.
10410
10411 2009-09-03  Richard Guenther  <rguenther@suse.de>
10412             Diego Novillo  <dnovillo@google.com>
10413
10414         * cgraph.c (cgraph_add_new_function): Remove gimplification.
10415         * cgraphunit.c (cgraph_expand_function): Do not emit
10416         associated thunks from here.
10417         (cgraph_emit_thunks): New.
10418         (cgraph_optimize): Call it.
10419         Return if any IPA pass finds an error.
10420         * varasm.c (finish_aliases_1): Ignore errorneous aliases used
10421         by thunks.
10422
10423 2009-09-03  Simon Baldwin  <simonb@google.com>
10424             Rafael Espindola  <espindola@google.com>
10425             Richard Guenther  <rguenther@suse.de>
10426             Doug Kwan  <dougkwan@google.com>
10427             Diego Novillo  <dnovillo@google.com>
10428
10429         * tree.c: Include tree-pass.h, langhooks-def.h,
10430         diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
10431         (free_lang_data_in_type): New.
10432         (need_assembler_name_p): New.
10433         (free_lang_data_in_block): New.
10434         (free_lang_data_in_decl): New.
10435         (struct free_lang_data_d): New.
10436         (add_tree_to_fld_list): New.
10437         (find_decls_types_r): New.
10438         (get_eh_types_for_runtime): New.
10439         (find_decls_types_in_eh_region): New.
10440         (find_decls_types_in_node): New.
10441         (find_decls_types_in_var): New.
10442         (free_lang_data_in_cgraph): New.
10443         (free_lang_data): New.
10444         (gate_free_lang_data): New.
10445         (pass_ipa_free_lang_data): New.
10446
10447 2009-09-03  Diego Novillo  <dnovillo@google.com>
10448
10449         * timevar.def (TV_IPA_FREE_LANG_DATA): Define.
10450         * langhooks.h (struct lang_hooks): Add field free_lang_data.
10451         (lang_hooks): Remove const qualifier.
10452         * ipa.c (cgraph_remove_unreachable_nodes): Call
10453         remove_unreachable_alias_pairs.
10454         * except.c (add_type_for_runtime): Check if TYPE has
10455         already been converted.
10456         (lookup_type_for_runtime): Likewise.
10457         (check_handled): Handle converted types.
10458         * varasm.c (remove_unreachable_alias_pairs): New.
10459         * gimple.c: Include demangle.h.
10460         (gimple_decl_printable_name): New.
10461         (gimple_fold_obj_type_ref): New.
10462         * gimple.h (gimple_decl_printable_name): Declare.
10463         (gimple_fold_obj_type_ref): Declare.
10464         * passes.c (init_optimization_passes): Add pass
10465         pass_ipa_free_lang_data.
10466         * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
10467         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.
10468
10469 2009-09-03  Diego Novillo  <dnovillo@google.com>
10470
10471         * c-lang.c (lang_hooks): Remove const qualifier.
10472
10473 2009-09-02  Loren James Rittle  <ljrittle@acm.org>
10474
10475         * doc/install.texi (*-*-freebsd*): Update target information.
10476
10477 2009-09-02  Anatoly Sokolov  <aesok@post.ru>
10478
10479         * hard-reg-set.h (call_fixed_regs): Remove.
10480         * reginfo.c (call_fixed_regs): Remove.
10481         (init_reg_sets_1): Remove initialization of call_fixed_regs.
10482         (globalize_reg): Don't use call_fixed_regs.
10483         * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
10484         call_fixed_regs.
10485
10486 2009-09-01  Michael Matz  <matz@suse.de>
10487
10488         * expr.h (emit_storent_insn, expand_expr_real_1,
10489         expand_expr_real_2): Declare.
10490         * expr.c (emit_storent_insn, expand_expr_real_1,
10491         expand_expr_real_2): Export.
10492         (store_expr): Setting and evaluating dont_return_target is useless.
10493         (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
10494         LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
10495         * except.c (expand_resx_expr): Rename to ...
10496         (expand_resx_stmt): ... this.  Rewrite to take gimple statement.
10497         * except.h (expand_resx_stmt): Declare.
10498         * stmt.c: Add include gimple.h
10499         (expand_asm_expr): Rename to ...
10500         (expand_asm_stmt): ... this. Rewrite to take gimple statement.
10501         (expand_case): Rewrite to take gimple statement.
10502         * tree.h (expand_asm_stmt): Declare.
10503         (expand_case): Change prototype.
10504         * Makefile.in (stmt.o): Depend on gimple.h.
10505         * builtins.c (expand_builtin_synchronize): Build gimple asm
10506         statement, not an ASM_EXPR.
10507         * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
10508         gimple_to_tree, release_stmt_tree): Remove.
10509         (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
10510         ggc_free, but hold comparison code and operands separately.
10511         Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
10512         (expand_call_stmt, expand_gimple_stmt_1,
10513         expand_gimple_stmt): New helpers.
10514         (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
10515         release_stmt_tree.  Call expand_gimple_stmt instead.
10516         (expand_gimple_basic_block): Ditto.
10517
10518         * calls.c (emit_call_1): Don't look at EH regions here, make
10519         fntree parameter useless.
10520         (expand_call): New local rettype for TREE_TYPE(exp), use it
10521         throughout.  Remove local p, use addr instead.
10522         Don't look at EH regions here.
10523
10524 2009-09-02  Vladimir Makarov  <vmakarov@redhat.com>
10525
10526         * doc/invoke.texi (-fsched-pressure): Document it.
10527         (-fsched-reg-pressure-heuristic): Remove it.
10528
10529         * reload.c (ira.h): Include.
10530         (find_reloads): Add choosing reload on number of small spilled
10531         classes.
10532
10533         * haifa-sched.c (ira.h): Include.
10534         (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
10535         saved_reg_pressure, curr_reg_live, saved_reg_live,
10536         region_ref_regs): New variables.
10537         (sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
10538         initiate_reg_pressure_info, setup_ref_regs,
10539         initiate_bb_reg_pressure_info, save_reg_pressure,
10540         restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
10541         functions.
10542         (setup_insn_reg_pressure_info): New function.
10543         (rank_for_schedule): Add pressure checking and insn issue time.
10544         Remove comparison of insn reg weights.
10545         (ready_sort): Set insn reg pressure info.
10546         (update_register_pressure, setup_insn_max_reg_pressure,
10547         update_reg_and_insn_max_reg_pressure,
10548         sched_setup_bb_reg_pressure_info): New functions.
10549         (schedule_insn): Add code for printing and updating reg pressure info.
10550         (find_set_reg_weight, find_insn_reg_weight): Remove.
10551         (ok_for_early_queue_removal): Do nothing if pressure_only_p.
10552         (debug_ready_list): Print reg pressure info.
10553         (schedule_block): Ditto.  Check insn issue time.
10554         (sched_init): Set up sched_pressure_p.  Allocate and set up some
10555         reg pressure related info.
10556         (sched_finish): Free some reg pressure related info.
10557         (fix_tick_ready): Make insn always ready if pressure_p.
10558         (init_h_i_d): Don't call find_insn_reg_weight.
10559         (haifa_finish_h_i_d): Free insn reg pressure info.
10560
10561         * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
10562         ira_memory_move_cost, ira_class_hard_regs,
10563         ira_class_hard_regs_num, ira_no_alloc_regs,
10564         ira_available_class_regs, ira_reg_class_cover_size,
10565         ira_reg_class_cover, ira_class_translate): Move to ira.h.
10566
10567         * ira-lives.c (single_reg_class): Check mode to find how many
10568         registers are necessary for operand.
10569         (ira_implicitly_set_insn_hard_regs): New.
10570
10571         * common.opt (fsched-pressure): New options.
10572         (fsched-reg-pressure-heuristic): Remove.
10573
10574         * ira.c (setup_eliminable_regset): Rename to
10575         ira_setup_eliminable_regset.  Make it external.
10576         (expand_reg_info): Pass cover class to setup_reg_classes.
10577         (ira): Call resize_reg_info instead of allocate_reg_info.
10578
10579         * sched-deps.c: Include ira.h.
10580         (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
10581         (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
10582         reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
10583         mark_insn_hard_regno_birth, mark_insn_reg_birth,
10584         mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
10585         mark_insn_reg_store, mark_insn_reg_clobber,
10586         setup_insn_reg_pressure_info): New.
10587         (sched_analyze_1): Update implicit_reg_pending_uses.
10588         (sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
10589         Use them to create dependencies.  Set insn reg uses and pressure
10590         info.  Process reg_pending_uses in one place.
10591         (free_deps): Free implicit sets.
10592         (remove_from_deps): Remove implicit sets if necessary.  Check
10593         implicit sets when clearing reg_last_in_use.
10594         (init_deps_global): Clear implicit_reg_pending_clobbers and
10595         implicit_reg_pending_uses.
10596
10597         * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
10598         ira_memory_move_cost, ira_class_hard_regs,
10599         ira_class_hard_regs_num, ira_no_alloc_regs,
10600         ira_available_class_regs, ira_reg_class_cover_size,
10601         ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
10602         (ira_setup_eliminable_regset, ira_set_pseudo_classes,
10603         ira_implicitly_set_insn_hard_regs): New prototypes.
10604
10605         * ira-costs.c (pseudo_classes_defined_p, allocno_p,
10606         cost_elements_num): New variables.
10607         (allocno_costs, total_costs): Rename to costs and
10608         total_allocno_costs.
10609         (COSTS_OF_ALLOCNO): Rename to COSTS.
10610         (allocno_pref): Rename to pref.
10611         (allocno_pref_buffer): Rename to pref_buffer.
10612         (common_classes): Rename to regno_cover_class.
10613         (COST_INDEX): New.
10614         (record_reg_classes): Set allocno attributes only if allocno_p.
10615         (record_address_regs): Ditto.  Use COST_INDEX instead of ALLOCNO_NUM.
10616         (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
10617         and COSTS_OF_ALLOCNO.
10618         (print_costs): Rename to print_allocno_costs.
10619         (print_pseudo_costs): New.
10620         (process_bb_node_for_costs): Split into 2 functions with new
10621         function process_bb_for_costs.  Pass BB to process_bb_for_costs.
10622         (find_allocno_class_costs): Rename to find_costs_and_classes.  Add
10623         new parameter dump_file.  Use cost_elements_num instead of
10624         ira_allocnos_num.  Make one iteration if preferred classes were
10625         already calculated for scheduler.  Make 2 versions of code
10626         depending on allocno_p.
10627         (setup_allocno_cover_class_and_costs): Check allocno_p.  Use
10628         regno_cover_class and COSTS instead of common_classes and
10629         COSTS_OF_ALLOCNO.
10630         (init_costs, finish_costs): New.
10631         (ira_costs): Set up allocno_p and cost_elements_num.  Call
10632         init_costs and finish_costs.
10633         (ira_set_pseudo_classes): New.
10634
10635         * rtl.h (allocate_reg_info): Remove.
10636         (resize_reg_info): Change return type.
10637         (reg_cover_class): New.
10638         (setup_reg_classes): Add new parameter.
10639
10640         * sched-int.h (struct deps_reg): New member implicit_sets.
10641         (sched_pressure_p, sched_regno_cover_class): New external definitions.
10642         (INCREASE_BITS): New macro.
10643         (struct reg_pressure_data, struct reg_use_data): New.
10644         (struct _haifa_insn_data): Remove reg_weight.  Add members
10645         reg_pressure, reg_use_list, reg_set_list, and
10646         reg_pressure_excess_cost_change.
10647         (struct deps): New member implicit_sets.
10648         (pressure_p): New variable.
10649         (COVER_CLASS_BITS, INCREASE_BITS): New macros.
10650         (struct reg_pressure_data, struct reg_use_data): New.
10651         (INSN_REG_WEIGHT): Remove.
10652         (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
10653         INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
10654         (sched_init_region_reg_pressure_info,
10655         sched_setup_bb_reg_pressure_info): New prototypes.
10656
10657         * reginfo.c (struct reg_pref): New member coverclass.
10658         (reg_cover_class): New function.
10659         (reginfo_init, pass_reginfo_init): Move after free_reg_info.
10660         (reg_info_size): New variable.
10661         (allocate_reg_info): Make static.  Setup reg_info_size.
10662         (resize_reg_info): Use reg_info_size.  Return flag of resizing.
10663         (setup_reg_classes): Add a new parameter.  Setup cover class too.
10664
10665         * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
10666         the dependencies.
10667
10668         * sched-rgn.c (deps_join): Set up implicit_sets.
10669         (schedule_region): Set up region and basic blocks pressure
10670         relative info.
10671
10672         * passes.c (init_optimization_passes): Move
10673         pass_subregs_of_mode_init before pass_sched.
10674
10675 2009-09-02  Martin Jambor  <mjambor@suse.cz>
10676
10677         * tree-sra.c (struct access): New field grp_hint.
10678         (dump_access): Dump grp_hint.
10679         (sort_and_splice_var_accesses): Set grp_hint if a group is read
10680         multiple times.
10681         (analyze_access_subtree): Only scalarize accesses with grp_hint set or
10682         those which have been specifically read and somehow written to.
10683         (propagate_subacesses_accross_link): Set grp_hint of right child and
10684         also possibly of the left child.
10685
10686 2009-09-02  Jakub Jelinek  <jakub@redhat.com>
10687
10688         * tree-object-size.c (addr_object_size): Always use object_size_type
10689         0 or 2 when determining the pointer pointed object size.
10690
10691 2009-09-02  Richard Guenther  <rguenther@suse.de>
10692
10693         Revert
10694         2009-08-31  Richard Guenther  <rguenther@suse.de>
10695
10696         * builtins.c (fold_builtin_memory_op): Use the alias oracle
10697         to query if the memory regions for memmove overlap.
10698         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
10699         asserts on pointers, instead deal with odd trees.
10700         (ptr_derefs_may_alias_p): Likewise.
10701         (refs_may_alias_p_1): Constructor bases also never alias.
10702
10703 2009-08-01  Christian Bruel  <christian.bruel@st.com>
10704
10705         Revert:
10706         2009-07-31  Christian Bruel  <christian.bruel@st.com>
10707         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
10708
10709 2009-09-01  Alexandre Oliva  <aoliva@redhat.com>
10710
10711         * doc/invoke.texi (-fvar-tracking-assignments): New.
10712         (-fvar-tracking-assignments-toggle): New.
10713         (-fdump-final-insns=file): Mark filename as optional.
10714         (--param min-nondebug-insn-uid): New.
10715         (-gdwarf-@{version}): Mention version 4.
10716         * opts.c (common_handle_option): Accept it.
10717         * tree-vrp.c (find_assert_locations_1): Skip debug stmts.
10718         * regrename.c (regrename_optimize): Drop last.  Don't count debug
10719         insns as uses.  Don't reject change because of debug insn.
10720         (do_replace): Reject DEBUG_INSN as chain starter.  Take base_regno
10721         from the chain starter, and check for inexact matches in DEBUG_INSNS.
10722         (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
10723         (build_def_use): Simplify and fix the marking of DEBUG_INSNs.
10724         * sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
10725         * fwprop.c (forward_propagate_and_simplify): ...into debug insns.
10726         * doc/gimple.texi (is_gimple_debug): New.
10727         (gimple_debug_bind_p): New.
10728         (is_gimple_call, gimple_assign_cast_p): End sentence with period.
10729         * doc/install.texi (bootstrap-debug): More details.
10730         (bootstrap-debug-big, bootstrap-debug-lean): Document.
10731         (bootstrap-debug-lib): More details.
10732         (bootstrap-debug-ckovw): Update.
10733         (bootstrap-time): New.
10734         * tree-into-ssa.c (mark_def_sites): Skip debug stmts.
10735         (insert_phi_nodes_for): Insert debug stmts.
10736         (rewrite_stmt): Take iterator.  Insert debug stmts.
10737         (rewrite_enter_block): Adjust.
10738         (maybe_replace_use_in_debug_stmt): New.
10739         (rewrite_update_stmt): Use it.
10740         (mark_use_interesting): Return early for debug stmts.
10741         * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
10742         stmts before replacing stmt.
10743         (move_computations_stmt): Likewise.
10744         * ira-conflicts.c (add_copies): Skip debug insns.
10745         * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
10746         (regstat_bb_compute_ri): Skip debug insns.
10747         * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
10748         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
10749         check_loop_closed_ssa_stmt): Skip debug stmts.
10750         * tree-tailcall.c (find_tail_calls): Likewise.
10751         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
10752         * tree.h (MAY_HAVE_DEBUG_STMTS): New.
10753         (build_var_debug_value_stat): Declare.
10754         (build_var_debug_value): Define.
10755         (target_for_debug_bind): Declare.
10756         * reload.c (find_equiv_reg): Skip debug insns.
10757         * rtlanal.c (reg_used_between_p): Skip debug insns.
10758         (side_effects_p): Likewise.
10759         (canonicalize_condition): Likewise.
10760         * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
10761         insns never depend on debug insns.
10762         (create_ddg_dep_no_link): Likewise.
10763         (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
10764         Don't add inter-loop dependencies for debug insns.
10765         (build_intra_loop_deps): Likewise.
10766         (create_ddg): Count debug insns.
10767         * ddg.h (struct ddg::num_debug): New.
10768         (num_backargs): Pair up with previous int field.
10769         * diagnostic.c (diagnostic_report_diagnostic): Skip notes on
10770         -fcompare-debug-second.
10771         * final.c (get_attr_length_1): Skip debug insns.
10772         (rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
10773         * gcc.c (invoke_as): Call compare-debug-dump-opt.
10774         (driver_self_specs): Map -fdump-final-insns to
10775         -fdump-final-insns=..
10776         (get_local_tick): New.
10777         (compare_debug_dump_opt_spec_function): Test for . argument and
10778         compute output name.  Compute temp output spec without flag name.
10779         Compute -frandom-seed.
10780         (OPT): Undef after use.
10781         * cfgloopanal.c (num_loop_insns): Skip debug insns.
10782         (average_num_loop_insns): Likewise.
10783         * params.h (MIN_NONDEBUG_INSN_UID): New.
10784         * gimple.def (GIMPLE_DEBUG): New.
10785         * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
10786         * auto-inc-dec.c (merge_in_block): Skip debug insns.
10787         (merge_in_block): Fix whitespace.
10788         * toplev.c (flag_var_tracking): Update comment.
10789         (flag_var_tracking_assignments): New.
10790         (flag_var_tracking_assignments_toggle): New.
10791         (process_options): Don't open final insns dump file if we're not
10792         going to write to it.  Compute defaults for var_tracking.
10793         * df-scan.c (df_insn_rescan_debug_internal): New.
10794         (df_uses_record): Handle debug insns.
10795         * haifa-sched.c (ready): Initialize n_debug.
10796         (contributes_to_priority): Skip debug insns.
10797         (dep_list_size): New.
10798         (priority): Use it.
10799         (rank_for_schedule): Likewise.  Schedule debug insns as soon as
10800         they're ready.  Disregard previous debug insns to make decisions.
10801         (queue_insn): Never queue debug insns.
10802         (ready_add, ready_remove_first, ready_remove): Count debug insns.
10803         (schedule_insn): Don't reject debug insns because of issue rate.
10804         (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
10805         (queue_to_ready): Skip and discount debug insns.
10806         (choose_ready): Let debug insns through.
10807         (schedule_block): Check boundary debug insns.  Discount debug
10808         insns, schedule them early.  Adjust whitespace.
10809         (set_priorities): Check for boundary debug insns.
10810         (add_jump_dependencies): Use dep_list_size.
10811         (prev_non_location_insn): New.
10812         (check_cfg): Use it.
10813         * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
10814         stmts.
10815         (remove_unused_ivs): Reset debug stmts.
10816         * modulo-sched.c (const_iteration_count): Skip debug insns.
10817         (res_MII): Discount debug insns.
10818         (loop_single_full_bb_p): Skip debug insns.
10819         (sms_schedule): Likewise.
10820         (sms_schedule_by_order): Likewise.
10821         (ps_has_conflicts): Likewise.
10822         * caller-save.c (refmarker_fn): New.
10823         (save_call_clobbered_regs): Replace regs with saved mem in
10824         debug insns.
10825         (mark_referenced_regs): Take pointer, mark and arg.  Adjust.
10826         Call refmarker_fn mark for hardregnos.
10827         (mark_reg_as_referenced): New.
10828         (replace_reg_with_saved_mem): New.
10829         * ipa-pure-const.c (check_stmt): Skip debug stmts.
10830         * cse.c (cse_insn): Canonicalize debug insns.  Skip them when
10831         searching back.
10832         (cse_extended_basic_block): Skip debug insns.
10833         (count_reg_usage): Likewise.
10834         (is_dead_reg): New, split out of...
10835         (set_live_p): ... here.
10836         (insn_live_p): Use it for debug insns.
10837         * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
10838         (execute_optimize_stdarg): Likewise.
10839         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
10840         * tree-ssa-propagate.c (substitute_and_fold): Don't regard
10841         changes in debug stmts as changes.
10842         * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
10843         (moveup_expr): Don't move across debug insns.  Don't move
10844         debug insn if it would create a bookkeeping block.
10845         (moveup_expr_cached): Don't use cache for debug insns that
10846         are heads of blocks.
10847         (compute_av_set_inside_bb): Skip debug insns.
10848         (sel_rank_for_schedule): Schedule debug insns first.  Remove
10849         dead code.
10850         (block_valid_for_bookkeeping_p); Support lax searches.
10851         (create_block_for_bookkeeping): Adjust block numbers when
10852         encountering debug-only blocks.
10853         (find_place_for_bookkeeping): Deal with debug-only blocks.
10854         (generate_bookkeeping_insn): Accept no place to insert.
10855         (remove_temp_moveop_nops): New argument full_tidying.
10856         (prepare_place_to_insert): Deal with debug insns.
10857         (advance_state_on_fence): Debug insns don't start cycles.
10858         (update_boundaries): Take fence as argument.  Deal with
10859         debug insns.
10860         (schedule_expr_on_boundary): No full_tidying on debug insns.
10861         (fill_insns): Deal with debug insns.
10862         (track_scheduled_insns_and_blocks): Don't count debug insns.
10863         (need_nop_to_preserve_insn_bb): New, split out of...
10864         (remove_insn_from_stream): ... this.
10865         (fur_orig_expr_not_found): Skip debug insns.
10866         * rtl.def (VALUE): Move up.
10867         (DEBUG_INSN): New.
10868         * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
10869         (nearest_common_dominator_of_uses): Take debug_stmts argument.
10870         Set it if debug stmts are found.
10871         (statement_sink_location): Skip debug stmts.  Propagate
10872         moving defs into debug stmts.
10873         * ifcvt.c (first_active_insn): Skip debug insns.
10874         (last_active_insns): Likewise.
10875         (cond_exec_process_insns): Likewise.
10876         (noce_process_if_block): Likewise.
10877         (check_cond_move_block): Likewise.
10878         (cond_move_convert_if_block): Likewise.
10879         (block_jumps_and_fallthru_p): Likewise.
10880         (dead_or_predicable): Likewise.
10881         * dwarf2out.c (debug_str_hash_forced): New.
10882         (find_AT_string): Add comment.
10883         (gen_label_for_indirect_string): New.
10884         (get_debug_string_label): New.
10885         (AT_string_form): Use it.
10886         (mem_loc_descriptor): Handle non-TLS symbols.  Handle MINUS , DIV,
10887         MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING.  Accept but
10888         discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
10889         several operations that cannot be represented with DWARF opcodes.
10890         (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND.  Require
10891         dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
10892         (dwarf2out_var_location): Take during-call mark into account.
10893         (output_indirect_string): Update comment.  Output if there are
10894         label and references.
10895         (prune_indirect_string): New.
10896         (prune_unused_types): Call it if debug_str_hash_forced.
10897         More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
10898         (dw_long_long_const): Remove.
10899         (struct dw_val_struct): Change val_long_long type to rtx.
10900         (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
10901         val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
10902         (output_die): Likewise.  Use HOST_BITS_PER_WIDE_INT size of each
10903         component instead of HOST_BITS_PER_LONG.
10904         (output_loc_operands): Likewise.  For const8* assert
10905         HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
10906         (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
10907         rather than HOST_BITS_PER_LONG is >= 64.
10908         (add_AT_long_long): Remove val_hi and val_lo arguments, add
10909         val_const_double.
10910         (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
10911         HOST_BITS_PER_LONG for dw_val_class_long_long.
10912         (add_const_value_attribute): Adjust add_AT_long_long caller.  Don't
10913         handle TLS SYMBOL_REFs.  If CONST wraps a constant, tail recurse.
10914         (dwarf_stack_op_name): Handle DW_OP_implicit_value and
10915         DW_OP_stack_value.
10916         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
10917         Handle DW_OP_implicit_value.
10918         (extract_int): Move prototype earlier.
10919         (mem_loc_descriptor): For SUBREG punt if inner
10920         mode size is wider than DWARF2_ADDR_SIZE.  Handle SIGN_EXTEND
10921         and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}.  Handle
10922         EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
10923         UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
10924         (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
10925         instead of Pmode size.
10926         (loc_descriptor): Add MODE argument.  Handle CONST_INT, CONST_DOUBLE,
10927         CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
10928         attempt to handle other expressions.  Don't handle TLS SYMBOL_REFs.
10929         (concat_loc_descriptor, concatn_loc_descriptor,
10930         loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
10931         (add_location_or_const_value_attribute): Likewise.  For single
10932         location loc_lists attempt to use add_const_value_attribute
10933         for constant decls.  Add DW_AT_const_value even if
10934         NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
10935         in its expression.
10936         * cfgbuild.c (inside_basic_block_p): Handle debug insns.
10937         (control_flow_insn_p): Likewise.
10938         * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
10939         (separate_decls_in_region_debug_bind): New.
10940         (separate_decls_in_region): Process debug bind stmts afterwards.
10941         * recog.c (verify_changes): Handle debug insns.
10942         (extract_insn): Likewise.
10943         (peephole2_optimize): Skip debug insns.
10944         * dse.c (scan_insn): Skip debug insns.
10945         * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
10946         Pass it on.
10947         (setup_id_for_insn): Handle debug insns.
10948         (maybe_tidy_empty_bb): Adjust whitespace.
10949         (tidy_control_flow): Skip debug insns.
10950         (sel_remove_insn): Adjust for debug insns.
10951         (sel_estimate_number_of_insns): Skip debug insns.
10952         (create_insn_rtx_from_pattern): Handle debug insns.
10953         (create_copy_of_insn_rtx): Likewise.
10954         * sel-sched-.h (sel_bb_end): Declare.
10955         (sel_bb_empty_or_nop_p): New.
10956         (get_all_loop_exits): Use it.
10957         (_eligible_successor_edge_p): Likewise.
10958         (return_nop_to_pool): Adjust.
10959         * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
10960         * ira-lives.c (process_bb_node_lives): Skip debug insns.
10961         * gimple-pretty-print.c (dump_gimple_debug): New.
10962         (dump_gimple_stmt): Use it.
10963         (dump_bb_header): Skip gimple debug stmts.
10964         * regmove.c (optimize_reg_copy_1): Discount debug insns.
10965         (fixup_match_2): Likewise.
10966         (regmove_backward_pass): Likewise.  Simplify combined
10967         replacement.  Handle debug insns.
10968         * function.c (instantiate_virtual_regs): Handle debug insns.
10969         * function.h (struct emit_status): Add x_cur_debug_insn_uid.
10970         * print-rtl.h: Include cselib.h.
10971         (print_rtx): Print VALUEs.  Split out and recurse for VAR_LOCATIONs.
10972         * df.h (df_inns_rescan_debug_internal): Declare.
10973         * gcse.c (alloc_hash_table): Estimate n_insns.
10974         (cprop_insn): Don't regard debug insns as changes.
10975         (bypass_conditional_jumps): Skip debug insns.
10976         (one_pre_gcse_pass): Adjust.
10977         (one_code_hoisting_pass): Likewise.
10978         (compute_ld_motion_mems): Skip debug insns.
10979         (one_cprop_pass): Adjust.
10980         * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
10981         (if_convertible_stmt_p): Handle debug stmts.
10982         * init-regs.c (initialize_uninitialized_regs): Skip debug insns.
10983         * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
10984         * ira-build.c (create_bb_allocnos): Skip debug insns.
10985         * tree-flow-inline.h (has_zero_uses): Discount debug stmts.
10986         (has_single_use): Likewise.
10987         (single_imm_use): Likewise.
10988         (num_imm_uses): Likewise.
10989         * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
10990         * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
10991         (create_outofssa_var_map): Likewise.
10992         * lower-subreg.c (adjust_decomposed_uses): New.
10993         (resolve_debug): New.
10994         (decompose_multiword_subregs): Use it.
10995         * tree-dfa.c (find_referenced_vars): Skip debug stmts.
10996         * emit-rtl.c: Include params.h.
10997         (cur_debug_insn_uid): Define.
10998         (set_new_first_and_last_insn): Set cur_debug_insn_uid too.
10999         (copy_rtx_if_shared_1): Handle debug insns.
11000         (reset_used_flags): Likewise.
11001         (set_used_flags): LIkewise.
11002         (get_max_insn_count): New.
11003         (next_nondebug_insn): New.
11004         (prev_nondebug_insn): New.
11005         (make_debug_insn_raw): New.
11006         (emit_insn_before_noloc): Handle debug insns.
11007         (emit_jump_insn_before_noloc): Likewise.
11008         (emit_call_insn_before_noloc): Likewise.
11009         (emit_debug_insn_before_noloc): New.
11010         (emit_insn_after_noloc): Handle debug insns.
11011         (emit_jump_insn_after_noloc): Likewise.
11012         (emit_call_insn_after_noloc): Likewise.
11013         (emit_debug_insn_after_noloc): Likewise.
11014         (emit_insn_after): Take loc from earlier non-debug insn.
11015         (emit_jump_insn_after): Likewise.
11016         (emit_call_insn_after): Likewise.
11017         (emit_debug_insn_after_setloc): New.
11018         (emit_debug_insn_after): New.
11019         (emit_insn_before): Take loc from later non-debug insn.
11020         (emit_jump_insn_before): Likewise.
11021         (emit_call_insn_before): Likewise.
11022         (emit_debug_insn_before_setloc): New.
11023         (emit_debug_insn_before): New.
11024         (emit_insn): Handle debug insns.
11025         (emit_debug_insn): New.
11026         (emit_jump_insn): Handle debug insns.
11027         (emit_call_insn): Likewise.
11028         (emit): Likewise.
11029         (init_emit): Take min-nondebug-insn-uid into account.
11030         Initialize cur_debug_insn_uid.
11031         (emit_copy_of_insn_after): Handle debug insns.
11032         * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
11033         location of single rhs in place.
11034         (maybe_dump_rtl_for_gimple_stmt): Dump lineno.
11035         (floor_sdiv_adjust): New.
11036         (cell_sdiv_adjust): New.
11037         (cell_udiv_adjust): New.
11038         (round_sdiv_adjust): New.
11039         (round_udiv_adjust): New.
11040         (wrap_constant): Moved from cselib.
11041         (unwrap_constant): New.
11042         (expand_debug_expr): New.
11043         (expand_debug_locations): New.
11044         (expand_gimple_basic_block): Drop hiding redeclaration.  Expand
11045         debug bind stmts.
11046         (gimple_expand_cfg): Expand debug locations.
11047         * cselib.c: Include tree-pass.h.
11048         (struct expand_value_data): New.
11049         (cselib_record_sets_hook): New.
11050         (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
11051         (cselib_clear_table): Move, and implemnet in terms of...
11052         (cselib_reset_table_with_next_value): ... this.
11053         (cselib_get_next_unknown_value): New.
11054         (discard_useless_locs): Don't discard preserved values.
11055         (cselib_preserve_value): New.
11056         (cselib_preserved_value_p): New.
11057         (cselib_preserve_definitely): New.
11058         (cselib_clear_preserve): New.
11059         (cselib_preserve_only_values): New.
11060         (new_cselib_val): Take rtx argument.  Dump it in details.
11061         (cselib_lookup_mem): Adjust.
11062         (expand_loc): Take regs_active in struct.  Adjust.  Silence
11063         dumps unless details are requested.
11064         (cselib_expand_value_rtx_cb): New.
11065         (cselib_expand_value_rtx): Rename and reimplment in terms of...
11066         (cselib_expand_value_rtx_1): ... this.  Adjust.  Silence dumps
11067         without details.  Copy more subregs.  Try to resolve values
11068         using a callback.  Wrap constants.
11069         (cselib_subst_to_values): Adjust.
11070         (cselib_log_lookup): New.
11071         (cselib_lookup): Call it.
11072         (cselib_invalidate_regno): Don't count preserved values as useless.
11073         (cselib_invalidate_mem): Likewise.
11074         (cselib_record_set): Likewise.
11075         (struct set): Renamed to cselib_set, moved to cselib.h.
11076         (cselib_record_sets): Adjust.  Call hook.
11077         (cselib_process_insn): Reset table when it would be cleared.
11078         (dump_cselib_val): New.
11079         (dump_cselib_table): New.
11080         * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
11081         (remove_forwarder_block): Support moving debug stmts.
11082         * cselib.h (cselib_record_sets_hook): Declare.
11083         (cselib_expand_callback): New type.
11084         (cselib_expand_value_rtx_cb): Declare.
11085         (cselib_reset_table_with_next_value): Declare.
11086         (cselib_get_next_unknown_value): Declare.
11087         (cselib_preserve_value): Declare.
11088         (cselib_preserved_value_p): Declare.
11089         (cselib_preserve_only_values): Declare.
11090         (dump_cselib_table): Declare.
11091         * cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
11092         (try_crossjump_to_edge): Likewise.
11093         (delete_unreachable_blocks): Remove dominant GIMPLE blocks after
11094         dominated blocks when debug stmts are present.
11095         * simplify-rtx.c (delegitimize_mem_from_attrs): New.
11096         * tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
11097         (set_var_live_on_entry): Likewise.
11098         * loop-invariant.c (find_invariants_bb): Skip debug insns.
11099         * cfglayout.c (curr_location, last_location): Make static.
11100         (set_curr_insn_source_location): Don't avoid bouncing.
11101         (get_curr_insn_source_location): New.
11102         (get_curr_insn_block): New.
11103         (duplicate_insn_chain): Handle debug insns.
11104         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
11105         into debug stmts.
11106         * common.opt (fcompare-debug): Move to sort order.
11107         (fdump-unnumbered-links): Likewise.
11108         (fvar-tracking-assignments): New.
11109         (fvar-tracking-assignments-toggle): New.
11110         * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
11111         because of debug stmts.
11112         (mark_stmt_if_obviously_necessary): Mark debug stmts.
11113         (eliminate_unnecessary_stmts): Walk dominated blocks before
11114         dominators.
11115         * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
11116         * ira.c (memref_used_between_p): Skip debug insns.
11117         (update_equiv_regs): Likewise.
11118         * sched-deps.c (sd_lists_size): Accept empty list.
11119         (sd_init_insn): Mark debug insns.
11120         (sd_finish_insn): Unmark them.
11121         (sd_add_dep): Reject non-debug deps on debug insns.
11122         (fixup_sched_groups): Give debug insns group treatment.
11123         Skip debug insns.
11124         (sched_analyze_reg): Don't mark debug insns for sched before call.
11125         (sched_analyze_2): Handle debug insns.
11126         (sched_analyze_insn): Compute next non-debug insn.  Handle debug
11127         insns.
11128         (deps_analyze_insn): Handle debug insns.
11129         (deps_start_bb): Skip debug insns.
11130         (init_deps): Initialize last_debug_insn.
11131         * tree-ssa.c (target_for_debug_bind): New.
11132         (find_released_ssa_name): New.
11133         (propagate_var_def_into_debug_stmts): New.
11134         (propagate_defs_into_debug_stmts): New.
11135         (verify_ssa): Skip debug bind stmts without values.
11136         (warn_uninialized_vars): Skip debug stmts.
11137         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
11138         * rtl.c (rtx_equal_p_cb): Handle VALUEs.
11139         (rtx_equal_p): Likewise.
11140         * ira-costs.c (scan_one_insn): Skip debug insns.
11141         (process_bb_node_for_hard_reg_moves): Likewise.
11142         * rtl.h (DEBUG_INSN_P): New.
11143         (NONDEBUG_INSN_P): New.
11144         (MAY_HAVE_DEBUG_INSNS): New.
11145         (INSN_P): Accept debug insns.
11146         (RTX_FRAME_RELATED_P): Likewise.
11147         (INSN_DELETED_P): Likewise
11148         (PAT_VAR_LOCATION_DECL): New.
11149         (PAT_VAR_LOCATION_LOC): New.
11150         (PAT_VAR_OCATION_STATUS): New.
11151         (NOTE_VAR_LOCATION_DECL): Reimplement.
11152         (NOTE_VAR_LOCATION_LOC): Likewise.
11153         (NOTE_VAR_LOCATION_STATUS): Likewise.
11154         (INSN_VAR_LOCATION): New.
11155         (INSN_VAR_LOCATION_DECL): New.
11156         (INSN_VAR_LOCATION_LOC): New.
11157         (INSN_VAR_LOCATION_STATUS): New.
11158         (gen_rtx_UNKNOWN_VAR_LOC): New.
11159         (VAR_LOC_UNKNOWN_P): New.
11160         (NOTE_DURING_CALL_P): New.
11161         (SCHED_GROUP_P): Accept debug insns.
11162         (emit_debug_insn_before): Declare.
11163         (emit_debug_insn_before_noloc): Declare.
11164         (emit_debug_insn_beore_setloc): Declare.
11165         (emit_debug_insn_after): Declare.
11166         (emit_debug_insn_after_noloc): Declare.
11167         (emit_debug_insn_after_setloc): Declare.
11168         (emit_debug_insn): Declare.
11169         (make_debug_insn_raw): Declare.
11170         (prev_nondebug_insn): Declare.
11171         (next_nondebug_insn): Declare.
11172         (delegitimize_mem_from_attrs): Declare.
11173         (get_max_insn_count): Declare.
11174         (wrap_constant): Declare.
11175         (unwrap_constant): Declare.
11176         (get_curr_insn_source_location): Declare.
11177         (get_curr_insn_block): Declare.
11178         * tree-inline.c (insert_debug_decl_map): New.
11179         (processing_debug_stmt): New.
11180         (remap_decl): Don't create new mappings in debug stmts.
11181         (remap_gimple_op_r): Don't add references in debug stmts.
11182         (copy_tree_body_r): Likewise.
11183         (remap_gimple_stmt): Handle debug bind stmts.
11184         (copy_bb): Skip debug stmts.
11185         (copy_edges_for_bb): Likewise.
11186         (copy_debug_stmt): New.
11187         (copy_debug_stmts): New.
11188         (copy_body): Copy debug stmts at the end.
11189         (insert_init_debug_bind): New.
11190         (insert_init_stmt): Take id.  Skip and emit debug stmts.
11191         (setup_one_parameter): Remap variable earlier, register debug mapping.
11192         (estimate_num_insns): Skip debug stmts.
11193         (expand_call_inline): Preserve debug_map.
11194         (optimize_inline_calls): Check for no debug_stmts left-overs.
11195         (unsave_expr_now): Preserve debug_map.
11196         (copy_gimple_seq_and_replace_locals): Likewise.
11197         (tree_function_versioning): Check for no debug_stmts left-overs.
11198         Init and destroy debug_map as needed.  Split edges unconditionally.
11199         (build_duplicate_type): Init and destroy debug_map as needed.
11200         * tree-inline.h: Include gimple.h instead of pointer-set.h.
11201         (struct copy_body_data): Add debug_stmts and debug_map.
11202         * sched-int.h (struct ready_list): Add n_debug.
11203         (struct deps): Add last_debug_insn.
11204         (DEBUG_INSN_SCHED_P): New.
11205         (BOUNDARY_DEBUG_INSN_P): New.
11206         (SCHEDULE_DEBUG_INSN_P): New.
11207         (sd_iterator_cond): Accept empty list.
11208         * combine.c (create_log_links): Skip debug insns.
11209         (combine_instructions): Likewise.
11210         (cleanup_auto_inc_dec): New.  From Jakub Jelinek: Make sure the
11211         return value is always unshared.
11212         (struct rtx_subst_pair): New.
11213         (auto_adjust_pair): New.
11214         (propagate_for_debug_subst): New.
11215         (propagate_for_debug): New.
11216         (try_combine): Skip debug insns.  Propagate removed defs into
11217         debug insns.
11218         (next_nonnote_nondebug_insn): New.
11219         (distribute_notes): Use it.  Skip debug insns.
11220         (distribute_links): Skip debug insns.
11221         * tree-outof-ssa.c (set_location_for_edge): Likewise.
11222         * resource.c (mark_target_live_regs): Likewise.
11223         * var-tracking.c: Include cselib.h and target.h.
11224         (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
11225         MO_VAL_SET.
11226         (micro_operation_type_name): New.
11227         (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
11228         (struct micro_operation_def): Update comments.
11229         (decl_or_value): New type.  Use instead of decls.
11230         (struct emit_note_data_def): Add vars.
11231         (struct attrs_def): Use decl_or_value.
11232         (struct variable_tracking_info_def): Add permp, flooded.
11233         (struct location_chain_def): Update comment.
11234         (struct variable_part_def): Use decl_or_value.
11235         (struct variable_def): Make var_part a variable length array.
11236         (valvar_pool): New.
11237         (scratch_regs): New.
11238         (cselib_hook_called): New.
11239         (dv_is_decl_p): New.
11240         (dv_is_value_p): New.
11241         (dv_as_decl): New.
11242         (dv_as_value): New.
11243         (dv_as_opaque): New.
11244         (dv_onepart_p): New.
11245         (dv_pool): New.
11246         (IS_DECL_CODE): New.
11247         (check_value_is_not_decl): New.
11248         (dv_from_decl): New.
11249         (dv_from_value): New.
11250         (dv_htab_hash): New.
11251         (variable_htab_hash): Use it.
11252         (variable_htab_eq): Support values.
11253         (variable_htab_free): Free from the right pool.
11254         (attrs_list_member, attrs_list_insert): Use decl_or_value.
11255         (attrs_list_union): Adjust.
11256         (attrs_list_mpdv_union): New.
11257         (tie_break_pointers): New.
11258         (canon_value_cmp): New.
11259         (unshare_variable): Return possibly-modified slot.
11260         (vars_copy_1): Adjust.
11261         (var_reg_decl_set): Adjust.  Split out of...
11262         (var_reg_set): ... this.
11263         (get_init_value): Adjust.
11264         (var_reg_delete_and_set): Adjust.
11265         (var_reg_delete): Adjust.
11266         (var_regno_delete): Adjust.
11267         (var_mem_decl_set): Split out of...
11268         (var_mem_set): ... this.
11269         (var_mem_delete_and_set): Adjust.
11270         (var_mem_delete): Adjust.
11271         (val_store): New.
11272         (val_reset): New.
11273         (val_resolve): New.
11274         (variable_union): Adjust.  Speed up merge of 1-part vars.
11275         (variable_canonicalize): Use unshared slot.
11276         (VALUED_RECURSED_INTO): New.
11277         (find_loc_in_1pdv): New.
11278         (struct dfset_merge): New.
11279         (insert_into_intersection): New.
11280         (intersect_loc_chains): New.
11281         (loc_cmp): New.
11282         (canonicalize_loc_order_check): New.
11283         (canonicalize_values_mark): New.
11284         (canonicalize_values_star): New.
11285         (variable_merge_over_cur): New.
11286         (variable_merge_over_src): New.
11287         (dataflow_set_merge): New.
11288         (dataflow_set_equiv_regs): New.
11289         (remove_duplicate_values): New.
11290         (struct dfset_post_merge): New.
11291         (variable_post_merge_new_vals): New.
11292         (variable_post_merge_perm_vals): New.
11293         (dataflow_post_merge_adjust): New.
11294         (find_mem_expr_in_1pdv): New.
11295         (dataflow_set_preserve_mem_locs): New.
11296         (dataflow_set_remove_mem_locs): New.
11297         (dataflow_set_clear_at_call): New.
11298         (onepart_variable_different_p): New.
11299         (variable_different_p): Use it.
11300         (dataflow_set_different_1): Adjust.  Make detailed dump more verbose.
11301         (track_expr_p): Add need_rtl parameter.  Don't generate rtl
11302         if not needed.
11303         (track_loc_p): Pass it true.
11304         (struct count_use_info): New.
11305         (find_use_val): New.
11306         (replace_expr_with_values): New.
11307         (log_op_type): New.
11308         (use_type): New, partially split out of...
11309         (count_uses): ... this.  Count new micro-ops.
11310         (count_uses_1): Adjust.
11311         (count_stores): Adjust.
11312         (count_with_sets): New.
11313         (VAL_NEEDS_RESOLUTION): New.
11314         (VAL_HOLDS_TRACK_EXPR): New.
11315         (VAL_EXPR_IS_COPIED): New.
11316         (VAL_EXPR_IS_CLOBBERED): New.
11317         (add_uses): Adjust.  Generate new micro-ops.
11318         (add_uses_1): Adjust.
11319         (add_stores): Generate new micro-ops.
11320         (add_with_sets): New.
11321         (find_src_status): Adjust.
11322         (find_src_set_src): Adjust.
11323         (compute_bb_dataflow): Use dataflow_set_clear_at_call.
11324         Handle new micro-ops.  Canonicalize value equivalances.
11325         (vt_find_locations): Compute total size of hash tables for
11326         dumping.  Perform merge for var-tracking-assignments.  Don't
11327         disregard single-block loops.
11328         (dump_attrs_list): Handle decl_or_value.
11329         (dump_variable): Take variable.  Deal with decl_or_value.
11330         (dump_variable_slot): New.
11331         (dump_vars): Use it.
11332         (dump_dataflow_sets): Adjust.
11333         (set_slot_part): New, extended to support one-part variables
11334         after splitting out of...
11335         (set_variable_part): ... this.
11336         (clobber_slot_part): New, split out of...
11337         (clobber_variable_part): ... this.
11338         (delete_slot_part): New, split out of...
11339         (delete_variable_part): .... this.
11340         (check_wrap_constant): New.
11341         (vt_expand_loc_callback): New.
11342         (vt_expand_loc): New.
11343         (emit_note_insn_var_location): Adjust.  Handle values.  Handle
11344         EMIT_NOTE_AFTER_CALL_INSN.
11345         (emit_notes_for_differences_1): Adjust.  Handle values.
11346         (emit_notes_for_differences_2): Likewise.
11347         (emit_notes_for_differences): Adjust.
11348         (emit_notes_in_bb): Take pointer to set.  Emit AFTER_CALL_INSN notes.
11349         Adjust.  Handle new micro-ops.
11350         (vt_add_function_parameters): Adjust.  Create and bind values.
11351         (vt_initialize): Adjust.  Initialize scratch_regs and
11352         valvar_pool, flooded and perm..  Initialize and use cselib.  Log
11353         operations.  Move some code to count_with_sets and add_with_sets.
11354         (delete_debug_insns): New.
11355         (vt_debug_insns_local): New.
11356         (vt_finalize): Release permp, valvar_pool, scratch_regs.  Finish
11357         cselib.
11358         (var_tracking_main): If var-tracking-assignments is enabled
11359         but var-tracking isn't, delete debug insns and leave.  Likewise
11360         if we exceed limits or fail the stack adjustments tests, and
11361         after all var-tracking processing.
11362         More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
11363         (dataflow_set): Add traversed_vars.
11364         (value_chain, const_value_chain): New typedefs.
11365         (value_chain_pool, value_chains): New variables.
11366         (value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
11367         add_value_chains, add_cselib_value_chains, remove_value_chain,
11368         remove_value_chains, remove_cselib_value_chains): New functions.
11369         (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
11370         shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
11371         static inlines.
11372         (shared_hash_find_slot_unshare, shared_hash_find_slot,
11373         shared_hash_find_slot_noinsert, shared_hash_find): Update.
11374         (dst_can_be_shared): New variable.
11375         (unshare_variable): Unshare set->vars if shared, use shared_hash_*.
11376         Clear dst_can_be_shared.  If set->traversed_vars is non-NULL and
11377         different from set->vars, look up slot again instead of using the
11378         passed in slot.
11379         (dataflow_set_init): Initialize traversed_vars.
11380         (variable_union): Use shared_hash_*.  Use initially NO_INSERT
11381         lookup if set->vars is shared.  Don't keep slot cleared before
11382         calling unshare_variable.  Unshare set->vars if needed.  Adjust
11383         unshare_variable callers.  Clear dst_can_be_shared if needed.
11384         Even ->refcount == 1 vars must be unshared if set->vars is shared
11385         and var needs to be modified.
11386         (dataflow_set_union): Set traversed_vars during canonicalization.
11387         (VALUE_CHANGED, DECL_CHANGED): Define.
11388         (set_dv_changed, dv_changed_p): New static inlines.
11389         (track_expr_p): Clear DECL_CHANGED.
11390         (dump_dataflow_sets): Set it.
11391         (variable_was_changed): Call set_dv_changed.
11392         (emit_note_insn_var_location): Likewise.
11393         (changed_variables_stack): New variable.
11394         (check_changed_vars_1, check_changed_vars_2): New functions.
11395         (emit_notes_for_changes): Do nothing if changed_variables is
11396         empty.  Traverse changed_variables with check_changed_vars_1,
11397         call check_changed_vars_2 on each changed_variables_stack entry.
11398         (emit_notes_in_bb): Add SET argument.  Just clear it at the
11399         beginning, use it instead of local &set, don't destroy it at the end.
11400         (vt_emit_notes): Call dataflow_set_clear early on all
11401         VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
11402         computed set, dataflow_set_clear also VTI(bb)->in when we are
11403         done with the basic block.  Initialize changed_variables_stack,
11404         free it afterwards.  If ENABLE_CHECKING verify that after noting
11405         differences to an empty set value_chains hash table is empty.
11406         (vt_initialize): Initialize value_chains and value_chain_pool.
11407         (vt_finalize): Delete value_chains htab, free value_chain_pool.
11408         (variable_tracking_main): Call dump_dataflow_sets before calling
11409         vt_emit_notes, not after it.
11410         * tree-flow.h (propagate_defs_into_debug_stmts): Declare.
11411         (propagate_var_def_into_debug_stmts): Declare.
11412         * df-problems.c (df_lr_bb_local_compute): Skip debug insns.
11413         (df_set_note): Reject debug insns.
11414         (df_whole_mw_reg_dead_p): Take added_notes_p argument.  Don't
11415         add notes to debug insns.
11416         (df_note_bb_compute): Adjust.  Likewise.
11417         (df_simulate_uses): Skip debug insns.
11418         (df_simulate_initialize_backwards): Likewise.
11419         * reg-stack.c (subst_stack_regs_in_debug_insn): New.
11420         (subst_stack_regs_pat): Reject debug insns.
11421         (convert_regs_1): Handle debug insns.
11422         * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
11423         (print-rtl.o): Depend on cselib.h.
11424         (cselib.o): Depend on TREE_PASS_H.
11425         (var-tracking.o): Depend on cselib.h and TARGET_H.
11426         * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
11427         (init_ready_list): Skip boundary debug insns.
11428         (add_branch_dependences): Skip debug insns.
11429         (free_block_dependencies): Check for blocks with only debug insns.
11430         (compute_priorities): Likewise.
11431         * gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
11432         (gimple_build_with_ops_stat): Take subcode as unsigned.  Adjust
11433         all callers.
11434         (gimple_build_debug_bind_stat): New.
11435         (empty_body_p): Skip debug stmts.
11436         (gimple_has_side_effects): Likewise.
11437         (gimple_rhs_has_side_effects): Likewise.
11438         * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
11439         (gimple_build_debug_bind_stat): Declare.
11440         (gimple_build_debug_bind): Define.
11441         (is_gimple_debug): New.
11442         (gimple_debug_bind_p): New.
11443         (gimple_debug_bind_get_var): New.
11444         (gimple_debug_bind_get_value): New.
11445         (gimple_debug_bind_get_value_ptr): New.
11446         (gimple_debug_bind_set_var): New.
11447         (gimple_debug_bind_set_value): New.
11448         (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
11449         (gimple_debug_bind_reset_value): New.
11450         (gimple_debug_bind_has_value_p): New.
11451         (gsi_next_nondebug): New.
11452         (gsi_prev_nondebug): New.
11453         (gsi_start_nondebug_bb): New.
11454         (gsi_last_nondebug_bb): New.
11455         * sched-vis.c (print_pattern): Handle VAR_LOCATION.
11456         (print_insn): Handle DEBUG_INSN.
11457         * tree-cfg.c (remove_bb): Walk stmts backwards.  Let loc
11458         of first insn prevail.
11459         (first_stmt): Skip debug stmts.
11460         (first_non_label_stmt): Likewise.
11461         (last_stmt): Likewise.
11462         (has_zero_uses_1): New.
11463         (single_imm_use_1): New.
11464         (verify_gimple_debug): New.
11465         (verify_types_in_gimple_stmt): Handle debug stmts.
11466         (verify_stmt): Likewise.
11467         (debug_loop_num): Skip debug stmts.
11468         (remove_edge_and_dominated_blocks): Remove dominators last.
11469         * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
11470         (linearize_expr): Likewise.
11471         * config/i386/i386.c (ix86_delegitimize_address): Call
11472         default implementation.
11473         * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
11474         (group_barrier_needed): Skip debug insns.
11475         (emit_insn_group_barriers): Likewise.
11476         (emit_all_insn_group_barriers): Likewise.
11477         (ia64_variable_issue): Handle debug insns.
11478         (ia64_dfa_new_cycle): Likewise.
11479         (final_emit_insn_group_barriers): Skip debug insns.
11480         (ia64_dwarf2out_def_steady_cfa): Take frame argument.  Don't
11481         def cfa without frame.
11482         (process_set): Likewise.
11483         (process_for_unwind_directive): Pass frame on.
11484         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
11485         (rs6000_delegitimize_address): New.
11486         (rs6000_debug_adjust_cost): Handle debug insns.
11487         (is_microcoded_insn): Likewise.
11488         (is_cracked_insn): Likewise.
11489         (is_nonpipeline_insn): Likewise.
11490         (insn_must_be_first_in_group): Likewise.
11491         (insn_must_be_last_in_group): Likewise.
11492         (force_new_group): Likewise.
11493         * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
11494         contains only debug insns.
11495         (rtl_merge_blocks): Skip debug insns.
11496         (purge_dead_edges): Likewise.
11497         (rtl_block_ends_with_call_p): Skip debug insns.
11498         * dce.c (deletable_insn_p): Handle VAR_LOCATION.
11499         (mark_reg_dependencies): Skip debug insns.
11500         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
11501         * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
11502         * tree-ssa-threadedge.c
11503         (record_temporary_equivalences_from_stmts): Skip debug stmts.
11504         * regcprop.c (replace_oldest_value_addr): Skip debug insns.
11505         (replace_oldest_value_mem): Use ALL_REGS for debug insns.
11506         (copyprop_hardreg_forward_1): Handle debug insns.
11507         * reload1.c (reload): Skip debug insns.  Replace unassigned
11508         pseudos in debug insns with their equivalences.
11509         (eliminate_regs_in_insn): Skip debug insns.
11510         (emit_input_reload_insns): Skip debug insns at first, adjust
11511         them later.
11512         * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
11513         (get_indirect_ref_operands): Pass opf_no_vops on.
11514         (get_expr_operands): Likewise.  Skip debug stmts.
11515         (parse_ssa_operands): Scan debug insns with opf_no_vops.
11516
11517 2009-09-01  Richard Henderson  <rth@redhat.com>
11518
11519         * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
11520         stmt_ends_pp_p statements at least once.
11521         * tree-vrp.c (vrp_initialize): Likewise.
11522         (vrp_visit_stmt): Be prepared for non-interesting stmts.
11523
11524 2009-09-01  Dodji Seketeli  <dodji@redhat.com>
11525
11526         PR bootstrap/41205
11527         Fix AIX bootstrap after PR debug/30161
11528         * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
11529         that is a GNU extension.
11530         (tmpl_value_parm_die_table): Move the definition of this global
11531         outside #ifdef DWARF2_DEBUGGING_INFO region.
11532
11533 2009-09-01  Richard Guenther  <rguenther@suse.de>
11534
11535         * tree.c (tree_expr_size): New function.
11536         * tree.h (tree_expr_size): Declare.
11537         * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
11538         * builtins.c (fold_builtin_memory_op): Use tree_expr_size.
11539         * langhooks.c (lhd_expr_size): Remove.
11540         * langhooks.h (struct lang_hooks): Remove expr_size.
11541         * explow.c (expr_size): Use tree_expr_size.
11542         (int_expr_size): Likewise.
11543         * langhooks-def.h (lhd_expr_size): Remove.
11544         (LANG_HOOKS_EXPR_SIZE): Likewise.
11545         (LANG_HOOKS_INITIALIZER): Adjust.
11546
11547 2009-09-01  Richard Guenther  <rguenther@suse.de>
11548
11549         * tree-flow.h (mark_addressable): Move declaration ...
11550         * tree.h (mark_addressable): ... here.
11551         * stmt.c (expand_asm_operands): Use mark_addressable, not
11552         lang_hooks.mark_addressable.
11553         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
11554         LANG_HOOKS_MARK_ADDRESSABLE.
11555         * langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
11556         * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
11557
11558 2009-08-31  Chris Demetriou  <cgd@google.com>
11559
11560         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
11561         vectorize if not TARGET_SSE2.
11562
11563 2009-08-31  DJ Delorie  <dj@redhat.com>
11564
11565         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
11566         registers if no coprocessor is enabled.
11567
11568 2009-08-31  Dodji Seketeli  <dodji@redhat.com>
11569
11570         PR debug/30161
11571         * cgraph.h (cgraph_get_node): Declare ...
11572         * cgraph.c (cgraph_get_node): ... new function.
11573         * dwarf2out.c (gen_generic_params_dies,
11574         generic_parameter_die, tree_add_const_value_attribute_for_decl,
11575         make_ith_pack_parameter_name,
11576         append_entry_to_tmpl_value_parm_die_table,
11577         gen_remaining_tmpl_value_param_die_attribute): New functions.
11578         (gen_subprogram_die): Generate debug info for template parameters
11579         if debug info level is higher than DINFO_LEVEL_TERSE.
11580         Use tree_add_const_value_attribute_for_decl instead of
11581         tree_add_const_value_attribute.
11582         (gen_const_die): Use tree_add_const_value_attribute_for_decl
11583         instead of tree_add_const_value_attribute.
11584         (gen_struct_or_union_type_die): Generate debug
11585         info for template parameters if debug info level is higher than
11586         DINFO_LEVEL_TERSE.
11587         (tree_add_const_value_attribute): Handle integral and pointer
11588         constants. Update comment.
11589         (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
11590         (dwarf_attr_name): Support DW_AT_GNU_template_name.
11591         (reference_to_unused): Fix thinko. Remove redundant predicates from
11592         tests.
11593         (tree_add_const_value_attribute): Make this work for constant
11594         expressions only.
11595         tree_add_const_value_attribute_for_decl is to be used for variable
11596         DECLs now.
11597         (add_location_or_const_value_attribute): Use
11598         tree_add_const_value_attribute_for_decl now.
11599         (dwarf2out_finish): Emit the DW_AT_const_value attribute of
11600         DW_TAG_template_value_param DIEs after function DIEs have been
11601         emitted.
11602         * langhooks.h (lang_hooks_for_types): Add
11603         get_argument_pack_elems.
11604         (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
11605         (lang_hooks): Added get_innermost_generic_parms,
11606         get_innermost_generic_args.
11607         * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
11608         LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
11609         LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
11610         LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
11611
11612 2009-08-31  DJ Delorie  <dj@redhat.com>
11613
11614         * config/mep/mep.c (machine_function): Add frame_locked flag.  Set
11615         it once we start generating the prologue or epilogue.
11616         (mep_call_saves_register): If the frame is locked, re-use
11617         cached values.
11618         (mep_assign_save_slots): New, broken out from mep_expand_prologue.
11619         (mep_expand_prologue): Call it.
11620         (mep_expand_epilogue): Likewise.
11621         (mep_start_function): Use the same logic as mep_expand_prologue.
11622         (mep_pass_by_reference): Make logic more readable.
11623         (mep_return_in_memory): Zero-sized objects are passed in memory.
11624         (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
11625
11626 2009-08-31  Richard Guenther  <rguenther@suse.de>
11627
11628         * builtins.c (fold_builtin_memory_op): Use the alias oracle
11629         to query if the memory regions for memmove overlap.
11630         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
11631         asserts on pointers, instead deal with odd trees.
11632         (ptr_derefs_may_alias_p): Likewise.
11633         (refs_may_alias_p_1): Constructor bases also never alias.
11634
11635 2009-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
11636
11637         * doc/install.texi (Final install): Adjust reference on where to
11638         order printed manuals.
11639
11640 2009-08-30  Olivier Hainque  <hainque@adacore.com>
11641
11642         * dwarf2out.c (switch_to_frame_table_section): Move
11643         definition prior to first use.
11644
11645 2009-08-30  Richard Guenther  <rguenther@suse.de>
11646
11647         PR tree-optimization/41186
11648         * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
11649         (ao_ref_init_from_ptr_and_size): New function.
11650         (ref_maybe_used_by_call_p_1): Be more precise tracking
11651         used ranges for builtin functions.
11652         (ref_maybe_used_by_call_p): Adjust.
11653         (call_may_clobber_ref_p_1): Be more precise tracking clobbered
11654         ranges for builtin functions.
11655         * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
11656
11657 2009-08-30  Alan Modra  <amodra@bigpond.net.au>
11658
11659         PR target/41081
11660         * fwprop.c (get_reg_use_in): Delete.
11661         (free_load_extend): New function.
11662         (forward_propagate_subreg): Use it.
11663
11664 2009-08-29  Kaz Kojima  <kkojima@gcc.gnu.org>
11665
11666         * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
11667
11668 2009-08-29  Kai Tietz<kai.tietz@onevision.com>
11669
11670         PR/41184
11671         * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
11672         padding.
11673
11674 2009-08-29  Douglas B Rupp  <rupp@gnat.com>
11675
11676         * crtstuff.c (__do_global_dtors_aux): Use atexit if no
11677         fini or fini_array section.
11678
11679 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11680
11681         * graphite-dependences.c (graphite_legal_transform_bb): Call
11682         pbb_remove_duplicate_pdrs.
11683         * graphite-poly.c (can_collapse_pdr): Removed.
11684         (pdr_find_duplicate): Removed.
11685         (can_collapse_pdrs): New.
11686         (pbb_remove_duplicate_pdrs): New.
11687         (new_poly_dr): Do not look for duplicates.
11688         * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
11689         (PBB_PDR_DUPLICATES_REMOVED): New.
11690         (pbb_remove_duplicate_pdrs): Declared.
11691
11692 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11693
11694         * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
11695         the strides by multiplying by PDR_NB_REFS.
11696         * graphite-poly.c (can_collapse_pdr): New.
11697         (pdr_find_duplicate): New.
11698         (new_poly_dr): Call pdr_find_duplicate.  Collapse duplicate PDRs.
11699         Initialize PDR_NB_REFS.
11700         * graphite-poly.h (struct poly_dr): Add field nb_refs.
11701         (PDR_NB_REFS): New.
11702         (new_poly_dr): Number of subscripts is a graphite_dim_t.
11703
11704 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11705
11706         PR middle-end/40965
11707         * graphite-poly.c (apply_poly_transforms): Remove legality test before
11708         any transform.
11709
11710 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11711
11712         * graphite-dependences.c (pddr_original_scattering): Return NULL
11713         for read-read dependence relations.
11714         * graphite-poly.h (enum poly_dr_type): Fix comment.
11715         (pdr_read_p): New.
11716         (pdr_write_p): New.
11717         (pdr_may_write_p): New.
11718
11719 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11720
11721         * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
11722         (struct poly_dr): Same.
11723         (new_poly_dr): Same.
11724         * graphite-poly.c (new_poly_dr): Same.
11725         * graphite-dependences.c (dot_deps): Disable call to system.
11726
11727 2009-08-28  Cary Coutant  <ccoutant@google.com>
11728
11729         PR debug/41063
11730         * dwarf2out.c (gen_type_die_with_usage): Use proper context for
11731         struct/union/enum types local to a function.
11732
11733 2009-08-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
11734             Sebastian Pop  <sebastian.pop@amd.com>
11735
11736         * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
11737         pbb_strip_mine_time_depth.  Changed the implementation so that
11738         transformation is expressed as a transformation on
11739         time (scatttering) dimensions.  Also, ensures that the 2d+1
11740         scheduling format is preserved.
11741         (pbb_strip_mine_profitable_p): Profitability is based on the
11742         iteration number of a given time (scattering) dimension,
11743         and not on a original loop depth dimension.
11744         (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
11745         (pbb_do_strip_mine): Call psct_dynamic_dim.
11746         * graphite-poly.c (pbb_number_of_iterations_at_time): New.
11747         * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
11748         (pbb_nb_dynamic_scattering_transform): New.
11749         (psct_dynamic_dim): New.
11750
11751 2009-08-28  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
11752
11753         * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
11754         * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
11755         * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
11756         * graphite-interchange.c (build_linearized_memory_access): Same.
11757         (memory_stride_in_loop): Same.
11758
11759 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11760
11761         * graphite-dependences.c (pddr_original_scattering): New.
11762         (graphite_legal_transform_dr): Call pddr_original_scattering.
11763         (dot_deps_1): New.
11764         (dot_deps): New.
11765         * graphite-dependences.h (dot_deps): Declared.
11766         * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
11767         (print_pdr): Print PDR_ID.
11768         * graphite-poly.h (struct poly_dr): Add field id.
11769         (PDR_ID): New.
11770         (pbb_index): New.
11771         * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
11772
11773 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11774
11775         * graphite-dependences.c (graphite_carried_dependence_level_k): Do
11776         not delete the original dependence relation.
11777
11778 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11779
11780         * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
11781         (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
11782         (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
11783         (free_poly_ddr): New.
11784         (pddr_is_empty): New.
11785         (dependence_polyhedron_1): Now returns a poly_ddr_p.
11786         (dependence_polyhedron): Same.  Remove useless gcc_assert.
11787         Remove fprintfs.
11788         (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
11789         (graphite_carried_dependence_level_k): Call pddr_is_empty.
11790         * graphite-dependences.h (enum poly_dependence_kind): New.
11791         (poly_dr_pair): Renamed poly_ddr.  Added a field kind.
11792         (PDRP_SOURCE): Renamed PDDR_SOURCE.
11793         (PDRP_SINK): Renamed PDDR_SINK.
11794         (PDRP_DDP): Renamed PDDR_DDP.
11795         (PDDR_KIND): New.
11796         (free_poly_ddr): Declared.
11797         * graphite-poly.c (new_scop): Use the new hash function names.
11798         * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
11799         into original_pddrs.
11800         (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
11801
11802 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11803
11804         * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
11805         bounds with LT_EXPR to make niter analysis more precise on code
11806         generated by Graphite.
11807
11808 2009-08-28  Sebastian Pop  <sebastian.pop@amd.com>
11809
11810         * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
11811         (graphite_legal_transform_bb): Same.
11812         (poly_drs_may_alias_p): Same.
11813
11814 2009-08-28  Richard Guenther  <rguenther@suse.de>
11815
11816         * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
11817
11818 2009-08-28  Jan Beulich  <jbeulich@novell.com>
11819
11820         * config/i386/netware.c: Include langhooks.h.
11821         (i386_nlm_encode_section_info): Simplify.
11822         (netware_override_options): Delete.
11823         * config/i386/netware.h (netware_override_options): Delete
11824         declaration.
11825         (OVERRIDE_OPTIONS): Delete definition.
11826         (SUBTARGET_OVERRIDE_OPTIONS): Define.
11827         (ASM_COMMENT_START): Define.
11828         * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
11829
11830 2009-08-28  Jan Beulich  <jbeulich@novell.com>
11831
11832         * configure.ac: For in-tree ld, do a plain version check to
11833         determine whether comdat groups are supported.
11834         * configure: Regenerate.
11835
11836 2009-08-28  Olivier Hainque  <hainque@adacore.com>
11837
11838         * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
11839         always defined.  Reflect definition or absence of such for
11840         COLLECT_EXPORT_LIST.  Readability helper.
11841         (scanfilter): New enum, to help control what symbols
11842         are to be considered or ignored by scan_prog_file.
11843         (enum pass): Rename as "scanpass", moved together with scanfilter
11844         prior to scan_prog_file's prototype.
11845         (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
11846         Group prototype with the scanpass/scanfilter definitions, factorize
11847         head comments for the several implementations at the prototype.
11848         (main): Reorganize the first pass link control to let AIX
11849         drag only the needed frame tables in executables.  Prevent
11850         frame tables collection during the scan aimed at static ctors.
11851         Pre-link and scan for frame tables later to compensate.
11852         * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
11853         A C statement to issue assembly directives that create a reference
11854         to the given DWARF table identifier label from the current function
11855         section.
11856         * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
11857         to differentiate first time section entry.  Only emit a .data
11858         tables start identifier label the first time around.
11859         (switch_to_frame_table_section): New function.  Helper for
11860         output_call_frame_info to switch possibly BACK into the eh_frame
11861         or the debug_frame section depending on FOR_EH.
11862         (output_call_frame_info): Use helper to first enter the proper
11863         frame section.
11864         (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
11865         emit a link to the frame table start label from each function
11866         section.
11867         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
11868         New function.  Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
11869         * config/rs6000/rs6000-protos.h: Declare it.
11870         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
11871
11872 2009-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
11873
11874         * config/sh/sh.c (split_branches): Check the result of
11875         next_active_insn.
11876
11877 2009-08-27  Steve Ellcey  <sje@cup.hp.com>
11878
11879         * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
11880         using -pthread -fopenmp
11881
11882 2009-08-27  Gerald Pfeifer  <gerald@pfeifer.com>
11883
11884         * doc/service.texi (service directory): Update URL.
11885
11886 2009-08-27  Uros Bizjak  <ubizjak@gmail.com>
11887
11888         PR rtl-optimization/40861
11889         * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
11890         extract word from a multi-word subreg for negative byte positions.
11891
11892 2009-08-27  Tristan Gingold  <gingold@adacore.com>
11893             Douglas B Rupp  <rupp@gnat.com>
11894
11895         * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
11896         (SECTION_VMS_OVERLAY): Define.
11897         (ia64_vms_common_object_attribute): Added.  Handle the "common_object"
11898         attribute.
11899         (ia64_vms_elf_asm_named_section): Added.  Generate .section pseudo-op
11900         for common_object.
11901         (ia64_vms_output_aligned_decl_common): Added.  Generate pseudo-op for
11902         common_object declarations.
11903         (ia64_section_type_flags): Set section flag for common_object.
11904         * config/ia64/ia64-protos.h
11905         (ia64_vms_output_aligned_decl_common): Declare.
11906         (ia64_vms_elf_asm_named_section): Declare.
11907
11908 2009-08-27  Michael Matz  <matz@suse.de>
11909
11910         * expr.c (expand_expr_real_2): New function taking exploded
11911         unary or binary expression, split out from ...
11912         (expand_expr_real_1): ... here.  Move over all unary/binary
11913         switch parts to above function, in particular these codes:
11914         PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
11915         MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
11916         ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
11917         FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
11918         FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
11919         BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
11920         BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
11921         LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
11922         NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
11923         UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
11924         WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
11925         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
11926         VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
11927         VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
11928         VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
11929         VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
11930         VEC_PACK_FIX_TRUNC_EXPR.
11931         (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
11932         full expression.
11933
11934 2009-08-27  Richard Guenther  <rguenther@suse.de>
11935
11936         * gengtype.c (main): Handle uint64_t.
11937         * ipa-utils.c (get_base_var): Indent properly.
11938         * tree-ssa-live.c (debug_scope_block): New function.
11939         * tree-flow.h (debug_scope_block): Declare.
11940         * tree-ssa-copy.c (replace_exp_1): Add vertical space.
11941         * basic-block.h (enum profile_status): Rename to
11942         enum profile_status_d.
11943         (x_profile_status): Adjust type.
11944
11945 2009-08-27  Dodji Seketeli  <dodji@redhat.com>
11946
11947         PR debug/41170
11948         * dwarf2out.c (get_context_die): Declare this static function.
11949         (gen_type_die_with_usage): Make sure a DIE is a generated for
11950         the context of a typedef.
11951
11952 2009-08-26  Anatoly Sokolov  <aesok@post.ru>
11953
11954         * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
11955         switch.
11956
11957 2009-08-26  Richard Sandiford  <rdsandiford@googlemail.com>
11958
11959         * config/mips/mips-protos.h (mips_output_sync): Declare.
11960         (mips_sync_loop_insns): Likewise.
11961         (mips_output_sync_loop): Replace first two parameters with an rtx.
11962         * config/mips/mips.c (mips_multi_member): New structure.
11963         (mips_multi_members): New variable.
11964         (mips_multi_start): New function.
11965         (mips_multi_add): Likewise.
11966         (mips_multi_add_insn): Likewise.
11967         (mips_multi_add_label): Likewise.
11968         (mips_multi_last_index): Likewise.
11969         (mips_multi_copy_insn): Likewise.
11970         (mips_multi_set_operand): Likewise.
11971         (mips_multi_write): Likewise.
11972         (mips_print_operand_punctuation): Remove '%|' and '%-'.
11973         (mips_init_print_operand_punct): Update accordingly.
11974         (mips_start_ll_sc_sync_block): New function.
11975         (mips_end_ll_sc_sync_block): Likewise.
11976         (mips_output_sync): Likewise.
11977         (mips_sync_insn1_template): Likewise.
11978         (mips_sync_insn2_template): Likewise.
11979         (mips_get_sync_operand): Likewise.
11980         (mips_process_sync_loop): Likewise.
11981         (mips_output_sync_loop): Use mips_process_sync_loop.
11982         (mips_sync_loop_insns): New function.
11983         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
11984         (MIPS_COMPARE_AND_SWAP_12): Likewise.
11985         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
11986         (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
11987         (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
11988         (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
11989         (MIPS_SYNC_OLD_OP_12): Likewise.
11990         (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
11991         (MIPS_SYNC_NEW_OP_12): Likewise.
11992         (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
11993         (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
11994         (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
11995         (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
11996         (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
11997         (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
11998         * config/mips/mips.md (sync_mem): New attribute.
11999         (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
12000         (sync_exclusive_mask, sync_required_oldval): Likewise.
12001         (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
12002         (sync_release_barrier): Likewise.
12003         (length): Handle sync loops.
12004         (sync): Use mips_output_sync.
12005         * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
12006         (sync_compare_and_swap<mode>): Set the new sync_* attributes
12007         and use mips_output_sync_loop.
12008         (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
12009         (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
12010         (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
12011         (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
12012         (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
12013         (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
12014         (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
12015         (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
12016         (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
12017
12018 2009-08-26  Richard Guenther  <rguenther@suse.de>
12019
12020         PR middle-end/41163
12021         * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
12022         the types to not match.
12023         * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
12024         verification.
12025         * tree-ssa.c (useless_type_conversion_p): Conversions to
12026         pointers to unprototyped functions are useless.
12027
12028 2009-08-26  Richard Guenther  <rguenther@suse.de>
12029
12030         * tree-ssa-structalias.c (create_variable_info_for): Remove strange
12031         whole-program condition, prepare to be called for non-globals.
12032         (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
12033         params build a representative with known type and track its fields.
12034
12035 2009-08-26  Uros Bizjak  <ubizjak@gmail.com>
12036
12037         * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
12038         clearing by a taken branch.
12039         (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
12040         effectively after bbro pass.
12041         (sync_nand<mode>): Ditto.
12042         (sync_old_<fetchop_name><mode>): Ditto.
12043         (sync_old_nand<mode>): Ditto.
12044         (sync_new_<fetchop_name><mode>): Dito.
12045         (sync_new_nand<mode>): Ditto.
12046         (sync_compare_and_swap<mode>_1): Ditto.
12047         (*sync_compare_and_swap<mode>): Ditto.
12048         (sync_lock_test_and_set<mode>_1): Ditto.
12049         ("sync_lock_test_and_set<mode>): Ditto.
12050
12051 2009-08-25  Douglas B Rupp  <rupp@gnat.com>
12052
12053         * hwint.h (HOST_LONG_FORMAT): New macro
12054         * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
12055         Use HOST_PTR_PRINTF.
12056         * system.h (HOST_PTR_PRINTF): Resurrect old macro
12057         * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
12058         (HOST_PTR_PRINTF): Document.
12059
12060 2009-08-25 Jan Hubicka  <jh@suse.cz>
12061
12062         * config/i386/bmmintrin.h: Replace by #error.
12063
12064         Revert:
12065         Michael Meissner  <michael.meissner@amd.com>
12066         Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
12067         Tony Linthicum  <tony.linthicum@amd.com>
12068
12069         * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
12070         (TARGET_ROUND): New macro for the round/ptest instructions which
12071         are shared between SSE4.1 and SSE5.
12072         (OPTION_MASK_ISA_ROUND): Ditto.
12073         (OPTION_ISA_ROUND): Ditto.
12074         (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
12075         (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
12076
12077         * config/i386/i386.opt (-msse5): New switch for SSE5 support.
12078         (-mfused-madd): New switch to give users control over whether the
12079         compiler optimizes to use the multiply/add SSE5 instructions.
12080
12081         * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
12082         (ix86_handle_option): Turn off 3dnow if -msse5.
12083         (override_options): Add SSE5 support.
12084         (print_operand): %Y prints comparison codes for SSE5 com/pcom
12085         instructions.
12086         (ix86_expand_sse_movcc): Add SSE5 support.
12087         (ix86_expand_sse5_unpack): New function to use pperm to unpack a
12088         vector type to the next largest size.
12089         (ix86_expand_sse5_pack): New function to use pperm to pack a
12090         vector type to the next smallest size.
12091         (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
12092         (IX86_BUILTIN_FMADDSD): Ditto.
12093         (IX86_BUILTIN_FMADDPS): Ditto.
12094         (IX86_BUILTIN_FMADDPD): Ditto.
12095         (IX86_BUILTIN_FMSUBSS): Ditto.
12096         (IX86_BUILTIN_FMSUBSD): Ditto.
12097         (IX86_BUILTIN_FMSUBPS): Ditto.
12098         (IX86_BUILTIN_FMSUBPD): Ditto.
12099         (IX86_BUILTIN_FNMADDSS): Ditto.
12100         (IX86_BUILTIN_FNMADDSD): Ditto.
12101         (IX86_BUILTIN_FNMADDPS): Ditto.
12102         (IX86_BUILTIN_FNMADDPD): Ditto.
12103         (IX86_BUILTIN_FNMSUBSS): Ditto.
12104         (IX86_BUILTIN_FNMSUBSD): Ditto.
12105         (IX86_BUILTIN_FNMSUBPS): Ditto.
12106         (IX86_BUILTIN_FNMSUBPD): Ditto.
12107         (IX86_BUILTIN_PCMOV_V2DI): Ditto.
12108         (IX86_BUILTIN_PCMOV_V4SI): Ditto.
12109         (IX86_BUILTIN_PCMOV_V8HI): Ditto.
12110         (IX86_BUILTIN_PCMOV_V16QI): Ditto.
12111         (IX86_BUILTIN_PCMOV_V4SF): Ditto.
12112         (IX86_BUILTIN_PCMOV_V2DF): Ditto.
12113         (IX86_BUILTIN_PPERM): Ditto.
12114         (IX86_BUILTIN_PERMPS): Ditto.
12115         (IX86_BUILTIN_PERMPD): Ditto.
12116         (IX86_BUILTIN_PMACSSWW): Ditto.
12117         (IX86_BUILTIN_PMACSWW): Ditto.
12118         (IX86_BUILTIN_PMACSSWD): Ditto.
12119         (IX86_BUILTIN_PMACSWD): Ditto.
12120         (IX86_BUILTIN_PMACSSDD): Ditto.
12121         (IX86_BUILTIN_PMACSDD): Ditto.
12122         (IX86_BUILTIN_PMACSSDQL): Ditto.
12123         (IX86_BUILTIN_PMACSSDQH): Ditto.
12124         (IX86_BUILTIN_PMACSDQL): Ditto.
12125         (IX86_BUILTIN_PMACSDQH): Ditto.
12126         (IX86_BUILTIN_PMADCSSWD): Ditto.
12127         (IX86_BUILTIN_PMADCSWD): Ditto.
12128         (IX86_BUILTIN_PHADDBW): Ditto.
12129         (IX86_BUILTIN_PHADDBD): Ditto.
12130         (IX86_BUILTIN_PHADDBQ): Ditto.
12131         (IX86_BUILTIN_PHADDWD): Ditto.
12132         (IX86_BUILTIN_PHADDWQ): Ditto.
12133         (IX86_BUILTIN_PHADDDQ): Ditto.
12134         (IX86_BUILTIN_PHADDUBW): Ditto.
12135         (IX86_BUILTIN_PHADDUBD): Ditto.
12136         (IX86_BUILTIN_PHADDUBQ): Ditto.
12137         (IX86_BUILTIN_PHADDUWD): Ditto.
12138         (IX86_BUILTIN_PHADDUWQ): Ditto.
12139         (IX86_BUILTIN_PHADDUDQ): Ditto.
12140         (IX86_BUILTIN_PHSUBBW): Ditto.
12141         (IX86_BUILTIN_PHSUBWD): Ditto.
12142         (IX86_BUILTIN_PHSUBDQ): Ditto.
12143         (IX86_BUILTIN_PROTB): Ditto.
12144         (IX86_BUILTIN_PROTW): Ditto.
12145         (IX86_BUILTIN_PROTD): Ditto.
12146         (IX86_BUILTIN_PROTQ): Ditto.
12147         (IX86_BUILTIN_PROTB_IMM): Ditto.
12148         (IX86_BUILTIN_PROTW_IMM): Ditto.
12149         (IX86_BUILTIN_PROTD_IMM): Ditto.
12150         (IX86_BUILTIN_PROTQ_IMM): Ditto.
12151         (IX86_BUILTIN_PSHLB): Ditto.
12152         (IX86_BUILTIN_PSHLW): Ditto.
12153         (IX86_BUILTIN_PSHLD): Ditto.
12154         (IX86_BUILTIN_PSHLQ): Ditto.
12155         (IX86_BUILTIN_PSHAB): Ditto.
12156         (IX86_BUILTIN_PSHAW): Ditto.
12157         (IX86_BUILTIN_PSHAD): Ditto.
12158         (IX86_BUILTIN_PSHAQ): Ditto.
12159         (IX86_BUILTIN_FRCZSS): Ditto.
12160         (IX86_BUILTIN_FRCZSD): Ditto.
12161         (IX86_BUILTIN_FRCZPS): Ditto.
12162         (IX86_BUILTIN_FRCZPD): Ditto.
12163         (IX86_BUILTIN_CVTPH2PS): Ditto.
12164         (IX86_BUILTIN_CVTPS2PH): Ditto.
12165         (IX86_BUILTIN_COMEQSS): Ditto.
12166         (IX86_BUILTIN_COMNESS): Ditto.
12167         (IX86_BUILTIN_COMLTSS): Ditto.
12168         (IX86_BUILTIN_COMLESS): Ditto.
12169         (IX86_BUILTIN_COMGTSS): Ditto.
12170         (IX86_BUILTIN_COMGESS): Ditto.
12171         (IX86_BUILTIN_COMUEQSS): Ditto.
12172         (IX86_BUILTIN_COMUNESS): Ditto.
12173         (IX86_BUILTIN_COMULTSS): Ditto.
12174         (IX86_BUILTIN_COMULESS): Ditto.
12175         (IX86_BUILTIN_COMUGTSS): Ditto.
12176         (IX86_BUILTIN_COMUGESS): Ditto.
12177         (IX86_BUILTIN_COMORDSS): Ditto.
12178         (IX86_BUILTIN_COMUNORDSS): Ditto.
12179         (IX86_BUILTIN_COMFALSESS): Ditto.
12180         (IX86_BUILTIN_COMTRUESS): Ditto.
12181         (IX86_BUILTIN_COMEQSD): Ditto.
12182         (IX86_BUILTIN_COMNESD): Ditto.
12183         (IX86_BUILTIN_COMLTSD): Ditto.
12184         (IX86_BUILTIN_COMLESD): Ditto.
12185         (IX86_BUILTIN_COMGTSD): Ditto.
12186         (IX86_BUILTIN_COMGESD): Ditto.
12187         (IX86_BUILTIN_COMUEQSD): Ditto.
12188         (IX86_BUILTIN_COMUNESD): Ditto.
12189         (IX86_BUILTIN_COMULTSD): Ditto.
12190         (IX86_BUILTIN_COMULESD): Ditto.
12191         (IX86_BUILTIN_COMUGTSD): Ditto.
12192         (IX86_BUILTIN_COMUGESD): Ditto.
12193         (IX86_BUILTIN_COMORDSD): Ditto.
12194         (IX86_BUILTIN_COMUNORDSD): Ditto.
12195         (IX86_BUILTIN_COMFALSESD): Ditto.
12196         (IX86_BUILTIN_COMTRUESD): Ditto.
12197         (IX86_BUILTIN_COMEQPS): Ditto.
12198         (IX86_BUILTIN_COMNEPS): Ditto.
12199         (IX86_BUILTIN_COMLTPS): Ditto.
12200         (IX86_BUILTIN_COMLEPS): Ditto.
12201         (IX86_BUILTIN_COMGTPS): Ditto.
12202         (IX86_BUILTIN_COMGEPS): Ditto.
12203         (IX86_BUILTIN_COMUEQPS): Ditto.
12204         (IX86_BUILTIN_COMUNEPS): Ditto.
12205         (IX86_BUILTIN_COMULTPS): Ditto.
12206         (IX86_BUILTIN_COMULEPS): Ditto.
12207         (IX86_BUILTIN_COMUGTPS): Ditto.
12208         (IX86_BUILTIN_COMUGEPS): Ditto.
12209         (IX86_BUILTIN_COMORDPS): Ditto.
12210         (IX86_BUILTIN_COMUNORDPS): Ditto.
12211         (IX86_BUILTIN_COMFALSEPS): Ditto.
12212         (IX86_BUILTIN_COMTRUEPS): Ditto.
12213         (IX86_BUILTIN_COMEQPD): Ditto.
12214         (IX86_BUILTIN_COMNEPD): Ditto.
12215         (IX86_BUILTIN_COMLTPD): Ditto.
12216         (IX86_BUILTIN_COMLEPD): Ditto.
12217         (IX86_BUILTIN_COMGTPD): Ditto.
12218         (IX86_BUILTIN_COMGEPD): Ditto.
12219         (IX86_BUILTIN_COMUEQPD): Ditto.
12220         (IX86_BUILTIN_COMUNEPD): Ditto.
12221         (IX86_BUILTIN_COMULTPD): Ditto.
12222         (IX86_BUILTIN_COMULEPD): Ditto.
12223         (IX86_BUILTIN_COMUGTPD): Ditto.
12224         (IX86_BUILTIN_COMUGEPD): Ditto.
12225         (IX86_BUILTIN_COMORDPD): Ditto.
12226         (IX86_BUILTIN_COMUNORDPD): Ditto.
12227         (IX86_BUILTIN_COMFALSEPD): Ditto.
12228         (IX86_BUILTIN_COMTRUEPD): Ditto.
12229         (IX86_BUILTIN_PCOMEQUB): Ditto.
12230         (IX86_BUILTIN_PCOMNEUB): Ditto.
12231         (IX86_BUILTIN_PCOMLTUB): Ditto.
12232         (IX86_BUILTIN_PCOMLEUB): Ditto.
12233         (IX86_BUILTIN_PCOMGTUB): Ditto.
12234         (IX86_BUILTIN_PCOMGEUB): Ditto.
12235         (IX86_BUILTIN_PCOMFALSEUB): Ditto.
12236         (IX86_BUILTIN_PCOMTRUEUB): Ditto.
12237         (IX86_BUILTIN_PCOMEQUW): Ditto.
12238         (IX86_BUILTIN_PCOMNEUW): Ditto.
12239         (IX86_BUILTIN_PCOMLTUW): Ditto.
12240         (IX86_BUILTIN_PCOMLEUW): Ditto.
12241         (IX86_BUILTIN_PCOMGTUW): Ditto.
12242         (IX86_BUILTIN_PCOMGEUW): Ditto.
12243         (IX86_BUILTIN_PCOMFALSEUW): Ditto.
12244         (IX86_BUILTIN_PCOMTRUEUW): Ditto.
12245         (IX86_BUILTIN_PCOMEQUD): Ditto.
12246         (IX86_BUILTIN_PCOMNEUD): Ditto.
12247         (IX86_BUILTIN_PCOMLTUD): Ditto.
12248         (IX86_BUILTIN_PCOMLEUD): Ditto.
12249         (IX86_BUILTIN_PCOMGTUD): Ditto.
12250         (IX86_BUILTIN_PCOMGEUD): Ditto.
12251         (IX86_BUILTIN_PCOMFALSEUD): Ditto.
12252         (IX86_BUILTIN_PCOMTRUEUD): Ditto.
12253         (IX86_BUILTIN_PCOMEQUQ): Ditto.
12254         (IX86_BUILTIN_PCOMNEUQ): Ditto.
12255         (IX86_BUILTIN_PCOMLTUQ): Ditto.
12256         (IX86_BUILTIN_PCOMLEUQ): Ditto.
12257         (IX86_BUILTIN_PCOMGTUQ): Ditto.
12258         (IX86_BUILTIN_PCOMGEUQ): Ditto.
12259         (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
12260         (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
12261         (IX86_BUILTIN_PCOMEQB): Ditto.
12262         (IX86_BUILTIN_PCOMNEB): Ditto.
12263         (IX86_BUILTIN_PCOMLTB): Ditto.
12264         (IX86_BUILTIN_PCOMLEB): Ditto.
12265         (IX86_BUILTIN_PCOMGTB): Ditto.
12266         (IX86_BUILTIN_PCOMGEB): Ditto.
12267         (IX86_BUILTIN_PCOMFALSEB): Ditto.
12268         (IX86_BUILTIN_PCOMTRUEB): Ditto.
12269         (IX86_BUILTIN_PCOMEQW): Ditto.
12270         (IX86_BUILTIN_PCOMNEW): Ditto.
12271         (IX86_BUILTIN_PCOMLTW): Ditto.
12272         (IX86_BUILTIN_PCOMLEW): Ditto.
12273         (IX86_BUILTIN_PCOMGTW): Ditto.
12274         (IX86_BUILTIN_PCOMGEW): Ditto.
12275         (IX86_BUILTIN_PCOMFALSEW): Ditto.
12276         (IX86_BUILTIN_PCOMTRUEW): Ditto.
12277         (IX86_BUILTIN_PCOMEQD): Ditto.
12278         (IX86_BUILTIN_PCOMNED): Ditto.
12279         (IX86_BUILTIN_PCOMLTD): Ditto.
12280         (IX86_BUILTIN_PCOMLED): Ditto.
12281         (IX86_BUILTIN_PCOMGTD): Ditto.
12282         (IX86_BUILTIN_PCOMGED): Ditto.
12283         (IX86_BUILTIN_PCOMFALSED): Ditto.
12284         (IX86_BUILTIN_PCOMTRUED): Ditto.
12285         (IX86_BUILTIN_PCOMEQQ): Ditto.
12286         (IX86_BUILTIN_PCOMNEQ): Ditto.
12287         (IX86_BUILTIN_PCOMLTQ): Ditto.
12288         (IX86_BUILTIN_PCOMLEQ): Ditto.
12289         (IX86_BUILTIN_PCOMGTQ): Ditto.
12290         (IX86_BUILTIN_PCOMGEQ): Ditto.
12291         (IX86_BUILTIN_PCOMFALSEQ): Ditto.
12292         (IX86_BUILTIN_PCOMTRUEQ): Ditto.
12293         (enum multi_arg_type): New enum for describing the various SSE5
12294         intrinsic argument types.
12295         (bdesc_multi_arg): New table for SSE5 intrinsics.
12296         (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
12297         (ix86_expand_multi_arg_builtin): New function for creating SSE5
12298         intrinsics.
12299         (ix86_expand_builtin): Add SSE5 intrinsic support.
12300         (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
12301         operand instructions.
12302         (ix86_expand_sse5_multiple_memory): New function to split the
12303         second memory reference from SSE5 instructions.
12304         (type_has_variadic_args_p): Delete in favor of stdarg_p.
12305         (ix86_return_pops_args): Use stdarg_p to determine if the function
12306         has variable arguments.
12307         (ix86_setup_incoming_varargs): Ditto.
12308         (x86_this_parameter): Ditto.
12309
12310         * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
12311         declaration.
12312         (ix86_expand_sse5_pack): Ditto.
12313         (ix86_sse5_valid_op_p): Ditto.
12314         (ix86_expand_sse5_multiple_memory): Ditto.
12315
12316         * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
12317         constant for SSE5 support.
12318         (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
12319         (UNSPEC_SSE5_TRUEFALSE): Ditto.
12320         (UNSPEC_SSE5_PERMUTE): Ditto.
12321         (UNSPEC_SSE5_ASHIFT): Ditto.
12322         (UNSPEC_SSE5_LSHIFT): Ditto.
12323         (UNSPEC_FRCZ): Ditto.
12324         (UNSPEC_CVTPH2PS): Ditto.
12325         (UNSPEC_CVTPS2PH): Ditto.
12326         (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
12327         (PCOM_TRUE): Ditto.
12328         (COM_FALSE_S): Ditto.
12329         (COM_FALSE_P): Ditto.
12330         (COM_TRUE_S): Ditto.
12331         (COM_TRUE_P): Ditto.
12332         (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
12333         (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
12334         types.
12335         (memory attribute): Ditto.
12336         (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
12337         Use SSE4_1_ROUND_* constants instead of hard coded numbers.
12338         (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
12339         (floor<mode>2): Ditto.
12340         (ceil<mode>2): Ditto.
12341         (btrunc<mode>2): Ditto.
12342         (nearbyintdf2): Ditto.
12343         (nearbyintsf2): Ditto.
12344         (sse_setccsf): Disable if SSE5.
12345         (sse_setccdf): Ditto.
12346         (sse5_setcc<mode>): New support for SSE5 conditional move.
12347         (sse5_pcmov_<mode>): Ditto.
12348
12349         * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
12350         (SSEMODEF4): Ditto.
12351         (SSEMODEF2P): Ditto.
12352         (ssemodesuffixf4): New mode attribute for SSE5.
12353         (ssemodesuffixf2s): Ditto.
12354         (ssemodesuffixf2c): Ditto.
12355         (sserotatemax): Ditto.
12356         (ssescalarmode): Ditto.
12357         (sse_maskcmpv4sf3): Disable if SSE5.
12358         (sse_maskcmpv2df3): Ditto.
12359         (sse_vmmaskcmpv4sf3): Ditto.
12360         (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
12361         (sse5_vmfmadd<mode>4): Ditto.
12362         (sse5_fmsub<mode>4): Ditto.
12363         (sse5_vmfmsub<mode>4): Ditto.
12364         (sse5_fnmadd<mode>4): Ditto.
12365         (sse5_vmfnmadd<mode>4): Ditto.
12366         (sse5_fnmsub<mode>4): Ditto.
12367         (sse5_vmfnmsub<mode>4): Ditto.
12368         (sse5i_fmadd<mode>4): Ditto.
12369         (sse5i_fmsub<mode>4): Ditto.
12370         (sse5i_fnmadd<mode>4): Ditto.
12371         (sse5i_fnmsub<mode>4): Ditto.
12372         (sse5i_vmfmadd<mode>4): Ditto.
12373         (sse5i_vmfmsub<mode>4): Ditto.
12374         (sse5i_vmfnmadd<mode>4): Ditto.
12375         (sse5i_vmfnmsub<mode>4): Ditto.
12376         (mulv16qi3): Add SSE5 support.
12377         (mulv4si3): Ditto.
12378         (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
12379         (sse2_mulv4si3): Disable if SSE5.
12380         (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
12381         (sse4_1_roundps): Ditto.
12382         (sse4_1_roundsd): Ditto.
12383         (sse4_1_roundss): Ditto.
12384         (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
12385         be generated.
12386         (sse_maskcmpsf3): Ditto.
12387         (sse_vmmaskcmpv4sf3): Ditto.
12388         (sse2_maskcmpv2df3): Ditto.
12389         (sse2_maskcmpdf3): Ditto.
12390         (sse2_vmmaskcmpv2df3): Ditto.
12391         (sse2_eq<mode>3): Ditto.
12392         (sse2_gt<mode>3): Ditto.
12393         (sse5_pcmov_<mode>): Add SSE5 support.
12394         (vec_unpacku_hi_v16qi): Ditto.
12395         (vec_unpacks_hi_v16qi): Ditto.
12396         (vec_unpacku_lo_v16qi): Ditto.
12397         (vec_unpacks_lo_v16qi): Ditto.
12398         (vec_unpacku_hi_v8hi): Ditto.
12399         (vec_unpacks_hi_v8hi): Ditto.
12400         (vec_unpacku_lo_v8hi): Ditto.
12401         (vec_unpacks_lo_v8hi): Ditto.
12402         (vec_unpacku_hi_v4si): Ditto.
12403         (vec_unpacks_hi_v4si): Ditto.
12404         (vec_unpacku_lo_v4si): Ditto.
12405         (vec_unpacks_lo_v4si): Ditto.
12406         (sse5_pmacsww): New SSE5 intrinsic insn.
12407         (sse5_pmacssww): Ditto.
12408         (sse5_pmacsdd): Ditto.
12409         (sse5_pmacssdd): Ditto.
12410         (sse5_pmacssdql): Ditto.
12411         (sse5_pmacssdqh): Ditto.
12412         (sse5_pmacsdqh): Ditto.
12413         (sse5_pmacsswd): Ditto.
12414         (sse5_pmacswd): Ditto.
12415         (sse5_pmadcsswd): Ditto.
12416         (sse5_pmadcswd): Ditto.
12417         (sse5_pcmov_<move>): Conditional move support on SSE5.
12418         (sse5_phaddbw): New SSE5 intrinsic insn.
12419         (sse5_phaddbd): Ditto.
12420         (sse5_phaddbq): Ditto.
12421         (sse5_phaddwd): Ditto.
12422         (sse5_phaddwq): Ditto.
12423         (sse5_phadddq): Ditto.
12424         (sse5_phaddubw): Ditto.
12425         (sse5_phaddubd): Ditto.
12426         (sse5_phaddubq): Ditto.
12427         (sse5_phadduwd): Ditto.
12428         (sse5_phadduwq): Ditto.
12429         (sse5_phaddudq): Ditto.
12430         (sse5_phsubbw): Ditto.
12431         (sse5_phsubwd): Ditto.
12432         (sse5_phsubdq): Ditto.
12433         (sse5_pperm): Ditto.
12434         (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
12435         (sse5_pperm_zero_v16qi_v8hi): Ditto.
12436         (sse5_pperm_sign_v8hi_v4si): Ditto.
12437         (sse5_pperm_zero_v8hi_v4si): Ditto.
12438         (sse5_pperm_sign_v4si_v2di): Ditto.
12439         (sse5_pperm_sign_v4si_v2di): Ditto.
12440         (sse5_pperm_pack_v2di_v4si): Ditto.
12441         (sse5_pperm_pack_v4si_v8hi): Ditto.
12442         (sse5_pperm_pack_v8hi_v16qi): Ditto.
12443         (sse5_perm<mode>): New SSE5 intrinsic insn.
12444         (rotl<mode>3): Ditto.
12445         (sse5_rotl<mode>3): Ditto.
12446         (sse5_ashl<mode>3): Ditto.
12447         (sse5_lshl<mode>3): Ditto.
12448         (sse5_frcz<mode>2): Ditto.
12449         (sse5s_frcz<mode>2): Ditto.
12450         (sse5_cvtph2ps): Ditto.
12451         (sse5_cvtps2ph): Ditto.
12452         (sse5_vmmaskcmp<mode>3): Ditto.
12453         (sse5_com_tf<mode>3): Ditto.
12454         (sse5_maskcmp<mode>3): Ditto.
12455         (sse5_maskcmp_uns<mode>3): Ditto.
12456         (sse5_maskcmp_uns2<mode>3): Ditto.
12457         (sse5_pcom_tf<mode>3): Ditto.
12458
12459         * config/i386/predicates.md (sse5_comparison_float_operator):
12460         New predicate to match the comparison operators supported by
12461         the SSE5 com instruction.
12462         (ix86_comparison_int_operator): New predicate to match just the
12463         signed int comparisons.
12464         (ix86_comparison_uns_operator): New predicate to match just the
12465         unsigned int comparisons.
12466
12467         * doc/invoke.texi (-msse5): Add documentation.
12468         (-mfused-madd): Ditto.
12469
12470         * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
12471
12472         * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
12473         mmintrin-common.h.
12474         (x86_64-*-*): Ditto.
12475
12476         * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
12477
12478         * config/i386/bmmintrin.h: New file, provide common x86 compiler
12479         intrinisics for SSE5.
12480
12481         * config/i386/smmintrin.h: Move instructions shared with SSE5 to
12482         mmintrin-common.h.
12483
12484         * config/i386/mmintrin-common.h: New file, to contain common
12485         instructions between SSE4.1 and SSE5.
12486
12487         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
12488         FOREACH_FUNCTION_ARGS to iterate over the argument list.
12489         (gen_regparm_prefix): Ditto.
12490
12491         * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
12492         FOREACH_FUNCTION_ARGS to iterate over the argument list.  Use
12493         prototype_p to determine if a function is prototyped.
12494
12495 2009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
12496
12497         * c-common.c (c_common_reswords) add the alignof keyword,
12498         with same RID as __alignof and __alignof__
12499
12500 2009-08-25  Anatoly Sokolov  <aesok@post.ru>
12501
12502         * hooks.h (hook_bool_const_int_const_int_true): Declare.
12503         * hooks.c (hook_bool_const_int_const_int_true): New function.
12504         * target.h (struct gcc_target): Add can_eliminate field.
12505         * target-def.h (TARGET_CAN_ELIMINATE): Define.
12506         (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
12507         * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
12508         * reload1.c (update_eliminables, init_elim_table): (Ditto.).
12509         (elim_table): Revise comment.
12510         * system.h (CAN_ELIMINATE): Poison.
12511         * defaults.h (CAN_ELIMINATE): Remove.
12512         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
12513
12514         * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
12515         * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
12516         Define macro.
12517         (alpha_vms_can_eliminate): Declare as static, change return type to
12518         bool.
12519         * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
12520
12521         * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
12522         * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
12523         (arm_can_eliminate): New function.
12524
12525         * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
12526         * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
12527         (avr_can_eliminate): Declare as static.
12528         * config/avr/avr-protos.h (avr_can_eliminate): Remove.
12529
12530         * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
12531         * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
12532         (bfin_can_eliminate): New function.
12533
12534         * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
12535         * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
12536         (crx_can_eliminate): New function.
12537
12538         * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
12539         * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
12540         (fr30_can_eliminate): New function.
12541
12542         * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
12543         * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
12544         (frv_can_eliminate): New function.
12545
12546         * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
12547         * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
12548         (h8300_can_eliminate): New function.
12549
12550         * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
12551         * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
12552         (i386_can_eliminate): Declare as static, change return type to bool.
12553         * config/i386/i386-protos.h (i386_can_eliminate): Remove.
12554
12555         * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
12556         * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
12557         (ia64_can_eliminate): New function.
12558
12559         * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
12560         * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
12561         (iq2000_can_eliminate): New function.
12562
12563         * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
12564         * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
12565         (m32r_can_eliminate): New function.
12566
12567         * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
12568         * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
12569         (m68hc11_can_eliminate): New function.
12570
12571         * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
12572         * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
12573         (m68k_can_eliminate): New function.
12574
12575         * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
12576         * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
12577         (mep_can_eliminate): New function.
12578
12579         * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
12580         * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
12581         (mips_can_eliminate): New function.
12582
12583         * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
12584         * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
12585         (rs6000_can_eliminate): New function.
12586
12587         * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
12588         * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
12589         (s390_can_eliminate): Declare as static.
12590         * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
12591
12592         * config/score/score.h (CAN_ELIMINATE): Remove macro.
12593         * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
12594         (score_can_eliminate): New function.
12595
12596         * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
12597         * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
12598         (sparc_can_eliminate): Declare as static.
12599         * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
12600
12601         * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
12602         * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
12603         (xstormy16_can_eliminate): New function.
12604
12605         * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
12606         * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
12607         (v850_can_eliminate): New function.
12608
12609 2009-08-25  Uros Bizjak  <ubizjak@gmail.com>
12610
12611         * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
12612         (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
12613         (*movdfcc_ext[1234]): Disable for IEEE mode.
12614
12615 2009-08-25  Eric Botcazou  <ebotcazou@adacore.com>
12616
12617         * gimplify.c (prepare_gimple_addressable): New static function.
12618         (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
12619         it addressable.
12620         (gimplify_addr_expr): Invoke it similarly on the operand instead of
12621         manually fiddling with it.
12622
12623 2009-08-25  Michael Matz  <matz@suse.de>
12624
12625         * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
12626         * dojump.c (do_jump_by_parts_greater): Take two operands instead of
12627         full expression.
12628         (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
12629         (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
12630         (do_jump): Split out code for simple binary comparisons into ...
12631         (do_jump_1): ... this, taking the individual operands and code.
12632         Change callers to helper function above accordingly.
12633         * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
12634         comparisons.
12635
12636 2009-08-25  Michael Matz  <matz@suse.de>
12637
12638         * expr.h (struct separate_ops, sepops): New type for passing
12639         around an exploded simple expression.
12640         * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
12641         Use this structure instead of expression tree.
12642         (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
12643         expression, only its type.
12644         (expand_vec_cond_expr): Take type and individual operands instead
12645         of full expression.
12646         * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
12647         expand_vec_shift_expr): Change prototype accordingly.
12648         * tree-vect-stmts.c (vectorizable_condition): Change call of
12649         expand_vec_cond_expr_p to pass only type.
12650         * expr.c (do_store_flags): Change prototype and implementation
12651         to take an exploded expression.
12652         (expand_expr_real_1): New local ops initialized with details
12653         of the full expression.  Use it instead of full
12654         expression in calls to do_store_flags, expand_vec_cond_expr,
12655         expand_widen_pattern_expr and expand_vec_shift_expr.
12656
12657 2009-08-25  Michael Matz  <matz@suse.de>
12658
12659         * expr.c (expand_expr_real_1): New local treeop0, treeop1,
12660         treeop2 initialized with first three operands of the full expression.
12661         Substitute all TREE_OPERAND (exp, [012]) calls with them.
12662
12663 2009-08-25  Kai Tietz  <kai.tietz@onevision.com>
12664
12665         * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
12666         (__gthread_objc_condition_allocate): Mark arguments as unused.
12667         (__gthread_objc_condition_deallocate): Likewise.
12668         (__gthread_objc_condition_wait): Likewise.
12669         (__gthread_objc_condition_broadcast): Likewise.
12670         (__gthread_objc_condition_signal): Likewise.
12671         (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
12672         (__gthread_objc_thread_id): Likewise.
12673
12674 2009-08-25  Janus Weil  <janus@gcc.gnu.org>
12675
12676         PR middle-end/41149
12677         * tree-pretty-print.c (print_call_name): Print the correct call name
12678         for procedure pointer components.
12679
12680 2009-08-24  Steve Ellcey  <sje@cup.hp.com>
12681
12682         * config/ia64/ia64.c (ia64_promote_function_mode): Call
12683         default_promote_function_mode when not VMS.
12684
12685 2009-08-24  Olivier Hainque  <hainque@adacore.com>
12686
12687         * convert.c (convert_to_integer): Don't assume an input pointer is
12688         POINTER_SIZE wide.  Fetch from the type instead.
12689
12690 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12691
12692         * configure.ac (AC_PREREQ): Bump to 2.64.
12693
12694 2009-08-24  Rafael Avila de Espindola  <espindola@google.com>
12695
12696         * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
12697         (process_command): Don't search standard_exec_prefix_1 and
12698         standard_exec_prefix_2.
12699
12700 2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12701
12702         * config/arm/arm.c (output_return_instruction): Handle for
12703         unified syntax.
12704
12705 2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12706
12707         * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
12708
12709 2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12710
12711         * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
12712         (*arm_movdf_vfp): Likewise.
12713
12714 2009-08-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12715
12716         * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
12717         (vashr<mode>3): Rename from ashr<mode>3.
12718         (vlshr<mode>3): Rename from lshr<mode>3.
12719
12720 2009-08-24  Kai Tietz  <kai.tietz@onevision.com>
12721
12722         PR/40786
12723         * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
12724         (check_format_info_main): Use scalar_identify_flag.
12725         (check_format_types): Check for scalar size identity if
12726         scalar_identify_flag is set.
12727         (printf_length_specs): Extend by new field.
12728         (asm_fprintf_length_specs): Likewise.
12729         (gcc_diag_length_specs): Likewise.
12730         (scanf_length_specs): Likewise.
12731         (strfmon_length_specs): Likewise.
12732         (gcc_gfc_length_specs): Likewise.
12733         * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
12734         (ms_printf_flag_specs): Likewise.
12735         * c-format.h (format_length_info): Add new member scalar_identity_flag.
12736
12737 2009-08-23  Uros Bizjak  <ubizjak@gmail.com>
12738
12739         PR target/40718
12740         * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
12741         (*call_value_pop_1): Ditto.
12742         (*sibcall_pop_1): New insn pattern.
12743         (*sibcall_value_pop_1): Ditto.
12744
12745 2009-08-23  Alan Modra  <amodra@bigpond.net.au>
12746
12747         PR target/41081
12748         * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
12749         ashrsi3_64): New.
12750
12751 2009-08-23  Alan Modra  <amodra@bigpond.net.au>
12752
12753         PR target/41081
12754         * fwprop.c (try_fwprop_subst): Allow multiple sets.
12755         (get_reg_use_in): New function.
12756         (forward_propagate_subreg): Propagate through subreg of zero_extend
12757         or sign_extend.
12758
12759 2009-08-22  Kaz Kojima  <kkojima@gcc.gnu.org>
12760
12761         * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
12762         * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
12763
12764 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12765
12766         * configure.ac: Remove --with-datarootdir, --with-docdir,
12767         --with-htmldir switches.  No need to call AC_SUBST for
12768         datarootdir, docdir, htmldir any more.
12769         * configure: Regenerate.
12770         * doc/install.texi (Configuration): Document --datarootdir,
12771         --docdir, --htmldir, --pdfdir; update documentation for
12772         --infodir, --mandir.
12773         (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
12774         M4 to 1.4.6.
12775
12776         * aclocal.m4: Regenerate.
12777         * config.in: Regenerate.
12778         * configure: Regenerate.
12779
12780 2009-08-21  Douglas B Rupp  <rupp@gnat.com>
12781             Olivier Hainque  <hainque@adacore.com>
12782
12783         * config/ia64/ia64.c: Include libfuncs.h.
12784         (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
12785         (ia64_expand_call): Use reg 25 on VMS.
12786         (ia64_initialize_trampoline): Fix for VMS ABI.
12787         (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
12788         (ia64_function_arg): Initialize reg 25 on VMS.
12789         Fix OpenVMS ABI issues for varargs.
12790         For OpenVMS, emit the Argument Information register set in the
12791         incoming/sibcall case as well.
12792         (ia64_arg_type): New function.
12793         (ia64_function_arg_advance): Keep track of cum->words.
12794         Fix OpenVMS ABI issues for varargs.
12795         (ia64_function_value): On VMS, promote mode of non-aggregate types.
12796         (ia64_override_options): Set flag_no_common on VMS.
12797         (ia64_init_builtins): Disable FWRITE builtin.
12798         (ia64_asm_output_external): Call DO_CRTL_NAMES.
12799         (ia64_vms_init_libfuncs): Add decc$ routines.
12800         (ia64_vms_valid_pointer_mode): New function.
12801         (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
12802         (ia64_promote_function_mode): New function
12803         * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
12804         (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
12805         (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
12806         (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
12807         (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
12808         (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
12809         Suppress trailing '#' if VALUE is numeric.
12810         * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
12811         ia64_promote_function_mode.
12812         (TARGET_VALID_POINTER_MODE): Define.
12813
12814 2009-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
12815
12816         PR target/40671
12817         * config/rs6000/rs6000.c (rs6000_override_options): Use
12818         TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
12819
12820         PR target/41145
12821         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
12822         reporting of vector + decimal/boolean/complex error.
12823
12824 2009-08-21  Jakub Jelinek  <jakub@redhat.com>
12825
12826         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
12827         __vector double TYPE_DECL.
12828
12829 2009-08-21  Richard Earnshaw  <rearnsha@arm.com>
12830
12831         * arm.h (MACHMODE): New define.  Include insn-modes.h if available.
12832         (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
12833         * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
12834         to pointer to enum machine_mode.  Update all callers as needed.
12835
12836 2009-08-21  Uros Bizjak  <ubizjak@gmail.com>
12837
12838         * config/alpha/alpha.md (exception_receiver): Emit alternative
12839         GP load sequence if flag_reorder_blocks_and_partition is set.
12840         (*exception_receiver_2): Also enable when
12841         flag_reorder_blocks_and_partition is set.
12842
12843 2009-08-20  Matt Rice  <ratmice@gmail.com>
12844             Diego Novillo  <dnovillo@google.com>
12845
12846         * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
12847         tree-ssa-sccvn.h.
12848
12849 2009-08-20  Richard Guenther  <rguenther@suse.de>
12850
12851         * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
12852         * c-tree.h (c_dup_lang_specific_decl): Remove.
12853         (struct lang_decl, struct lang_type): Move definitions ...
12854         * c-lang.h: ... here.  New file.
12855         * c-decl.c: Include c-lang.h.
12856         (c_dup_lang_specific_decl): Remove.
12857         * c-typeck.c: Include c-lang.h.
12858         * Makefile.in (c-decl.o): Add c-lang.h dependency.
12859         (c-typeck.o): Likewise.
12860         * c-config-lang.in (gtfiles): Add c-lang.h.
12861         * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
12862         like c-tree.h.
12863
12864 2009-08-20  Uros Bizjak  <ubizjak@gmail.com>
12865
12866         * config/alpha/alpha.c (alpha_end_function): Do not clear
12867         crtl->emit structure and free insn locators if cfun->is_thunk is true,
12868         this is now handled in generic code.
12869
12870 2009-08-20  Andreas Krebbel  <krebbel1@de.ibm.com>
12871
12872         * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
12873         (s390_z10_fix_long_loop_prediction): New function.
12874         (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
12875         (s390_reorg): Walk over the INSNs and invoke
12876         s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
12877
12878 2009-08-20  Andreas Krebbel  <krebbel1@de.ibm.com>
12879
12880         * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
12881         "*brx_64bit", "*brx_31bit"): New patterns.
12882         * config/s390/s390.c ('E'): New output modifier.
12883
12884 2009-08-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12885             Richard Earnshaw  <richard.earnshaw@arm.com>
12886
12887         * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
12888         * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
12889
12890 2009-08-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12891
12892         * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
12893         patterns.
12894         * pa.c (emit_move_sequence): Check if address of operand1 is valid
12895         for mode mode of operand0 when doing secondary reload for SAR.
12896
12897 2009-08-19  Jakub Jelinek  <jakub@redhat.com>
12898
12899         PR middle-end/41123
12900         * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
12901         of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
12902
12903 2009-08-19  Jason Merrill  <jason@redhat.com>
12904
12905         * doc/invoke.texi (C++ Dialect Options): Note change of minimum
12906         supported template depth in C++0x.
12907
12908 2009-08-19  Jakub Jelinek  <jakub@redhat.com>
12909
12910         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
12911         free_after_compilation.
12912         * config/score/score7.c (score7_output_mi_thunk): Likewise.
12913         * config/score/score3.c (score3_output_mi_thunk): Likewise.
12914         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
12915         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
12916         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12917         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
12918         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12919
12920 2009-08-19  Ian Lance Taylor  <iant@google.com>
12921
12922         * doc/md.texi (Insn Canonicalizations): Correct canonicalization
12923         of (plus (mult (neg B) C) A).
12924
12925 2009-08-18  Michael Matz  <matz@suse.de>
12926
12927         * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
12928         instead of comparing TYPE_MAIN_VARIANT for equality.
12929         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
12930         vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
12931         * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
12932         * gimplify.c (goa_lhs_expr_p): Ditto and use
12933         STRIP_USELESS_TYPE_CONVERSION.
12934
12935 2009-08-18  Michael Matz  <matz@suse.de>
12936
12937         * tree-ssa-structalias.c (create_variable_info_for): Also mark
12938         first field in a struct.
12939         (intra_create_variable_infos): Don't deal with flag_argument_noalias.
12940
12941 2009-08-18  Uros Bizjak  <ubizjak@gmail.com>
12942
12943         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
12944         locators before emit_insn is called.  Remove assert that
12945         cfun->is_thunk.
12946         (alpha_end_function): Clear crtl->emit structure and free insn
12947         locators if cfun->is_thunk is true.
12948
12949 2009-08-18  Jason Merrill  <jason@redhat.com>
12950
12951         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
12952         type if available.
12953         * configure.ac: Test for it.
12954         * configure, config.in: Regenerate.
12955         * doc/install.texi: Document --enable-gnu-unique-object.
12956
12957 2009-08-18  Richard Guenther  <rguenther@suse.de>
12958
12959         PR middle-end/41094
12960         * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
12961         pow(x,y*z) only if x is nonnegative.
12962
12963 2009-08-18  Jakub Jelinek  <jakub@redhat.com>
12964
12965         * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
12966         on jumps.
12967
12968         PR target/40971
12969         * config/rs6000/rs6000.c (rs6000_legitimize_address): For
12970         [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
12971
12972 2009-08-17  DJ Delorie  <dj@redhat.com>
12973
12974         * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
12975         * config/m32c/prologue.md (epilogue_freit): New.
12976         (fset_b): New.
12977         * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
12978         (bank_switch_p): Likewise.
12979         (fast_interrupt_p): Likewise.
12980         (interrupt_p): Likewise.
12981         (m32c_conditional_register_usage): Round memregs size up.
12982         (need_to_save): We only need to save $a0 when we use ENTER.
12983         (interrupt_p): Check for fast_interrupt too.
12984         (bank_switch_p): New.
12985         (fast_interrupt_p): New.
12986         (m32c_attribute_table): Add bank_switch and fast_interrupt.
12987         (m32c_emit_prolog): Support bank switching and fast interrupts.
12988         * doc/extend.texi (Function Attributes): Add bank_switch and
12989         fast_interrupt.
12990
12991 2009-08-17  Douglas B Rupp  <rupp@gnat.com>
12992
12993         * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
12994         * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
12995
12996 2009-08-16  Douglas B Rupp  <rupp@gnat.com>
12997
12998         * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
12999         (menu): Add IA-64/VMS Options.
13000         (IA-64/VMS Options): Likewise.
13001
13002 2009-08-16  Richard Sandiford  <rdsandiford@googlemail.com>
13003
13004         PR target/38599
13005         * config/mips/mips.md (*lwxs): Use :P for pointer values.
13006
13007 2009-08-16  Richard Sandiford  <rdsandiford@googlemail.com>
13008
13009         * config/mips/mips-protos.h (mips_push_asm_switch): New function.
13010         (mips_pop_asm_switch): Likewise.
13011         * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
13012         with...
13013         (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
13014         (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
13015         (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
13016         (mips_print_operand_punctuation): Use them.  Check mips_noreorder
13017         instead of set_noreorder.
13018         (mips_output_function_prologue): Use the new functions.
13019         (mips_output_function_epilogue): Likewise.
13020         (mips_need_noat_wrapper_p): New function, split out from...
13021         (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
13022         Use mips_push_asm_switch and mips_pop_asm_switch.
13023         * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
13024         and mips_pop_asm_switch.
13025         (ASM_OUTPUT_REG_POP): Likewise.
13026         (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
13027         Use mips_pop_asm_switch.
13028         (mips_asm_switch): New structure.
13029         (set_noreorder, set_nomacro): Replace with...
13030         (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
13031         * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
13032         instead of set_nomacro.
13033         (fix_truncsfsi2_macro): Likewise.
13034         (cprestore): Likewise.
13035         (hazard): Use mips_noreorder instead of set_noreorder.
13036         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
13037
13038 2009-08-16  Uros Bizjak  <ubizjak@gmail.com>
13039
13040         * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
13041         from prev_active_insn.
13042
13043 2009-08-16  Anatoly Sokolov  <aesok@post.ru>
13044
13045         * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
13046         * config/avr/avr.c (avr_override_options): Initialize
13047         avr_current_arch variable.
13048         (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
13049         __AVR_HAVE_16BIT_SP__ according to the device type.
13050         (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
13051         TARGET_TINY_STACK.
13052         (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
13053         Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
13054
13055 2009-08-16  Dodji Seketeli  <dodji@redhat.com>
13056
13057         PR debug/37801
13058         * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
13059         generating inlined subroutine die only. We shouldn't be
13060         called for anything else.
13061         (gen_block_die): Don't generate inline subroutine debug info for
13062         abstract blocks.
13063
13064 2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>
13065
13066         * graphite-poly.c (print_pbb): Print PBB index.
13067
13068 2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>
13069
13070         PR middle-end/40981
13071         * graphite-interchange.c (ppl_max_for_le): Moved...
13072         * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
13073         * graphite-ppl.c (ppl_max_for_le): ... here.  Correct the use of
13074         ppl_Pointset_Powerset_C_Polyhedron_maximize.
13075         * graphite-ppl.h (ppl_max_for_le): Declared.
13076
13077 2009-08-14  Olatunji Ruwase <tjruwase@google.com>
13078
13079         * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
13080         supported on all platforms.
13081         * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
13082         * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
13083         * c-pragma.c: Likewise.
13084         * target-def.h (TARGET_INITIALIZER): Remove
13085         TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
13086         * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
13087
13088 2009-08-14  Douglas B Rupp  <rupp@gnat.com>
13089
13090         * config/ia64/fde-vms.c: New file.
13091         * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
13092         * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
13093         (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
13094         (uw_frame_state_for): Only register a personality routine if it is
13095         known to be compatible with our expectations.
13096         (_Unwind_FindEnclosingFunction, uw_frame_state_for):
13097         Declare unw_table_entry stack variable and
13098         mod all calls to _Unwind_FindTableEntry to add arg.
13099         * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
13100         (_Unwind_FindTableEntry): Add arg to prototype.
13101
13102 2009-08-14  Eric Botcazou  <ebotcazou@adacore.com>
13103
13104         * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
13105         field 'signal_pfs_loc'.
13106         (uw_frame_state_for): Remove duplicate code dealing with leaf
13107         procedures without unwind info.
13108         If in the frame after unwinding through a signal handler, restore
13109         the AR.PFS register instead of the CFM if AR.PFS has not been saved.
13110         * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
13111         'pfs_loc' to the AR.PFS location in the signal context; instead
13112         set 'signal_pfs_loc'.
13113         Manually generate the unwind info for the AR.PFS register.
13114         (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
13115         ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
13116         (ia64_handle_unwabi): Test 'fs->unwabi' against them.
13117         Do not set 'pfs_loc' to the AR.PFS location in the signal context;
13118         instead set 'signal_pfs_loc'.
13119         Remove code preventing the AR.PFS register from being restored
13120         from the signal context.
13121
13122 2009-08-14  Douglas B Rupp  <rupp@gnat.com>
13123             Tristan Gingold  <gingold@adacore.com>
13124
13125         * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
13126         * config/ia64/t-vms: New file.
13127         * config/ia64/vms64.h: New file.
13128         * config/ia64/vms.h: New file.
13129         * config/ia64/vms-crtinit.asm: New file.
13130         * config/ia64/vms_symvec_libgcc_s.opt: New file.
13131         * config/ia64/vms-unwind.h: New file.
13132
13133 2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
13134
13135         * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
13136         TFmode compares.
13137
13138 2009-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13139
13140         PR middle-end/30789
13141         * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
13142         Move declaration...
13143         * real.h (do_mpc_arg2): ... here.
13144         * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
13145         and RDIV_EXPR.
13146
13147 2009-08-14  Rafael Avila de Espindola  <espindola@google.com>
13148
13149         * final.c (add_debug_prefix_map): Don't use GC memory for
13150         old_prefix and new_prefix.
13151
13152 2009-08-14  Richard Guenther  <rguenther@suse.de>
13153
13154         * ipa-prop.c (compute_complex_pass_through): If we cannot
13155         compute a non-varying offset for IPA_JF_ANCESTOR punt.
13156
13157 2009-08-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13158
13159         * c-lex.c (c_lex_with_flags): Increase size of local variable
13160         to avoid memory clobber.
13161
13162 2009-08-14  Paolo Bonzini  <bonzini@gnu.org>
13163
13164         PR target/40934
13165         * config/i386/i386.c (ix86_fp_comparison_strategy):
13166         Only enable/disable sahf at function granularity.
13167
13168 2009-08-14  Hans-Peter Nilsson  <hp@axis.com>
13169
13170         PR rtl-optimization/41064
13171         * reload1.c (reload_as_needed): Don't call extract_insn
13172         for known invalid replacements after calling
13173         validate_replace_rtx_group and verify_changes.
13174
13175 2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
13176
13177         PR target/41019
13178         * config/i386/sse.md (SSEMODE124C8): New mode iterator.
13179         (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
13180         ix86_expand_fp_vcond.
13181         (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
13182         Assert that operation is supported by ix86_expand_int_vcond.
13183         (vcondu<SSEMODE124C8:mode>): Ditto.
13184
13185 2009-08-13  DJ Delorie  <dj@redhat.com>
13186
13187         * config/i386/djgpp-stdint.h: New.
13188         * config.gcc (djgpp): Use it.
13189
13190 2009-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
13191
13192         * config/sh/sh.c (sh_override_options): When flag_exceptions or
13193         flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
13194
13195 2009-08-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
13196
13197         * tree-ssa-loop-prefetch.c
13198         (prune_ref_by_group_reuse): Enhance probabilistic analysis
13199         for long-stride pruning.
13200         (compute_miss_rate): New function to compute the probability
13201         that two memory references access different cache lines.
13202
13203 2009-08-13  Dave Korn  <dave.korn.cygwin@gmail.com>
13204
13205         * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
13206
13207 2009-08-13  Richard Guenther  <rguenther@suse.de>
13208
13209         PR middle-end/41047
13210         * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
13211         use the constant pointer type.
13212         * gimplify.c (canonicalize_addr_expr): Canonicalize independent
13213         of CV qualifiers on the target pointer type.
13214         * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
13215         conversion check before restrict check.
13216
13217 2009-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
13218
13219         PR target/41029
13220         * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
13221
13222 2009-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
13223
13224         * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
13225
13226 2009-08-12  Richard Guenther  <rguenther@suse.de>
13227
13228         PR tree-optimization/41011
13229         * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
13230         and reference constructing.
13231
13232 2009-08-12  Xinliang David Li  <davidxl@google.com>
13233
13234         PR tree-optimization/41012
13235         * tree-flow.h : New external interface.
13236         * gimple-low.c (check_call_arg): Change to public function.
13237         Remove argument mismatch check in lowering.
13238         * tree-inline.h (tree_can_inline_p): Interface change.
13239         * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
13240         into this function.
13241         * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
13242         Call change to tree_can_inline_p function.
13243         (cgraph_decide_inlining_incrementally): Ditto.
13244
13245 2009-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
13246
13247         PR tree-optimization/41031
13248         * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
13249         on the partition variable rather than promote_mode on the source
13250         type.  Assert that the partition variable's type has the same
13251         mode as the source value's.
13252
13253 2009-08-12  Paolo Bonzini  <bonzini@gnu.org>
13254
13255         * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
13256         for for_return == 2.
13257         * function.c (assign_parm_setup_reg): Use for_return == 2, improve
13258         comments.
13259         * calls.c (expand_call): Fix typo.
13260         * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
13261         and PARM_DECL.
13262         * stmt.c (expand_value_return): Use promote_function_mode to copy out
13263         of pseudo.
13264         * targhooks.c (default_promote_function_mode): Handle for_return == 2.
13265         * config/cris/cris.c (cris_promote_function_mode): Likewise.
13266         * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
13267         * config/pa/pa.c (pa_promote_function_mode): Likewise.
13268
13269 2009-08-12  Andrew Haley  <aph@redhat.com>
13270
13271         * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
13272
13273 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13274
13275         PR bootstrap/40103
13276         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
13277
13278 2009-08-12  Richard Guenther  <rguenther@suse.de>
13279
13280         * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
13281         * gimplify.c (gimplify_modify_expr): Do not use
13282         lang_hooks.types_compatible_p.
13283         * tree-ssa.c (useless_type_conversion_p): For aggregates
13284         just return false if the canonical types differ.
13285
13286 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13287
13288         PR middle-end/40980
13289         * sese.c (convert_for_phi_arg): New.
13290         (add_guard_exit_phis): Use convert_for_phi_arg.
13291
13292 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13293
13294         * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
13295         unknown subscript upper bounds.
13296
13297 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13298             Pranav Garg  <pranav.garg2107@gmail.com>
13299
13300         * graphite-interchange.c (gather_access_strides): Removed.
13301         (ppl_max_for_le): New.
13302         (build_linearized_memory_access): New.
13303         (memory_stride_in_loop): New.
13304         (pbb_interchange_profitable_p): Reimplemented.
13305         * graphite-ppl.h (ppl_new_id_map): New.
13306         (ppl_interchange): New.
13307
13308 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13309
13310         * graphite-interchange.c (compute_subscript): Removed.
13311         (compute_array_size_cstr): Removed.
13312         (compute_array_size_poly): Removed.
13313         (compute_array_size): Removed.
13314         (gather_access_strides_poly): Removed.
13315         (gather_access_strides): Empty.
13316
13317 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13318
13319         * graphite-dependences.c (dependence_polyhedron_1): Replace
13320         pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
13321         (graphite_legal_transform_dr): Same.
13322         (graphite_carried_dependence_level_k): Same.
13323         * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
13324         Initialize PDR_NB_SUBSCRIPTS.
13325         (print_pdr_access_layout): Replace pdr_nb_subscripts with
13326         PDR_NB_SUBSCRIPTS.
13327         * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
13328         (PDR_NB_SUBSCRIPTS): New.
13329         (pdr_nb_subscripts): Removed.
13330         (pdr_dim): Simplified.
13331         * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
13332         with PDR_NB_SUBSCRIPTS.
13333
13334 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13335
13336         * graphite-interchange.c (compute_array_size): Remove use of
13337         PDR_DATA_CONTAINER.
13338         * graphite-poly.c (new_poly_dr): Remove argument data_container.
13339         Do not initialize PDR_DATA_CONTAINER.
13340         (print_pdr): Do not print PDR_DATA_CONTAINER.
13341         * graphite-poly.h (struct poly_dr): Remove data_container field.
13342         (PDR_DATA_CONTAINER): Removed.
13343         * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
13344         PDR_DATA_CONTAINER.
13345         (build_poly_dr): Same.
13346
13347 2009-08-12  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
13348             Sebastian Pop  <sebastian.pop@amd.com>
13349
13350         * graphite-dependences.c (graphite_legal_transform_dr): Work on a
13351         copy of the dependence polyhedron.  Free the temporary objects.
13352         (graphite_carried_dependence_level_k): Free unused objects before
13353         returning.
13354
13355 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13356
13357         * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
13358         Early return without analyzing the data dependences if no
13359         transform has been done.  Call restore_scattering if the transform
13360         is not legal.
13361         (graphite-interchange.c): Same.
13362         * graphite-poly.c (print_scattering_function): Test for
13363         PBB_TRANSFORMED.
13364         (graphite_read_transforms): Initialize PBB_TRANSFORMED.
13365         (apply_poly_transforms): Do not gcc_assert that
13366         the transform is legal.
13367         (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
13368         Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
13369         PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
13370         (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
13371         * graphite-poly.h (struct poly_scattering): New.
13372         (struct poly_bb): Add original, transformed, and saved fields.
13373         Remove transformed_scattering, original_scattering,
13374         nb_local_variables and nb_scattering_transform fields.
13375         (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
13376         (poly_scattering_new): New.
13377         (poly_scattering_free): New.
13378         (poly_scattering_copy): New.
13379         (store_scattering_pbb): New.
13380         (store_scattering): New.
13381         (restore_scattering_pbb): New.
13382         (restore_scattering): New.
13383         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
13384         Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
13385
13386 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13387
13388         * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
13389         (print_scop): Same.
13390
13391 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13392
13393         * Makefile.in (graphite.o): Depends on PREDICT_H.
13394         * graphite.c: Include predict.h.
13395         (graphite_finalize): Call tree_estimate_probability.
13396         * predict.c (predict_loops): Do not call scev_initialize and
13397         scev_finalize.
13398         (tree_estimate_probability_bb): New.
13399         (tree_estimate_probability): Do not initialize loops: move that
13400         code to the driver.  Call tree_estimate_probability_bb.
13401         (tree_estimate_probability_driver): New.
13402         (pass_profile): Use tree_estimate_probability_driver.
13403         * predict.h (tree_estimate_probability): Declared.
13404
13405 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
13406
13407         * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
13408         * graphite-dependences.c (graphite_legal_transform): Add time to
13409         TV_GRAPHITE_DATA_DEPS.
13410         (dependency_between_pbbs_p): Same.
13411         * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
13412
13413 2009-08-12  Andrey Belevantsev  <abel@ispras.ru>
13414
13415         PR rtl-optimization/41033
13416         * alias.c (nonoverlapping_component_refs_p): Punt when strict
13417         aliasing is disabled.
13418
13419 2009-08-11  Adam Nemet  <anemet@caviumnetworks.com>
13420
13421         * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
13422         si_mask_operand, and_load_operand, low_bitmask_operand,
13423         and_reg_operand, and_operand): New predicates.
13424         * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
13425         * config/mips/mips.c (and_operands_ok): New function.
13426         * config/mips/mips-protos.h (and_operands_ok): Declare it.
13427         * config/mips/mips.md (move_type): Add ext_ins and logical.
13428         (type): Handle them.
13429         (and<mode>3): Use and_reg_operand as the second operand's predicate.
13430         (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
13431         shift_shift.  Remove commutative constraint modifier.
13432         (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
13433         shift_shift.
13434         (*clear_upper32_dext): Remove define_insn_and_split.
13435         (*clear_upper32): Turn this define_insn_and_split ...
13436         (splitter for ANDing register with 0xffff_ffff): .. into this.
13437
13438 2009-08-11  Adam Nemet  <anemet@caviumnetworks.com>
13439
13440         * combine.c (try_widen_shift_mode): Factor out code to check if an
13441         integer constant is a low-order bitmask from here ...
13442         * rtlanal.c (low_bitmask_len): ... to here.
13443         * rtl.h (low_bitmask_len): Declare.
13444
13445 2009-08-11  Uros Bizjak  <ubizjak@gmail.com>
13446
13447         PR target/8603
13448         * config/alpha/alpha.md (addsi3): Remove expander.
13449         (addsi3): Rename from *addsi3_internal insn pattern.
13450         (subsi3): Remove expander.
13451         (subsi3): Rename from *subsi3_internal insn pattern.
13452
13453 2009-08-11  Douglas B Rupp  <rupp@gnat.com>
13454
13455         * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
13456         FWRITE_UNLOCKED.
13457
13458 2009-08-11  Vasiliy Fofanov  <fofanov@adacore.com>
13459             Eric Botcazou  <botcazou@adacore.com>
13460             Douglas B Rupp  <rupp@gnat.com>
13461
13462         * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
13463         that records that fit in 64 bits are returned by immediate value,
13464         as required by OpenVMS Calling Standard.
13465         (function_value): Adjust for above modification.
13466         (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
13467         virtual_incoming_args_rtx as base object, not next_arg.
13468         * config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
13469
13470 2009-08-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13471
13472         * reload.c (find_reloads_subreg_address): Check the original
13473         req_equiv_mem address to detect the case where an address is
13474         not valid in the outer mode.
13475
13476 2009-08-11  Richard Guenther  <rguenther@suse.de>
13477
13478         PR bootstrap/40788
13479         * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
13480
13481 2009-08-10  Douglas B Rupp  <rupp@gnat.com>
13482
13483         * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
13484         (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
13485
13486 2009-08-10  Olivier Hainque  <hainqueu@adacore.com>
13487             Douglas B Rupp  <rupp@gnat.com>
13488
13489         * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
13490         PT_STACK when frame_pointer_needed on OpenVMS.
13491         (alpha_pv_save_size, alpha_using_fp): Remove.
13492         (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
13493         with proper processing for PT_NULL.
13494         (alpha_vms_initial_elimination_offset): New function. Support for
13495         INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
13496         (alpha_sa_size): Force procedure type to PT_STACK when
13497         frame_pointer_needed on OpenVMS.
13498         * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
13499         (alpha_using_fp): Likewise.
13500         (alpha_vms_can_eliminate): Add prototype.
13501         (alpha_vms_initial_elimination_offset): Likewise.
13502         * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
13503         Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
13504
13505 2009-08-10  Eric Botcazou  <botcazou@adacore.com>
13506             Douglas B Rupp  <rupp@gnat.com>
13507
13508         * config/alpha/alpha.c (common_object_handler): New function.
13509         (vms_attribute_table): Declare a single attribute "common_object".
13510         (vms_output_aligned_decl_common): New global function.
13511         (SECTION_VMS_OVERLAY): Delete.
13512         (SECTION_VMS_GLOBAL): Likewise.
13513         (SECTION_VMS_INITIALIZE): Likewise.
13514         (vms_asm_named_section): Remove support for above flags.
13515         (vms_section_type_flags): Delete.
13516         (TARGET_SECTION_TYPE_FLAGS): Likewise.
13517         * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
13518         * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
13519         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
13520
13521 2009-08-10  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
13522
13523         PR target/41015
13524         * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
13525         (sub_ddmmss): Likewise.
13526
13527 2009-08-10  Andreas Tobler  <a.tobler@schweiz.org>
13528
13529         PR bootstrap/41018
13530         * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
13531         year.
13532
13533 2009-08-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13534
13535         PR target/37053
13536         * reload1.c (reload_as_needed): Use cancel_changes to completely
13537         undo a failed replacement attempt.
13538
13539 2009-08-10  Richard Guenther  <rguenther@suse.de>
13540
13541         PR middle-end/41006
13542         * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
13543         (useless_type_conversion_p): ... here.  Require pointer targets
13544         to be compatible.
13545
13546 2009-08-10  Dodji Seketeli  <dodji@redhat.com>
13547
13548         PR c++/40866
13549         * tree-inline.c (copy_statement_list): The resulting copy shouldn't
13550         loose the original type of the statement list.
13551
13552 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
13553
13554         * config/alpha/alpha.c: Include libfuncs.h
13555         (avms_asm_output_extern): New function.
13556         (alpha_init_libfuncs): Init some decc libfuncs.
13557         * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
13558         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
13559         (DO_CRTL_NAMES): Define.
13560         (LIB_SPEC): Remove.
13561         * config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef.
13562         (LONG_TYPE_SIZE): Define.
13563         (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
13564         (SUBTARGET_SWITCHES): Define malloc64 switch.
13565         (TARGET_DEFAULT): Default MASK_MALLOC64 set.
13566         (MASK_RETURN_ADDR): Define.
13567         doc/invoke.texi (mmalloc64): Document switch.
13568
13569 2009-08-09  Olivier Hainque  <hainque@adacore.com>
13570             Douglas B Rupp  <rupp@gnat.com>
13571
13572         * config/alpha/alpha.c (struct machine_function): New flag for VMS,
13573         uses_condition_handler.
13574         (alpha_expand_builtin_establish_vms_condition_handler): New expander.
13575         (alpha_expand_builtin_revert_vms_condition_handler): New expander.
13576         (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
13577         and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
13578         (code_for_builtin): New insn codes for the new alpha_builtins.
13579         (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
13580         (alpha_sa_size): Account for uses_condition_handler.
13581         (alpha_expand_prologue): Likewise.
13582         (alpha_start_function): Likewise.
13583         (alpha_expand_epilogue): Likewise.
13584         * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
13585         establish/revert expanders.
13586         * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
13587         * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
13588         New expander, resorting to the alpha.c associated function.
13589         (builtin_revert_vms_condition_handler): Likewise.
13590         * config/alpha/vms-gcc_shell_handler.c: New file. Implements
13591         __gcc_shell_handler, the static VMS condition handler used as
13592         an indirection wrapper to the current dynamically established
13593         handler.
13594         * config/alpha/vms-unwind.h: Complete rewrite.
13595         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
13596         * config/alpha/vms.h (MD_UNWIND_SUPPORT):
13597
13598 2009-08-09  Eric Botcazou  <botcazou@adacore.com>
13599             Douglas B Rupp  <rupp@gnat.com>
13600
13601         * config/alpha/alpha.c (alpha_links): Add 'target' field.
13602         (alpha_need_linkage): Handle aliases.  Return function symbol.
13603         (alpha_use_linkage): Rename 'linkage' argument to 'func'.
13604         Use ultimate alias target for the linkage name.
13605         * config/alpha/alpha.md (movmemdi): Use the symbol returned
13606         by alpha_need_linkage for the function symbol.
13607         (setmemdi): Likewise.
13608
13609 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
13610
13611         * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
13612         * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
13613         (ASM_WEAKEN_LABEL): Define.
13614         (CRT_CALL_STATIC_FUNCTION): Define.
13615         (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
13616         (ENDFILE_SPEC): Define.
13617         (INIT_SECTION_ASM_OP): Define.
13618         * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
13619         * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
13620         crtend.o crtendS.o.
13621         (MULTILIB_OSDIRNAMES): Define.
13622         (shlib_version): Define.
13623         (SHLIB_EXT): Define.
13624         (SHLIB_OBJS): Define.
13625         (SHLIB_NAME): Define.
13626         (SHLIB_MULTILIB): Define.
13627         (SHLIB_INSTALL): Define.
13628         (SHLIB_SYMVEC): Define.
13629         (SHLIB_SYMVECX2): Define.
13630         (SHLIB_LINK): Define.
13631
13632 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
13633
13634         * config/alpha/alpha.c (alpha_initialize_trampoline):
13635         Initialize VMS trampoline IAW ABI for bounded procedure calls.
13636         (alpha_start_function): Emit transfer address on nested functions
13637         for VMS trampoline call.
13638         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
13639         since no longer used.
13640         * config/alpha/vms-tramp.asm: Remove.
13641         * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
13642         since now only data initialized at runtime.
13643
13644 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
13645
13646         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
13647         (LINK_GCC_C_SEQUENCE_SPEC): Define.
13648         (MD_EXEC_PREFIX): Remove, no longer used.
13649         (MD_STARTFILE_PREFIX): Likewise.
13650         (INCLUDE_DEFAULTS): Likewise.
13651         * config/alpha/t-vms:
13652         (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
13653
13654 2009-08-09  Richard Guenther  <rguenther@suse.de>
13655
13656         PR tree-optimization/41016
13657         * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
13658         (operand_precision): Remove.
13659         (integral_operand_p): Likewise.
13660         (recognize_single_bit_test): Adjust.
13661
13662 2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
13663
13664         * c-common.c (c_fully_fold_internal): Issue a warning if a binary
13665         operation overflows.  Likewise non-cast unary arithmetic.
13666         If one arm of a conditional expression is always taken,
13667         inhibit evaluation warnings for the other arm.  Likewise inhibit
13668         evaluation warnings for the second && or || operand if the first
13669         operand is enough to determine the result.
13670         * c-typeck.c (build_conditional_expr): Apply the same inhibition
13671         rules here.
13672         (build_binary_op): Prevent duplicate evaluation warnings.
13673
13674 2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
13675
13676         * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
13677         and destination have different modes, Use promote_mode to
13678         determine the signedness of the conversion.  Assert that the
13679         promoted source mode matches the destination mode.  Don't pass
13680         the destination and destination mode to expand_expr if the source
13681         mode is different.  Simplify conversion logic.
13682
13683 2009-08-09  Ira Rosen  <irar@il.ibm.com>
13684
13685         PR tree-optimization/41008
13686         * tree-vect-loop.c (vect_is_simple_reduction): Get operands
13687         from condition only in case it's a comparison. Adjust checks.
13688
13689 2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
13690
13691         * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
13692         * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
13693         * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
13694         (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
13695         (dump_cand): Handle them.
13696         (struct iv_cand): New members COST_STEP and AINC_USE.
13697         (stmt_after_increment): Likewise.
13698         (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
13699         callers changed.  Use gimple_uid comparison instead of scanning.
13700         (add_candidate_1): When looking for identical candidates, take
13701         AINC_USE into account.  Set it for new candidates.
13702         (force_expr_to_var_cost): Cast target_spill_cost to int.
13703         (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
13704         All callers changed.  Check for availability of autoinc addressing
13705         modes, both in general for a given mode, and in the specific use case.
13706         (get_computation_cost_at): New argument CAN_AUTOINC.  All callers
13707         changed.
13708         (get_computation_cost): Likewise.
13709         (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
13710         add_autoinc_candidates): New static functions.
13711         (add_candidate): Call add_autoinc_candidates for candidates based on
13712         a USE_ADDRESS use.
13713         (find_iv_candidates): Call set_autoinc_for_original_candidates.
13714         (determine_use_iv_cost_address): If we have an autoinc candidate at
13715         the matching use, verify autoinc is possible and subtract the cost
13716         of the candidate's step from the cost.
13717         (determine_iv_cost): Record the cost of the increment in the COST_STEP
13718         member of the candidate.
13719         (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
13720         determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.
13721
13722 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
13723
13724         * config.build (ia64-hp-*vms*): New target.
13725         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
13726         with ia64-hp-*vms*.
13727         * config.gcc (ia64-hp-*vms*): New target.
13728         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
13729         with ia64-hp-*vms*.
13730         * config.host (ia64-hp-*vms*): New target.
13731         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
13732         with ia64-hp-*vms*.
13733
13734 2009-08-08  Richard Guenther  <rguenther@suse.de>
13735
13736         PR tree-optimization/40991
13737         * tree-ssa-pre.c (eliminate): Delay purging EH edges.
13738
13739 2009-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
13740
13741         * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
13742         mode check.  Do truncations in an integer mode.
13743         (force_to_mode): Handle subregs for all mode types.  Only do
13744         arithmetic simplifications on integer modes.
13745
13746 2009-08-07  Richard Guenther  <rguenther@suse.de>
13747
13748         PR tree-optimization/40999
13749         * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
13750         (maybe_fold_reference): Lookup constant initializers.
13751         (fold_gimple_assign): Likewise.
13752
13753 2009-08-07  Richard Guenther  <rguenther@suse.de>
13754
13755         * tree-ssa.c (useless_type_conversion_p_1): Only for types
13756         that require structural equality defer to the langhook.
13757
13758 2009-08-07  Martin Jambor  <mjambor@suse.cz>
13759
13760         * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
13761         comments.
13762         (struct ipa_pass_through_data): New type.
13763         (struct ipa_ancestor_jf_data): New type.
13764         (union jump_func_value): Removed field formal_id, added fields
13765         pass_through and ancestor.
13766         (struct ipa_param_call_note): Changed type of formal_id to int from
13767         unsigned.
13768         * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
13769         operations jump functions and ancestor jump functions.
13770         (compute_complex_pass_through): New function.
13771         (compute_scalar_jump_functions): Call compute_complex_pass_through,
13772         reflect changes in the jump function strucutre.
13773         (update_jump_functions_after_inlining): Ignore complex pass-through
13774         and ancestor jump functions.
13775         * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
13776         polynomial pass-through with operation jump functions.
13777
13778 2009-08-07  Jakub Jelinek  <jakub@redhat.com>
13779
13780         * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
13781         fde->dw_fde_begin as begin label instead of hot/cold label.
13782         Use LLSDAC label instead of LLSDA for second section lsda.
13783         (dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
13784         label instead of LLSDA if it is true.
13785         (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
13786         callers.
13787         * except.c (add_call_site, dw2_size_of_call_site_table): Add
13788         SECTION argument.  Use it as index into crtl->eh.call_site_record
13789         array.
13790         (dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
13791         use it to determine how to print table entries instead of using
13792         #ifdef HAVE_AS_LEB128.  For SECTION > 0 use hot resp. cold
13793         label instead of normal begin label as base.
13794         (sjlj_assign_call_site_values): Adjust add_call_site caller.
13795         (convert_to_eh_region_ranges): When doing hot/cold partitioning,
13796         ensure no EH range spans between sections and that landing pads
13797         are always in the corresponding section.
13798         (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
13799         for crtl->eh.call_site_record being an array rather than scalar.
13800         (output_one_function_exception_table): New function, copied
13801         from output_function_exception_table.  Adjust
13802         dw2_size_of_call_site_table, dw2_output_call_site_table
13803         callers.  For SECOND section use *C suffixed labels.
13804         (output_function_exception_table): Call
13805         output_one_function_exception_table and, when doing hot/cold
13806         partitioning, also another time for the second section.
13807         * opts.c: Include except.h.
13808         (decode_options): Allow -freorder-blocks-and-partition with
13809         exceptions, unless SJLJ or TARGET_UNWIND_INFO.
13810         * Makefile.in (opts.o): Depend on $(EXCEPT_H).
13811         * function.h (struct rtl_eh): Change call_site_record from
13812         scalar into array of 2 elements.
13813
13814 2009-08-07  Martin Jambor  <mjambor@suse.cz>
13815
13816         * ipa-prop.c (count_formal_params_1): New function.
13817         (ipa_get_vector_of_formal_parms): New function.
13818         (get_vector_of_formal_parm_types): New function.
13819         (ipa_modify_formal_parameters): New function.
13820         (ipa_modify_call_arguments): New function.
13821         (index_in_adjustments_multiple_times_p): New function.
13822         (ipa_combine_adjustments): New function.
13823         (ipa_dump_param_adjustments): New function.
13824         * ipa-prop.h (struct ipa_parm_adjustment): New type.
13825         (ipa_get_vector_of_formal_parms): Declare.
13826         (ipa_modify_formal_parameters): Declare.
13827         (ipa_modify_call_arguments): Declare.
13828         (ipa_combine_adjustments): Declare.
13829         (ipa_dump_param_adjustments): Declare.
13830         (build_ref_for_offset): Declare.
13831         * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
13832         * tree-sra.c: Include ipa-prop.c.
13833         (build_ref_for_offset): Make public.
13834
13835 2009-08-06  Neil Vachharajani  <nvachhar@gmail.com>
13836
13837         * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
13838
13839 2009-08-06  Thomas Schwinge  <tschwinge@gnu.org>
13840
13841         * gcc/doc/extend.texi (__builtin_extract_return_address)
13842         (__builtin_frob_return_address): Document.
13843
13844 2009-08-06  Paul Brook  <paul@codesourcery.com>
13845
13846         * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
13847         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
13848         implementation on ARMv6-M.
13849
13850 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
13851
13852         * doc/extend.texi (pcs): Document new attribute for ARM.
13853
13854 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
13855
13856         * arm.c (pcs_attribute_args): Comment out unsupported attribute
13857         variants.
13858
13859 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
13860
13861         * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
13862         warning ().
13863
13864 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
13865
13866         * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
13867
13868 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
13869
13870         Merge ARM/hard_vfp_branch to trunk.
13871
13872         2009-08-04  Richard Earnshaw  <rearnsha@arm.com>
13873
13874         * arm.c (libcall_eq): New function.
13875         (libcall_hash): New function.
13876         (add_libcall): New function.
13877         (arm_libcall_uses_aapcs_base): New function.
13878         (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
13879         libcalls using the base PCS.
13880         (arm_init_cumulative_args): Likewise.
13881
13882         2009-07-20  Joseph Myers  <joseph@codesourcery.com>
13883
13884         * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
13885         Use base ABI for conversion libfuncs between HFmode and SFmode.
13886
13887         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
13888
13889         * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
13890         V4SImode as representatives of all 64-bit and 128-bit vector
13891         types.  Allow vector types without vector modes.
13892         (aapcs_vfp_is_call_or_return_candidate): Handle vector types
13893         without vector modes like BLKmode.
13894         (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
13895         BLKmode.  Avoid unsupported vector modes or TImode moves for
13896         non-TARGET_NEON.
13897         (aapcs_vfp_allocate_return_reg): Likewise.
13898         (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
13899         V8QImode if TARGET_NEON || TARGET_IWMMXT.
13900
13901         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
13902
13903         * config/arm/arm.c (arm_handle_pcs_attribute): New.
13904         (arm_get_pcs_model): Pass attribute arguments to
13905         arm_pcs_from_attribute.
13906         (arm_init_cumulative_args): Use base AAPCS for conversions from
13907         floating-point types to DImode.
13908         (arm_attribute_table): Add pcs attribute.
13909         (arm_handle_pcs_attribute): New.
13910         * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
13911         conversions from floating-point types to DImode, also declare them
13912         to use base AAPCS and declare functions they call to use base
13913         AAPCS and their RTABI names.
13914
13915         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
13916
13917         * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
13918         -mfloat-abi=hard not being supported for VFP.
13919
13920         2009-05-11  Kazu Hirata  <kazu@codesourcery.com>
13921
13922         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
13923         SYMBOL_REF to hard_libcall_value.
13924
13925         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
13926             Richard Earnshaw  <rearnsha@arm.com>
13927
13928         * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
13929         has been put on the stack, all remaining co-processory arguments for
13930         that co-processor also go on the stack.
13931
13932         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
13933
13934         * config/arm/arm.c (arm_return_in_memory): Handle returning
13935         vectors of suitable size in registers also for AAPCS case.
13936
13937         2009-01-13  Richard Earnshaw <rearnsha@arm.com>
13938
13939         * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
13940
13941         2008-12-09  Richard Earnshaw <rearnsha@arm.com>
13942
13943         ARM Hard-VFP calling convention
13944         * target-def.h (TARGET_LIBCALL_VALUE): New hook.
13945         * target.h (gcc_target): Add libcall_value to table of call hooks.
13946         * targhooks.h (default_libcall_value): Default implementation.
13947         * targhooks.c (default_libcall_value): Likewise.
13948         * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
13949         * optabs.c (expand_unop): Use it.
13950         * expr.h (hard_libcall_value): Pass the function RTX through.
13951         * calls.c (emit_library_call_value_1): Update call to
13952         hard_libcall_value.
13953         * explow.c (hard_libcall_value): Use new target hook.
13954         * config/arm/arm.c: Include cgraph.h
13955         (TARGET_FUNCTION_VALUE): Override default hook.
13956         (arm_pcs_default): New variable.
13957         (arm_override_options): Don't fault hard calling convention with VFP.
13958         Add support for AAPCS variants.
13959         (arm_function_value): Make static.  Handle AAPCS variants.
13960         (arm_libcall_value): New function.
13961         (arm_apply_result_size): Handle VFP registers in results.
13962         (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
13963         conventions.
13964         (pcs_attribute_args): New variable.
13965         (arm_pcs_from_attribute): New function.
13966         (arm_get_pcs_model): New function.
13967         (aapcs_vfp_cum_init): New function.
13968         (aapcs_vfp_sub_candidate): New function.
13969         (aapcs_vfp_is_return_candidate): New function.
13970         (aapcs_vfp_is_call_candidate): New function.
13971         (aapcs_vfp_allocate): New function.
13972         (aapcs_vfp_allocate_return_reg): New function.
13973         (aapcs_vfp_advance): New function.
13974         (aapcs_cp_arg_layout): New variable.
13975         (aapcs_select_call_coproc): New function.
13976         (aapcs_select_return_coproc): New function.
13977         (aapcs_allocate_return_reg): New function.
13978         (aapcs_libcall_value): New function.
13979         (aapcs_layout_arg): New function.
13980         (arm_init_cumulative_args): Initialize AAPCS args data.
13981         (arm_function_arg): Handle AAPCS variants using new interface.
13982         (arm_arg_parital_bytes): Likewise.
13983         (arm_function_arg_advance): New function.
13984         (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
13985         calling conventions.
13986         (arm_setup_incoming_varargs): Handle new AAPCS args data.
13987         * arm.h (NUM_VFP_ARG_REGS): Define.
13988         (LIBCALL_VALUE): Update.
13989         (FUNCTION_VALUE): Delete.
13990         (FUNCTION_VALUE_REGNO_P): Add VFP regs.
13991         (arm_pcs): New enum.
13992         (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
13993         (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
13994         (FUNCTION_ARG_REGNO_P): Add VFP regs.
13995         * arm-protos.h (arm_function_arg_advance): Add.
13996         (aapcs_libcall_value): Add.
13997         (arm_function_value): Delete.
13998
13999 2009-08-06  Uros Bizjak  <ubizjak@gmail.com>
14000             H.J. Lu  <hongjiu.lu@intel.com>
14001
14002         PR target/40957
14003         * config/i386/i386.c (standard_sse_mode_p): Remove.
14004         (standard_sse_constant_p): Return 2 for integer mode
14005         vector_all_ones_operand when SSE2 is enabled.
14006         (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
14007         (ix86_expand_vector_move): Do not check for negative values from
14008         standard_sse_constant_p.
14009
14010 2009-08-06  Richard Guenther  <rguenther@suse.de>
14011
14012         * tree-ssa.c (useless_type_conversion_p_1): Make function and
14013         array type comparisons frontend independent.
14014         * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
14015         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
14016         out array reference lower bound and element size operands.
14017         (ao_ref_init_from_vn_reference): Properly compute the offset
14018         for ARRAY_RANGE_REF.
14019         (vn_reference_fold_indirect): Fill out array reference lower
14020         bound and element size operands.
14021         * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
14022         a non gimple valued reference operand which can happen for
14023         array reference lower bound or element size.
14024         (create_component_ref_by_pieces_1): Properly generate the
14025         element size operand for array references.
14026
14027 2009-08-06  Richard Guenther  <rguenther@suse.de>
14028
14029         PR tree-optimization/40964
14030         * tree.c (iterative_hash_host_wide_int): Export.
14031         * tree.h (iterative_hash_host_wide_int): Declare.
14032         * tree-ssa-structalias.c (heapvar_map): New struct.
14033         (heapvar_map_eq): New function.
14034         (heapvar_map_hash): Likewise.
14035         (heapvar_lookup): Adjust.
14036         (heapvar_insert): Likewise.
14037         (make_constraint_from_heapvar): Allow multiple heap variables
14038         per decl at different offsets.
14039         (init_alias_heapvars): Adjust.
14040
14041 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
14042
14043         * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
14044         * mips_output_sync_loop (mips_output_sync_loop): Only emit
14045         trailing sync if TARGET_SYNC_AFTER_SC.
14046
14047 2009-08-05  David Daney  <ddaney@caviumnetworks.com>
14048
14049         * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
14050         compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
14051         sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
14052         sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
14053         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
14054         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
14055         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
14056         sync_new_nand<mode>, sync_lock_test_and_set<mode>,
14057         test_and_set_12): Rewrite calls to mips_output_sync_loop.
14058         * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
14059         the prototype declaration match the definition.
14060         * gcc/config/mips/mips.c (mips_output_sync_loop):  Emit sync
14061         instructions explicitly.  Add barrier_before and operands
14062         parameters.
14063         * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
14064         MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
14065         MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
14066         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
14067         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
14068         MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
14069
14070 2009-08-05  Andrew Pinski  <pinskia@gmail.com>
14071
14072         * tree-ssa-alias.c: Fix intervals to use [) syntax.
14073
14074 2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
14075             Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
14076
14077         PR target/40906
14078         * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
14079         source operand.
14080
14081 2009-08-05  Jakub Jelinek  <jakub@redhat.com>
14082
14083         PR rtl-optimization/40924
14084         * dse.c (canon_address): Before calling cselib_expand_value_rtx
14085         make sure canon_rtx (mem_address) isn't simpler than
14086         canon_rtx (expanded_mem_address).
14087
14088 2009-08-05  Li Feng  <nemokingdom@gmail.com>
14089
14090         * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
14091         for each poly_bb_p.
14092         (build_scop_drs): Build alias set for each SCoP.
14093
14094 2009-08-04  Sandra Loosemore  <sandra@codesourcery.com>
14095
14096         * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
14097         * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
14098         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
14099         (MIPS_ARCH_FLOAT_SPEC): Likewise.
14100         (BASE_DRIVER_SELF_SPECS): Likewise.
14101
14102 2009-08-04  Andrew Pinski  <pinskia@gmail.com>
14103
14104         * tree-ssa-alias.c: Fix some comment typos.
14105
14106 2009-08-04  Kaz Kojima  <kkojima@gcc.gnu.org>
14107
14108         * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
14109         ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
14110
14111 2009-08-03  Janis Johnson  <janis187@us.ibm.com>
14112
14113         PR c/39902
14114         * simplify-rtx.c (simplify_binary_operation_1): Disable
14115         simplifications for decimal float operations.
14116
14117 2009-08-03  Jakub Jelinek  <jakub@redhat.com>
14118
14119         PR middle-end/40943
14120         * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
14121         operand of INDIRECT_REF.
14122
14123 2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
14124
14125         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
14126         constants referencing TLS symbols.
14127
14128 2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
14129
14130         * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
14131         __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
14132
14133 2009-08-03  Richard Guenther  <rguenther@suse.de>
14134
14135         * tree.c (make_vector_type): Build a main variant first,
14136         get the canonical one and then build the variant.
14137         * tree-ssa.c (useless_type_conversion_p_1): Handle
14138         fixed-point types.
14139         (useless_type_conversion_p): Conversions to pointers to
14140         incomplete record types are useless.
14141
14142 2009-08-03  Richard Guenther  <rguenther@suse.de>
14143
14144         * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
14145         file will be created.
14146         * omp-low.c (pass_diagnose_omp_blocks): Likewise.
14147         * toplev.c (compile_file): Adjust comment.
14148
14149 2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
14150
14151         * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
14152         * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
14153         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14154         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
14155         (sh_promote_function_mode): Fix typo.
14156
14157 2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
14158
14159         * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
14160
14161 2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14162
14163         * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
14164         declaration arguments.
14165
14166 2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
14167
14168         * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
14169         of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
14170         (ix86_split_ashl): Ditto.
14171         (ix86_expand_vector_init_one_nonzero): Ditto.
14172         (ix86_expand_vector_set): Ditto.
14173         (ix86_expand_reduc_v4sf): Ditto.
14174
14175 2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
14176
14177         * explow.c (promote_function_mode): Remove assert.
14178         * config/sh/sh.c (sh_promote_function_mode): Declare.
14179
14180 2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14181
14182         * config/pa/pa.c (pa_promote_function_mode): Declare.
14183         Change to static.  Fix promote_mode call.
14184
14185         * gthr-dce.h (CONST_CAST2): Define if not defined.
14186         (__gthread_setspecific): Use CONST_CAST2 to fix warning.
14187
14188         * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
14189
14190 2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
14191
14192         * expr.c (store_constructor): Use promote_decl_mode.  Remove
14193         now write-only variable unsignedp.
14194         (expand_expr_real_1): Use promote_decl_mode.
14195         * expr.h (promote_function_mode, promote_decl_mode): New.
14196         (promote_mode): Remove last argument.
14197         * function.c (assign_temp): Drop last argument of promote_mode.
14198         (assign_parm_find_data_types): Use promote_function_mode.
14199         (assign_parm_setup_reg): Likewise.
14200         (expand_function_end): Use promote_function_mode.
14201         * calls.c (initialize_argument_information): Use promote_function_mode.
14202         (precompute_arguments): Use promote_mode instead of checking if
14203         only PROMOTE_FUNCTION_MODE is defined.
14204         (expand_call): When making sibcall decisions, use promote_function_mode.
14205         Below, remove an if for targetm.calls.promote_function_return and
14206         and use promote_function_mode.
14207         (emit_library_call_value_1): Use promote_function_mode, fix bug
14208         where promote_mode was passed FOR_CALL == 0 for a return value in an
14209         assertion.
14210         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
14211         * explow.c (promote_function_mode, promote_decl_mode): New.
14212         (promote_mode): Keep only the FOR_CALL == 0 case.
14213         * combine.c (setup_incoming_promotion): Remove test of
14214         promote_function_args.  Use promote_function_mode.
14215         * stmt.c (expand_value_return): Use promote_decl_mode.
14216         (expand_decl): Use promote_decl_mode.
14217
14218         * expr.c (store_constructor): Use promote_decl_mode.  Remove
14219         now write-only variable unsignedp.
14220         (expand_expr_real_1): Use promote_decl_mode.
14221         * expr.h (promote_function_mode, promote_decl_mode): New.
14222         (promote_mode): Remove last argument.
14223         * function.c (assign_temp): Drop last argument of promote_mode.
14224         (assign_parm_find_data_types): Use promote_function_mode.
14225         (assign_parm_setup_reg): Likewise.
14226         (expand_function_end): Use promote_function_mode.
14227         * calls.c (initialize_argument_information): Use promote_function_mode.
14228         (precompute_arguments): Use promote_mode instead of checking if
14229         only PROMOTE_FUNCTION_MODE is defined.
14230         (expand_call): When making sibcall decisions, use promote_function_mode.
14231         Below, remove an if for targetm.calls.promote_function_return and
14232         and use promote_function_mode.
14233         (emit_library_call_value_1): Use promote_function_mode, fix bug
14234         where promote_mode was passed FOR_CALL == 0 for a return value in an
14235         assertion.
14236         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
14237         * explow.c (promote_function_mode, promote_decl_mode): New.
14238         (promote_mode): Keep only the FOR_CALL == 0 case.
14239         * combine.c (setup_incoming_promotion): Remove test of
14240         promote_function_args.  Use promote_function_mode.
14241         * stmt.c (expand_value_return): Use promote_decl_mode.
14242         (expand_decl): Use promote_decl_mode.
14243
14244         * explow.c (promote_function_mode): Just call the target hook.
14245         * targhooks.c (default_promote_function_mode,
14246         default_promote_function_mode_always_promote): New.
14247         * targhooks.h (default_promote_function_mode,
14248         default_promote_function_mode_always_promote): Declare.
14249         * target.h (promote_function_args, promote_function_return): Remove.
14250         (promote_function_mode): New.
14251         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
14252         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14253         (TARGET_PROMOTE_FUNCTION_MODE): New.
14254         (TARGET_CALLS): Adjust.
14255         * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
14256         TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
14257
14258         * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
14259         * config/s390/s390.c (s390_promote_function_mode): ... here,
14260         with pointer handling.
14261         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14262         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14263
14264         * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
14265         * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
14266         with pointer handling.
14267         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14268         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14269
14270         * config/sh/sh-protos.h (sh_promote_function_mode): New.
14271         * config/sh/sh.c (sh_promote_function_mode): New.
14272         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14273         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14274
14275         * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
14276         * config/cris/cris.c (cris_promote_function_mode): ... here.
14277         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14278         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
14279
14280         * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
14281         * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
14282         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14283         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
14284
14285         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
14286         * config/arm/arm.c (arm_promote_function_mode): ... here, without
14287         complex type handling.
14288         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14289         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14290
14291         * config/pa/pa.c (pa_promote_function_mode): New.
14292         (TARGET_PROMOTE_FUNCTION_MODE): Define.
14293         (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14294
14295         * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
14296         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
14297         (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
14298         * config/xtensa/xtensa.c: Likewise.
14299         * config/stormy16/stormy16.c: Likewise.
14300         * config/iq2000/iq2000.c: Likewise.
14301         * config/rs6000/rs6000.c: Likewise.
14302         * config/picochip/picochip.c: Likewise.
14303         * config/arc/arc.c: Likewise.
14304         * config/mcore/mcore.c: Likewise.
14305         * config/score/score.c: Likewise.
14306         * config/mips/mips.c: Likewise.
14307         * config/bfin/bfin.c: Likewise.
14308         * config/ia64/ia64.c: Likewise (disabled though).
14309
14310         * config/frv/frv.h: Remove pointless remark.
14311
14312         * doc/tm.texi (PROMOTE_FUNCTION_MODE,
14313         TARGET_PROMOTE_FUNCTION_ARGS,
14314         TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
14315         (TARGET_PROMOTE_FUNCTION_MODE): ... this.
14316
14317 2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
14318
14319         * doc/invoke.texi (-fgraphite-force-parallel): Renamed
14320         -floop-parallelize-all.
14321         * toplev.c (process_options): Rename flag_graphite_force_parallel to
14322         flag_loop_parallelize_all.
14323         * tree-ssa-loop.c (gate_graphite_transforms): Same.
14324         * graphite.c (graphite_transform_loops): Same.
14325         * common.opt: Same.
14326         * graphite-poly.c (apply_poly_transforms): Same.
14327
14328 2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
14329
14330         PR tree-optimization/40914
14331         * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
14332         if set, then check the delta field of the PMF record.
14333         (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
14334         (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
14335         call is stored in the delta.
14336
14337 2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
14338
14339         * config/mips/mips.md (*clear_upper32_dext): New pattern.
14340
14341 2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
14342
14343         * config/i386/bsd.h (ASM_BYTE): New define.
14344         * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
14345         * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
14346         .byte.  Use fputs or putc instead of fprintf where appropriate.
14347         * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
14348         fputs or putc instead of fprintf where appropriate.
14349         * config/i386/i386elf.h: Ditto.
14350         * config/i386/sysv4.h: Ditto.
14351
14352         * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
14353         * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
14354         (*tls_global_dynamic_64): Ditto.
14355
14356 2009-07-31  Christian Bruel  <christian.bruel@st.com>
14357
14358         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
14359
14360 2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14361
14362         * config/arm/arm.c (arm_arm_address_cost): Fix typo.
14363         Remove dead code for MINUS.
14364
14365 2009-07-31  Anthony Green  <green@moxielogic.com>
14366
14367         * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
14368         $r12 in prologue.
14369         (moxie_expand_epilogue): Ditto for epilogue.
14370         (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
14371         incoming arguments.
14372         (moxie_function_arg): Ditto.
14373         (moxie_pass_by_reference): Ditto.
14374         (moxie_arg_partial_bytes): Ditto.
14375         * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
14376         (FUNCTION_ARG_ADVANCE) Ditto.
14377         (REG_PARM_STACK_SPACE) Ditto.
14378         (FUNCTION_ARG_REGNO_P) Dito.
14379
14380         * config.gcc: Add moxie linux config support.
14381         * gcc/config/moxie/uclinux.h: New file.
14382
14383 2009-07-31  DJ Delorie  <dj@redhat.com>
14384
14385         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
14386         (UNSPECV_SP_SWITCH_E): New.
14387         (sp_switch_1): Change to an unspec.
14388         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
14389         replace $r15.
14390         * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
14391         reference the new stack's address
14392
14393 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14394
14395         * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
14396         graphite-clast-to-gimple.o, graphite-dependences.o,
14397         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
14398         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
14399         (graphite-blocking.o,
14400         graphite-clast-to-gimple.o, graphite-dependences.o,
14401         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
14402         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
14403         * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
14404         * cfgloop.h (struct loop): Add can_be_parallel field.
14405         * common.opt (fgraphite-identity): Moved up.
14406         (fgraphite-force-parallel): New flag.
14407         * graphite.c: Rewrite.
14408         * graphite.h: Rewrite.
14409         * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
14410         after Graphite.
14411         * toplev.c (graphite_out_file): New file descriptor.
14412         (graphite_in_file): New.
14413         (process_options): flag_graphite_force_parallel cannot be used without
14414         Graphite.
14415         * tree-ssa-loop.c: Include toplev.h.
14416         (gate_graphite_transforms): Enable flag_graphite for
14417         flag_graphite_force_parallel.
14418
14419 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14420
14421         * ChangeLog.graphite: New.
14422         * graphite-blocking.c: New.
14423         * graphite-clast-to-gimple.c: New.
14424         * graphite-clast-to-gimple.h: New.
14425         * graphite-dependences.c: New.
14426         * graphite-dependences.h: New.
14427         * graphite-interchange.c: New.
14428         * graphite-poly.c: New.
14429         * graphite-poly.h: New.
14430         * graphite-ppl.c: New.
14431         * graphite-ppl.h: New.
14432         * graphite-scop-detection.c: New.
14433         * graphite-scop-detection.h: New.
14434         * graphite-sese-to-poly.c: New.
14435         * graphite-sese-to-poly.h: New.
14436         * sese.c: New.
14437         * sese.h: New.
14438
14439 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14440
14441         * tree-chrec.c (evolution_function_right_is_integer_cst): New.
14442         * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
14443
14444 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14445
14446         * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
14447         (scev_is_linear_expression): Return false if the evolution is not
14448         affine multivariate.
14449
14450 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14451
14452         * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
14453         * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
14454
14455 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14456
14457         * tree-data-ref.c (debug_data_references): New.
14458         (debug_data_reference): New.
14459         * tree-data-ref.h (debug_data_references): Declared.
14460         (debug_data_reference): Declared.
14461
14462 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14463
14464         * tree-data-ref.c (stmt_simple_memref_p: Removed.
14465         * tree-data-ref.h (scop_p): Removed.
14466         (struct data_reference): Remove field scop.
14467         (DR_SCOP): Removed.
14468         (stmt_simple_memref_p): Removed.
14469
14470 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14471
14472         * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
14473         * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
14474         basic block empty.
14475
14476 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14477
14478         * doc/invoke.texi (-fgraphite-force-parallel): Documented.
14479
14480 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14481
14482         * doc/invoke.texi (-fgraphite-identity): Documented.
14483
14484 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14485
14486         * tree-scalar-evolution.c: Fix comment.
14487         (instantiate_scev_1): Return unknow from scev instantiation if the
14488         result is not above instantiate_below.
14489
14490 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
14491
14492         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
14493         static anymore.  Instantiate the symbols that may have been introduced
14494         by chrec_apply.
14495         * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
14496         Declared.
14497
14498 2009-07-30  DJ Delorie  <dj@redhat.com>
14499
14500         * config/mep/mep.c (mep_asm_init_sections): Add section flags and
14501         .vliw directive to VLIW sections.
14502
14503 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14504
14505         * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
14506         New variables.
14507         ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
14508         (AUTOHEADER): New variable.
14509         ($(srcdir)/cstamp-h.in): Use it.
14510
14511 2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
14512             Pat Haugen  <pthaugen@us.ibm.com>
14513             Revital Eres <ERES@il.ibm.com>
14514
14515         * config/rs6000/vector.md (VEC_F): Add VSX support.
14516         (VEC_A): Ditto.
14517         (VEC_N): Ditto.
14518         (mov<mode>): Ditto.
14519         (vector_load_<mode>): Ditto.
14520         (vector_store_<mode>): Ditto.
14521         (vector GPR move split): Ditto.
14522         (vec_reload_and_plus_<mptrsize>): Ditto.
14523         (vec_reload_and_reg_<mptrsize>): Ditto.
14524         (add<mode>3): Ditto.
14525         (sub<mode>3): Ditto.
14526         (mul<mode>3): Ditto.
14527         (neg<mode>2): Ditto.
14528         (abs<mode>2): Ditto.
14529         (smin<mode>3): Ditto.
14530         (smax<mode>3): Ditto.
14531         (vector_eq<mode>): Ditto.
14532         (vector_gt<mode>): Ditto.
14533         (vector_ge<mode>): Ditto.
14534         (vector_gtu<mode>): Ditto.
14535         (vector_select_<mode>_uns): Ditto.
14536         (vector_eq_<mode>_p): Ditto.
14537         (vector_gt_<mode>_p): Ditto.
14538         (vector_ge_<mode>_p): Ditto.
14539         (vector_gtu_<mode>_p): Ditto.
14540         (cr6_test_for_zero): Ditto.
14541         (cr6_test_for_zero_reverse): Ditto.
14542         (cr6_test_for_lt): Ditto.
14543         (cr6_test_for_lt_reverse): Ditto.
14544         (xor<mode>3): Ditto.
14545         (ior<mode>3): Ditto.
14546         (and<mode>3): Ditto.
14547         (one_cmpl<mode>2): Ditto.
14548         (nor<mode>2): Ditto.
14549         (andc<mode>2): Ditto.
14550         (float<VEC_int<mode>2): Ditto.
14551         (unsigned_float<VEC_int><mode>2): Ditto.
14552         (fix_trunc<mode><VEC_int>2): Ditto.
14553         (fixuns_trunc<mode><VEC_int>2): Ditto.
14554         (vec_init<mode>):
14555         (vec_set<mode>): Ditto.
14556         (vec_extract<mode>): Ditto.
14557         (vec_interleave_highv4sf): Ditto.
14558         (vec_interleave_lowv4sf): Ditto.
14559         (vec_realign_load_<mode>): Ditto.
14560         (vec_shl_<mode>): Ditto.
14561         (vec_shr_<mode>): Ditto.
14562         (div<mode>3): New patterns for VSX.
14563         (vec_interleave_highv2df): Ditto.
14564         (vec_interleave_lowv2df): Ditto.
14565         (vec_pack_trunc_v2df): Ditto.
14566         (vec_pack_sfix_trunc_v2df): Ditto.
14567         (vec_pack_ufix_trunc_v2df): Ditto.
14568         (vec_unpacks_hi_v4sf): Ditto.
14569         (vec_unpacks_lo_v4sf): Ditto.
14570         (vec_unpacks_float_hi_v4si): Ditto.
14571         (vec_unpacks_float_lo_v4si): Ditto.
14572         (vec_unpacku_float_hi_v4si): Ditto.
14573         (vec_unpacku_float_lo_v4si): Ditto.
14574         (movmisalign<mode>): Ditto.
14575         (vector_ceil<mode>2): New patterns for vectorizing math library.
14576         (vector_floor<mode>2): Ditto.
14577         (vector_btrunc<mode>2): Ditto.
14578         (vector_copysign<mode>3): Ditto.
14579
14580         * config/rs6000/predicates.md (easy_vector_constant_msb): New
14581         predicate for setting the high bit in each word, used for copysign.
14582
14583         * config/rs6000/ppc-asm.h (f19): Whitespace.
14584         (f32-f63): Define if VSX.
14585         (v0-v31): Define if Altivec.
14586         (vs0-vs63): Define if VSX.
14587
14588         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
14589
14590         * config/rs6000/power7.md: New file, provide tuning parameters for
14591         -mcpu=power7.
14592
14593         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
14594         (rs6000_cpu_cpp_builtins): Ditto.
14595         (altivec_overloaded_builtins): Ditto.
14596         (altivec_resolve_overloaded_builtin): Ditto.
14597
14598         * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
14599         debug switch to disable vectorizing simple math builtin
14600         functions.
14601
14602         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
14603         Vectorize simple math builtin functions.
14604         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
14605         hook to vectorize math builtins.
14606         (rs6000_override_options): Enable -mvsx on -mcpu=power7.
14607         (rs6000_builtin_conversion): Add VSX/power7 support.
14608         (rs6000_builtin_vec_perm): Ditto.
14609         (vsplits_constant): Add support for loading up a vector constant
14610         with just the high bit set in each part.
14611         (rs6000_expand_vector_init): Add VSX/power7 support.
14612         (rs6000_expand_vector_set): Ditto.
14613         (rs6000_expand_vector_extract): Ditto.
14614         (rs6000_emit_move): Ditto.
14615         (bdesc_3arg): Ditto.
14616         (bdesc_2arg): Ditto.
14617         (bdesc_1arg): Ditto.
14618         (rs6000_expand_ternop_builtin): Ditto.
14619         (altivec_expand_builtin): Ditto.
14620         (rs6000_expand_unop_builtin): Ditto.
14621         (rs6000_init_builtins): Ditto.
14622         (altivec_init_builtins): Ditto.
14623         (builtin_function_type): Ditto.
14624         (rs6000_common_init_builtins): Ditto.
14625         (rs6000_handle_altivec_attribute); Ditto.
14626         (rs6000_mangle_type): Ditto.
14627         (rs6000_vector_mode_supported_p): Ditto.
14628         (rs6000_mode_dependent_address): Altivec addresses with AND -16
14629         are mode dependent.
14630
14631         * config/rs6000/vsx.md: New file for VSX support.
14632
14633         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
14634         identifing values with just the most significant bit set.
14635         (enum rs6000_builtins): Add builtins for VSX.  Add simple math
14636         vectorized builtins.
14637
14638         * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
14639         (UNSPEC_VRFIM): Delete.
14640         (splitter for loading up vector with most significant bit): New
14641         splitter for vectorizing copysign.
14642         (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
14643         vectorizing simple math functions.
14644         (altivec_vrfip): Add support for vectorizing simple math functions.
14645         (altivec_vrfim): Ditto.
14646         (altivec_copysign_v4sf3): New insn for Altivec copysign support.
14647
14648         * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
14649         (power7.md, vsx.md): Include for power7 support.
14650         (copysigndf3): Use VSX instructions if -mvsx.
14651         (negdf2_fpr): Ditto.
14652         (absdf2_fpr): Ditto.
14653         (nabsdf2_fpr): Ditto.
14654         (adddf3_fpr): Ditto.
14655         (subdf3_fpr): Ditto.
14656         (muldf3_fpr): Ditto.
14657         (divdf3_fpr): Ditto.
14658         (fix_truncdfdi2_fpr): Ditto.
14659         (cmpdf_internal1): Ditto.
14660         (fred, fred_fpr): Convert into expander/insn to add VSX support.
14661         (btruncdf2, btruncdf2_fpr): Ditto.
14662         (ceildf2, ceildf2_fpr): Ditto.
14663         (floordf2, floordf2_fpr): Ditto.
14664         (floatdidf2, floatdidf2_fpr): Ditto.
14665         (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
14666         (fmsubdf4_fpr): Ditto.
14667         (fnmadddf4_fpr_1): Ditto.
14668         (fnmadddf4_fpr_2): Ditto.
14669         (fnmsubdf4_fpr_1): Ditto.
14670         (fnmsubdf4_fpr_2): Ditto.
14671         (fixuns_truncdfdi2): Add expander for VSX support.
14672         (fix_truncdfdi2): Ditto.
14673         (fix_truncdfsi2): Ditto.
14674         (ftruncdf2): Ditto.
14675         (btruncsf2): Whitespace.
14676         (movdf_hardfloat32): Add support for VSX registers.
14677         (movdf_softfloat32): Ditto.
14678         (movdf_hardfloat64): Ditto.
14679         (movdf_hardfloat64_mfpgpr): Ditto.
14680         (movdf_softfloat64): Ditto.
14681         (movti splitters): Add check for vector registers supporting
14682         TImode in the future.
14683         (bpermd): Add power7 bpermd instruction.
14684
14685         * config/rs6000/altivec.h (vec_div): Define if VSX.
14686         (vec_mul): Ditto.
14687         (vec_msub): Ditto.
14688         (vec_nmadd): Ditto.
14689         (vec_nearbyint): Ditto.
14690         (vec_rint): Ditto.
14691         (vec_sqrt): Ditto.
14692         (all predicates): Use the generic builtin function, and not the V4SF
14693         specific function so that the predicates will work with VSX's V2DF.
14694         (vec_all_*): Ditto.
14695         (vec_any_*): Ditto.
14696
14697         * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
14698         Document new VSX functions and types.
14699
14700         * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
14701         switches.
14702
14703         * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
14704         "wa", and "j" constraints.  Modify "v" to talk about Altivec
14705         instead of just vector.
14706
14707 2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
14708
14709         PR debug/26475
14710         * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
14711         location for phi arguments.
14712         (rewrite_update_phi_arguments): Find locations for reaching defs.
14713         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
14714         Add location to add_phi_arg calls.
14715         * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
14716         * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
14717         split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
14718         * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
14719         create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
14720         * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
14721         * tree-phinodes.c (make_phi_node): Initialize location.
14722         (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
14723         (add_phi_arg): Add location parameter.
14724         (remove_phi_arg_num): Move location when moving phi argument.
14725         * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
14726         location.
14727         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
14728         slpeel_update_phi_nodes_for_guard1,
14729         slpeel_update_phi_nodes_for_guard2,
14730         slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
14731         vect_loop_versioning): Set locations.
14732         * tree-parloops.c (create_phi_for_local_result,
14733         transform_to_exit_first_loop, create_parallel_loop): Add locations.
14734         * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
14735         * tree-vect-loop.c (get_initial_def_for_induction,
14736         vect_create_epilog_for_reduction, vect_finalize_reduction): Add
14737         locations.
14738         * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
14739         (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
14740         (gimple_phi_arg_set_location): New.  Set locus.
14741         (gimple_phi_arg_has_location): New.  Check for locus.
14742         (redirect_edge_var_map_location): New.  Return locus from var_map.
14743         * tree-vect-data-refs.c (vect_setup_realignment): Set location.
14744         * tree-ssa-phiopt.c (conditional_replacement): Set locus when
14745         combining PHI arguments.
14746         (cond_store_replacement): Set location.
14747         * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
14748         * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
14749         scop_add_exit_phis_edge): Add locations.
14750         * tree-cfgcleanup.c (remove_forwarder_block,
14751         remove_forwarder_block_with_phi): Add locations.
14752         * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
14753         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
14754         locations.
14755         * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
14756         * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
14757         flush_pending_stmts): Add source location.
14758         * lambda-code.c (perfect_nestify): Maintain location stack with argument
14759         stack to preserve locations.
14760         * tree-vect-stmts.c (vectorizable_load): Add location.
14761         * tree-inline.c (copy_phis_for_bb): Copy locus.
14762         (setup_one_parameter): Add call locus to inlined parameter stmts.
14763         (initialize_inlined_parameters): Pass in call location as parameter
14764         assignment locus.
14765         (tree_function_versioning): Pass location to setup_one_parameter.
14766         * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
14767         * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
14768         copy and edge lists.
14769         (insert_partition_copy_on_edge, insert_value_copy_on_edge,
14770         insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
14771         locus parameter and override the stmt default if provided.
14772         (new_elim_graph, clear_elim_graph, delete_elim_graph,
14773         elim_graph_add_edge, elim_graph_remove_succ_edge,
14774         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
14775         elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
14776         eliminate_phi):  Add locus info in elimination graph for each edge and
14777         value copy.
14778         (insert_backedge_copies): Copy locus if present.
14779         * tree-flow.h (struct _edge_var_map): Add locus field.
14780         * tree-switch_conversions.c (fix_phi_nodes): Add locations.
14781         * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
14782         add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
14783         locations.
14784         * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
14785
14786 2009-07-30  Martin Jambor  <mjambor@suse.cz>
14787
14788         PR tree-optimization/40570
14789         * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
14790         use inlining loops.
14791
14792 2009-07-30  Razya Ladelsky <razya@il.ibm.com>
14793
14794         * ssa-loop-manip.c: Include langhooks.h.
14795         (rewrite_phi_with_iv): New.
14796         (rewrite_all_phi_nodes_with_iv): New.
14797         (canonicalize_loop_ivs): Move here from tree-parloops.c.
14798         Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
14799         * tree-parloops.c (loop_parallel_p): Move out all conditions
14800         except dependency check.
14801         (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
14802         (gen_parallel_loop): Call canonicalize_loop_ivs without
14803         reduction_list argument.
14804         (build_new_reduction): New.
14805         (gather_scalar_reductions): New.
14806         (try_get_loop_niter): New.
14807         (try_create_reduction_list): New.
14808         (parallleize_loops): Change the parallel conditions check.
14809         * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
14810         * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
14811
14812 2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
14813
14814         * opt-functions.awk (opt_args): Allow argument to be enclosed in
14815         curly braces.
14816         * doc/options.texi (Option properties):  Mention new quoting syntax.
14817
14818 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
14819
14820         * config/alpha/alpha.c (alpha_start_function):
14821         Handle VMS_DEBUG_MAIN_POINTER
14822         * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
14823         * doc/invoke.texi: Document -mdebug-main switch.
14824
14825 2009-07-29  Richard Henderson  <rth@redhat.com>
14826
14827         * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
14828         (cgraph_create_edge_including_clones): Likewise.
14829         * tree-inline.c (copy_bb): Operate on the correct edges
14830         when updating the callgraph.
14831
14832 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
14833
14834         * config/alpha/vms-cc.c: Deleted.
14835         * config/alpha/vms-ld.c: Deleted.
14836         * config/alpha/t-vms64: Moved to config/vms
14837         * config/alpha/vms-crt0-64.c: Moved to config/vms
14838         * config/alpha/vms-crt0.c: Moved to config/vms
14839         * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
14840         * config/alpha/vms-psxcrt0.c: Moved to config/vms
14841         * config/alpha/xm-vms.h: Moved to config/vms
14842         * config/alpha/x-vms: Moved to config/vms
14843         * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
14844         config/vms/t-vms.
14845         * config/vms/t-vms: Moved here from config/alpha. Alpha specific
14846         parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
14847         (version): Set.
14848         * config/vms/t-vms64: Moved here from config/alpha
14849         * config/vms/vms-crt0-64.c: Moved here from config/alpha.
14850         (argc,argv,envp): Enforce 32bit malloc'ing.
14851         * config/vms/vms-psxcrt0-64.c: Likewise.
14852         * config/vms/vms-crt0.c: Moved here from config/alpha.
14853         * config/vms/vms-psxcrt0.c: Likewise.
14854         * config/vms/vms-crtl-64.h: New file.
14855         * config/vms/vms-crtl.h: New file.
14856         * config/vms/vms.opt: New file.
14857         * config/vms/xm-vms64.h: New file.
14858         * config/vms/xm-vms.h: Moved here from config/alpha.
14859         (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
14860         Set.
14861         * config/vms/x-vms: Moved here from config/alpha.
14862         (version, VMS_EXTRA_PARTS): Moved to t-vms.
14863         (vms-ld.o, vms-cc.o): Removed.
14864         (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
14865
14866 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
14867
14868         * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
14869         correct stack (obvious VMS fix).
14870
14871 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
14872
14873         * dwarf2out.c (output_file_names): Output VMS style file name, size,
14874         date, version info if VMS_DEBUGGING_INFO defined.
14875         * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
14876         size, date calculating code moved here.
14877
14878 2009-07-29  Paul Brook  <paul@codesourcery.com>
14879
14880         * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
14881         do_push/do_pop.
14882
14883 2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
14884
14885         PR target/40577
14886         * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
14887         to DImode when generating insq_le insn.
14888
14889 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
14890
14891         * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
14892         New macro set for VMS_DEBUGGGING_INFO.
14893         (AT_string_form): Use it.
14894
14895 2009-07-28  DJ Delorie  <dj@redhat.com>
14896
14897         * config/mep/mep.c (vtext_section): New.
14898         (vftext_section): New.
14899         (ftext_section): New.
14900         (mep_select_section): Add support for functions.
14901         (mep_unique_section): Likewise.
14902         (mep_asm_init_sections): Likewise.
14903         (mep_encode_section_info): Remove it from here.
14904
14905         * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
14906
14907 2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
14908
14909         * tree.h (TREE_DEPRECATED): Document it is used for types too.
14910         (TYPE_VECTOR_OPAQUE): Use default_def_flag
14911
14912 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
14913
14914         * dwarf2out.c (output_file_names): Test new macro
14915         DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
14916         (add_comp_dir_attribute): Likewise.
14917
14918 2009-07-28  Kai Tietz  <kai.tietz@onevision.com>
14919
14920         * config/i386/mingw-w64.h (LINK_SPEC): Add
14921         separating space between commands.
14922
14923 2009-07-28  Jan Hubicka  <jh@suse.cz>
14924
14925         PR tree-optimization/40759
14926         * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
14927         for renaming.
14928
14929 2009-07-27  DJ Delorie  <dj@redhat.com>
14930
14931         * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
14932         types are dword-aligned.
14933         (mep_expand_va_start): Likewise.
14934
14935 2009-07-27  Olivier Hainque  <hainque@adacore.com>
14936             Douglas B Rupp  <rupp@gnat.com>
14937
14938         * convert.c (convert_to_pointer): Don't assume the target
14939         pointer type is POINTER_SIZE long. Fetch its precision instead.
14940
14941 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
14942
14943         * system.h (fopen): Undefine if macro.
14944
14945 2009-07-27  Jakub Jelinek  <jakub@redhat.com>
14946
14947         * dwarf2out.c (output_cfi_p): Removed.
14948         (output_cfis): New function.
14949         (output_fde): New function, split from output_call_frame_info.
14950         (output_call_frame_info): Use it.
14951         (dwarf2out_switch_text_section): Use output_cfis.
14952
14953 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
14954
14955         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
14956         TARGET_BI_ARCH is specified without enabling SJLJ.
14957         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
14958         if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
14959
14960 2009-07-26  Mikael Pettersson <mikpe@it.uu.se>
14961
14962         * arm.md (negdi2): Use DImode if forcing a value into a register.
14963
14964 2009-07-26  Ira Rosen  <irar@il.ibm.com>
14965
14966         PR tree-optimization/40801
14967         * tree-vect-stmts.c (vectorizable_call): Get previous copy
14968         of vector operand from the previous copy of vector statement.
14969         Pass the correct definition type value to
14970         vect_get_vec_def_for_stmt_copy().
14971
14972 2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14973
14974         * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
14975         const char ** conversion.
14976
14977 2009-07-25 David Daney <ddaney@caviumnetworks.com>
14978
14979         * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
14980         fancy_abort() if !ENABLE_ASSERT_CHECKING.
14981         (gcc_unreachable): Invoke __builtin_unreachable() if
14982         !ENABLE_ASSERT_CHECKING.
14983
14984 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
14985
14986         PR rtl-optimization/40445
14987         * emit-rtl.c (next_nonnote_insn_bb): New function.
14988         * rtl.h (next_nonnote_insn_bb): Declare new function.
14989         * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
14990         with no successors that is the successor of the ENTRY_BLOCK.
14991         Continue from the top after removing an empty fallthrough block.
14992         * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
14993         of next_nonnote_insn.
14994
14995 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
14996
14997         * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
14998
14999 2009-07-25  Martin Jambor  <mjambor@suse.cz>
15000
15001         * c-common.c (c_common_attribute_table): New element for noclone.
15002         (handle_noclone_attribute): New function. Forward-declare.
15003         * tree-inline.c (tree_versionable_function_p): Check for noclone
15004         attribute.
15005         * doc/extend.texi (Labels as Values): Document need for noclone.
15006         (Function Attributes): Document noclone attribute.
15007
15008 2009-07-25  Jakub Jelinek  <jakub@redhat.com>
15009
15010         PR rtl-optimization/34999
15011         * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
15012         and dw_fde_switched_cold_to_hot fields.
15013         (output_cfi_p): New function.
15014         (output_call_frame_info): If fde->dw_fde_switched_sections,
15015         output 2 FDEs instead of one with corrupted header.
15016         (dwarf2out_do_cfi_startproc): New function.
15017         (dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
15018         and fde->dw_fde_switched_cold_to_hot.
15019         (dwarf2out_switch_text_section): Compute
15020         fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
15021         If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
15022         dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
15023         Otherwise, compute fde->dw_fde_switch_cfi.
15024
15025 2009-07-24  Cary Coutant  <ccoutant@google.com>
15026
15027         * tree-cfg.c (assign_discriminator): Add explicit parentheses.
15028
15029 2009-07-24  Cary Coutant  <ccoutant@google.com>
15030
15031         * cfghooks.c (split_block): Copy discriminator to new block.
15032         * tree-cfg.c (assign_discriminator): Check location of last
15033         instruction in block as well as first.
15034
15035 2009-07-24  Uros Bizjak  <ubizjak@gmail.com>
15036
15037         * config/i386/linux.c: Use fputs or putc instead of fprintf
15038         where appropriate.
15039         * config/i386/gas.h: Ditto.
15040         * config/i386/x86-64.h: Ditto.
15041         * config/i386/att.h: Ditto.
15042
15043 2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15044
15045         * expmed.c (emit_store_flag): Use a recursive call to optimize the
15046         xor case.
15047
15048 2009-07-24  Martin Jambor  <mjambor@suse.cz>
15049
15050         * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
15051         (ipa_push_func_to_list_1): Declare.
15052         (ipa_push_func_to_list): New function.
15053
15054         * ipa-prop.c (ipa_push_func_to_list_1): New function.
15055         (ipa_init_func_list): Call ipa_push_func_to_list_1.
15056         (ipa_push_func_to_list): Removed.
15057         (ipa_pop_func_from_list): Clear node_enqueued flag.
15058
15059 2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
15060
15061         * config/s390/s390.c (override_options): Default
15062         max-unrolled-insns to 100 for z10 tuning.
15063
15064 2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>
15065
15066         * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
15067         tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
15068         tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
15069         tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
15070         tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
15071         tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
15072         lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
15073
15074 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
15075
15076         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
15077         use default set in mingw32.h header.
15078         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
15079         64-bit /mingw/include path.
15080         (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
15081         path.
15082
15083 2009-07-23  Neil Vachharajani  <nvachhar@google.com>
15084
15085         PR rtl-optimization/40209
15086         * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
15087
15088 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
15089
15090         * config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
15091         ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
15092         with the rest of string where appropriate.  Use fputs or putc
15093         instead of fprintf where appropriate.
15094
15095 2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
15096             Pat Haugen  <pthaugen@us.ibm.com>
15097             Revital Eres <ERES@il.ibm.com>
15098
15099         * config/rs6000/vector.md: New file.  Move most of the vector
15100         expander support here from altivec.md to allow for the VSX vector
15101         unit in the future.  Add support for secondary_reload patterns.
15102         Rewrite the patterns for vector comparison, and vector comparison
15103         predicate instructions so that the RTL expresses the desired
15104         behavior, instead of using unspec.
15105
15106         * config/rs6000/constraints.md ("f" constraint): Use
15107         rs6000_constraints to hold the precalculated register class.
15108         ("d" constraint): Ditto.
15109         ("wd" constraint): New constraint for VSX.
15110         ("wf" constraint): Ditto.
15111         ("ws" constraint): Ditto.
15112         ("wa" constraint): Ditto.
15113         ("wZ" constraint): Ditto.
15114         ("j" constraint): Ditto.
15115
15116         * config/rs6000/predicates.md (vsx_register_operand): New
15117         predicate for VSX.
15118         (vfloat_operand): New predicate for vector.md.
15119         (vint_operand): Ditto.
15120         (vlogical_operand): Ditto.
15121         (easy_fp_constant): If VSX, 0.0 is an easy constant.
15122         (easy_vector_constant): Add VSX support.
15123         (altivec_indexed_or_indirect_operand): New predicate for
15124         recognizing Altivec style memory references with AND -16.
15125
15126         * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
15127         for vector secondary reload support.
15128         (rs6000_vector_reg_class): Delete, replacing it with
15129         rs6000_constraints.
15130         (rs6000_vsx_reg_class): Ditto.
15131         (rs6000_constraints): New array to hold the register classes of
15132         each of the register constraints that can vary at runtime.
15133         (builtin_mode_to_type): New static array for builtin function type
15134         creation.
15135         (builtin_hash_table): New static hash table for builtin function
15136         type creation.
15137         (TARGET_SECONDARY_RELOAD): Define target hook.
15138         (TARGET_IRA_COVER_CLASSES): Ditto.
15139         (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
15140         registers are 128 bits if VSX memory reference instructions are used.
15141         (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
15142         unit is being used.
15143         (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
15144         (rs6000_debug_reg_global): Move -mdebug=reg statements here.
15145         Print several of the scheduling related parameters.
15146         (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
15147         rs6000_constraints instead of rs6000_vector_reg_class.  Move
15148         -mdebug=reg code to rs6000_debug_reg_global.  Add support for
15149         -mvsx-align-128 debug switch.  Drop testing float_p if VSX or
15150         Altivec.  Add VSX support.  Setup for secondary reload support on
15151         Altivec/VSX registers.
15152         (rs6000_override_options): Make power7 set the scheduling groups
15153         like the power5.  Add support for new debug switches to override
15154         the scheduling defaults.  Temporarily disable -mcpu=power7 from
15155         setting -mvsx.  Add support for debug switches -malways-hint,
15156         -msched-groups, and -malign-branch-targets.
15157         (rs6000_buitlin_conversion): Add support for returning unsigned
15158         vector conversion functions to fix regressions due to stricter
15159         type checking.
15160         (rs6000_builtin_mul_widen_even): Ditto.
15161         (rs6000_builtin_mul_widen_odd): Ditto.
15162         (rs6000_builtin_vec_perm): Ditto.
15163         (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
15164         (rs6000_expand_vector_init): Initial VSX support for using xxlxor
15165         to zero a register.
15166         (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
15167         generated upstream.
15168         (bdesc_3arg): Add builtins for unsigned types.  Add builtins for
15169         VSX types for bit operations.  Changes to accomidate vector.md.
15170         (bdesc_2arg): Ditto.
15171         (bdesc_1arg): Ditto.
15172         (struct builtin_description_predicates): Rewrite predicate
15173         handling so that RTL describes the operation, instead of passing
15174         the instruction to be used as a string argument.
15175         (bdesc_altivec_preds): Ditto.
15176         (altivec_expand_predicate_builtin): Ditto.
15177         (altivec_expand_builtin): Ditto.
15178         (rs6000_expand_ternop_builtin): Use a switch instead of an if
15179         statement for vsldoi support.
15180         (altivec_expand_ld_builtin): Change to use new names from vector.md.
15181         (altivec_expand_st_builtin): Ditto.
15182         (paired_expand_builtin): Whitespace changes.
15183         (rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
15184         builtin_mode_to_type table for secondary reload.  Call
15185         builtin_function_type to build random builtin functions.
15186         (altivec_init_builtins): Change to use builtin_function_type to
15187         create builtin function types dynamically as we need them.
15188         (builtin_hash_function): New support for hashing the tree types
15189         for builtin function as we need it, rather than trying to build
15190         all of the trees that we need.  Add initial preliminary VSX support.
15191         (builtin_function_type): Ditto.
15192         (builtin_function_eq): Ditto.
15193         (builtin_hash_struct): Ditto.
15194         (rs6000_init_builtins): Ditto.
15195         (rs6000_common_init_builtins): Ditto.
15196         (altivec_init_builtins): Ditto.
15197         (rs6000_common_init_builtins): Ditto.
15198         (enum reload_reg_type): New enum for simplifing reg classes.
15199         (rs6000_reload_register_type): Simplify register classes into GPR,
15200         Vector, and other registers.  Altivec and VSX addresses in reload.
15201         (rs6000_secondary_reload_inner): Ditto.
15202         (rs6000_ira_cover_classes): New target hook, that returns the
15203         appropriate cover classes, based on -mvsx being used or not.
15204         (rs6000_secondary_reload_class): Add VSX support.
15205         (get_vec_cmp_insn): Delete, rewrite vector conditionals.
15206         (get_vsel_insn): Ditto.
15207         (rs6000_emit_vector_compare): Rewrite vector conditional support
15208         so that where we can, we use RTL operators, instead of blindly use
15209         UNSPEC.
15210         (rs6000_emit_vector_select): Ditto.
15211         (rs6000_emit_vector_cond_expr): Ditto.
15212         (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
15213         (create_TOC_reference): Add -mdebug=addr support.
15214         (emit_frame_save): VSX loads/stores need register indexed addressing.
15215
15216         * config/rs6000/rs6000.md: Include vector.md.
15217
15218         * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
15219
15220         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15221         support for V2DI, V2DF in logical, permute, select operations.
15222
15223         * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
15224         switch for vsx/power7.
15225         (-mvsx-scalar-memory): Ditto.
15226         (-mvsx-align-128): Ditto.
15227         (-mallow-movmisalign): Ditto.
15228         (-mallow-df-permute): Ditto.
15229         (-msched-groups): Ditto.
15230         (-malways-hint): Ditto.
15231         (-malign-branch-targets): Ditto.
15232
15233         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
15234         hook instead.
15235         (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
15236         (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
15237         (rs6000_vector_reg_class): Delete.
15238         (rs6000_vsx_reg_class): Ditto.
15239         (enum rs6000_reg_class_enum): New enum for the constraints that
15240         vary based on target switches.
15241         (rs6000_constraints): New array to hold the register class for all
15242         of the register constraints that vary based on the switches used.
15243         (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
15244         (enum rs6000_builtins): Add unsigned varients for the builtin
15245         declarations returned by target hooks for expanding multiplies,
15246         select, and permute operations.  Add VSX builtins.
15247         (enum rs6000_builtin_type_index): Add entries for VSX.
15248         (V2DI_type_node): Ditto.
15249         (V2DF_type_node): Ditto.
15250         (unsigned_V2DI_type_node): Ditto.
15251         (bool_long_type_node): Ditto.
15252         (intDI_type_internal_node): Ditto.
15253         (uintDI_type_internal_node): Ditto.
15254         (double_type_internal_node): Ditto.
15255
15256         * config/rs6000/altivec.md (whole file): Move all expanders to
15257         vector.md from altivec.md.  Rename insn matching functions to be
15258         altivec_foo.
15259         (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
15260         (altivec_vcmp*): Ditto.
15261         (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
15262         (VM): New iterator for moves that includes the VSX types.
15263         (altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
15264         (altivec_vperm_<mode>_uns): New, for unsigned types.
15265         (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
15266         (altivec_eq<mode>): Ditto.
15267         (altivec_gt<mode>): Ditto.
15268         (altivec_gtu<mode>): Ditto.
15269         (altivec_eqv4sf): Ditto.
15270         (altivec_gev4sf): Ditto.
15271         (altivec_gtv4sf): Ditto.
15272         (altivec_vcmpbfp_p): Ditto.
15273
15274 2009-07-23  Richard Earnshaw  <rearnsha@arm.com>
15275
15276         * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
15277         unsigned HWI.
15278
15279 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
15280
15281         PR target/40832
15282         * config/i386/i386.c (output_387_ffreep): Rewrite to use
15283         ASM_SHORT instead of .word.
15284         * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
15285         instead of .word in asm template.
15286
15287 2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>
15288
15289         PR target/37488
15290         * ira-lives.c (bb_has_abnormal_call_pred): New function.
15291         (process_bb_node_lives): Use it.
15292
15293         * ira.c (setup_cover_and_important_classes): Don't setup
15294         ira_important_class_nums.  Add cover classes to the end of
15295         important classes.
15296         (cover_class_order, comp_reg_classes_func, reorder_important_classes):
15297         New.
15298         (find_reg_class_closure): Use reorder_important_classes.
15299
15300         * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
15301
15302         * config/i386/i386.c (i386_ira_cover_classes): New function.
15303         (TARGET_IRA_COVER_CLASSES): Redefine.
15304
15305         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
15306         importance of order of cover classes in the array.
15307
15308 2009-07-22  Diego Novillo  <dnovillo@google.com>
15309
15310         * tree-pass.h (TDF_EH): Define.
15311         * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
15312         contains TDF_EH, print the EH region number holding GS.
15313         * tree-dump.c (dump_options): Add "eh".
15314         * doc/invoke.texi: Document it.
15315
15316 2009-07-22  Doug Kwan  <dougkwan@google.com>
15317
15318         * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
15319
15320 2009-07-22  Michael Matz  <matz@suse.de>
15321
15322         PR tree-optimization/35229
15323         PR tree-optimization/39300
15324
15325         * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
15326         (inhibit_phi_insertion): New function.
15327         (insert_into_preds_of_block): Call it for REFERENCEs.
15328         (init_pre): Initialize and finalize scalar evolutions.
15329         * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
15330
15331 2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
15332
15333         * config/i386/predicates.md (zero_extended_scalar_load_operand):
15334         Use CONST_VECTOR_NUNITS to determine number of elements.
15335
15336 2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
15337
15338         * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
15339         (U, W): Constraints are now deprecated and will be removed if we
15340         run out of letters.
15341         * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
15342         the file.
15343         ("prefetch"): Add the stcmh instruction for prefetching.
15344         * config/s390/s390.c (s390_symref_operand_p): Function moved. No
15345         changes.
15346         (s390_short_displacement): Return always true if compiling for
15347         machines not providing the long displacement facility.
15348         (s390_mem_constraint): Support the new constraint letter Z.
15349         (s390_check_qrst_address): New function.
15350
15351 2009-07-21  DJ Delorie  <dj@redhat.com>
15352
15353         * config/mep/mep.c (mep_legitimize_arg): Leave control registers
15354         alone too.
15355
15356 2009-07-21  Jason Merrill  <jason@redhat.com>
15357
15358         * c-common.c (max_tinst_depth): Increase default to 1024.
15359
15360 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
15361
15362         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
15363         (vec_unpacku_float_lo_v4si): Ditto.
15364
15365 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
15366
15367         PR target/40811
15368         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
15369         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
15370         (builtin_description): Add __builtin_ia32_cvtudq2ps.
15371         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
15372
15373 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
15374
15375         PR tree-optimization/40813
15376         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
15377         it.
15378
15379 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
15380
15381         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
15382         with a NOP_EXPR if needed.
15383
15384 2009-07-21  Paul Brook <paul@codesourcery.com>
15385
15386         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
15387         Terminate debug dump with newline.
15388
15389 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15390
15391         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
15392         Cast "1" to unsigned HOST_WIDE_INT.
15393         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
15394         deposit length to the maximum length - lsb.  Extend length if
15395         HOST_BITS_PER_WIDE_INT is 32.
15396
15397 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
15398
15399         * cgraph.h (constant_pool_htab): New function.
15400         (constant_descriptor_tree): Move from varasm.c.
15401         * varasm.c (constant_pool_htab): New function.
15402         (constant_descriptor_tree): Move to cgraph.h.
15403
15404 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
15405
15406         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
15407
15408 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
15409
15410         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
15411         $(VARRAY_H).
15412
15413 2009-07-20  Xinliang David Li  <davidxl@google.com>
15414
15415         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
15416
15417 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
15418
15419         * config/mips/mips.md (move_type): Add arith.
15420         (type): Handle arith.
15421         (zero_extendsidi2): Rename this into ...
15422         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
15423         (zero_extendsidi2): New expander.
15424         (*zero_extendsidi2_dext): New pattern.
15425
15426 2009-07-20  Nick Clifton  <nickc@redhat.com>
15427
15428         * config.gcc (mips64-*-*): Add definition of tm_defines in order
15429         to set MIPS_ABI_DEFAULT.
15430         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
15431
15432 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
15433
15434         * tree-object-size.c (addr_object_size): Handle unions with
15435         array in it as last field of structs in __bos (, 1) as __bos (, 0).
15436
15437         PR tree-optimization/40792
15438         * tree.c (build_function_type_skip_args): Remove bogus assert.
15439
15440 2009-07-20  Jan Hubicka  <jh@suse.cz>
15441             Martin Jambor  <mjambor@suse.cz>
15442
15443         * cgraph.h (combined_args_to_skip): New field.
15444         * cgraph.c (cgraph_create_virtual_clone): Properly handle
15445         combined_args_to_skip and args_to_skip.
15446         * tree-inline.c (update_clone_info): New function.
15447         (tree_function_versioning): Call update_clone_info.
15448         * cgraphunit.c (cgraph_materialize_clone): Dump materialized
15449         functions.
15450         (cgraph_materialize_all_clones): More extensive dumping, working
15451         with combined_args_to_skip rather than args_to_skip.
15452
15453 2009-07-20  Ira Rosen  <irar@il.ibm.com>
15454
15455         * tree-vectorizer.h (vectorizable_condition): Add parameters.
15456         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
15457         (get_initial_def_for_reduction): Likewise.
15458         (vectorizable_reduction): Skip the check of first operand in case
15459         of COND_EXPR. Add check that it is outer loop vectorization if
15460         nested cycle was detected. Call vectorizable_condition() for
15461         COND_EXPR. If reduction epilogue cannot be created do not fail for
15462         nested cycles (if it is not double reduction). Assert that there
15463         is only one type in the loop in case of COND_EXPR. Call
15464         vectorizable_condition() to vectorize COND_EXPR.
15465         * tree-vect-stmts.c (vectorizable_condition): Update comment.
15466         Add parameters. Allow nested cycles if called from
15467         vectorizable_reduction(). Use reduction vector variable if provided.
15468         (vect_analyze_stmt): Call vectorizable_reduction() before
15469         vectorizable_condition().
15470         (vect_transform_stmt): Update call to vectorizable_condition().
15471
15472 2009-07-20  Christian Bruel  <christian.bruel@st.com>
15473
15474         * config/sh/sh.opt (-mfmovd): Resurrect and document.
15475         * doc/invoke.texi (-mfmovd): Likewise.
15476         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
15477
15478 2009-07-20  Jan Hubicka  <jh@suse.cz>
15479
15480         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
15481         when handling SSA name.
15482
15483 2009-07-19  Jan Hubicka  <jh@suse.cz>
15484
15485         PR tree-optimization/40676
15486         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
15487         virtual PHIs in empty BBs.
15488
15489 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
15490
15491         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
15492         re-expanded the compound use gen_lowpart instead to convert to the
15493         desired mode.
15494
15495 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
15496
15497         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
15498         OUTER_CONST arguments.
15499         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
15500         the new wider mode will be masked off.
15501         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
15502
15503 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
15504
15505         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
15506         high-order bits are zero.
15507
15508 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
15509
15510         * combine.c (simplify_shift_const_1): Split code to determine
15511         shift_mode into ...
15512         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
15513         new bits shifted in are identical to the old sign bit.
15514
15515 2009-07-18  Richard Guenther  <rguenther@suse.de>
15516
15517         PR c/40787
15518         * gimplify.c (gimplify_call_expr): Reject code using results from
15519         functions returning void.
15520
15521 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
15522
15523         * doc/md.texi: Document the new PowerPC "es" constraint.
15524         Document that "m" can include automodified addresses on this target,
15525         and explain how %U must be used.  Extend the "Q" and "Z" documentation
15526         to suggest "es" as well as "m".
15527         * config/rs6000/constraints.md (es): New memory constraint.
15528         (Q, Z): Update strings to match new documentation.
15529
15530 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
15531
15532         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
15533         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
15534         * config/rs6000/predicates.md (volatile_mem_operand): Use
15535         offsettable_nonstrict_memref_p.
15536         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
15537         (*floatunssidf2_internal): Likewise.
15538         (*fix_truncdfsi2_internal): Likewise.
15539         (*fix_trunctfsi2_internal): Likewise.
15540
15541 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
15542
15543         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
15544         atmega32u2 devices.
15545         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15546
15547 2009-07-17  Richard Guenther  <rguenther@suse.de>
15548
15549         PR c/40401
15550         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
15551         (pass_warn_unused_result): Likewise.
15552         (TODO_set_props): Remove.
15553         * omp-low.c (diagnose_omp_structured_block_errors): Change to
15554         run as a pass.
15555         (pass_diagnose_omp_blocks): Define.
15556         * c-decl.c (pop_file_scope): Do not finalize the CU here.
15557         (c_gimple_diagnostics_recursively): Remove.
15558         (finish_function): Do not call it.
15559         (c_write_global_declarations): Continue after errors.
15560         Finalize the CU here.
15561         * c-gimplify.c (c_genericize): Do not gimplify here.
15562         * c-common.c (c_warn_unused_result): Move ...
15563         * tree-cfg.c (do_warn_unused_result): ... here.
15564         (run_warn_unused_result): New function.
15565         (gate_warn_unused_result): New function.
15566         (pass_warn_unused_result): New pass.
15567         * c-common.h (c_warn_unused_result): Remove.
15568         * flags.h (flag_warn_unused_result): Declare.
15569         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
15570         * opts.c (flag_warn_unused_result): Initialize to false.
15571         * toplev.c (compile_file): Add comment.
15572         * omp-low.c (create_omp_child_function): Do not register
15573         the function with the frontend.
15574         (diagnose_omp_structured_block_errors): Prepare to be
15575         called as optimization pass.
15576         (gate_diagnose_omp_blocks): New function.
15577         (pass_diagnose_omp_blocks): New pass.
15578         * cgraph.h (cgraph_optimize): Remove.
15579         (cgraph_analyze_function): Likewise.
15580         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
15581         * cgraphunit.c (cgraph_lower_function): Lower nested functions
15582         before their parents here.
15583         (cgraph_finalize_function): Not here.
15584         (cgraph_analyze_function): Gimplify functions here.
15585         (cgraph_finalize_compilation_unit): Continue after errors.
15586         Optimize the callgraph from here.
15587         (cgraph_optimize): Make static.
15588         * langhooks.c (write_global_declarations): Finalize the CU.
15589         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
15590         (gimplify_function_tree): Assert we gimplify only once.
15591         Set PROP_gimple_any property.
15592         * tree-nested.c (gimplify_all_functions): New function.
15593         (lower_nested_functions): Gimplify all nested functions.
15594         * gimple.h (diagnose_omp_structured_block_errors): Remove.
15595         * passes.c (init_optimization_passes): Add pass_warn_unused_result
15596         and pass_diagnose_omp_blocks after gimplification.  Do not
15597         set TODO_set_props on all_lowering_passes.
15598         (execute_one_pass): Do not handle TODO_set_props.
15599         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
15600         (gimplify.o): Add tree-pass.h dependency.
15601         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
15602         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
15603         (unsave_r): Likewise.
15604         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
15605         temporary variable.
15606
15607 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
15608
15609         * doc/service.texi (Service): Restore previously removed link,
15610         which isn't broken after all.
15611
15612 2009-07-17  Richard Guenther  <rguenther@suse.de>
15613
15614         PR tree-optimization/40321
15615         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
15616         PHI nodes to the maximal set.
15617         (make_values_for_phi): Add PHI arguments to the maximal set.
15618         (execute_pre): Dump PHI_GEN and the maximal set.
15619
15620 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
15621
15622         PR c++/40780
15623         * gimplify.c (gimplify_conversion): Don't change non-conversions into
15624         VIEW_CONVERT_EXPR.
15625
15626 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
15627
15628         * doc/extend.texi (Nested Functions): Replace broken link with
15629         textual reference.
15630         * doc/service.texi (Service): Remove broken link.
15631
15632 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
15633
15634         PR bootstrap/40781
15635         * builtins.c (expand_builtin_memcmp): Use loc instead of
15636         EXPR_LOCATION (exp).
15637         (expand_builtin_strncmp): Likewise.
15638
15639 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
15640             Manuel López-Ibáñez  <manu@gcc.gnu.org>
15641
15642         PR 40435
15643         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
15644         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
15645         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
15646         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
15647         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
15648         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
15649         tree-inline.c, c-common.c, c-common.h, gimple.c,
15650         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
15651         convert.c: Add location argument to fold_{unary,binary,ternary},
15652         fold_build[123], build_call_expr, build_size_arg,
15653         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
15654         fold_build1_initializer, fold_build2_initializer,
15655         fold_build3_initializer, fold_build_call_array,
15656         fold_build_call_array_initializer, fold_single_bit_test,
15657         omit_one_operand, omit_two_operands, invert_truthvalue,
15658         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
15659         combine_comparisons, fold_builtin_*, fold_call_expr,
15660         build_range_check, maybe_fold_offset_to_address, round_up,
15661         round_down.
15662
15663 2009-07-16  Jason Merrill  <jason@redhat.com>
15664
15665         PR libstdc++/37907
15666         * c-common.c (c_common_reswords): Add __is_standard_layout
15667         and __is_trivial.
15668         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
15669         * doc/implement-cxx.texi: New.
15670         * doc/gcc.texi: Include it.
15671
15672 2009-07-16  DJ Delorie  <dj@redhat.com>
15673
15674         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
15675         compares that may be indirectly affected by previous instructions.
15676
15677 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15678
15679         * builtins.c (do_mpc_arg2): New.
15680         (fold_builtin_2): Fold builtin cpow.
15681         * real.h (HAVE_mpc_pow): New.
15682
15683 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
15684
15685         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
15686         comparison to skip unprofitable schedule
15687
15688 2009-07-16  Simon Baldwin  <simonb@google.com>
15689
15690         * gcc.c (option_map): New flag -no-canonical-prefixes.
15691         * (display_help): Print help text for new flag.
15692         * (process_command): Move options translation and language specifics
15693         and handle new flag early.  Use it to set a function pointer to a
15694         prefix builder.  Replace make_relative_prefix calls with calls to
15695         the function pointed to.  Ignore new flag in regular options handling.
15696         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
15697
15698 2009-07-15  DJ Delorie  <dj@redhat.com>
15699
15700         * config/mep/mep.md (sibcall_internal): Change register to avoid
15701         argument registers.
15702         (sibcall_value_internal): Likewise.
15703
15704 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
15705
15706         PR rtl-optimization/40710
15707         * resource.c (mark_target_live_regs): Reset DF problem to LR.
15708
15709 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
15710
15711         * config/mips/mips.md (*extenddi_truncate<mode>,
15712         *extendsi_truncate<mode>): Change type attribute to move_type
15713         with shift_shift.  Split out code handling exts from here ...
15714         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
15715         pattern.
15716         (*extendhi_truncateqi): Change type attribute to move_type with
15717         shift_shift.  Split out code handling exts from here ...
15718         (*extendhi_truncateqi_exts): ... to this new pattern.
15719
15720 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
15721
15722         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
15723         instead of "and" with inverted sign bit mask value.  Use
15724         "nonimmediate_operand" for operand 1 and operand 2 predicate.
15725         Allocate registers only for operand 4 and operand 5.
15726
15727 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
15728
15729         PR middle-end/40747
15730         * fold-const.c (fold_cond_expr_with_comparison): When folding
15731         < and <= to MIN, make sure the MIN uses the same type as the
15732         comparison's operands.
15733
15734 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
15735
15736         * arm.md (ior_xor): New code iterator.
15737         (split for ior/xor with shift and zero-extend): New split pattern.
15738         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
15739
15740 2009-07-15  Richard Guenther  <rguenther@suse.de>
15741
15742         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
15743         offset member.
15744
15745 2009-07-15  Richard Guenther  <rguenther@suse.de>
15746
15747         PR middle-end/40753
15748         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
15749
15750 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
15751
15752         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
15753         handle 2.6.30 kernel.
15754
15755 2009-07-15  DJ Delorie  <dj@redhat.com>
15756
15757         * config/mep/mep.md (sibcall_internal): Change register to allow
15758         for 24-bit addresses.
15759         (sibcall_value_internal): Likewise.
15760
15761 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
15762
15763         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
15764         that are enabled/disabled by the flags introduced by a previous patch.
15765
15766 2009-07-14  DJ Delorie  <dj@redhat.com>
15767
15768         * config/mep/mep.md (sibcall_internal): Include non-toggling
15769         non-jmp case.
15770         (sibcall_value_internal): Likewise.
15771
15772 2009-07-14  Taras Glek  <tglek@mozilla.com>
15773             Rafael Espindola  <espindola@google.com>
15774
15775         * doc/sourcebuild.texi: Document install-plugin target.
15776         * configure.ac: Added install-plugin target to language makefiles.
15777         * configure: Regenerate.
15778         * Makefile.in (install-plugin): Install more headers,
15779         depend on lang.install-plugin.
15780
15781 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15782
15783         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
15784         translation.
15785
15786 2009-07-14  DJ Delorie  <dj@redhat.com>
15787
15788         * config/mep/mep.c (mep_vliw_jmp_match): New function.
15789         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
15790         * config/mep/mep.md (sibcall_internal): Change test from
15791         mep_vliw_mode_match to mep_vliw_jmp_match.
15792         (sibcall_value_internal): Likewise.
15793
15794 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
15795
15796         * config/i386/sse.md (copysign<mode>3): New expander.
15797         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
15798         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
15799         Use ix86_build_const_vector.
15800         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
15801         IX86_BUILTIN_CPYSGNPD.
15802         (builtin_description): Add __builtin_ia32_copysignps and
15803         __builtin_ia32_copysignpd.
15804         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
15805         and BUILT_IN_COPYSIGNF.
15806
15807 2009-07-13  Jason Merrill  <jason@redhat.com>
15808
15809         * builtins.c (can_trust_pointer_alignment): New fn.
15810         (get_pointer_alignment): Factor it out from here.
15811         * tree.h: Declare it.
15812
15813 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
15814
15815         * config/rs6000/predicates.md (offsettable_mem_operand): Test
15816         RTX_AUTOINC class.
15817
15818 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
15819
15820         PR debug/40705
15821         PR c++/403057
15822         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
15823
15824 2009-07-14  Richard Guenther  <rguenther@suse.de>
15825             Andrey Belevantsev <abel@ispras.ru>
15826
15827         PR middle-end/40745
15828         * cfgexpand.c (partition_stack_vars): Do not bother to update
15829         alias information when not optimizing.
15830
15831 2009-07-14  Richard Guenther  <rguenther@suse.de>
15832             Andrey Belevantsev <abel@ispras.ru>
15833
15834         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
15835         (pt_solution_set): Likewise.
15836         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
15837         * tree-ssa-structalias.c (pt_solution_set): New function.
15838         * final.c (rest_of_clean_state): Free SSA data structures.
15839         * print-rtl.c (print_decl_name): Remove.
15840         (print_mem_expr): Implement in terms of print_generic_expr.
15841         * alias.c (ao_ref_from_mem): New function.
15842         (rtx_refs_may_alias_p): Likewise.
15843         (true_dependence): Query alias-export info.
15844         (canon_true_dependence): Likewise.
15845         (write_dependence_p): Likewise.
15846         * tree-dfa.c (get_ref_base_and_extent): For void types leave
15847         size unknown.
15848         * emit-rtl.c (component_ref_for_mem_expr): Remove.
15849         (mem_expr_equal_p): Use operand_equal_p.
15850         (set_mem_attributes_minus_bitpos): Do not use
15851         component_ref_for_mem_expr.
15852         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
15853         (update_alias_info_with_stack_vars): Likewise.
15854         (partition_stack_vars): Call update_alias_info_with_stack_vars.
15855         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
15856         explicitly nor clear stmt operands.
15857         Free the decl-to-pointer map.
15858         * tree-optimize.c (execute_free_datastructures): Do not free
15859         SSA data structures here.
15860         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
15861         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
15862         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
15863         dependencies.
15864         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
15865
15866 2009-07-13  DJ Delorie  <dj@redhat.com>
15867
15868         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
15869         unrolling at the right iteration count.
15870
15871         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
15872         calculations.
15873
15874 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
15875
15876         * haifa-sched.c (rank_for_schedule): Introduced flags to
15877         enable/disable individual scheduling heuristics.
15878         * common.opt: Introduced flags to enable/disable individual
15879         heuristics in the scheduler.
15880         * doc/invoke.texi: Introduced flags to enable/disable individual
15881         heuristics in the scheduler.
15882
15883 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
15884
15885         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
15886         config/i386/mingw-tls.c.
15887         * config/i386/mingw-tls.c: Removed.
15888
15889 2009-07-13  Ira Rosen  <irar@il.ibm.com>
15890
15891         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
15892         checks access only relevant statements.
15893         (vectorizable_reduction): Likewise.
15894
15895 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
15896
15897         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
15898         just for 32-bit case.
15899
15900 2009-07-12  Jan Hubicka  <jh@suse.cz>
15901
15902         PR tree-optimization/40585
15903         * except.c (expand_resx_expr): When there already is resume
15904         instruction, produce linked list.
15905         (build_post_landing_pads): Assert that resume is empty.
15906         (connect_post_landing_pads): Handle resume lists.
15907         (dump_eh_tree): Dump resume list.
15908
15909 2009-07-12  Ira Rosen  <irar@il.ibm.com>
15910
15911         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
15912         with additional argument.
15913         * tree-vectorizer.h (enum vect_def_type): Add
15914         vect_double_reduction_def.
15915         (vect_is_simple_reduction): Add argument.
15916         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
15917         indentation.
15918         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
15919         vect_is_simple_reduction with additional argument.
15920         (vect_analyze_loop_operations): Handle exit phi nodes in case of
15921         double reduction.
15922         (reduction_code_for_scalar_code): Handle additional codes by
15923         returning ERROR_MARK for them. Fix comment and indentation.
15924         (vect_is_simple_reduction): Fix comment, add argument to specify
15925         double reduction. Detect double reduction.
15926         (get_initial_def_for_induction): Fix indentation.
15927         (get_initial_def_for_reduction): Fix comment and indentation.
15928         Handle double reduction. Create initial definitions that do not
15929         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
15930         (vect_create_epilog_for_reduction): Fix comment, add argument to
15931         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
15932         epilogue result extraction. Create double reduction phi node and
15933         replace relevant uses.
15934         (vectorizable_reduction): Call vect_is_simple_reduction with
15935         additional argument. Fix indentation. Update epilogue code treatment
15936         according to the changes in reduction_code_for_scalar_code. Check
15937         for double reduction. Call vect_create_epilog_for_reduction with
15938         additional argument.
15939         * tree-vect-stmts.c (process_use): Handle double reduction, update
15940         documentation.
15941         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
15942         (vect_get_vec_def_for_operand): Likewise.
15943
15944 2009-07-12  Danny Smith  <dansmister@gmail.com>
15945
15946         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
15947         dllexport if !TREE_PUBLIC.
15948         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
15949
15950 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
15951
15952         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
15953         (avr_extra_arch_macro) Remove declatation.
15954         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
15955         (avr_extra_arch_macro) Declare as static.
15956         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
15957
15958 2009-07-11  Jan Hubicka  <jh@suse.cz>
15959
15960         PR middle-end/48388
15961         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
15962
15963 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
15964
15965         PR debug/40713
15966         * dwarf2out.c (dw_fde_struct): Add in_std_section and
15967         cold_in_std_section bits.
15968         (dwarf2out_begin_prologue): Initialize them.
15969         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
15970         if already covered by text_section or cold_text_section range.
15971
15972         PR rtl-optimization/40667
15973         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
15974         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
15975         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
15976         * config/i386/i386.c (ix86_minimum_alignment): New function.
15977         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
15978         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
15979         * emit-rtl.c (gen_reg_rtx): Likewise.
15980         * function.c (assign_parms): Likewise.  If nominal_type needs
15981         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
15982         rather than passed_type's alignment.
15983
15984         PR target/40668
15985         * function.c (assign_parm_setup_stack): Adjust
15986         MEM_OFFSET (data->stack_parm) if promoted_mode is different
15987         from nominal_mode on big endian.
15988
15989 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
15990
15991         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
15992
15993 2009-07-10  DJ Delorie  <dj@redhat.com>
15994
15995         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
15996
15997 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
15998
15999         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
16000         attribute.
16001         (thumb2_cbnz): Likewise.
16002
16003 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
16004
16005         PR target/39079
16006         * config.gcc (supported_defaults): Add synci.
16007         (with_synci): Add validation.
16008         (all_defaults): Add synci.
16009         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
16010         ISA_HAS_SYNCI.
16011         (synci): Same.
16012         * config/mips/mips.opt (msynci): New option.
16013         * config/mips/mips.c (mips_override_options): Warn on use of
16014         -msynci for targets that do now support it.
16015         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
16016         msynci.
16017         * gcc/doc/invoke.texi (-msynci): Document the new option.
16018         * doc/install.texi (--with-synci): Document the new option.
16019
16020 2009-07-10  Richard Guenther  <rguenther@suse.de>
16021
16022         PR tree-optimization/40496
16023         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
16024         the PHI result with a compatible type.
16025
16026 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16027
16028         PR 25509
16029         PR 40614
16030         * c.opt (Wunused-result): New.
16031         * doc/invoke.texi: Document it.
16032         * c-common.c (c_warn_unused_result): Use it.
16033
16034 2009-07-09  DJ Delorie  <dj@redhat.com>
16035
16036         * targhooks.c (default_target_can_inline_p): Rename from
16037         default_target_option_can_inline_p.
16038         * targhooks.h (default_target_can_inline_p): Likewise.
16039         * target-def.h (TARGET_CAN_INLINE_P): Rename from
16040         TARGET_OPTION_CAN_INLINE_P.
16041         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
16042         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
16043         (mep_target_can_inline_p): Rename from
16044         mep_target_option_can_inline_p.
16045
16046         PR target/40626
16047         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
16048         registers used to pass vectors.
16049
16050         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
16051
16052 2009-07-09  Tom Tromey  <tromey@redhat.com>
16053
16054         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
16055         * config/mmix/mmix.c: Include dwarf2.h.
16056         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
16057         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
16058         * config/sh/sh.c: Include dwarf2.h.
16059         * config/i386/i386.c: Include dwarf2.h.
16060         * Makefile.in (DWARF2_H): Remove 'elf'.
16061         * except.c: Include dwarf2.h.
16062         * unwind-dw2.c: Include dwarf2.h.
16063         * dwarf2out.c: Include dwarf2.h.
16064         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
16065         * unwind-dw2-fde.c: Include dwarf2.h.
16066         * dwarf2asm.c: Include dwarf2.h.
16067
16068 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
16069
16070         * haifa-sched.c (insn_finishes_cycle_p): New static function.
16071         (max_issue): Use it.
16072         * sched-int.h (struct sched_info: insn_finishes_block_p): New
16073         scheduler hook.
16074         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
16075         (region_sched_info): Update.
16076         * sched-ebb.c (ebb_sched_info): Update.
16077         * modulo-sched.c (sms_sched_info): Update.
16078         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
16079
16080 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
16081
16082         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
16083
16084 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
16085
16086         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
16087
16088 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
16089
16090         PR middle-end/40692
16091         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
16092         arg1 with arg01 if arg1 is already INTEGER_CST.
16093
16094 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
16095
16096         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
16097         Transform (and (truncate)) into (truncate (and)).
16098
16099 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
16100
16101         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
16102         creating LHS paradoxical subregs.  Fix surrounding returns to
16103         use NULL_RTX rather than 0.
16104
16105 2009-07-08  DJ Delorie  <dj@redhat.com>
16106
16107         * config/mep/mep.c (mep_option_can_inline_p): New.
16108         (TARGET_OPTION_CAN_INLINE_P): Define.
16109
16110 2009-07-08  Mark Wielaard  <mjw@redhat.com>
16111
16112         PR debug/40659
16113         * dwarf2out.c (add_data_member_location_attribute): When we have
16114         only a constant offset don't emit a new location description using
16115         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
16116         dwarf_version > 2.
16117
16118 2009-07-08  Richard Henderson  <rth@redhat.com>
16119
16120         PR target/38900
16121         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
16122         (enum reg_class): Add CLOBBERED_REGS.
16123         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
16124         * config/i386/i386.c (ix86_conditional_register_usage): Moved
16125         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
16126         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
16127         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
16128         force 64-bit sibcalls into R11.
16129         * config/i386/constraints.md (U): New constraint.
16130         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
16131         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
16132         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
16133
16134 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
16135
16136         * basic-block.h (dump_regset, debug_regset): Remove duplicate
16137         prototypes.
16138         * c-objc-common.h (c_initialize_diagnostics): Ditto.
16139         * ebitmap.h (dump_ebitmap): Ditto.
16140         * optabs.h (optab_libfunc): Ditto.
16141         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
16142         * tree-flow.h (vect_can_force_dr_alignment_p,
16143         get_vectype_for_scalar_type): Ditto.
16144         (vectorize_loops): Move prototype to ...
16145         * tree-vectorizer.h: ... here. Also, adjust comment.
16146         (vect_set_verbosity_level): Remove duplicate prototype.
16147         * tree-ssa-loop.c: Include tree-vectorizer.h.
16148         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
16149
16150 2009-07-08  Nick Clifton  <nickc@redhat.com>
16151
16152         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
16153         forward slash.
16154
16155 2009-07-08  DJ Delorie  <dj@redhat.com>
16156
16157         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
16158         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
16159         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
16160         written to.
16161         * config/mep/intrinsics.md: Regenerated.
16162         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
16163         registers when asm() or calls are detected.
16164
16165 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16166
16167         PR c++/31246
16168         * gimplify.c (gimplify_expr): Propagate no_warning flag when
16169         gimplifying.
16170         * gimple (gimple_build_call_from_tree): Likewise.
16171         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
16172         no_warning flag before warning.
16173
16174 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16175
16176         * tree.c (set_expr_locus): Remove.
16177         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
16178         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
16179         EXPR_LOCATION.
16180         * gimplify.c (internal_get_tmp_var): Likewise.
16181         (gimplify_call_expr): Likewise.
16182         (gimplify_one_sizepos): Likewise.
16183
16184 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
16185
16186         PR debug/40666
16187         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
16188         to variables for debugging purposes.
16189
16190 2009-06-23  Mark Loeser  <mark@halcy0n.com>
16191
16192         PR build/40010
16193         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
16194
16195 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16196
16197         * pretty-print.c (pp_base_format): Remove %J.
16198         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
16199         gcc_cxxdiag_char_table): Likewise.
16200         (init_dynamic_diag_info): Likewise.
16201
16202 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16203
16204         * pretty-print.c (pp_base_format): Remove %H.
16205         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
16206         gcc_cxxdiag_char_table): Likewise.
16207         (init_dynamic_diag_info): Likewise.
16208         * config/mep/mep.c (mep_select_section): Likewise.
16209
16210 2009-07-07  Duncan Sands  <baldrick@free.fr>
16211
16212         * final.c (pass_clean_state): Give the pass a name.
16213         * passes.c (pass_rest_of_compilation): Likewise.
16214         * tree-optimize.c (pass_all_optimizations): Likewise.
16215
16216 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
16217
16218         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
16219         an extra 'decl' for error_at.
16220
16221 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
16222
16223         PR middle-end/40669
16224         * tree-tailcall.c (adjust_return_value_with_ops,
16225         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
16226         if it has complex or vector type.
16227
16228 2009-07-07  Olivier Hainque  <hainque@adacore.com>
16229
16230         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
16231         pthread symbols.
16232
16233 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
16234
16235         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
16236
16237 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16238
16239         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
16240         * c-decl.c: Likewise.
16241         * function.c: Likewise.
16242         * varasm.c: Likewise.
16243         * tree-ssa.c: Likewise.
16244         * c-common.c: Likewise.
16245         * tree-cfg.c: Likewise.
16246         * config/spu/spu.c: Likewise.
16247         * config/ia64/ia64.c: Likewise.
16248         * config/v850/v850.c: Likewise.
16249
16250 2009-07-06  DJ Delorie  <dj@redhat.com>
16251
16252         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
16253         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
16254         unspecified accesses to control registers.
16255         * config/mep/intrinsics.md: Regenerate.
16256         * config/mep/intrinsics.h: Regenerate.
16257         * config/mep/mep-intrin.h: Regenerate.
16258
16259 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16260
16261         * c-lex.c: Replace %H by an explicit location. Update all calls.
16262         * c-common.c: Likewise.
16263         * c-decl.c: Likewise.
16264         * c-typeck.c: Likewise.
16265         * fold-const.c: Likewise.
16266         * gimplify.c: Likewise.
16267         * stmt.c: Likewise.
16268         * tree-cfg.c: Likewise.
16269         * tree-ssa-loop-niter.c: Likewise.
16270         * tree-vrp.c: Likewise.
16271         * value-prof.c: Likewise.
16272
16273 2009-07-06  Diego Novillo  <dnovillo@google.com>
16274
16275         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
16276         if it has one.  Handle cases where VAR does not have an
16277         annotation or cfun is NULL.
16278
16279 2009-07-06  Diego Novillo  <dnovillo@google.com>
16280
16281         * tree.c: Include debug.h.
16282         (initialize_tree_contains_struct): New.
16283         (init_ttree): Call it.
16284         (tree_node_structure_for_code): Factor out of ...
16285         (tree_node_structure): ... here.
16286         * treestruct.def (TS_PHI_NODE): Remove.
16287         (TS_GIMPLE_STATEMENT): Remove.
16288
16289 2009-07-06  Diego Novillo  <dnovillo@google.com>
16290
16291         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
16292         (debug_tree_chain): Handle cycles.
16293
16294 2009-07-06  Nick Clifton  <nickc@redhat.com>
16295             DJ Delorie  <dj@redhat.com>
16296
16297         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
16298         __FMOVD_ENABLED__ is defined.
16299         * config/sh/sh.h
16300         (TARGET_FMOVD): Provide a default definition.
16301         (MASK_FMOVD): Likewise.
16302         (TARGET_CPU_CPP_BUILTINS): Define
16303         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
16304         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
16305         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
16306         (split for DF load from memory into register): Also handle
16307         MEMs which consist of REG+DISP addressing.
16308         (split for DF store from register to memory): Likewise.
16309         (movsf_ie): Always use single fp_mode.
16310         * config/sh/sh.c (sh_override_options): Do not automatically
16311         enable TARGET_MOVD for the SH2A when supporting doubles - leave
16312         that to the -mfmovd command line switch.
16313         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
16314         (fldi_ok): Always allow.
16315         * config/sh/sh.opt (mfmovd): Remove this switch.
16316         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
16317
16318 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
16319             Kaz Kojima  <kkojima@gcc.gnu.org>
16320
16321         PR rtl-optimization/30807
16322         * postreload.c (reload_combine): For every new use of REG_SUM,
16323         record the use of BASE.
16324
16325 2009-07-06  Jan Hubicka  <jh@suse.cz>
16326
16327         * params.def: Revert my accidental commit at 2009-06-30.
16328
16329 2009-07-04  Ian Lance Taylor  <iant@google.com>
16330
16331         PR target/40636
16332         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
16333         EXPORTED_CONST.
16334         (mingw_format_attribute_overrides): Likewise.
16335
16336 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
16337
16338         PR debug/40596
16339         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
16340         don't check cfa.reg.  Instead of cfa.indirect use
16341         fde && fde->drap_reg != INVALID_REGNUM test.
16342
16343 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
16344
16345         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
16346
16347 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
16348
16349         PR target/40587
16350         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
16351
16352 2009-07-03  Richard Guenther  <rguenther@suse.de>
16353
16354         PR tree-optimization/40640
16355         * tree-switch-conversion.c (build_arrays): Perform arithmetic
16356         in original type.
16357
16358 2009-07-03  Jan Hubicka  <jh@suse.cz>
16359
16360         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
16361         for size, reduce amount of inlining.
16362
16363 2009-07-03  Richard Guenther  <rguenther@suse.de>
16364
16365         PR middle-end/34163
16366         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
16367         if t +- x is known to not overflow and the conversion widens the
16368         operation.
16369         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
16370
16371 2009-07-03  Jan Hubicka  <jh@suse.cz>
16372
16373         * ipa-pure-const.c (analyze): Update loop optimizer init.
16374         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
16375         try_remove_empty_loop, remove_empty_loops): Remove.
16376         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
16377         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
16378         to mark regular loops as neccesary.
16379         (degenerate_phi_p): New function.
16380         (propagate_necessity, remove_dead_phis): Use it.
16381         (forward_edge_to_pdom): Likewise.
16382         (eliminate_unnecessary_stmts): Take care to remove uses of results of
16383         virtual PHI nodes that became unreachable.
16384         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
16385         * tree-flow.h (remove_empty_loops): Remove.
16386         * passes.c (init_optimization_passes): Remove.
16387
16388 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
16389
16390         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
16391         can_create_pseudo_p.
16392         (*fix_trunc<mode>_i387_1): Ditto.
16393         (*floathi<mode>2_1): Ditto.
16394         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
16395         (*fistdi2_1): Ditto.
16396         (*fist<mode>2_1): Ditto.
16397         (frndintxf2_floor): Ditto.
16398         (*fist<mode>2_floor_1): Ditto.
16399         (frndintxf2_ceil): Ditto.
16400         (*fist<mode>2_ceil_1): Ditto.
16401         (frndintxf2_trunc): Ditto.
16402         (frndintxf2_mask_pm): Ditto.
16403         (fxam<mode>2_i387_with_temp): Ditto.
16404         * config/i386/sse.md (mulv16qi3): Ditto.
16405         (*sse2_mulv4si3): Ditto.
16406         (mulv2di3): Ditto.
16407         (sse4_2_pcmpestr): Ditto.
16408         (sse4_2_pcmpistr): Ditto.
16409
16410 2009-07-03  Jan Hubicka  <jh@suse.cz>
16411
16412         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
16413         (mark_stmt_necessary): Set it.
16414         (mark_operand_necessary): Set it.
16415         (mark_control_dependent_edges_necessary): Set it.
16416         (mark_virtual_phi_result_for_renaming): New function.
16417         (get_live_post_dom): New function.
16418         (forward_edge_to_pdom): New function.
16419         (remove_dead_stmt): Fix handling of control dependences.
16420         (tree_dce_init): Init new bitmap.
16421         (tree_dce_done): Free it.
16422
16423 2009-07-02  Richard Guenther  <rguenther@suse.de>
16424
16425         PR bootstrap/40617
16426         * tree-ssa-structalias.c (new_var_info): Initialize
16427         is_restrict_var.
16428
16429 2009-07-02  Jan Hubicka  <jh@suse.cz>
16430
16431         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
16432         local.
16433
16434 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
16435
16436         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
16437         instead of recomputing it.  Adjust calls.
16438         (emit_store_flag): Adjust recursive calls.
16439
16440 2009-07-02  Richard Guenther  <rguenther@suse.de>
16441
16442         * tree-ssa-live.c (remove_unused_locals): Do not remove
16443         heap variables.
16444         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
16445         of DECL_EXTERNAL for HEAP variables.
16446         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
16447         HEAP variables.  Do not adjust RESTRICT vars.
16448         (find_what_var_points_to): Nobody cares if something
16449         points to READONLY.
16450
16451 2009-07-02  Ben Elliston  <bje@au.ibm.com>
16452
16453         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
16454         pc_low and pc_high declarations to the top of the function.
16455
16456 2009-07-01  DJ Delorie  <dj@redhat.com>
16457
16458         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
16459         registers as fixed.
16460         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
16461         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
16462         unspecified accesses to control registers.
16463         * config/mep/intrinsics.md: Regenerate.
16464         * config/mep/intrinsics.h: Regenerate.
16465         * config/mep/mep-intrin.h: Regenerate.
16466
16467 2009-07-01  Anthony Green  <green@moxielogic.com>
16468
16469         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
16470         instruction when possible.
16471         (moxie_expand_prologue): Ditto.  Also, save an instruction and
16472         some complexity by popping off of $r12 instead of $sp.
16473         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
16474         operands.
16475
16476 2009-07-01  Richard Henderson  <rth@redhat.com>
16477
16478         PR bootstrap/40347
16479         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
16480         contained no insns, reposition note before last insn.
16481
16482 2009-07-01  Richard Henderson  <rth@redhat.com>
16483
16484         PR debug/40431
16485         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
16486         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
16487
16488 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
16489
16490         PR bootstrap/40558
16491         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
16492         darwin9 for printing reg addresses with %y.
16493
16494 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
16495
16496         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
16497         truncation from operands in binary operations.
16498
16499 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
16500
16501         Revert:
16502         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
16503         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16504         subreg of op0 to the original op0.
16505
16506         * expmed.c (store_bit_field_1): Use a temporary as the destination
16507         instead of a paradoxical subreg when we need to truncate the result.
16508
16509 2009-07-01  DJ Delorie  <dj@redhat.com>
16510
16511         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
16512         names to VLIW variants.
16513         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
16514         * config/mep/intrinsics.md: Regenerate.
16515         * config/mep/intrinsics.h: Regenerate.
16516         * config/mep/mep-intrin.h: Regenerate.
16517
16518 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
16519
16520         PR debug/40462
16521         * jump.c (returnjump_p): Revert last patch.
16522         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
16523
16524 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16525
16526         PR target/40575
16527         * pa.md (casesi32p): Use jump table label to determine the offset
16528         of the jump table.
16529         (casesi64p): Likewise.
16530
16531         * pa.c (forward_branch_p): Return bool type.  Use instruction
16532         addresses when available.  Assert that INSN has a jump label.
16533         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
16534         have a jump label.
16535
16536 2009-07-01  Richard Guenther  <rguenther@suse.de>
16537
16538         PR tree-optimization/19831
16539         * tree-ssa-dce.c (propagate_necessity): Calls to functions
16540         that only act as barriers do not make any previous stores necessary.
16541         * tree-ssa-structalias.c (handle_lhs_call): Delay making
16542         HEAP variables global, do not add a constraint from nonlocal.
16543         (find_func_aliases): Handle escapes through return statements.
16544         (compute_points_to_sets): Make escaped HEAP variables global.
16545
16546 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
16547
16548         PR bootstrap/40597
16549         * expmed.c (emit_store_flag): Perform a conversion if necessary,
16550         after reducing a DImode cstore to SImode.
16551
16552 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
16553
16554         * expr.c (expand_expr_real_1): Reinstate fallthrough to
16555         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
16556
16557 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
16558
16559         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
16560         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
16561         to 0.
16562         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
16563         and umod_optab if TARGET_BSD_DIVMOD.
16564         * config/vax/lib1funcs.asm: New file.
16565         * config/vax/t-linux: New file.
16566         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
16567
16568 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
16569
16570         PR c++/40566
16571         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
16572         to type arguments that have void type.
16573
16574         PR debug/40573
16575         * dwarf2out.c (gen_formal_parameter_die): Call
16576         equate_decl_number_to_die if node is different from origin.
16577
16578 2009-06-30  Anthony Green  <green@moxielogic.com>
16579
16580         Clean up moxie port for --enable-build-with-cxx.
16581         * config/moxie/moxie.c (moxie_function_value): First two
16582         parameters are const_tree, not tree.
16583         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
16584         (REG_CLASS_NAMES): Ditto.
16585         (REGNO_REG_CLASS): Ditto.
16586         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
16587         (moxie_function_value): Fix constyness of arguments.
16588
16589 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
16590
16591         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
16592         finalize_size_functions before further processing.
16593         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
16594         (variable_size): Call self_referential_size on size expressions
16595         that contain a PLACEHOLDER_EXPR.
16596         (size_functions): New static variable.
16597         (copy_self_referential_tree_r): New static function.
16598         (self_referential_size): Likewise.
16599         (finalize_size_functions): New global function.
16600         * tree.c: Include tree-inline.h.
16601         (push_without_duplicates): New static function.
16602         (find_placeholder_in_expr): New global function.
16603         (substitute_in_expr) <tcc_declaration>: Return the replacement object
16604         on equality.
16605         <tcc_expression>: Likewise.
16606         <tcc_vl_exp>: If the replacement object is a constant, try to inline
16607         the call in the expression.
16608         * tree.h (finalize_size_functions): Declare.
16609         (find_placeholder_in_expr): Likewise.
16610         (FIND_PLACEHOLDER_IN_EXPR): New macro.
16611         (substitute_placeholder_in_expr): Update comment.
16612         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
16613         is true.
16614         (copy_tree_body_r): Likewise.
16615         (copy_tree_body): New static function.
16616         (maybe_inline_call_in_expr): New global function.
16617         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
16618         (maybe_inline_call_in_expr): Declare.
16619         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
16620         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
16621         GIMPLE_H.
16622
16623 2009-06-30  Richard Guenther  <rguenther@suse.de>
16624
16625         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
16626         continue walking.
16627         (propagate_necessity): Do not mark reaching defs of stores
16628         as necessary.
16629
16630 2009-06-30  Jan Hubicka  <jh@suse.cz>
16631
16632         * cfgloopanal.c (check_irred): Move into ...
16633         (mark_irreducible_loops): ... here; return true if ireducible
16634         loops was found.
16635         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
16636         (analyze_function): Try to prove loop finiteness.
16637         * cfgloop.h (mark_irreducible_loops): Update prototype.
16638         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
16639
16640 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
16641
16642         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
16643
16644 2009-06-30  Ira Rosen  <irar@il.ibm.com>
16645
16646         PR tree-optimization/40542
16647         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
16648         types.
16649
16650 2009-06-30  Martin Jambor  <mjambor@suse.cz>
16651
16652         PR tree-optimization/40582
16653         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
16654         than useless_type_conversion_p.
16655         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
16656         proper place.
16657
16658 2009-06-30  Martin Jambor  <mjambor@suse.cz>
16659
16660         PR middle-end/40554
16661         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
16662
16663 2009-06-30  Richard Guenther  <rguenther@suse.de>
16664
16665         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
16666         use ao_ref references.
16667         (walk_aliased_vdefs): Likewise.
16668         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
16669         * tree-ssa-dce.c (struct ref_data): Remove.
16670         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
16671         (mark_aliased_reaching_defs_necessary): Adjust.
16672         (mark_all_reaching_defs_necessary_1): Likewise.
16673
16674 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
16675
16676         PR boostrap/40597
16677         * expmed.c (emit_cstore): New name of emit_store_flag_1.
16678         (emit_store_flag_1): Extract from emit_store_flag, adjust
16679         calls to (what now is) emit_cstore.
16680         (emit_store_flag): Call emit_store_flag_1 and also use it
16681         for what used to be recursive calls.
16682
16683 2009-06-30  Wei Guozhi  <carrot@google.com>
16684
16685         PR/40416
16686         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
16687         if the target bb post dominates from bb.
16688         * config/i386/i386.c (memory_address_length): Check existence of base
16689         register before using it.
16690
16691 2009-06-30  Nick Clifton  <nickc@redhat.com>
16692             DJ Delorie  <dj@redhat.com>
16693
16694         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
16695         __FMOVD_ENABLED__ is defined.
16696         * config/sh/sh.h
16697         (TARGET_FMOVD): Provide a default definition.
16698         (MASK_FMOVD): Likewise.
16699         (TARGET_CPU_CPP_BUILTINS): Define
16700         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
16701         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
16702         two fmov instructions depending upon whether TARGET_FMOVD is
16703         enabled.
16704         (split for DF load from memory into register): Also handle
16705         MEMs which consist of REG+DISP addressing.
16706         (split for DF store from register to memory): Likewise.
16707         * config/sh/sh.opt (mfmovd): Remove this switch.
16708         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
16709         * config/sh/sh.c (sh_override_options): Do not automatically
16710         enable TARGET_MOVD for the SH2A when supporting doubles - leave
16711         that to the -mfmovd command line switch.
16712
16713         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
16714         the SH4 and SH4A.
16715         (fldi_ok): Always allow.
16716         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
16717
16718 2009-06-29  DJ Delorie  <dj@redhat.com>
16719
16720         * doc/install.texi (mep-x-elf): Correct chip's full name.
16721
16722 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
16723
16724         * doc/extend.texi: Fix typo.
16725
16726 2009-06-29  Tom Tromey  <tromey@redhat.com>
16727
16728         * dwarf2.h: Remove.
16729         * Makefile.in (DWARF2_H): New variable.
16730         (except.o): Use it.
16731         (dwarf2out.o): Likewise.
16732         (dwarf2asm.o): Likewise.
16733         * config/i386/t-i386: Use DWARF2_H.
16734         * except.c: Include elf/dwarf2.h.
16735         * unwind-dw2.c: Include elf/dwarf2.h.
16736         * dwarf2out.c: Include elf/dwarf2.h.
16737         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
16738         <dtprel>: New field.
16739         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
16740         (size_of_loc_descr): Likewise.
16741         (output_loc_operands_raw): Likewise.
16742         (output_loc_operands): Handle new dtprel field.
16743         (loc_checksum): Update.
16744         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
16745         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
16746         * unwind-dw2-fde.c: Include elf/dwarf2.h.
16747         * dwarf2asm.c: Include elf/dwarf2.h.
16748         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
16749         * config/mmix/mmix.c: Include elf/dwarf2.h.
16750         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
16751         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
16752         * config/sh/sh.c: Include elf/dwarf2.h.
16753         * config/i386/i386.c: Include elf/dwarf2.h.
16754
16755 2009-06-29  DJ Delorie  <dj@redhat.com>
16756
16757         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
16758
16759         * doc/extend.texi: Add MeP attributes and pragmas.
16760         * doc/invoke.text: Add MeP Options.
16761         * doc/contrib.texi: Add MeP contribution.
16762         * doc/md.texi: Add MeP constraints.
16763         * doc/install.texi: Add MeP target.
16764
16765 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
16766
16767         * target.h (struct gcc_target): Add frame_pointer_required field.
16768         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
16769         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
16770         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
16771         hook.
16772         * reload1.c (update_eliminables): (Ditto.).
16773         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
16774         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
16775         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
16776
16777         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
16778
16779         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
16780         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16781         (arm_frame_pointer_required): New function.
16782
16783         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
16784         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16785         (avr_frame_pointer_required_p): Declare as static.
16786         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
16787
16788         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
16789         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16790         (bfin_frame_pointer_required): Make as static, change return type
16791         to bool.
16792         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
16793
16794         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
16795         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16796         (cris_frame_pointer_required): New function.
16797
16798         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
16799
16800         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
16801         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16802         (fr30_frame_pointer_required): New function.
16803
16804         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
16805         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16806         (frv_frame_pointer_required): Make as static, change return type
16807         to bool.
16808         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
16809
16810         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
16811         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16812         (ix86_frame_pointer_required): Make as static, change return type to
16813         bool.
16814         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
16815
16816         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
16817         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16818
16819         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
16820
16821         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
16822
16823         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
16824
16825         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
16826         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16827         (mips_frame_pointer_required): Make as static.
16828         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
16829
16830         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
16831         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16832         (mmix_frame_pointer_required): Mew function.
16833
16834         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
16835         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16836
16837         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
16838
16839         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
16840
16841         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
16842
16843         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
16844         (CAN_ELIMINATE): Redefine.
16845         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16846         (sparc_frame_pointer_required): New function.
16847         (sparc_can_eliminate): New function.
16848         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
16849
16850         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
16851         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16852
16853         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
16854         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16855         (xtensa_frame_pointer_required): Make as static, change return type
16856         to bool.
16857         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
16858         Remove.
16859
16860 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
16861
16862         * doc/plugins.texi: Document PLUGIN_START_UNIT.
16863         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
16864         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
16865         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
16866         (register_callback): Handle PLUGIN_START_UNIT.
16867         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
16868
16869 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
16870
16871         * tree.c (process_call_operands): Propagate TREE_READONLY from the
16872         operands.
16873         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
16874         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
16875
16876 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
16877
16878         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
16879         move cost.
16880
16881 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
16882
16883         * doc/extend.texi (Additional Floating Types): __float128 is also
16884         supported on i386 targets.
16885
16886 2009-06-29  Richard Guenther  <rguenther@suse.de>
16887
16888         PR middle-end/14187
16889         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
16890         flag.
16891         (pt_solutions_same_restrict_base): Declare.
16892         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
16893         flag.
16894         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
16895         (make_constraint_from, make_copy_constraint): Move earlier.
16896         (make_constraint_from_heapvar): New function.
16897         (make_constraint_from_restrict): Likewise.
16898         (handle_lhs_call): Use it.
16899         (find_func_aliases): Use it to track conversions to restrict
16900         qualified pointers.
16901         (struct fieldoff): Add only_restrict_pointers flag.
16902         (push_fields_onto_fieldstack): Initialize it.
16903         (create_variable_info_for): Track global restrict qualified pointers.
16904         (intra_create_variable_infos): Use make_constraint_from_heapvar.
16905         Track restrict qualified pointer arguments.
16906         (set_uids_in_ptset): Use varinfo is_global_var flag.
16907         (find_what_var_points_to): Set the vars_contains_restrict flag.
16908         Always create the points-to solution for sets including restrict tags.
16909         (pt_solutions_same_restrict_base): New function.
16910         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
16911         qualified pointers use pt_solutions_same_restrict_base as
16912         additional source for disambiguation.
16913
16914 2009-06-29  Richard Guenther  <rguenther@suse.de>
16915
16916         PR middle-end/38212
16917         * alias.c (find_base_decl): Remove.
16918         (get_deref_alias_set_1): Remove restrict handling.
16919         * c-common.c (c_apply_type_quals_to_decl): Do not set
16920         DECL_POINTER_ALIAS_SET.
16921         * gimplify.c (find_single_pointer_decl_1): Remove.
16922         (find_single_pointer_decl): Likewise.
16923         (internal_get_tmp_var): Remove restrict handling.
16924         (gimple_regimplify_operands): Likewise.
16925         * omp-low.c (expand_omp_atomic_pipeline): Do not set
16926         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
16927         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
16928         * tree.c (restrict_base_for_decl): Remove.
16929         (init_ttree): Do not allocate it.
16930         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
16931         LABEL_DECL_UID for label decls.
16932         (copy_node_stat): Do not copy restrict information.
16933         (decl_restrict_base_lookup): Remove.
16934         (decl_restrict_base_insert): Likewise.
16935         (print_restrict_base_statistics): Likewise.
16936         (dump_tree_statistics): Do not call print_restrict_base_statistics.
16937         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
16938         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
16939         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
16940         (LABEL_DECL_UID): Adjust.
16941         (DECL_BASED_ON_RESTRICT_P): Remove.
16942         (DECL_GET_RESTRICT_BASE): Likewise.
16943         (SET_DECL_RESTRICT_BASE): Likewise.
16944         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
16945
16946         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
16947         instead of DECL_POINTER_ALIAS_SET.
16948         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
16949         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
16950         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
16951
16952 2009-06-29  Richard Guenther  <rguenther@suse.de>
16953
16954         PR tree-optimization/40579
16955         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
16956         the IL to simplify has constants that overflowed.
16957
16958 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
16959
16960         PR tree-optimization/40550
16961         * tree-vect-generic.c (expand_vector_operations_1): Compute in
16962         vector_compute_type only when the size of vector_compute_type is
16963         less than the size of type.
16964
16965 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
16966
16967         * fold-const.c (contains_label_1): Fix comments.
16968         (contains_label_p): Do not walk trees multiple time.
16969
16970 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
16971
16972         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
16973         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
16974         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
16975         ix86_fp_comparison_operator.
16976         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
16977         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
16978         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
16979         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
16980         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
16981         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
16982         (related splits): Change predicate to ix86_fp_comparison_operator.
16983         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
16984         instead of ix86_fp_comparison_codes.
16985         (ix86_trivial_fp_comparison_operator,
16986         ix86_fp_comparison_operator): New.
16987         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
16988         (ix86_expand_compare): Eliminate last two parameters.
16989         (ix86_fp_jump_nontrivial_p): Kill.
16990         * config/i386/i386.c (put_condition_code): Eliminate call to
16991         ix86_fp_comparison_codes and subsequent assertion.
16992         (ix86_fp_comparison_codes): Eliminate.
16993         (ix86_fp_swap_condition): New.
16994         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
16995         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
16996         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
16997         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
16998         and ix86_fp_swap_condition.
16999         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
17000         Use ix86_fp_comparison_strategy.
17001         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
17002         (ix86_fp_jump_nontrivial_p): Eliminate.
17003         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
17004         call to ix86_expand_compare.
17005         (ix86_split_fp_branch, ix86_expand_setcc,
17006         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
17007         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
17008
17009 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
17010
17011         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
17012         related to jump_clobbers.
17013         * config/arm/arm.md (conds): Remove jump_clob case.
17014         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
17015         splits): Change comparison_operator to arm_comparison_operator.
17016         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
17017         Eliminate.
17018
17019 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
17020
17021         * dojump.c (do_compare_rtx_and_jump): Try swapping the
17022         condition for floating point modes.
17023         * expmed.c (emit_store_flag_1): Move here a bigger part
17024         of emit_store_flag.
17025         (emit_store_flag): Try swapping the condition for floating point
17026         modes.
17027         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
17028
17029 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
17030
17031         * expr.c (expand_expr_real_1): Just use do_store_flag.
17032         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
17033         emit_store_flag_force.
17034         * expmed.c (emit_store_flag_force): Copy here trick
17035         previously in expand_expr_real_1.  Try reversing the comparison.
17036         (emit_store_flag_1): Work if target is NULL.
17037         (emit_store_flag): Work if target is NULL, using the result mode
17038         from the comparison.  Use split_comparison, restructure final part
17039         to simplify conditionals.
17040
17041 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
17042
17043         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
17044         * dojump.c (do_jump): Change handling of floating-point
17045         ops to use just do_compare_and_jump.
17046         (split_comparison): New.
17047         (do_compare_rtx_and_jump): Add here logic coming previously
17048         in do_jump, using split_comparison.
17049
17050 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
17051
17052         PR target/40489
17053         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
17054
17055 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
17056
17057         * tree-ssa-alias.c: Fix unintentional commit.
17058
17059 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
17060
17061         * passes.c (execute_one_pass): Fix unintentional commit.
17062
17063 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
17064
17065         * df-problems.c (df_set_seen, df_unset_seen): Delete.
17066         (df_rd_local_compute, df_md_local_compute): Inline them.
17067
17068         (df_md_scratch): New.
17069         (df_md_alloc, df_md_free): Allocate/free it.
17070         (df_md_local_compute): Only include live registers in init.
17071         (df_md_transfer_function): Prune the in-set computed by
17072         the confluence function, and the gen-set too.
17073
17074 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
17075
17076         PR rtl-optimization/26854
17077         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
17078         * df-problems.c (df_rd_add_problem): Fix comment.
17079         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
17080         df_md_simulate_artificial_defs_at_top,
17081         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
17082         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
17083         df_md_transfer_function, df_md_init, df_md_confluence_0,
17084         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
17085         problem_MD, df_md_add_problem): New.
17086         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
17087         df_md_get_bb_info): New.
17088         (DF_LAST_PROBLEM_PLUS1): Adjust.
17089
17090         * Makefile.in (fwprop.o): Include domwalk.h.
17091         * fwprop.c: Include domwalk.h.
17092         (reg_defs, reg_defs_stack): New.
17093         (bitmap_only_bit_between): Remove.
17094         (process_defs): New.
17095         (process_uses): Use reg_defs and local_md instead of
17096         bitmap_only_bit_between and local_rd.
17097         (single_def_use_enter_block): New, from build_single_def_use_links.
17098         (single_def_use_leave_block): New.
17099         (build_single_def_use_links): Remove code moved to
17100         single_def_use_enter_block, invoke domwalk.
17101         (use_killed_between): Adjust comment.
17102
17103 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
17104
17105         * bitmap.h (bitmap_ior_and_into): New.
17106         * bitmap.c (bitmap_ior_and_into): New.
17107
17108 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
17109
17110         * domwalk.h (struct dom_walk_data): Remove all callbacks except
17111         before_dom_children_before_stmts and after_dom_children_after_stmts.
17112         Rename the two remaining callbacks to just before_dom_children and
17113         after_dom_children. Remove other GIMPLE statement walking bits.
17114         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
17115         * graphite.c: Do not include domwalk.h.
17116         * tree-into-ssa.c (interesting_blocks): New global.
17117         (struct mark_def_sites_global_data): Remove it and names_to_rename.
17118         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
17119         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
17120         now that they're not domwalk callbacks.
17121         (rewrite_initialize_block): Rename to...
17122         (rewrite_enter_block): ... this, place after called functions.  Test
17123         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
17124         (rewrite_finalize_block): Rename to...
17125         (rewrite_leave_block): ... this, place after called functions.
17126         (rewrite_update_init_block): Rename to...
17127         (rewrite_update_enter_block): ... this, place after called functions.
17128         Test interesting_blocks, call rewrite_update_stmt and
17129         rewrite_update_phi_arguments.
17130         (rewrite_update_fini_block): Rename to...
17131         (rewrite_leave_block): ... this, place after called functions.
17132         (rewrite_blocks): Remove last argument, simplify initialization of
17133         walk_data.
17134         (mark_def_sites_initialize_block): Rename to...
17135         (mark_def_sites_block): ... this, call mark_def_sites.
17136         (mark_def_sites_blocks): Remove argument, simplify initialization of
17137         walk_data.
17138         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
17139         (update_ssa): Likewise.
17140         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
17141         callback.
17142         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
17143         (dom_opt_initialize_block): Rename to...
17144         (dom_opt_enter_block): ... this, place after called functions.  Walk
17145         statements here, inline propagate_to_outgoing_edges.
17146         (dom_opt_finalize_block): Rename to...
17147         (dom_opt_leave_block): ... this, place after called functions.
17148         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
17149         domwalk callback.
17150         (dse_enter_block, dse_record_phi): New.
17151         (dse_record_phis): Delete.
17152         (dse_finalize_block): Rename to...
17153         (dse_leave_block): ... this.
17154         (tree_ssa_dse): Simplify initialization of walk_data.
17155         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
17156         Adjust initialization of walk_data.
17157         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
17158         * tree-ssa-loop-phiopt.c (get_non_trapping):
17159         Adjust initialization of walk_data.
17160         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
17161         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
17162         it's not a domwalk callback.
17163         (uncprop_initialize_block): Rename to...
17164         (dse_enter_block): ... this, call uncprop_into_successor_phis.
17165         (dse_finalize_block): Rename to...
17166         (dse_leave_block): ... this.
17167         (tree_ssa_uncprop): Simplify initialization of walk_data.
17168         * Makefile.in: Adjust dependencies.
17169
17170 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
17171
17172         * arm.md (casesi): Fix test for Thumb1.
17173         (thumb1_casesi_internal_pic): Likewise.
17174         (thumb1_casesi_dispatch): Likewise.
17175
17176 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
17177
17178         * config/arm/arm-cores.def: Added core cortex-m0.
17179         * config/arm/arm-tune.md: Regenerated.
17180         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
17181
17182 2009-06-26  DJ Delorie  <dj@redhat.com>
17183
17184         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
17185
17186         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
17187         the scheduler doesn't tag jump insns.
17188
17189 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
17190
17191         * c-decl.c (merge_decls): Re-indent.
17192
17193 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
17194
17195         PR c/39902
17196         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
17197         Special-case decimal float constants.
17198
17199 2009-06-26  Richard Henderson  <rth@redhat.com>
17200
17201         * function.h (struct function): Add cannot_be_copied_reason,
17202         and cannot_be_copied_set.
17203         * tree-inline.c (has_label_address_in_static_1): Rename from
17204         inline_forbidden_p_2; don't set inline_forbidden_reason here.
17205         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
17206         don't set inline_forbidden_reason.
17207         (copy_forbidden): New function, split out of inline_forbidden_p.
17208         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
17209         (inline_forbidden_p): Use copy_forbidden.
17210         (tree_versionable_function_p): Likewise.
17211         (inlinable_function_p): Merge into tree_inlinable_function_p.
17212         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
17213         * ipa-cp.c (ipcp_versionable_function_p): New function.
17214         (ipcp_cloning_candidate_p): Use it.
17215         (ipcp_node_modifiable_p): Likewise.
17216
17217 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
17218
17219         * builtins.c (expand_builtin_alloca): Handle builtin alloca
17220         that is marked not to be inlined. Remove flag_mudflap use.
17221         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
17222         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
17223
17224 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
17225
17226         PR bootstrap/40338
17227         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
17228         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
17229
17230 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
17231
17232         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
17233         shared libgcc.
17234         (__mingwthr_remove_key_dtor): Likewise.
17235
17236 2009-06-26  Richard Guenther  <rguenther@suse.de>
17237
17238         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
17239
17240 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
17241
17242         PR middle-end/40525
17243         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
17244         try the non-cond_exec path also.
17245
17246 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17247
17248         PR target/40468
17249         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
17250         (output_cbranch): Use new functions.
17251         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
17252         Likewise.
17253
17254 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
17255             Pat Haugen  <pthaugen@us.ibm.com>
17256             Revital Eres <ERES@il.ibm.com>
17257
17258         * config/rs6000/rs6000.c (print_operand): Correct lossage message
17259         for %c error.  Add %x support to print VSX registers as a unified
17260         register set, instead of separate float and altivec registers.
17261         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
17262         %y case, and add support for VSX pre-modify addresses.
17263         (output_toc): Add assert for CONST containing an integer constant
17264         in the PLUS case.
17265         (rs6000_adjust_cost): Add POWER7 support.
17266         (insn_must_be_first_in_group): Ditto.
17267         (insn_must_be_last_in_group): Ditto.
17268         (rs6000_emit_popcount): Ditto.
17269         (rs6000_vector_mode_supported_p): Ditto.
17270
17271         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
17272         Change some of the functions called by macros to being called
17273         through a pointer, so debug functions can be inserted if
17274         -mdebug=addr or -mdebug=cost.
17275         (rs6000_preferred_reload_class_ptr): Ditto.
17276         (rs6000_secondary_reload_class_ptr): Ditto.
17277         (rs6000_secondary_memory_needed_ptr): Ditto.
17278         (rs6000_cannot_change_mode_class_ptr): Ditto.
17279         (rs6000_secondary_reload_inner): Ditto.
17280         (rs6000_legitimize_reload_address): Ditto.
17281         (rs6000_legitimize_reload_address_ptr): Ditto.
17282         (rs6000_mode_dependent_address): Ditto.
17283         (rs6000_mode_dependent_address_ptr): Ditto.
17284
17285         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
17286         function to return true if the mode allows reg + integer
17287         addresses.
17288         (virtual_stack_registers_memory_p): New function to return true if
17289         the address refers to a virtual stack register.
17290         (rs6000_legitimate_offset_address_p): Move code to say whether a
17291         mode supports reg+int addressing to reg_offset_addressing_ok_p and
17292         call it.
17293         (rs6000_legitimate_address_p): Add checks for modes that only can
17294         do reg+reg addressing.  Start adding VSX support.
17295         (rs6000_legitimize_reload_address): Ditto.
17296         (rs6000_legitimize_address): Ditto.
17297         (rs6000_debug_legitimate_address_p): New debug functions for
17298         -mdebug=addr and -mdebug=cost.
17299         (rs6000_debug_rtx_costs): Ditto.
17300         (rs6000_debug_address_costs): Ditto.
17301         (rs6000_debug_adjust_cost): Ditto.
17302         (rs6000_debug_legitimize_address): Ditto.
17303         (rs6000_legitimize_reload_address_ptr): Point to call normal
17304         function or debug function.  Make functions called via pointer
17305         static.
17306         (rs6000_mode_dependent_address_ptr): Ditto.
17307         (rs6000_secondary_reload_class_ptr): Ditto.
17308         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
17309         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
17310         into a friendlier error.
17311         (rs6000_init_builtins): Add initial VSX support.
17312         (rs6000_adjust_cost): Fix some spacing issues.
17313
17314         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
17315         (REG_CLASS_NAMES): Ditto.
17316         (REG_CLASS_CONTENTS): Ditto.
17317         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
17318         pointer, to add -mdebug=addr support.
17319         (CANNOT_CHANGE_MODE_CLASS): Ditto.
17320         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
17321         -mdebug=addr support.
17322         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
17323         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
17324         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
17325
17326         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
17327         16-bit values.
17328         (bswapsi*): Set attribute types for load/store.  Add combiner
17329         patterns to eliminate zero extend on 64-bit.
17330         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
17331         stdbrx if the hardware supports those instructions.
17332
17333 2009-06-25  Ian Lance Taylor  <iant@google.com>
17334
17335         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
17336         (Link Options): Document -static-libstdc++.
17337
17338 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17339
17340         PR target/38731
17341         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
17342         DATA_ALIGNMENT instead.
17343
17344 2009-06-25  Richard Guenther  <rguenther@suse.de>
17345
17346         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
17347         indirect references against the callused/escaped solutions.
17348         (call_may_clobber_ref_p_1): Likewise.
17349
17350 2009-06-25  Martin Jambor  <mjambor@suse.cz>
17351
17352         PR tree-optimization/40493
17353         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
17354         (enum unscalarized_data_handling): New type.
17355         (handle_unscalarized_data_in_subtree): Return what has been done.
17356         (load_assign_lhs_subreplacements): Handle left flushes differently.
17357         (sra_modify_assign): Use unscalarized_data_handling, simplified
17358         condition determining whether to remove the statement.
17359
17360 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
17361
17362         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
17363         excerpt - @ should be doubled for texinfo.
17364
17365 2009-06-24  Ian Lance Taylor  <iant@google.com>
17366
17367         * config/arc/arc.c: Include "df.h".
17368         (arc_attribute_table): Make static.  Move higher in file.
17369         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
17370         (output_shift): Initialize n later to avoid warning.
17371         * config/arm/arm.c (arm_attribute_table): Make static.  Move
17372         higher in file.
17373         * config/avr/avr.c (avr_attribute_table): Make static.  Move
17374         higher in file.
17375         (reg_class_tab): Change array type from int to enum reg_class.
17376         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
17377         LABEL_REF.
17378         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
17379         (lshrhi3_out): Likewise.
17380         (class_likely_spilled_p): Change return type to bool.
17381         (avr_rtx_costs): Use local code variable with enum type.
17382         * config/avr/avr.md (movmemhi): Use add_reg_note.
17383         (andhi3, andsi3): Don't use AS2 with "and".
17384         (iorhi3, iorsi3): Don't use AS2 with "or".
17385         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
17386         * config/crx/crx.c: Include "df.h".
17387         (crx_attribute_table): Make static.
17388         * config/m32r/m32r.c: Include "df.h".
17389         (m32r_attribute_table): Make static.  Move higher in file.
17390         (pop): Use add_reg_note.
17391         (block_move_call): Change 0 to LCT_NORMAL in function call.
17392         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
17393         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
17394         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
17395         declare, not just when TREE_CODE is defined.
17396         * config/m68hc11/m68hc11.c: Include "expr.h".
17397         (m68hc11_attribute_table): Make static.  Move higher in file.
17398         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
17399         function call.
17400         (m68hc11_register_indirect_p): Likewise.
17401         (m68hc11_function_arg_padding): Change return type to enum
17402         direction.
17403         (emit_move_after_reload): Use add_reg_note.
17404         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
17405         (m68hc11_split_logical): Likewise.
17406         (m68hc11_rtx_costs): Add local code_and outer_code variables with
17407         enum type.
17408         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
17409         to VOIDmode in function call.
17410         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
17411         tree is defined.
17412         (m68hc11_split_logical): Update declaration.
17413         (m68hc11_function_arg_padding): Update declaration.
17414         * config/mcore/mcore.c (regno_reg_class): Change form array of int
17415         to array of enum reg_class.
17416         (mcore_attribute_table): Make static.  Move higher in file.
17417         (mcore_rtx_costs): Add cast to enum type.
17418         * config/mcore/mcore.h (regno_reg_class): Update declaration.
17419         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
17420         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
17421         in file.
17422         * config/sh/predicates.md (trapping_target_operand): Rename and to
17423         and_expr.
17424         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
17425         higher in file.
17426         * config/spu/spu.c (spu_attribute_table): Make static.  Move
17427         higher in file.
17428         * config/v850/v850.c (v850_attribute_table): Make static.  Move
17429         higher in file.
17430         (v850_rtx_costs): Use local code with enum type.
17431         (expand_epilogue): Add cast.
17432         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
17433
17434 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
17435
17436         PR target/40515
17437         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
17438         -m2a-single-only and -m2a-nofpu.
17439         * config/sh/sh.opt: Document m2a generates FPU code.
17440
17441 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
17442
17443         * defaults.h (CAN_ELIMINATE): Provide default.
17444         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
17445         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
17446         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
17447         * config/spu/spu.h (CAN_ELIMINATE): Delete.
17448         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
17449         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
17450         * config/cris/cris.h (CAN_ELIMINATE): Delete.
17451         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
17452         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
17453         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
17454
17455 2009-06-24  DJ Delorie  <dj@redhat.com>
17456
17457         * mep-ext-cop.cpu: Fix copyright notice.
17458         * mep-default: Fix copyright notice.
17459         * mep-core: Fix copyright notice.
17460         * mep: Fix copyright notice.
17461         * mep-ivc2: Fix copyright notice.
17462         * mep-c5: Fix copyright notice.
17463
17464 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
17465
17466         * doc/contrib.texi (Contributors):
17467
17468 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
17469
17470         PR middle-end/40501
17471         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
17472         src and dst operands if necessary.
17473
17474 2009-06-23  DJ Delorie  <dj@redhat.com>
17475
17476         Add MeP port.
17477         * config.gcc: Add mep support.
17478         * recog.c: Resurrect validate_replace_rtx_subexp().
17479         * recog.h: Likewise.
17480         * config/mep/: Add new port:
17481         * config/mep/constraints.md: New file.
17482         * config/mep/default.h: New file.
17483         * config/mep/intrinsics.h: New file.
17484         * config/mep/intrinsics.md: New file.
17485         * config/mep/ivc2-template.h: New file.
17486         * config/mep/mep-c5.cpu: New file.
17487         * config/mep/mep-core.cpu: New file.
17488         * config/mep/mep-default.cpu: New file.
17489         * config/mep/mep-ext-cop.cpu: New file.
17490         * config/mep/mep-intrin.h: New file.
17491         * config/mep/mep-ivc2.cpu: New file.
17492         * config/mep/mep-lib1.asm: New file.
17493         * config/mep/mep-lib2.c: New file.
17494         * config/mep/mep-pragma.c: New file.
17495         * config/mep/mep-protos.h: New file.
17496         * config/mep/mep-tramp.c: New file.
17497         * config/mep/mep.c: New file.
17498         * config/mep/mep.cpu: New file.
17499         * config/mep/mep.h: New file.
17500         * config/mep/mep.md: New file.
17501         * config/mep/mep.opt: New file.
17502         * config/mep/predicates.md: New file.
17503         * config/mep/t-mep: New file.
17504
17505 2009-06-23  Ian Lance Taylor  <iant@google.com>
17506
17507         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
17508         from loose_warn into c_loose_warn and from strict_warn into
17509         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
17510         --enable-build-with-cxx.  Set and substitute
17511         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
17512         * Makefile.in (CXXFLAGS): New variable.
17513         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
17514         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
17515         the default is the same as $(STRICT_WARN).
17516         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
17517         (CXX): New variable.
17518         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
17519         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
17520         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
17521         (HOST_LIBS): New variable.
17522         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
17523         (ALL_CXXFLAGS): New variable.
17524         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
17525         * doc/install.texi (Configuration): Document
17526         --enable-build-with-cxx, --with-stage1-ldflags,
17527         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
17528         * configure: Rebuild.
17529
17530 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17531
17532         * config/arm/arm.c (arm_override_options): Fix braces and formatting
17533         from previous commit.
17534
17535 2009-06-23  Ian Lance Taylor  <iant@google.com>
17536
17537         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
17538
17539 2009-06-23  Ian Lance Taylor  <iant@google.com>
17540
17541         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
17542         with ATTRIBUTE_UNUSED.
17543
17544 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
17545             Pat Haugen  <pthaugen@us.ibm.com>
17546             Revital Eres  <eres@il.ibm.com>
17547
17548         * config.in (HAVE_AS_POPCNTD): Add default definition.
17549         (HAVE_AS_LWSYNC): Ditto.
17550
17551         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
17552         release number.
17553         (gcc_cv_as_powerpc_cmpb): Ditto.
17554         (gcc_cv_as_powerpc_dfp): Ditto.
17555         (gcc_cv_as_powerpc_vsx): Ditto.
17556         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
17557         supporting the popcntd/lwsync instructions.
17558         (gcc_cv_as_powerpc_lwsync): Ditto.
17559         * configure: Regenerate.
17560
17561         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
17562         -mcpu=native and -mcpu=power7.
17563         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
17564
17565         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
17566         a variable instead of a mask to reduce the number of mask bits.
17567         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
17568         (-mbit-word): Ditto.
17569         (-mregnames): Ditto.
17570         * config/rs6000/rs6000.opt (-mupdate): Ditto.
17571         (-mfused-madd): Ditto.
17572
17573         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
17574         2.06 instructions.
17575         (-mvsx): New switch for VSX instructions.
17576         (-misel): Move from a variable to a mask to allow it to be set by
17577         -mcpu=.
17578
17579         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
17580         function declaration to an array declaration.
17581         (rs6000_hard_regno_nregs): New external array declaration.
17582
17583         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
17584         files included by rs6000.md.
17585
17586         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
17587         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
17588
17589         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
17590         a target mask.
17591         (rs6000_debug_reg): New -mdebug= variables.
17592         (rs6000_debug_addr): Ditto.
17593         (rs6000_debug_cost): Ditto.
17594         (rs6000_pmode): New variable to hold Pmode.
17595         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
17596         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
17597         calculated at compiler start.
17598         (rs6000_hard_regno_nregs): Change function to an array which holds
17599         HARD_REGNO_NREGS calculated at compiler start.
17600         (rs6000_explicit_options): Delete isel field.
17601         (rs6000_vector_unit): New array to hold which vector unit
17602         supports arithmetic options for a given type.
17603         (rs6000_vector_mem): New array to hold which vector unit supports
17604         memory reference operations for a given type.
17605         (rs6000_vector_align): New array to given the alignment of each
17606         vector type.
17607         (power7_cost): New basic costs for power7.
17608         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
17609         (rs6000_hard_regno_nregs_internal): New function, moved from
17610         HARD_REGNO_NREGS, to calculate the number of registers each hard
17611         register takes for each type.
17612         (rs6000_debug_reg_print): New function for -mdebug=reg support.
17613         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
17614         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
17615         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
17616         unit information here so it is calculated once at compiler startup
17617         time.
17618         (rs6000_override_options): Make -misel a target mask.  Add more
17619         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
17620         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
17621         -mdebug=cost.
17622         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
17623         (rs6000_handle_option): Move -misel from variable to target mask.
17624         (rs6000_builtin_mask_for_load): Add VSX support.
17625         (rs6000_conditional_register_usage): Ditto.
17626         (USE_ALTIVEC_FOR_ARG_P): Ditto.
17627         (function_arg_boundary): Ditto.
17628         (rs6000_expand_builtin): Ditto.
17629         (def_builtin): Make abort message a little friendlier.
17630         (rs6000_emit_int_cmove): Add support for 64-bit isel.
17631
17632         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
17633         assembler support the popcntd instruction instead of a vsx
17634         instruction to enable power7 support.
17635         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
17636         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
17637         option to the assembler if -mcpu=native.
17638         (ASM_CPU_NATIVE_SPEC): Ditto.
17639         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
17640         ISA 2.06 features.
17641         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
17642         the lwsync instruction.
17643         (enum processor_type): Add PROCESSOR_POWER7.
17644         (rs6000_debug_reg): New -mdebug= options.
17645         (rs6000_debug_addr): Ditto.
17646         (rs6000_debug_cost): Ditto.
17647         (rs6000_isel): Delete.
17648         (enum rs6000_vector): New enum to say what vector unit we have.
17649         (VECTOR_UNIT_*): New macros to say which vector unit has
17650         arithmetic operations for a given type.
17651         (VECTOR_MEM_*): New macros to say which vector unit has memory
17652         operations for a given type.
17653         (TARGET_LDBRX): Whether the machine supports the ldbrx
17654         instruction.
17655         (TARGET_ISEL): Delete, -misel moved to be a mask.
17656         (TARGET_ISEL64): New macro for 64-bit isel support.
17657         (UNITS_PER_VSX_WORD): New macro.
17658         (POINTER_SIZE): Move to be an external variable, rather than
17659         calculating whether we are generating 32 ot 64-bit code.
17660         (Pmode): Ditto.
17661         (STACK_BOUNDARY): Add VSX support.
17662         (LOCAL_ALIGNMENT): Ditto.
17663         (SLOW_UNALIGNED_ACCESS): Ditto.
17664         (VSX_REGNO_P): New macro for VSX support.
17665         (VFLOAT_REGNO_P): Ditto.
17666         (VINT_REGNO_P): Ditto.
17667         (VLOGICAL_REGNO_P): Ditto.
17668         (VSX_VECTOR_MODE): Ditto.
17669         (VSX_SCALAR_MODE): Ditto.
17670         (VSX_MODE): Ditto.
17671         (VSX_MOVE_MODE): Ditto.
17672         (VSX_REG_CLASS_P): Ditto.
17673         (HARD_REGNO_NREGS): Instead of calling a function, use an array
17674         lookup.
17675         (UNITS_PER_SIMD_WORD): Add VSX support.
17676         (MODES_TIEABLE_P): Ditto.
17677         (STARTING_FRAME_OFFSET): Ditto.
17678         (STACK_DYNAMIC_OFFSET): Ditto.
17679         (EPILOGUE_USES): Ditto.
17680         (REGNO_REG_CLASS): Move to array lookup.
17681         (CLASS_MAX_NREGS): Ditto.
17682         (rs6000_vector_reg_class): Add declaration.
17683         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
17684         overlap with the floating point and Altivec registers.
17685
17686         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
17687
17688         * config/rs6000/driver-rs6000.c (asm_names): New static array to
17689         give the appropriate asm switches if -mcpu=native.
17690         (host_detect_local_cpu): Add support for "asm".
17691         (host_detect_local_cpu): Follow GNU code guidelines for name.
17692
17693         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
17694         -mbit-word to a variable instead of being a target mask.
17695
17696         * config/rs6000/sync.md (lwsync): If the assembler supports it,
17697         emit the lwsync instruction instead of emitting the instruction as
17698         an integer constant.
17699
17700         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
17701         fixuns_trundfsi2, move expander into rs6000.md.
17702
17703         * config/rs6000/rs6000.md (cpu): Add power7.
17704         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
17705         (logical predicate patterns): Change the single instruction
17706         primitives that set CR0 to be fast_compare instead of compare.
17707         (norsi*): Ditto.
17708         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
17709         (popcntddi2): Ditto.
17710         (popcount<mode>): Ditto.
17711         (floating multiply/add insns): Name the floating point
17712         multiply/add insns.
17713         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
17714         (isel_unsigned_<mode>): Ditto.
17715         (fixuns_trundfsi2): Move expander here from spe.md.
17716         (smindi3): Define if we have -misel on 64-bit systems.
17717         (smaxdi3): Ditto.
17718         (umindi3): Ditto.
17719         (umaxdi3): Ditto.
17720
17721 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
17722
17723         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
17724         extra_objs.
17725         * config/avr/avr.c (avr_current_device): New variable.
17726         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
17727         (avr_arch, mcu_type_s): Move to avr.h.
17728         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
17729         default_data_section_start fields.
17730         (avr_arch): Moved from avr.c.
17731         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
17732         library_name fields.
17733         (avr_current_device, avr_mcu_types, avr_arch_types,
17734         avr_device_to_arch, avr_device_to_data_start,
17735         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
17736         (EXTRA_SPEC_FUNCTIONS): Define.
17737         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
17738         options mapping. Use device_to_arch and device_to_data_start insted.
17739         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
17740         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
17741         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
17742         * config/avr/driver-avr.c: New file.
17743         * config/avr/avr-devices.c: New file.
17744
17745 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
17746
17747         * var-tracking.c (unshare_variable): Force initialized to
17748         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
17749         (set_variable_part): Likewise.
17750         (struct variable_union_info): Remove pos_src field.
17751         (vui_vec, vui_allocated): New variables.
17752         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
17753         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
17754         == 1 use a simpler sorting algorithm.  Compute pos field right
17755         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
17756         Avoid quadratic comparison if !flag_var_tracking_uninit.
17757         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
17758         unshare_variable unconditionally.
17759         (dataflow_set_different_2): Removed.
17760         (dataflow_set_different): Don't traverse second hash table.
17761         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
17762         unconditionally to var_reg_set or var_mem_set.
17763         (emit_notes_in_bb): Likewise.
17764         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
17765         unshare_variable.
17766         (emit_note_insn_var_location): Don't set initialized to
17767         VAR_INIT_STATUS_INITIALIZED early.
17768         (vt_finalize): Free vui_vec if needed, clear vui_vec and
17769         vui_allocated.
17770         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
17771
17772         * tree-object-size.c (addr_object_size): Instead of checking
17773         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
17774         are no FIELD_DECLs following it.
17775
17776 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
17777
17778         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
17779         order to match bswaps with signed source operands.
17780
17781 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17782
17783         * sdbout.c (sdbout_one_type): Fix braces in switch.
17784
17785 2009-06-23  Richard Guenther  <rguenther@suse.de>
17786
17787         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
17788         member.
17789         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
17790         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
17791         var_callused, callused_tree, var_storedanything, storedanything_tree,
17792         var_integer, integer_tree): Remove global variables.
17793         (new_var_info): Do not pass new id, append the new var to the
17794         global variable vector.
17795         (do_ds_constraint): Use is_global_var member of the variable-info.
17796         (new_scalar_tmp_constraint_exp): Adjust.
17797         (create_function_info_for): Likewise.
17798         (create_variable_info_for): Likewise.
17799         (find_what_var_points_to): Remove dead code.
17800         (init_base_vars): Simplify.
17801         (compute_points_to_sets): Adjust.
17802
17803 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
17804
17805         * combine.c (try_combine): Dump information about the insns we're
17806         combining.
17807
17808 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
17809
17810         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
17811         check when calling force_to_mode on TRUNCATE's operand.
17812
17813 2009-06-22  Ian Lance Taylor  <iant@google.com>
17814
17815         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
17816
17817 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
17818
17819         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
17820
17821 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17822
17823         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
17824         override library linkage flags such as -static-libgcc or
17825         -shared-libgcc.
17826
17827 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
17828
17829         * config/m68k/m68k-devices.def: Add line for MCF5221x.
17830
17831 2009-06-22  Ian Lance Taylor  <iant@google.com>
17832
17833         * config/linux.opt: Put mglibc ahead of muclibc.
17834
17835         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
17836         for duplicate decls.
17837
17838 2009-06-22  Matthias Klose  <doko@ubuntu.com>
17839
17840         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
17841
17842 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
17843
17844         PR objc/28050
17845         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
17846         instead of NULL if a parser error occurs.
17847
17848 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17849
17850         * dwarf2out.c (dwarf2_debug_hooks): Initialize
17851         non-DWARF2_DEBUGGING_INFO version.
17852
17853 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
17854
17855         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
17856         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
17857
17858         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
17859         (LIBGCC2_TF_CEXT): Define.
17860         (TF_SIZE): Define.
17861
17862 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17863
17864         PR target/40463
17865         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
17866
17867 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17868
17869         * config/arm/arm.c (arm_override_options): Disable
17870         -mcaller-super-interworking and -mcallee-super-interworking.
17871         * doc/invoke.texi (ARM Options): Document this.
17872
17873 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
17874
17875         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
17876         * config/arm/constraints.md (j): New constraint for movw operands.
17877         (N): Remove thumb2 meaning.
17878         * config/arm/arm.md (*arm_movw): Delete.
17879         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
17880         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
17881         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
17882
17883 2009-06-22  Martin Jambor  <mjambor@suse.cz>
17884
17885         PR tree-optimization/40492
17886         * tree-sra.c (sra_modify_assign): Pass zero offsets to
17887         build_ref_for_offset.
17888
17889 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
17890
17891         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
17892         JUMP_TABLE_DATA_P predicates where applicable.
17893         * auto-inc-dec.c: Ditto.
17894         * builtins.c: Ditto.
17895         * caller-save.c: Ditto.
17896         * calls.c: Ditto.
17897         * cfgcleanup.c: Ditto.
17898         * cfglayout.c: Ditto.
17899         * cfgrtl.c: Ditto.
17900         * combine.c: Ditto.
17901         * combine-stack-adj.c: Ditto.
17902         * cse.c: Ditto.
17903         * cselib.c: Ditto.
17904         * dbxout.c: Ditto.
17905         * df-scan.c: Ditto.
17906         * dse.c: Ditto.
17907         * dwarf2asm.c: Ditto.
17908         * dwarf2out.c: Ditto.
17909         * emit-rtl.c: Ditto.
17910         * except.c: Ditto.
17911         * explow.c: Ditto.
17912         * expmed.c: Ditto.
17913         * expr.c: Ditto.
17914         * final.c: Ditto.
17915         * function.c: Ditto.
17916         * fwprop.c: Ditto.
17917         * gcse.c: Ditto.
17918         * genpreds.c: Ditto.
17919         * genrecog.c: Ditto.
17920         * ifcvt.c: Ditto.
17921         * ira-costs.c: Ditto.
17922         * ira-lives.c: Ditto.
17923         * jump.c: Ditto.
17924         * loop-iv.c: Ditto.
17925         * lower-subreg.c: Ditto.
17926         * modulo-sched.c: Ditto.
17927         * optabs.c: Ditto.
17928         * postreload.c: Ditto.
17929         * print-rtl.c: Ditto.
17930         * recog.c: Ditto.
17931         * reginfo.c: Ditto.
17932         * regmove.c: Ditto.
17933         * reload1.c: Ditto.
17934         * reload.c: Ditto.
17935         * reorg.c: Ditto.
17936         * rtlanal.c: Ditto.
17937         * rtl.c: Ditto.
17938         * sched-vis.c: Ditto.
17939         * sdbout.c: Ditto.
17940         * sel-sched-ir.c: Ditto.
17941         * simplify-rtx.c: Ditto.
17942         * targhooks.c: Ditto.
17943         * var-tracking.c: Ditto.
17944         * vmsdbgout.c: Ditto.
17945
17946 2009-06-22  Matthias Klose  <doko@ubuntu.com>
17947
17948         * Makefile.in (install-plugin): Always use DESTDIR.
17949
17950 2009-06-22  Olivier Hainque  <hainque@adacore.com>
17951
17952         * config/pa/pa.c (output_call): Don't optimize post call jumps
17953         into return address adjustments if the call may throw.
17954
17955 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
17956
17957         * arm.c (thumb1_output_casesi): New function.
17958         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
17959         optimizing for size or PIC.
17960         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
17961         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
17962         (casesi): Handle Thumb-1 when optimizing for size or PIC.
17963         (thumb1_casesi_internal_pic): New expand rule.
17964         (thumb1_casesi_dispatch): New pattern.
17965         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
17966         thumb-1 mode.
17967         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
17968         in the text seciton when PIC or optimizing for size.
17969         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
17970         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
17971         preservation properties of code.
17972         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
17973         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
17974         (__gnu_thumb1_case_si): New function.
17975         * t-arm (LIB1ASMSRC): Define here.
17976         (LIB1ASMFUNCS): Add some common functions.
17977         * t-arm-elf (LIB1ASMSRC): Delete.
17978         (LIB1ASMFUNCS): Append to existing set.
17979         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17980         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17981         * t-symbian (LIB1ASMFUNCS): Likewise.
17982         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17983         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17984
17985 2009-06-21  Richard Guenther  <rguenther@suse.de>
17986
17987         PR tree-optimization/38729
17988         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
17989         to loops with a single exit if -fno-expensive-optimizations.
17990
17991 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
17992
17993         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
17994         (dataflow_set): Change vars type from htab_t to shared_hash.
17995         (shared_hash_pool, empty_shared_hash): New variables.
17996         (vars_clear): Removed.
17997         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
17998         shared_hash_find_slot_unshare, shared_hash_find_slot,
17999         shared_hash_find_slot_noinsert, shared_hash_find): New
18000         static inlines.
18001         (shared_hash_unshare, shared_hash_destroy): New functions.
18002         (unshare_variable): Unshare set->vars if shared, use
18003         shared_hash_htab.
18004         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
18005         (get_init_value, find_src_set_src, dump_dataflow_set,
18006         clobber_variable_part, emit_notes_for_differences): Use
18007         shared_hash_htab.
18008         (dataflow_set_init): Remove second argument, set vars to
18009         empty_shared_hash instead of creating a new htab.
18010         (dataflow_set_clear): Call shared_hash_destroy and set vars
18011         to empty_shared_hash instead of calling vars_clear.
18012         (dataflow_set_copy): Don't call vars_copy, instead just share
18013         the src htab with dst.
18014         (variable_union): Use shared_hash_*, use initially NO_INSERT
18015         lookup if set->vars is shared.  Don't keep slot cleared before
18016         calling unshare_variable.  Unshare set->vars if needed.
18017         Even ->refcount == 1 vars must be unshared if set->vars is shared
18018         and var needs to be modified.
18019         (variable_canonicalize): New function.
18020         (dataflow_set_union): If dst->vars is empty, just share src->vars
18021         with dst->vars and traverse with variable_canonicalize to canonicalize
18022         and unshare what is needed.
18023         (dataflow_set_different): If old_set and new_set use the same shared
18024         htab, they aren't different.  If number of htab elements is different,
18025         htabs are different.  Use shared_hash_*.
18026         (dataflow_set_destroy): Call shared_hash_destroy instead of
18027         htab_delete.
18028         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
18029         second argument to dataflow_set_init.
18030         (vt_initialize): Likewise.  Initialize shared_hash_pool and
18031         empty_shared_hash, move bb in/out initialization afterwards.
18032         Use variable_htab_free instead of NULL as changed_variables del hook.
18033         (variable_was_changed): Change type of second argument to pointer to
18034         dataflow_set.  When inserting var into changed_variables, bump
18035         refcount.  Unshare set->vars if set is shared htab and slot needs to
18036         be cleared.
18037         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
18038         lookup if set->vars is shared.  Unshare set->vars if needed.
18039         Even ->refcount == 1 vars must be unshared if set->vars is shared
18040         and var needs to be modified.  Adjust variable_was_changed caller.
18041         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
18042         vars must be unshared if set->vars is shared and var needs to be
18043         modified.  Adjust variable_was_changed caller.
18044         (emit_note_insn_var_location): Don't pool_free var.
18045         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
18046         instead of 1.
18047         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
18048         free_alloc_pool on shared_hash_pool.
18049
18050 2009-06-20  Anthony Green  <green@moxielogic.com>
18051
18052         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
18053         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
18054
18055 2009-06-20  Richard Guenther  <rguenther@suse.de>
18056
18057         * tree-ssa-structalias.c (find_func_aliases): For memset use
18058         a constraint from NULL if we memset to zero.
18059         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
18060         we explicitly handle that do not read from memory.
18061         (call_may_clobber_ref_p_1): Properly handle builtins that may
18062         set errno.
18063
18064 2009-06-20  Richard Guenther  <rguenther@suse.de>
18065
18066         PR tree-optimization/40495
18067         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
18068         (new_scalar_tmp_constraint_exp): New function.
18069         (process_constraint): Do not create temporary decls.
18070         (process_all_all_constraints): Likewise.
18071         (handle_const_call): Likewise.
18072         (create_function_info_for): Do not set decl.
18073
18074 2009-06-19  Ian Lance Taylor  <iant@google.com>
18075
18076         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
18077         (rs6000_attribute_table): Make static; move before use.
18078
18079 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
18080
18081         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
18082         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
18083         Propagate the TREE_READONLY flag without overwriting it.
18084         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
18085         Propagate the TREE_READONLY flag onto the result.
18086         (process_call_operands): Move around.  Use correct constant value.
18087
18088 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18089
18090         PR target/40482
18091         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
18092         * config/arm/arm.md: Likewise.
18093
18094 2009-06-19  Ian Lance Taylor  <iant@google.com>
18095
18096         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
18097         to GIMPLE_ERROR_MARK.
18098
18099         * c-typeck.c (build_conditional_expr): Add op1_original_type and
18100         op2_original_type parameters.  Warn about using different enum types.
18101         * c-parser.c (c_parser_conditional_expression): Pass original
18102         types to build_conditional_expr.
18103         * c-tree.h (build_conditional_expr): Update declaration.
18104
18105 2009-06-19  Ian Lance Taylor  <iant@google.com>
18106
18107         * config/i386/i386.c (ix86_function_specific_save): Test that
18108         fields match values, rather than testing the values are in a
18109         certain range.
18110
18111 2009-06-19  Richard Guenther  <rguenther@suse.de>
18112
18113         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
18114         ADDR_EXPR pointers.
18115         (ptr_derefs_may_alias_p): Likewise.
18116         (ptr_deref_may_alias_ref_p_1): New function.
18117         (ptr_deref_may_alias_ref_p): Likewise.
18118         (ref_maybe_used_by_call_p_1): Handle builtins that are not
18119         covered by looking at the ESCAPED solution.
18120         (call_may_clobber_ref_p_1): Likewise.
18121         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
18122         Handle NULL_TREE offset.  Do not produce redundant constraints.
18123         (process_all_all_constraints): New helper function.
18124         (do_structure_copy): Use it.
18125         (handle_lhs_call): Likewise.
18126         (find_func_aliases): Handle some builtins with pointer arguments
18127         and/or return values explicitly.
18128
18129 2009-06-19  Ian Lance Taylor  <iant@google.com>
18130
18131         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
18132
18133 2009-06-19  Ian Lance Taylor  <iant@google.com>
18134
18135         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
18136
18137 2009-06-19  Ian Lance Taylor  <iant@google.com>
18138
18139         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
18140         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
18141         version.
18142
18143         * c-decl.c (finish_decl): If -Wc++-compat, warn about
18144         uninitialized const.
18145
18146 2009-06-19  Ian Lance Taylor  <iant@google.com>
18147
18148         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
18149         all uses.
18150
18151         * c-decl.c (in_struct, struct_types): Remove.
18152         (struct c_binding): Add in_struct field.
18153         (c_binding_ptr): Define type, along with VEC.
18154         (struct c_struct_parse_info): Define.
18155         (struct_parse_info): New static variable.
18156         (bind): Initialize in_struct field.
18157         (start_struct): Remove enclosing_in_struct and
18158         enclosing_struct_types parameters.  Add
18159         enclosing_struct_parse_info parameter.  Change all callers.  Set
18160         struct_parse_info rather than in_struct and struct_types.
18161         (grokfield): If -Wc++-compat and there is a symbol binding for the
18162         field name, set the in_struct flag and push it on the
18163         struct_parse_info->fields vector.
18164         (warn_cxx_compat_finish_struct): New static function.
18165         (finish_struct): Remove enclosing_in_struct and
18166         enclosing_struct_types parameters.  Add
18167         enclosing_struct_parse_info parameter.  Change all callers.  Don't
18168         set C_TYPE_DEFINED_IN_STRUCT here.  Call
18169         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
18170         parameter.  Only push on struct_types if warn_cxx_compat.
18171         (finish_enum): Only push on struct_types if warn_cxx_compat.
18172         (declspecs_add_type): Add loc parameter.  Change all callers.
18173         Change all error calls to error_at.  Pass loc, not input_location,
18174         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
18175         defined in a struct.  If -Wc++-compat and parsing a struct, record
18176         that a typedef name was used.
18177         * c-parser.c (c_parser_declspecs): Get location to pass to
18178         declspecs_add_type.
18179         (c_parser_struct_or_union_specifier): Update calls to start_struct
18180         and finish_struct.
18181         * c-tree.h (struct c_struct_parse_info): Declare.
18182         (finish_struct, start_struct): Update declarations.
18183         (declspecs_add_type): Update declaration.
18184
18185 2009-06-19  Ian Lance Taylor  <iant@google.com>
18186
18187         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
18188         variable with an anonymous type.
18189
18190 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
18191
18192         * see.c: Remove for real.
18193
18194 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
18195
18196         * optabs.h (enum optab_index): Add new OTI_significand.
18197         (significand_optab): Define corresponding macro.
18198         * optabs.c (init_optabs): Initialize significand_optab.
18199         * genopinit.c (optabs): Implement significand_optab using
18200         significand?f2 patterns.
18201         * builtins.c (expand_builtin_mathfn): Handle
18202         BUILT_IN_SIGNIFICAND{,F,L}.
18203         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
18204         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
18205
18206         * config/i386/i386.md (significandxf2, significand<mode>2): New
18207         expanders to implement significandf, significand and significandl
18208         built-ins as inline x87 intrinsics.
18209
18210 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
18211
18212         * config/avr/avr.c (avr_override_options): Remove setting value of
18213         PARAM_INLINE_CALL_COST.
18214
18215 2009-06-18  Richard Henderson  <rth@redhat.com>
18216
18217         PR 40488
18218         * tree-pass.h (TDF_ASMNAME): New.
18219         * tree-dump.c (dump_options): Add asmname.
18220         * doc/invoke.texi: Document it.
18221
18222         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
18223         (dump_decl_name): ...here.
18224         (dump_function_name): New flags arg; mind TDF_ASMNAME.
18225         (dump_generic_node): Update dump_function_name calls.
18226         (print_call_name): New flags arg; update all dump calls.
18227         * diagnostic.h (print_call_name): Update.
18228         * gimple-pretty-print.c (dump_gimple_call): Update.
18229
18230 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
18231
18232         PR target/40470
18233         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
18234
18235 2009-06-18  Diego Novillo  <dnovillo@google.com>
18236
18237         * doc/plugins.texi: Document plugin_is_GPL_compatible.
18238         * plugin.c (str_license): Declare.
18239         (try_init_one_plugin): Assert that the symbol
18240         'plugin_is_GPL_compatible' exists.
18241
18242 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
18243
18244         * see.c: Remove.
18245         * Makefile.in (OBJS-common): Remove see.o.
18246         (see.o): Remove.
18247         * common.opt (fsee): Mark as preserved for backward compatibility.
18248         * opts.c (common_handle_option): Add OPT_fsee to the backward
18249         compatibility section.
18250         * passes.c (init_optimization_passes, pass_see): Remove pass.
18251         * timevar.def (TV_SEE): Remove.
18252         * tree-pass.h (pass_see): Remove declaration.
18253         * doc/invoke.texi (-fsee): Remove documentation.
18254
18255 2009-06-18  Martin Jambor  <mjambor@suse.cz>
18256
18257         * tree-sra.c: Include statistics.h
18258         (sra_stats): New variable.
18259         (sra_initialize): Clear sra_stats.
18260         (create_access_replacement): Increment sra_stats.replacements.
18261         (get_access_replacement): Do not return twice.
18262         (analyze_all_variable_accesses): Increment statistics counter by the
18263         number of scalarized aggregates.
18264         (generate_subtree_copies): Increment sra_stats.subtree_copies.
18265         (sra_modify_expr): Increment sra_stats.exprs.
18266         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
18267         (sra_modify_assign): Increment sra_stats.exprs,
18268         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
18269         (perform_intra_sra): Update statistics counters.
18270         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
18271
18272 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
18273
18274         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
18275         (arm_scalar_mode_supported_p): New function.
18276
18277 2009-06-18  Paul Brook  <paul@codesourcery.com>
18278             Sandra Loosemore  <sandra@codesourcery.com>
18279
18280         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
18281         (__extendhfsf2, __truncsfhf2): Define.
18282         * config/arm/fp16.c: New file.
18283         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
18284         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
18285
18286 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
18287
18288         * doc/extend.texi (Half-Precision): New section.
18289         * doc/invoke.texi (Option Summary): List -mfp16-format.
18290         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
18291         * config/arm/arm.opt (mfp16-format=): New.
18292         * config/arm/arm.c: Include intl.h.
18293         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
18294         (TARGET_INVALID_RETURN_TYPE): Redefine.
18295         (TARGET_PROMOTED_TYPE): Redefine.
18296         (TARGET_CONVERT_TO_TYPE): Redefine.
18297         (arm_fp16_format): Define.
18298         (all_fpus): Add entry for neon-fp16.
18299         (fp_model_for_fpu): Likewise.
18300         (struct fp16_format): Declare.
18301         (all_fp16_formats): Define.
18302         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
18303         functions.
18304         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
18305         and no ldrh.
18306         (arm_legitimate_index_p): Treat HFmode like HImode.
18307         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
18308         (coproc_secondary_reload_class): Special-case HFmode.
18309         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
18310         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
18311         (arm_init_fp16_builtins): New.
18312         (arm_init_builtins): Call it.
18313         (arm_invalid_parameter_type): New.
18314         (arm_invalid_return_type): New.
18315         (arm_promoted_type): New.
18316         (arm_convert_to_type).
18317         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
18318         format.
18319         (arm_emit_fp16_const): New function.
18320         (arm_mangle_type): Mangle __fp16 as "Dh".
18321         * config/arm/arm.h (TARGET_VFPD32): Make it know about
18322         FPUTYPE_NEON_FP16.
18323         (TARGET_NEON_FP16): New.
18324         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
18325         (enum fputype): Add FPUTYPE_NEON_FP16.
18326         (enum arm_fp16_format_type): Declare.
18327         (arm_fp16_format): Declare.
18328         (LARGEST_EXPONENT_IS_NORMAL): Define.
18329         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
18330         * config/arm/arm-modes.def (HFmode): Define.
18331         * config/arm/vfp.md (*movhf_vfp): New.
18332         (extendhfsf2): New.
18333         (truncsfhf2): New.
18334         * config/arm/arm.md (fpu): Add neon_fp16.
18335         (floatsihf2, floatdihf2): New.
18336         (fix_trunchfsi2, fix_trunchfdi2): New.
18337         (truncdfhf2): New.
18338         (extendhfdf2): New.
18339         (movhf): New.
18340         (*arm32_movhf): New.
18341         (*thumb1_movhf): New.
18342         (consttable_2): Add check for HFmode constants.
18343         (consttable_4): Handle HFmode constants.
18344
18345 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
18346
18347         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
18348
18349 2009-06-17  Olivier Hainque  <hainque@adacore.com>
18350
18351         * collect2.c (main): Use CONST_CAST2 to perform char ** to
18352         const char ** conversion in AIX specific section.
18353
18354 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
18355
18356         * config/i386/i386.c (ix86_special_builtin_type): Remove
18357         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
18358         (bdesc_special_args): Updated.
18359         (ix86_init_mmx_sse_builtins): Likewise.
18360         (ix86_expand_special_args_builtin): Likewise.
18361
18362 2009-06-17  Richard Henderson  <rth@redhat.com>
18363
18364         * tree-pretty-print.c (maybe_dump_asm_name): New.
18365         (dump_decl_name): Use it.
18366         (PRINT_FUNCTION_NAME): Merge into...
18367         (dump_function_name): ... here.  Use maybe_dump_asm_name.
18368
18369 2009-06-17  Cary Coutant  <ccoutant@google.com>
18370
18371         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
18372         Change caller.
18373         * debug.c (struct gcc_debug_hooks): Change placeholder for
18374         source_line hook.
18375         (debug_nothing_int_charstar_int): Replaced by...
18376         (debug_nothing_int_charstar_int_bool): ...this.
18377         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
18378         source_line prototype.
18379         (debug_nothing_int_charstar_int): Replaced by...
18380         (debug_nothing_int_charstar_int_bool): ...this.
18381         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
18382         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
18383         Output is_stmt operand when necessary.
18384         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
18385         (notice_source_line): Add is_stmt parameter.
18386         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
18387         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
18388         Change callers.
18389         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
18390         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
18391
18392 2009-06-17  Ian Lance Taylor  <iant@google.com>
18393
18394         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
18395         Change all uses.
18396         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
18397         call uses.
18398
18399 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
18400
18401         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
18402         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
18403         tree_strip_sign_nop_conversions and
18404         tree_ssa_strip_useless_type_conversions rather than stripping
18405         the operations here.
18406         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
18407         Declare them.
18408         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
18409         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
18410         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
18411         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
18412         functions.
18413
18414 2009-06-17  Michael Eager  <eager@eagercon.com>
18415
18416         * config/rs6000/constraints.md (register_constraint "d"): New.
18417         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
18418         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
18419         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
18420         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
18421         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
18422         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
18423         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
18424         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
18425         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
18426         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
18427         __fctiwz): Same.
18428         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
18429         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
18430         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
18431         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
18432         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
18433         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
18434         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
18435         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
18436         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
18437         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
18438         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
18439         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
18440         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
18441         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
18442
18443 2009-06-16  Ian Lance Taylor  <iant@google.com>
18444
18445         * profile.c (total_num_never_executed): Don't define.
18446         (compute_branch_probabilities): Don't count or print
18447         num_never_executed.
18448         (init_branch_prob): Don't set total_num_never_executed.
18449         (end_branch_prob): Don't print total_num_never_executed.
18450
18451 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
18452
18453         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
18454
18455 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
18456
18457         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
18458         (nabstd2_fpr): Same.
18459
18460 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
18461
18462         * expr.c (expand_assignment): Change complex type check.
18463
18464 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
18465
18466         * doc/plugins.texi (Building GCC plugins): Added new section.
18467
18468 2009-06-17  Ian Lance Taylor  <iant@google.com>
18469
18470         * c-pch.c (get_ident): Don't set size of templ array.
18471         (pch_init): Don't set size of partial_pch array.
18472
18473         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
18474         string constant to intialize an array whose size is the length of
18475         the string.
18476
18477 2009-06-17  Richard Guenther  <rguenther@suse.de>
18478
18479         PR tree-optimization/40389
18480         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
18481         to addressable types.
18482         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
18483
18484 2009-06-17  Richard Guenther  <rguenther@suse.de>
18485
18486         PR middle-end/40460
18487         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
18488         if there is no evolution of left in the loop bail out.
18489         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
18490         chrec_fold_multiply.
18491
18492 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
18493             Janis Johnson  <janis187@us.ibm.com>
18494
18495         PR target/39254
18496         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
18497         for the symbol ref of a constant that is the source of a move
18498         - nor for any other not-obvious-label-ref constants.
18499
18500 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
18501
18502         * plugin.c (position_pass): Skip newly inserted pass during list
18503         traversal to avoid repeated insertion.
18504
18505 2009-06-16  Ian Lance Taylor  <iant@google.com>
18506
18507         * vec.h (VEC_stack_alloc): Define different version if
18508         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
18509         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
18510         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
18511         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
18512
18513 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
18514
18515         * config.gcc (extra_headers): Add ia32intrin.h for x86.
18516
18517         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
18518         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
18519         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
18520         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
18521         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
18522         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
18523         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
18524         (bdesc_special_args): Add __builtin_ia32_rdtsc and
18525         __builtin_ia32_rdtscp.
18526         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
18527         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
18528         and __builtin_ia32_rorhi.
18529         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
18530         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
18531         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
18532         (ix86_expand_args_builtin): Likewise.
18533         (ix86_expand_special_args_builtin): Likewise.
18534
18535         * config/i386/i386.md (UNSPECV_RDTSCP): New.
18536         (UNSPECV_RDTSC): Likewise.
18537         (UNSPECV_RDPMC): Likewise.
18538         (*bsr): Renamed to ...
18539         (bsr): This
18540         (*bsr_rex64): Renamed to ...
18541         (bsr_rex64): This.
18542         (rdpmc): New.
18543         (*rdpmc): Likewise.
18544         (*rdpmc_rex64): Likewise.
18545         (rdtsc): Likewise.
18546         (*rdtsc): Likewise.
18547         (*rdtsc_rex64): Likewise.
18548         (rdtscp): Likewise.
18549         (*rdtscp): Likewise.
18550         (*rdtscp_rex64): Likewise.
18551
18552         * config/i386/ia32intrin.h: New.
18553
18554         * config/i386/x86intrin.h: Include <ia32intrin.h>.
18555
18556 2009-06-16  Ian Lance Taylor  <iant@google.com>
18557
18558         * ira-build.c (copy_info_to_removed_store_destinations):
18559         Initialize parent_a.
18560
18561 2009-06-16  Ian Lance Taylor  <iant@google.com>
18562
18563         * c-decl.c (grokdeclarator): Change size_varies to bool.
18564
18565 2009-06-16  Ian Lance Taylor  <iant@google.com>
18566
18567         * sel-sched.c: Make forward declarations of move_op_hooks and
18568         fur_hooks explicitly extern.
18569
18570 2009-06-16  Ian Lance Taylor  <iant@google.com>
18571
18572         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
18573         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
18574
18575 2009-06-16  Ian Lance Taylor  <iant@google.com>
18576
18577         * resource.c (mark_referenced_resources): Change
18578         include_delayed_effects parameter to bool.  Change all callers.
18579         (mark_end_of_function_resources): Likewise.
18580         * reorg.c (insn_references_resource_p): Likewise.
18581         (insn_sets_resource_p): Likewise.
18582         * resource.h (mark_referenced_resources): Update declaration.
18583         (mark_end_of_function_resources): Update declaration.
18584
18585 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
18586
18587         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
18588
18589 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
18590
18591         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
18592         GCC can bootstrap on AIX with GNU Binutils 2.20.
18593
18594 2009-06-16  Ian Lance Taylor  <iant@google.com>
18595
18596         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
18597
18598 2009-06-16  Ian Lance Taylor  <iant@google.com>
18599
18600         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
18601         inline, not extern inline.
18602         (exact_log2): Likewise.
18603         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
18604         test CLZ_HWI.
18605         (exact_log2): Likewise, but don't test CTZ_HWI.
18606
18607 2009-06-16  Ian Lance Taylor  <iant@google.com>
18608
18609         * bitmap.c (bitmap_clear): Don't declare as inline.
18610         * gimple.c (gimplify_assign): Likewise.
18611         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
18612         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
18613         (sched_scan_info): Remove duplicate definition.
18614
18615 2009-06-16  Ian Lance Taylor  <iant@google.com>
18616
18617         * c-common.c (skip_evaluation): Don't define.
18618         (c_inhibit_evaluation_warnings): Define global variable.
18619         (overflow_warning): Check c_inhibit_evaluation_warnings rather
18620         than skip_evaluation.
18621         (convert_and_check, warn_for_div_by_zero): Likewise.
18622         * c-common.h (skip_evaluation): Don't declare.
18623         (c_inhibit_evaluation_warnings): Declare.
18624         * c-parser.c (c_parser_typeof_specifier): Set
18625         c_inhibit_evaluation_warnings rather than skip_evaluation.
18626         (c_parser_conditional_expression): Likewise.
18627         (c_parser_binary_expression): Likewise.
18628         (c_parser_sizeof_expression): Likewise.
18629         (c_parser_alignof_expression): Likewise.
18630         * c-typeck.c (build_indirect_ref): Check
18631         c_inhibit_evaluation_warnings rather than skip_evaluation.
18632         (build_conditional_expr, build_binary_op): Likewise.
18633
18634 2009-06-16  Richard Guenther  <rguenther@suse.de>
18635
18636         * tree-ssa-alias.c (is_escape_site): Remove.
18637         * tree-ssa-alias.h (enum escape_type): Remove.
18638         (is_escape_site): Likewise.
18639         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
18640         via casts and asms without deferring to is_escape_site.
18641
18642 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
18643
18644         PR middle-end/40446
18645         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
18646         use gen_lowpart if op0 has complex mode.
18647
18648 2009-06-16  Richard Guenther  <rguenther@suse.de>
18649
18650         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
18651         variables add them to ESCAPED.
18652         (find_func_aliases): Do not make all indirectly stored values escaped.
18653
18654 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
18655
18656         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
18657         make_decl_one_only.
18658
18659 2009-06-16  Martin Jambor  <mjambor@suse.cz>
18660
18661         PR tree-optimization/40432
18662         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
18663         check whether we need to force gimple register operand.
18664
18665 2009-06-16  Martin Jambor  <mjambor@suse.cz>
18666
18667         PR tree-optimization/40413
18668         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
18669         build_ref_for_offset.
18670         (propagate_subacesses_accross_link): Fix a typo in a comment.
18671
18672 2009-06-16  Ira Rosen  <irar@il.ibm.com>
18673
18674         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
18675         with additional parameter.
18676         * tree-vectorizer.h (enum vect_def_type): Add new value
18677         vect_nested_cycle.
18678         (enum vect_relevant): Add comments.
18679         (vect_is_simple_reduction): Add new argument.
18680         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
18681         Detect nested cycles.
18682         (vect_is_simple_reduction): Update documentation, add an argument to
18683         distinguish inner-loop reduction from nested cycle, detect nested
18684         cycles, fix printings and indentation, don't swap operands in case
18685         of nested cycle.
18686         (get_initial_def_for_reduction): Handle subtraction.
18687         (vect_create_epilog_for_reduction): Add new argument to specify
18688         reduction variable.
18689         (vect_finalize_reduction): Handle subtraction, fix comments.
18690         (vectorizable_reduction): Handle nested cycles. In case of nested
18691         cycle keep track of the reduction variable position. Call
18692         vect_is_simple_reduction with additional parameter. Use original
18693         statement code in reduction epilogue for nested cycle. Call
18694         vect_create_epilog_for_reduction with additional parameter.
18695         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
18696         inner-loop vectorization.
18697         (vect_recog_widen_sum_pattern): Likewise.
18698         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
18699         and reductions.
18700         (vect_mark_stmts_to_be_vectorized): Likewise.
18701         (vect_get_vec_def_for_operand): Handle nested cycles.
18702
18703 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18704
18705         * doc/invoke.texi (Debugging Options): Fix option index entries
18706         for -fdump-statistics, -frandom-seed add entries for
18707         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
18708         (FRV Options): Fix entries for -mTLS, -mtls.
18709         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
18710         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
18711         (M68hc1x Options): Fix @itemx for -mnominmax.
18712         (MCore Options): Fix entry for -mno-lsim.
18713         (MMIX Options): Fix entry for -mabi=mmixware.
18714         (PDP-11 Options): Fix entry for -mbcopy-builtin.
18715
18716 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
18717
18718         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
18719         Mention the plugin mode of gengtype.
18720         * doc/gty.texi (Source Files Containing Type Information): Likewise.
18721         * gengtype.c: Updated copyright.
18722         (plugin_files, nb_plugin_files) Added new static variables.
18723         (measure_input_list) Care about plugin_files.
18724         (write_rtx_next): Added early return in plugin mode.
18725         (create_file): Updated copyright year in generated file. Added
18726         asserts.
18727         (oprintf): Added early return if NULL outf.
18728         (get_output_file_with_visibility): Care of plugin_files.
18729         (get_output_file_name): May return null.
18730         (write_local): Added early return.
18731         (put_mangled_filename): Ditto.
18732         (finish_root_table): Added check for base_files.
18733         (write_roots): Care about null when plugins.
18734         (main): Added plugin mode.
18735
18736 2009-06-15  Ian Lance Taylor  <iant@google.com>
18737
18738         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
18739         * gcov.c (read_count_file): Add braces around variables declared
18740         before label.
18741
18742         * c.opt (Wjump-misses-init): New warning.
18743         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
18744         -Wall and -Wc++-compat if not already set.
18745         (c_common_post_options): Clear warn_jump_misses_init if it was not
18746         set.
18747         * c-decl.c (struct c_binding): Change type field to a union with
18748         new label field.  Make it the first field in the struct.  Update
18749         references to type to use u.type instead.
18750         (struct c_spot_bindings): Define.
18751         (struct c_goto_bindings): Define.
18752         (c_goto_bindings_p): Define, along with VECs.
18753         (struct c_label_vars): Define.
18754         (struct c_scope): Add has_label_bindings field.
18755         (bind_label, set_spot_bindings): New static functions.
18756         (decl_jump_unsafe, update_spot_bindings): New static functions.
18757         (update_label_decls): New static function.
18758         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
18759         Update binding u.label field to shadowed field.
18760         (c_binding_start_stmt_expr): New function.
18761         (c_binding_end_stmt_expr): New function.
18762         (pushdecl): Don't call c_begin_vm_scope.
18763         (make_label): Add defining and p_label_vars parameters.  Change
18764         all callers.
18765         (lookup_label): Correct test for whether a label has not yet been
18766         defined.  Call bind_label rather than bind.
18767         (warn_about_goto): New static function.
18768         (lookup_label_for_goto): New function.
18769         (declare_label): Call bind_label rather than bind.
18770         (check_earlier_gotos): New static function.
18771         (define_label): Don't give errors about jumping into statement
18772         expressions or scopes of variably modified types.  Call
18773         set_spot_bindings and check_earlier_gotos.  Call bind_label
18774         instead of bind.  Don't set label_context_stack_se or
18775         label_context_stack_vm.
18776         (c_get_switch_bindings): New function.
18777         (c_release_switch_bindings): New function.
18778         (c_check_switch_jump_warnings): New function.
18779         (start_function): Don't set label_context_stack_se or
18780         label_context_stack_vm.
18781         (finish_function): Likewise.
18782         * c-typeck.c (label_context_stack_se): Don't define.
18783         (label_context_stack_vm): Don't define.
18784         (c_finish_goto_label): Call lookup_label_for_goto rather than
18785         lookup_label.  Don't give errors about jumping into a statement
18786         expression or the scope of a variably modified type.  Don't set
18787         label_context_stack_se or label_context_stack_vm.
18788         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
18789         fields.  Add bindings field.
18790         (c_start_case): Don't set deleted fields.  Set bindings field.
18791         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
18792         or blocked_vm.  Call c_check_switch_jump_warnings.
18793         (c_finish_case): Don't test blocked_stmt_expr field.  Call
18794         c_release_switch_bindings.
18795         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
18796         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
18797         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
18798         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
18799         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
18800         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
18801         (c_begin_vm_scope, c_end_vm_scope): Don't define.
18802         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
18803         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
18804         (C_DECL_UNJUMPABLE_VM): Don't define.
18805         (C_DECL_UNDEFINABLE_VM): Don't define.
18806         (struct c_label_list): Don't define.
18807         (struct c_label_context_se): Don't define.
18808         (struct c_label_context_vm): Don't define.
18809         (struct c_spot_bindings): Declare.
18810         (c_bindings_start_stmt_expr): Declare.
18811         (c_bindings_end_stmt_expr): Declare.
18812         (lookup_label_for_goto): Declare.
18813         (c_get_switch_bindings, c_release_switch_bindings): Declare.
18814         (c_check_switch_jump_warnings): Declare.
18815         (label_context_stack_se, label_context_stack_vm): Don't declare.
18816         (c_finish_goto_label): Update declaration.
18817         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
18818         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
18819         (Warning Options): Document -Wjump-misses-init.
18820
18821 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
18822
18823         * tree-object-size.c (addr_object_size): Fix a pasto in the last
18824         change.
18825
18826 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
18827
18828         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
18829
18830 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
18831
18832         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
18833
18834 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
18835
18836         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
18837
18838 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
18839
18840         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
18841         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
18842         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
18843         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
18844         * dwarf2asm.c (dw2_force_const_mem): Update call to
18845         make_decl_one_only.
18846         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
18847         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
18848         * langhooks.c (lhd_comdat_group): Remove.
18849         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
18850         * tree.h (DECL_COMDAT_GROUP): New.
18851         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
18852         (tree_decl_with_vis): Add comdat_group. Remove one_only.
18853         (make_decl_one_only): Change signature.
18854         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
18855         make_decl_one_only.
18856         (make_decl_one_only): Change signature.
18857         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
18858
18859 2009-06-15  Richard Guenther  <rguenther@suse.de>
18860
18861         PR middle-end/40439
18862         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
18863
18864 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18865
18866         * tree-ssa-math-opts.c: Remove extra divide.
18867
18868 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18869
18870         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
18871
18872 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18873
18874         * passes.c: Add bswap pass.
18875         * tree-pass.h: Add pass_optimize_bswap declaration.
18876         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
18877         Include rtl.h, expr.h and optabs.h for optab_handler check.
18878         (struct symbolic_number, pass_optimize_bswap): New definition.
18879         (do_shift_rotate, verify_symbolic_number_p): New functions.
18880         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
18881         (gate_optimize_bswap): New function.
18882         * tree.c (widest_int_cst_value): New function.
18883         * tree.h (widest_int_cst_value): Prototype added.
18884
18885 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
18886
18887         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
18888         REG_EQUAL/REG_EQUIV notes.
18889
18890 2009-06-14  Richard Guenther  <rguenther@suse.de>
18891
18892         PR middle-end/40389
18893         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
18894         has its address taken if NRV was applied and it is addressable.
18895         * tree-ssa-structalias.c (get_constraint_for_address_of): New
18896         function split out from ...
18897         (get_constraint_for_1): ... here.
18898         (handle_rhs_call): Use it to mark the return slot escaped if
18899         it is addressable and NRV was applied.
18900
18901 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
18902
18903         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
18904         Change first argument type to location_t.
18905         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
18906         Do not set input_location.
18907         Use loc instead of input_location throughout.
18908
18909 2009-06-13  Richard Guenther  <rguenther@suse.de>
18910
18911         PR tree-optimization/40421
18912         * tree-predcom.c (should_unroll_loop_p): Remove.
18913         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
18914
18915 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
18916
18917         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18918         Add location argument.
18919
18920 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
18921
18922         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
18923         build_decl.
18924         * config/s390/s390.c (s390_build_builtin_va_list): Same.
18925         (s390_gimplify_va_arg): Pass location to create_artificial_label.
18926         * config/spu/spu-protos.h: Add location to
18927         spu_resolve_overloaded_builtin.
18928         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
18929         spu_build_builtin_va_list.
18930         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
18931         argument.  Pass location to build_function_call_vec.
18932         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
18933         build_decl.
18934         (emit_fpu_switch): Same.
18935         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
18936         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
18937         to build_decl and create_artificial_label.
18938         (xtensa_gimplify_va_arg_expr): Same.
18939         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
18940         (xstormy16_gimplify_va_arg_expr): Same.
18941         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
18942         * config/arm/arm.c (arm_build_builtin_va_list): Same.
18943         * config/mips/mips.c (mips_build_builtin_va_list): Same.
18944         (mips16_build_function_stub): Same.
18945         (mips16_build_call_stub): Same.
18946
18947 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
18948
18949         PR target/40327
18950         * arm/constraints.md (Pa, Pb): New constraints.
18951         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a
18952         split pattern to deal with them.
18953
18954 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
18955
18956         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
18957         fix index entry for -Xpreprocessor.
18958
18959 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
18960
18961         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18962         Add location argument to build_decl call.
18963         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
18964         (rs6000_init_builtins): Same.
18965         (spe_init_builtins): Same.
18966         (rs6000_gimplify_va_arg): Add location argument to
18967         create_artificial_label call.
18968
18969 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
18970
18971         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
18972         * combine-stack-adj.c (pass_stack_adjustments): Use it.
18973         * Makefile.in: Fix GGC dependency for gcse.o.
18974
18975 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
18976
18977         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
18978         * gimple-pretty-print.c (dump_gimple_stmt): Same.
18979         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
18980         created.
18981         * c-parser.c (c_parser_binary_expression): Use current column while
18982         building binary operations.
18983         * common.opt (fshow-column): Enable by default.
18984         * tree-vrp.c (check_array_ref): Use warning_at.
18985         (check_array_bounds): Use location from call back if expr has no
18986         location.
18987         * tree.h: Add location argument to maybe_fold_*.
18988         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
18989         (maybe_fold_offset_to_array_ref): Add location argument and use it.
18990         (maybe_fold_offset_to_component_ref): Same.
18991         (maybe_fold_offset_to_reference): Same.
18992         (maybe_fold_offset_to_address): Same.
18993         (maybe_fold_stmt_indirect): Same.
18994         (maybe_fold_stmt_addition): Same.
18995         (fold_stmt_r): Pass location to maybe_fold_*.
18996         (fold_gimple_assign): Same.
18997         * c-tree.h: Add location argument to finish_decl,
18998         default_function_array_conversion, store_init_value.
18999         * c-decl.c (define_label): Use error_at.
19000         (c_make_fname_decl): Pass location to finish_decl.
19001         (finish_decl): New location argument.
19002         (build_compound_literal): Pass location to store_init_value.
19003         (grokdeclarator): Pass location to finish_decl.
19004         (grokfield): Same.
19005         * c-typeck.c (array_to_pointer_conversion): New location argument.
19006         (function_to_pointer_conversion): Same.
19007         (default_function_array_conversion): Same.
19008         (parser_build_unary_op): Pass location to overflow_warning.
19009         (parser_build_binary_op): Same.  Use warning_at.
19010         (build_unary_op): Pass location to array_to_pointer_conversion.
19011         (build_c_cast): Pass location to digest_init.
19012         (build_modify_expr): New location argument.
19013         (convert_for_assignment): Same.
19014         (store_init_value): Same.
19015         (digest_init): Same.
19016         (output_init_element): Pass location to digest_init and
19017         array_to_pointer_conversion.
19018         (c_finish_return): Pass location to convert_for_assignment.
19019         * gimplify.c (gimplify_conversion): Pass location to
19020         maybe_fold_offset_to_address.
19021         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
19022         to maybe_fold_stmt_addition.
19023         * c-omp.c (c_finish_omp_atomic): Pass new location to
19024         build_modify_expr.
19025         (c_finish_omp_for): Same.
19026         * c-common.c (overflow_warning): New argument.
19027         * c-common.h: New argument to build_modify_expr, overflow_warning.
19028         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
19029         finish_decl.
19030         (c_parser_initializer): Pass location to
19031         default_function_array_conversion.
19032         (c_parser_initelt): Same.
19033         (c_parser_initval): Same.
19034         (c_parser_asm_operands): Same.
19035         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
19036         (c_parser_conditional_expression): Same.
19037         (c_parser_binary_expression): Add location info to stack.  Use it.
19038         (c_parser_unary_expression): Pass location to
19039         default_function_array_conversion, parser_build_unary_op,
19040         build_indirect_ref, c_parser_postfix_expression_after_primary.
19041         (c_parser_postfix_expression_after_primary): New location argument.
19042         Use it.
19043         (c_parser_expression_conv): Pass location to
19044         default_function_array_conversion.
19045         (c_parser_expr_list): Same.
19046         (c_parser_omp_atomic): Same.
19047         (c_parser_omp_for_loop): Same.
19048         * c-tree.h (struct c_declarator): Add comment to id_loc.
19049         (build_array_declarator): New argument.
19050         * c-decl.c (build_array_declarator): Add location argument.
19051         (grokdeclarator): Set id_loc for cdk_array.
19052         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
19053         build_array_declarator.
19054         * tree.c (build_omp_clause): Add location argument.
19055         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
19056         (OMP_CLAUSE_LOCATION): New macro.
19057         (struct tree_omp_clause): Add location field.
19058         (build_omp_clause): Add argument.
19059         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
19060         build_omp_clause.
19061         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
19062         (cp_parser_omp_clause_collapse): Same.
19063         (cp_parser_omp_clause_default): Same.
19064         (cp_parser_omp_clause_if): Same.
19065         (cp_parser_omp_clause_nowait): Same.
19066         (cp_parser_omp_clause_num_threads): Same.
19067         (cp_parser_omp_clause_ordered): Same.
19068         (cp_parser_omp_clause_schedule): Same.
19069         (cp_parser_omp_clause_untied): Same.
19070         (cp_parser_omp_for_loop): Same.
19071         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
19072         * c-tree.h (c_start_case): Add location argument.
19073         (c_process_expr_stmt): Same.
19074         (c_finish_goto_*): Same.
19075         * tree-parloops.c (initialize_reductions): Pass location to
19076         build_omp_clause.
19077         (create_parallel_loop): Same.
19078         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
19079         (gfc_trans_omp_reduction_list): Same.
19080         (gfc_trans_omp_clauses): Same.
19081         (gfc_trans_omp_do): Same.
19082         * c-typeck.c (c_finish_goto_label): Same.
19083         (c_finish_goto_ptr): New location argument.
19084         (c_start_case): Same.
19085         (emit_side_effect_warnings): Same.
19086         (c_process_expr_stmt): Same.
19087         (c_finish_stmt_expr): Same.
19088         (c_finish_omp_clauses): Use error_at instead of error.
19089         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
19090         build_omp_clause.
19091         * c-omp.c (c_split_parallel_clauses): New location argument.
19092         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
19093         to build_omp_clause.
19094         (convert_local_reference_stmt): Same.
19095         (convert_gimple_call): Same.
19096         * c-common.h (c_split_parallel_clauses): New argument.
19097         * c-parser.c (c_parser_statement_after_labels): Pass location to
19098         c_finish_goto_label.
19099         (c_parser_switch_statement): Pass location to c_start_case.
19100         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
19101         and c_process_expr_stmt.
19102         (c_parser_omp_variable_list): Add location argument.
19103         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
19104         (c_parser_omp_clause_default): Same.
19105         (c_parser_omp_clause_if): Same.
19106         (c_parser_omp_clause_num_threads): Same.
19107         (-c_parser_omp_clause_ordered): Same.
19108         (c_parser_omp_clause_reduction): Pass location to
19109         c_parser_omp_variable_list.
19110         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
19111         (c_parser_omp_clause_untied): Same.
19112         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
19113         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
19114
19115         * c-tree.h (check_for_loop_decls, undeclared_variable,
19116         build_component_ref, build_array_ref, build_external_ref,
19117         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
19118         build_conditional_expr, build_compound_expr, c_cast_expr,
19119         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
19120         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
19121         argument.
19122         * c-semantics.c (build_stmt): Same.
19123         (build_case_label): Same.
19124         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
19125         (undeclared_variable): New argument.
19126         (make_label): Same.
19127         (lookup_label): Pass location on down.
19128         (define_label): Same.
19129         (finish_decl): Same.
19130         (build_compound_literal): Same.
19131         (finish_struct): Same.
19132         (finish_function): Do not set location here.
19133         (check_for_loop_decls): New argument.
19134         * tree.c (save_expr): Set location.
19135         (build_empty_stmt): New argument.
19136         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
19137         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
19138         * builtins.c (gimplify_va_arg_expr): Use locations.
19139         (expand_builtin_sync_operation): Same.
19140         * c-typeck.c (build_component_ref): New argument.
19141         (build_array_ref): Same.
19142         (build_external_ref): Same.
19143         (c_expr_sizeof_expr): Same.
19144         (c_expr_sizeof_type): Same.
19145         (parser_build_unary_op): Same.
19146         (build_conditional_expr): Same.
19147         (build_compound_expr): Pass location on down.
19148         (build_compound_expr): New argument.
19149         (build_c_cast): Same.
19150         (c_cast_expr): Same.
19151         (build_asm_expr): Same.
19152         (c_finish_return): Same.
19153         (c_process_expr_stmt): Pass location on down.
19154         (c_finish_stmt_expr): New argument.
19155         (push_clenaup): Same.
19156         (c_finish_omp_parallel): Same.
19157         (c_finish_omp_task): Same.
19158         * gimplify.c (gimplify_call_expr): Pass location on down.
19159         * c-omp.c (c_finish_omp_master): New argument.
19160         (c_finish_omp_critical): Same.
19161         (c_finish_omp_ordered): Same.
19162         (c_finish_omp_barrier): Same.
19163         (-c_finish_omp_taskwait): Same.
19164         (c_finish_omp_atomic): Same.
19165         (c_finish_omp_flush): Same.
19166         * tree-inline.c (copy_tree_body_r): Pass location on down.
19167         (inline_forbidden_p): Remove use of input_location.
19168         * c-gimplify.c (c_build_bind_expr): New argument.
19169         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
19170         (c_sizeof_or_alignof_type): New argument.
19171         (c_alignof_expr): Same.
19172         (build_va_arg): Same.
19173         (c_add_case_label): Same.
19174         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
19175         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
19176         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
19177         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
19178         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
19179         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
19180         New argument.
19181         * stub-objc.c (objc_build_selector_expr): Same.
19182         (objc_build_throw_stmt): Same.
19183         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
19184         (c_parser_initelt): Same.
19185         (c_parser_compound_statement): Same.
19186         (c_parser_compound_statement_nostart): Same.
19187         (c_parser_label): Same.
19188         (c_parser_statement_after_labels): Same.
19189         (c_parser_if_body): Same.
19190         (c_parser_else_body): Same.
19191         (c_parser_if_statement): Same.
19192         (c_parser_switch_statement): Same.
19193         (c_parser_while_statement): Same.
19194         (c_parser_do_statement): Same.
19195         (c_parser_for_statement): Same.
19196         (c_parser_asm_statement): Same.
19197         (c_parser_conditional_expression): Same.
19198         (c_parser_binary_expression): Same.
19199         (c_parser_cast_expression): Same.
19200         (c_parser_unary_expression): Same.
19201         (c_parser_sizeof_expression): Same.
19202         (c_parser_alignof_expression): Same.
19203         (c_parser_postfix_expression): Same.
19204         (c_parser_expression): Same.
19205         (c_parser_objc_receiver): Same.
19206         (c_parser_omp_variable_list): Same.
19207         (c_parser_omp_structured_block): Same.
19208         (c_parser_omp_atomic): New argument.
19209         (c_parser_omp_barrier): Same.
19210         (c_parser_omp_critical): Same.
19211         (c_parser_omp_flush): Pass location on down.
19212         (c_parser_omp_for_loop): New argument.
19213         (c_parser_omp_for): Same.
19214         (c_parser_omp_master): Same.
19215         (c_parser_omp_ordered): Same.
19216         (c_parser_omp_sections_scope): Same.
19217         (c_parser_omp_sections): Same.
19218         (c_parser_omp_parallel): Same.
19219         (c_parser_omp_single): Same.
19220         (c_parser_omp_task): Same.
19221         (c_parser_omp_taskwait): Pass location on down.
19222         (c_parser_omp_construct): Same.
19223         (c_parser_omp_threadprivate): Same.
19224         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
19225         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
19226         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
19227         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
19228         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
19229         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
19230         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
19231         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
19232         config/i386/i386.c, stmt.c:
19233         Add location argument to the following function definitions and/or
19234         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
19235         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
19236         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
19237         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
19238         do_case, c_finish_bc_stmt, build_compound_literal,
19239         build_function_call.
19240         * c-decl.c (build_compound_literal): Add location argument.
19241         Make all diagnostic calls use location.
19242         (start_struct): Same.
19243         (finish_struct): Same.
19244         (start_enum): Same.
19245         (build_enumerator): Same.
19246         (start_function): Same.
19247         (grokdeclarator): Make all diagnostic calls use location.
19248         (store_parm_decls_oldstyle): Same.
19249         * c-typeck.c (build_function_call): Add location argument.
19250         Make all diagnostic calls use location.
19251         (do_case): Same.
19252         (c_finish_bc_stmt): Same.
19253         * tree-nested.c (get_trampoline_type): Add argument.
19254         Pass location to build_decl.
19255         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
19256         * rtl.h (RTL_LOCATION): New.
19257         * c-common.c (c_add_case_label): Add location argument.
19258         Make all diagnostic calls use location.
19259         * c-common.h: Add location argument to make_fname_decl, do_case,
19260         c_add_case_label, build_function_call, resolve_overloaded_builtin.
19261         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
19262         Set it appropriately for every case.  Pass enum_loc to start_enum
19263         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
19264         parser_xref_tag.
19265         (c_parser_struct_or_union_specifier): Save location.  Use it for
19266         start_struct, finish_struct, and parser_xref_tag.
19267
19268 2009-06-12  Ian Lance Taylor  <iant@google.com>
19269
19270         * fold-const.c (fold_unary): Rename local variable and to and_expr.
19271
19272         * c-opts.c (c_common_handle_option): For -Wc++-compat set
19273         cpp_opts->warn_cxx_operator_names.
19274
19275 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19276
19277         PR tree-opt/38865
19278         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
19279         is returns NULL and OP is a VCE, look through the VCE.
19280
19281 2009-06-12  Ian Lance Taylor  <iant@google.com>
19282
19283         PR bootstrap/40430
19284         * collect2.c (main): Use CONST_CAST2 in code inside #if
19285         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
19286
19287 2009-06-12  Joey Ye  <joey.ye@intel.com>
19288
19289         PR middle-end/39146
19290         * cfgexpand.c (get_decl_align_unit): Update
19291         max_used_stack_slot_alignment with align instead of
19292         stack_alignment_needed.
19293
19294         * function.c (assign_stack_local_1): Update
19295         max_used_stack_slot_alignment with alignment_in_bits instead
19296         of stack_alignment_needed.
19297         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
19298         here.
19299
19300 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
19301
19302         * dwarf2out.c (last_var_location_insn): New variable.
19303         (dwarf2out_end_epilogue): Clear last_var_location_insn.
19304         (dwarf2out_var_location): Don't record anything after last real
19305         insn.  Only change labels if there were any real instructions
19306         in between last note and this one, or if changed sections.
19307
19308 2009-06-11  Richard Henderson  <rth@redhat.com>
19309
19310         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
19311         note when storing the frame pointer in a register.
19312         (FRP): Don't redefine to nothing for epilogue.
19313         (alpha_expand_epilogue): Mark register and sp restores.
19314         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
19315
19316         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
19317         when gen_lowpart is needed.
19318
19319 2009-06-11  Richard Henderson  <rth@redhat.com>
19320
19321         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
19322
19323         * dwarf2out.c (need_data_align_sf_opcode): New.
19324         (div_data_align): Move earlier.
19325         (def_cfa_1, reg_save): Use it.
19326
19327 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
19328
19329         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
19330         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
19331         (ix86_handle_option): Handle OPT_mcrc32.
19332         (ix86_target_string): Add -mcrc32.
19333         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
19334
19335         * config/i386/i386.h (TARGET_CRC32): New.
19336
19337         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
19338         (sse4_2_crc32di): Likewise.
19339
19340         * config/i386/i386.opt (mcrc32): New.
19341
19342         * doc/invoke.texi: Document -mcrc32.
19343
19344 2009-06-11  Richard Henderson  <rth@redhat.com>
19345
19346         * common.opt (gdwarf-): Accept a version number.
19347         * doc/invoke.texi (gdwarf-): Update docs.
19348         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
19349         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
19350         version level, and record it.
19351
19352         * dwarf2.h (DW_CIE_VERSION): Remove.
19353         * dwarf2out.c (DWARF_VERSION): Remove.
19354         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
19355         (output_call_frame_info): Use CIE version 3 for dwarf3,
19356         or if the return register column is out of range for version 1.
19357         (dwarf_stack_op_name): Add all dwarf3 values.
19358         (DEBUG_PUBTYPES_SECTION): New.
19359         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
19360         encoding change for dwarf3.
19361         (output_die) [dw_val_class_die_ref]: Likewise.
19362         (output_compilation_unit_header): Emit correct version for dwarf3.
19363         (output_line_info): Likewise.
19364         (output_pubnames): Update for DWARF_VERSION removal.
19365         (output_aranges): Likewise.
19366         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
19367         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
19368         (dwarf2out_finish): Likewise.
19369
19370 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
19371
19372         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
19373         in r148403.
19374
19375 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
19376
19377         PR c/39252
19378         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
19379         * builtins.c (expand_builtin_unreachable): New function.
19380         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
19381         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
19382         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
19383         successors.
19384         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
19385         searching for missing barriers.
19386
19387 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
19388
19389         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
19390         when -fprofile-generate* was passed.
19391         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
19392
19393 2009-06-11  Anthony Green  <green@moxielogic.com>
19394
19395         * config/moxie/moxie.md: Define length attribute for all instructions.
19396         (rCC): Define.
19397         (*b<cond:code>): Support limited branch ranges for new PC-relative
19398         branch instructions.
19399         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
19400
19401 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
19402
19403         * config/i386/i386.c (min_insn_size): Use get_attr_length
19404         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
19405         For __asm return 0.
19406
19407         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
19408         instead of emit_insn_before.
19409
19410 2009-06-10  Ian Lance Taylor  <iant@google.com>
19411
19412         PR bootstrap/40408
19413         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
19414         GIMPLE_SWITCH.
19415
19416 2009-06-10  Revital Eres  <eres@il.ibm.com>
19417
19418         * passes.c (init_optimization_passes): Reschedule
19419         predictive-commoning pass before complete unroll pass.
19420
19421 2009-06-10  Martin Jambor  <mjambor@suse.cz>
19422
19423         * cgraph.c (cgraph_node_can_be_local_p): New function.
19424         (cgraph_make_node_local): New function.
19425         * cgraph.h (cgraph_node_can_be_local_p): Declare.
19426         (cgraph_make_node_local): Declare.
19427
19428 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
19429
19430         * tree.h (tree_base): Add packed_flag and user_align fields.
19431         Decrease size of spare field.
19432         (TYPE_USER_ALIGN): Use user_align from tree_base.
19433         (DECL_USER_ALIGN): Likewise.
19434         (TYPE_PACKED): Use packed_flag from tree_base.
19435         (DECL_PACKED): Likewise.
19436         (tree_type): Delete packed_flag and user_align fields.  Widen
19437         precision field.  Widen mode field and shuffle fields to align
19438         mode on an 8-bit boundary.
19439         (tree_decl_common): Delete decl_flag_1 and user_align fields.
19440         Renumber decl_flag_* fields.  Fix comments.  Widen
19441         decl_common_unused field.
19442         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
19443         (DECL_EXTERNAL): Likewise.
19444         (DECL_BIT_FIELD): Likewise.
19445         (DECL_NONADDRESSABLE_P): Likewise.
19446         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
19447         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
19448
19449 2009-06-10  Ian Lance Taylor  <iant@google.com>
19450
19451         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
19452         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
19453         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
19454         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
19455         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
19456         DEF_VEC_ALLOC_FUNC_P.
19457         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
19458         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
19459         DEF_VEC_ALLOC_FUNC_O.
19460         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
19461         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
19462         DEF_VEC_ALLOC_FUNC_I.
19463         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
19464         (vec_stack_p_reserve_exact_1): Declare.
19465         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
19466         (vec_stack_free): Declare.
19467         (VEC_stack_alloc): Define.
19468         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
19469         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
19470         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
19471         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
19472         for void_p.
19473         (stack_vecs): New static variable.
19474         (vec_stack_p_reserve_exact_1): New function.
19475         (vec_stack_o_reserve_1): New static function.
19476         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
19477         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
19478         (vec_stack_free): New function.
19479         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
19480         (VEC_df_ref_stack_alloc): Define.
19481         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
19482         DEF_VEC_ALLOC_P_STACK.
19483         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
19484         (struct df_collection_rec): Change _vec fields to VEC.  Remove
19485         _use fields.
19486         (df_free_collection_rec): Adjust for new fields.
19487         (df_insn_rescan): Use new df_collection_rec fields.
19488         (df_notes_rescan, df_canonize_collection_rec): Likewise.
19489         (df_ref_create_structure, df_ref_record): Likewise.
19490         (df_get_conditional_uses, df_get_call_refs): Likewise.
19491         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
19492         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
19493         (df_record_exit_block_uses, df_bb_verify): Likewise.
19494         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
19495         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
19496         Remove count parameter.  Change return type to void.  Change all
19497         callers.
19498         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
19499         Remove count parameter.  Change return type to void.  Change all
19500         callers.
19501         (df_install_refs): Change old_vec parameter to VEC.  Remove count
19502         parameter.  Change all callers.
19503         (df_install_mws): Change old_vec parameter to VEC.  Remove count
19504         parameter.  Change all callers.
19505         (df_refs_verify): Change new_rec parameter to VEC.  Change call
19506         callers.
19507         (df_mws_verify): Likewise.
19508
19509 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
19510
19511         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
19512
19513 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
19514
19515         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
19516
19517 2009-06-10  Anthony Green  <green@moxielogic.com>
19518
19519         * config/moxie/crti.asm: New file.
19520         * config/moxie/crtn.asm: New file.
19521         * config/moxie/moxie.c: New file.
19522         * config/moxie/moxie.h: New file.
19523         * config/moxie/sfp-machine.h: New file.
19524         * config/moxie/moxie-protos.h: New file.
19525         * config/moxie/t-moxie: Created.
19526         * config/moxie/t-moxie-softfp: Created.
19527         * config/moxie/moxie.md: Created.
19528         * config/moxie/constraints.md: Created.
19529         * config.gcc: Add moxie support.
19530         * doc/md.texi (Machine Constraints): Add moxie constraints.
19531         * doc/contrib.texi (Contributors): Mention moxie port.
19532         * doc/install.texi (Specific): Mention the moxie port.
19533
19534 2009-06-09  Ian Lance Taylor  <iant@google.com>
19535
19536         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
19537         compiling with C++.
19538         * optabs.c (optab_table): Only use designated initializers if
19539         HAVE_DESIGNATED_INITIALIZERS is defined.
19540         (convert_optab_table): Likewise.
19541         (init_optabs): Always call init_insn_codes if
19542         HAVE_DESIGNATED_INITIALIZERS is not defined.
19543
19544 2009-06-09  Ian Lance Taylor  <iant@google.com>
19545
19546         * targhooks.c (default_builtin_vectorized_function): Change fn
19547         parameter to unsigned int.
19548         (default_builtin_vectorized_conversion): Change code parameter to
19549         unsigned int.
19550         (default_builtin_reciprocal): Change fn parameter to unsigned int.
19551         * targhooks.h: Update declarations.
19552         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
19553         parameter to unsigned int.
19554
19555         * c-typeck.c (comptypes_check_enum_int): New static function.
19556         (comptypes_internal): Add enum_and_int_p parameter.  Change all
19557         callers.
19558         (comp_target_types): Add location parameter.  Change all callers.
19559         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
19560         Change all callers.
19561         (function_types_compatible_p, type_lists_compatible_p): Likewise.
19562         (build_conditional_expr): Add colon_loc parameter.  Change all
19563         callers.
19564         (convert_for_assignment): Add location parameter.  Change all callers.
19565         * c-parser.c (c_parser_conditional_expression): Pass location of
19566         colon to build_conditional_expr.
19567         * c-tree.h (build_conditional_expr): Update declaration.
19568
19569 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
19570
19571         * graphite.c: Revert previous patch.
19572
19573 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
19574
19575         PR bootstrap/40103
19576         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
19577
19578 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
19579
19580         * tree-ssa-loop-prefetch.c
19581         (loop_prefetch_arrays): Fixed a portability problem in printf format
19582         string.
19583
19584 2009-06-09  Martin Jambor  <mjambor@suse.cz>
19585
19586         PR tree-optimization/40351
19587         * tree-sra.c (propagate_subacesses_accross_link): Check that a
19588         refrence to a potential artifical subaccess can be constructed.
19589
19590 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
19591
19592         * config/sh/sh-protos.h (sh_optimization_options): Declare.
19593         (sh_override_options): Likewise.
19594         * config/sh/sh.c: Include params.h.
19595         (sh_optimization_options): New.
19596         (sh_override_options): Likewise.
19597         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
19598         (OVERRIDE_OPTIONS): Use sh_override_options.
19599
19600 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
19601
19602         * dwarf2out.c (emit_cfa_remember): New variable.
19603         (add_fde_cfi): If emit_cfa_remember, recurse to add
19604         DW_CFA_remember_state first.
19605         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
19606         instead just set emit_cfa_remember.
19607
19608 2009-06-08  Jan Hubicka  <jh@suse.cz>
19609
19610         PR debug/40126
19611         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
19612
19613 2009-06-08  Jan Hubicka  <jh@suse.cz>
19614
19615         PR middle-end/39834
19616         * cgraphunit.c (save_inline_function_body): Do not copy transform
19617         hooks for saved inline bodies.
19618         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
19619         for given function.
19620
19621 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
19622
19623         * jump.c (returnjump_p): Handle delayed branches.  Add missing
19624         function comment.
19625
19626 2009-06-08  Jan Hubicka  <jh@suse.cz>
19627
19628         PR middle-end/40102
19629         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
19630         original node might've been modified.
19631         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
19632
19633 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
19634
19635         * tree-object-size.c (addr_object_size): Add OSI argument.
19636         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
19637         (compute_builtin_object_size, expr_object_size): Adjust callers.
19638         (plus_stmt_object_size): Call addr_object_size instead of
19639         compute_builtin_object_size.
19640
19641 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
19642             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
19643
19644         * tree-ssa-loop-prefetch.c
19645         (gather_memory_references): Introduced a counter for the number of
19646         memory references.
19647         (anything_to_prefetch_p): Introduced a counter for the number of
19648         prefetches.
19649         (is_loop_prefetching_profitable): New function with a cost model
19650         for prefetching.
19651         (loop_prefetch_arrays): Use the new cost model to determine if
19652         prefetching is profitable.
19653         * params.def (MIN_INSN_TO_PREFETCH_RATIO,
19654         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
19655         * params.h (MIN_INSN_TO_PREFETCH_RATIO,
19656         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
19657         * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
19658         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
19659
19660 2009-06-08  Michael Matz  <matz@suse.de>
19661
19662         PR debug/40012
19663         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
19664         partitions use the same.
19665         (expand_one_var): Deal with DECL_RTL sometimes begin set also
19666         for basevars of SSA_NAMEs.
19667         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
19668         to not expand them twice.
19669         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
19670         multiple places.
19671
19672 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
19673
19674         * common.opt (fcompare-debug=, fcompare-debug-second): New.
19675         (fdump-final-insns=, gtoggle): New.
19676         * doc/invoke.texi: Document them.
19677         * final.c (rest_of_clean_state): Dump final insn stream.
19678         * gcc.c (invoke_as): Hook in -fcompare-debug.
19679         (static_spec_functions): Add compare-debug-dump-opt,
19680         compare-debug-self-opt and compare-debug-auxbase-opt.
19681         (compare_debug, compare_debug_second, compare_debug_opt): New.
19682         (switches_debug_check, n_switches_debug_check): New.
19683         (debug_auxbase_opt, debug_check_temp_file): New.
19684         (process_command): Handle -fno-compare-debug, -fcompare-debug and
19685         -fcompare-debug=*.
19686         (do_self_spec): Handle arguments after switches.
19687         (do_spec_1): Add .gk extension to temp file basenames for compare.
19688         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
19689         (cc1_options): Use it instead of normal auxbase computation for
19690         the second compare-debug compilation.
19691         (compare_files): New.
19692         (main): Set up and implement compare debug mode.
19693         (compare_debug_dump_opt_spec_function): New.
19694         (compare_debug_self_opt_spec_function): New.
19695         (compare_debug_auxbase_opt_spec_function): New.
19696         * toplev.c (process_options): Handle flag_gtoggle,
19697         flag_dump_final_insns.
19698         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
19699         during -fcompare-debug-second compilation.
19700
19701 2009-06-07  Ian Lance Taylor  <iant@google.com>
19702
19703         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
19704         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
19705
19706         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
19707         with no default node.  Change warning with %H to warning_at.
19708         Don't clear warn_switch around case checking.
19709         * doc/invoke.texi (Warning Options): Clarify distinction between
19710         -Wswitch and -Wswitch-enum.
19711
19712 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19713
19714         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
19715
19716 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19717
19718         * gbl-ctors.h: Add header guard.
19719
19720 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19721
19722         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
19723         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
19724         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
19725         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
19726         prototypes for removed functions.
19727         (expressions_equal_p): Move to ...
19728         * tree-ssa-sccvn.h: ... here and ...
19729         * matrix-reorg.c: ... adjust includes.
19730
19731 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19732
19733         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
19734
19735 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19736
19737         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
19738         (finish_function): Remove erroneous whitespace.
19739
19740 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19741
19742         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
19743         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
19744
19745 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19746
19747         * errors.c (internal_error): Commentary typo fix.
19748         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
19749         * tree-ssa-pre.c: Ditto.
19750
19751 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19752
19753         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
19754         them is supposed to hold actual statements.
19755
19756 2009-06-06  Ian Lance Taylor  <iant@google.com>
19757
19758         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
19759         empty statements can now have attributes.
19760
19761 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
19762
19763         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
19764         * config/mips/mips.md: Ditto.
19765
19766 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
19767
19768         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
19769         _RELOCATABLE.
19770         (__eabi_uconvert): Likewise.
19771
19772 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
19773
19774         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
19775         CFI_* definitions with IN_GCC.
19776
19777 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
19778
19779         * xcoffout.h (xcoffout_source_line): Update prototype.
19780
19781 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19782
19783         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
19784         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
19785
19786 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
19787
19788         PR middle-end/40340
19789         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
19790         inlined_function_outer_scope_p blocks for artificial inlines
19791         even at -g0/-g1.
19792         * tree.c (tree_nonartificial_location): Rewrite using
19793         block_nonartificial_location.
19794
19795 2009-06-05  Revital Eres  <eres@il.ibm.com>
19796             Leehod Baruch  <leehod@il.ibm.com>
19797
19798         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
19799         (expand_expr_real_1): Remove comment.
19800         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19801         Vectorize misaligned access when the target supports it.
19802         (vect_supportable_dr_alignment): Check for unaligned access support.
19803         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
19804         and remove asset.
19805
19806 2009-06-05  Julian Brown  <julian@codesourcery.com>
19807
19808         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
19809         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
19810
19811 2009-06-05  Richard Guenther  <rguenther@suse.de>
19812
19813         PR bootstrap/40350
19814         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
19815         as possibly unused.
19816
19817 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
19818
19819         * config/s390/s390.c (global_not_special_regno_p): New static inline.
19820         (save_gprs): Don't tell unwinder when a global register is saved.
19821         (s390_emit_epilogue): Emit needed epilogue unwind info.
19822
19823 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
19824
19825         * dwarf2out.c (deferred_asm_name): New.
19826         (add_name_and_src_coords_attributes): Defer creation of
19827         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
19828         computed yet.
19829         (move_linkage_attr): New.
19830         (dwarf2out_finish): Revisit deferrals and emit attributes at the
19831         right place.
19832
19833 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
19834
19835         * tree-nested.c (finalize_nesting_tree_1): Declare the
19836         frame_decl in the binding tree.
19837
19838 2009-06-04  Cary Coutant  <ccoutant@google.com>
19839
19840         * basic-block.h (struct basic_block_def): Add discriminator field.
19841         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
19842         callers.
19843         * debug.c (do_nothing_debug_hooks): Add additional entry.
19844         (debug_nothing_int_charstar_int): New function.
19845         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
19846         (debug_nothing_int_charstar_int): New declaration.
19847         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
19848         discriminator value in .loc directive.
19849         * final.c (last_discriminator): New variable.
19850         (discriminator): New variable.
19851         (final_start_function): Initialize above variables, pass current
19852         discriminator to debug hook.
19853         (notice_source_line): Check for discriminator change.
19854         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
19855         * sdbout.c (sdbout_source_line): New parameter.
19856         * tree-cfg.c (struct locus_discrim_map): New structure type.
19857         (discriminator_per_locus): New hash table.
19858         (build_gimple_cfg): Allocate and free discriminator hash table.
19859         (make_edges): Call assign_discriminator.
19860         (locus_map_hash): New function.
19861         (locus_map_eq): New function.
19862         (next_discriminator_for_locus): New function.
19863         (same_line_p): New function.
19864         (assign_discriminator): New function.
19865         (make_cond_expr_edges): Call assign_discriminator.
19866         (make_gimple_switch_edges): Likewise.
19867         (first_non_label_stmt): New function.
19868         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
19869         all callers.
19870         * xcoffout.c (xcoffout_source_line): Add new parameter.
19871
19872         * configure.ac (gcc_cv_as_discriminator): New configury check for
19873         gas support for discriminator.
19874         * configure: Regenerate.
19875         * config.in: Regenerate.
19876
19877 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19878
19879         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
19880         val after checking for integers.
19881
19882 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
19883
19884         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
19885         X64_REGPARM_MAX.
19886         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
19887         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
19888         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
19889         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
19890         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
19891         X64_SSE_REGPARM_MAX.
19892         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
19893         X64_SSE_REGPARM_MAX.
19894
19895 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
19896
19897         * gcc.c (report_times_to_file): New.
19898         (execute): Implement it.
19899         (process_command): Support -time=.
19900         * doc/invoke.texi: Document it.
19901
19902 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
19903
19904         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
19905         that have value exprs.
19906
19907 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
19908
19909         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
19910         declarations for constants until...
19911         (dw2_output_indirect_constant_1): ... this point.
19912
19913 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
19914
19915         PR target/10242
19916         * arm.md (arm_addsi3): Don't try to split an add with an
19917         eliminable register until after reload has completed.
19918
19919 2009-06-03  Ian Lance Taylor  <iant@google.com>
19920
19921         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
19922         * genattrtab.c (write_length_unit_log): Likewise.
19923         * genchecksum.c (dosum): Likewise.
19924         * gengtype.c (write_rtx_next): Likewise.
19925         (finish_root_table, write_roots): Likewise.
19926         * gimple.c (gimple_ops_offset_): Likewise.
19927         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
19928         * config/arc/arc.c (arc_attribute_table): Likewise.
19929         * config/arm/arm.c (arm_attribute_table): Likewise.
19930         * config/avr/avr.c (avr_attribute_table): Likewise.
19931         * config/crx/crx.c (crx_attribute_table): Likewise.
19932         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
19933         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
19934         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
19935         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
19936         * config/sh/sh.c (sh_attribute_table): Likewise.
19937         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
19938         * config/spu/spu.c (spu_attribute_table): Likewise.
19939         * config/v850/v850.c (v850_attribute_table): Likewise.
19940
19941         * config/alpha/alpha.c (vms_attribute_table): Make static.
19942         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
19943         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
19944         * config/mips/mips.c (mips_attribute_table): Likewise.
19945
19946         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
19947         $(SYSTEM_H).
19948         (cc1-checksum.o): Likewise.
19949
19950 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
19951
19952         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
19953
19954 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
19955
19956         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
19957         insn if it is changing sp.  Use gen_add3_insn instead of
19958         conditionally gen_addsi3 and gen_adddi3.
19959         (offset_below_red_zone_p): New static inline function.
19960         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
19961         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
19962         * config/rs6000/ppc-asm.h: Include auto-host.h.
19963         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
19964         CFI_RESTORE): Define.
19965         * config/rs6000/crtresxgpr.asm: Add unwind info.
19966         * config/rs6000/crtresxfpr.asm: Likewise.
19967         * config/rs6000/crtresgpr.asm: Likewise.
19968         * config/rs6000/crtresfpr.asm: Likewise.
19969         * config/rs6000/crtsavgpr.asm: Likewise.
19970         * config/rs6000/crtsavfpr.asm: Likewise.
19971
19972         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
19973         argument of DWARF2_FRAME_REG_OUT macros.
19974
19975 2009-06-03  Julian Brown  <julian@codesourcery.com>
19976
19977         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
19978         words or less (including TImode) in core registers.
19979
19980 2009-06-03  Richard Guenther  <rguenther@suse.de>
19981
19982         PR middle-end/40328
19983         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
19984
19985 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
19986
19987         * statistics.c (statistics_counter_event): Do not record event
19988         in pass dump if its number == -1.
19989         (curr_statistics_hash): Add assert that we never get passes
19990         with static number == -1.
19991
19992 2009-06-03  Richard Guenther  <rguenther@suse.de>
19993             Andrey Belevantsev  <abel@ispras.ru>
19994
19995         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
19996         non-BLKmode arrays addressable.
19997
19998 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
19999
20000         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
20001         * config/m68k/m68k.h: ... here.
20002
20003 2009-06-03  Martin Jambor  <mjambor@suse.cz>
20004
20005         PR tree-optimization/40323
20006         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
20007         assignment.
20008
20009 2009-06-03  Richard Guenther  <rguenther@suse.de>
20010
20011         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
20012         consistently.
20013
20014 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
20015
20016         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
20017         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
20018         JUMP_TABLE_DATA_P where applicable.
20019         * config/sh/sh.c: Ditto.
20020         * config/sh/sh.h: Ditto.
20021         * config/sh/sh.md: Ditto.
20022         * config/sh/symbian.c: Ditto.
20023
20024 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
20025
20026         * config/i386/driver-i386.c (describe_cache): Optimize
20027         concatenation of strings.  Use snprintf instead of sprintf.
20028         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
20029         target when not compiling with GCC.
20030
20031 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
20032
20033         * config/sh/sh.c: Revert last change.
20034         (sh_expand_epilogue): Emit a blockage insn before the frame
20035         pointer adjustment unconditionally.
20036
20037 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
20038
20039         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
20040         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
20041         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
20042         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
20043         to COLLECT_GCC_OPTIONS.
20044
20045 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
20046
20047         * collect2.c (target_system_root): New variable.
20048         (main): Handle --sysroot=.
20049         (ignore_library): Strip the sysroot from the library path.
20050
20051 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
20052
20053         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
20054         (collect2.o): Depend on collect2-aix.h.
20055         (collect2-aix.o): New rule.
20056         * collect2-aix.h: New file.
20057         * collect2-aix.c: Likewise.
20058         * collect2.c: Include collect2-aix.h.  Don't undefine
20059         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
20060         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
20061         Use TARGET_AIX_VERSION instead of _AIX51.
20062         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
20063         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
20064         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
20065         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
20066         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
20067
20068 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
20069
20070         * collect2.c (ignore_library): Avoid premature post-increment
20071         and null deference.
20072
20073 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
20074
20075         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
20076         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
20077         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
20078         CROSS_DIRECTORY_STRUCTURE too.
20079         (LINK_LIBG_SPEC): Likewise.
20080         (LIB_SPEC): Add %R to sysroot paths.
20081         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
20082         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
20083         * config/rs6000/aix51.h: As for aix43.h.
20084         * config/rs6000/aix52.h: Likewise.
20085         * config/rs6000/aix53.h: Likewise.
20086         * config/rs6000/aix61.h: Likewise.
20087         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
20088         to the beginning of sysroot paths.
20089
20090 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20091
20092         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
20093         INSN_LISTs that are out of the REG_NOTE range.
20094
20095 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20096
20097         * loop-unroll.c (struct iv_to_split): Add pointer to next.
20098         (struct var_to_expand): Likewise.
20099         (struct opt_info): Add head and tail for linked lists of the above.
20100         (analyze_insn_to_expand_var): Initialize next.
20101         (analyze_iv_to_split_insn): Likewise.
20102         (analyze_insns_in_loop): Create linked lists.
20103         (allocate_basic_variable): Simplify for use without hash table.
20104         (insert_var_expansion_initialization): Likewise, make it type-safer.
20105         (combine_var_copies_in_loop_exit): Likewise.
20106         (apply_opt_in_copies): Walk lists rather than hash tables.
20107         (release_var_copies): Simplified and inlined by hand into...
20108         (free_opt_info): ... this function.
20109
20110 2009-06-02  Richard Guenther  <rguenther@suse.de>
20111
20112         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
20113         for field decls.
20114
20115 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20116
20117         * cfgexpand.c (gimple_expand_cfg): Discard the source location
20118         only for builtins that are not overridden.
20119
20120 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20121
20122         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
20123         label string.
20124
20125 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20126
20127         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
20128
20129 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20130
20131         * combine.c (move_deaths): Compare LUIDs within the same BB only.
20132
20133 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
20134
20135         * common.opt (fdump-unnumbered-links): New.
20136         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
20137         * print-rtl.c (flag_dump_unnumbered_links): New.
20138         (print_rtx): Test it.
20139
20140 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
20141
20142         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
20143         push/pop multiple to 8-byte alignment.
20144
20145 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
20146
20147         * config/i386/i386.c (queued_cfa_restores): New static variable.
20148         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
20149         functions.
20150         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
20151         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
20152         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
20153         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
20154         note unconditionally.
20155         (ix86_emit_restore_regs_using_mov): Likewise.
20156         (ix86_emit_restore_sse_regs_using_mov): Likewise.
20157         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
20158         it through to ix86_emit_restore_reg_using_pop.
20159         (ix86_emit_leave): Add RED_OFFSET argument.  Call
20160         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
20161         instead of adding REG_CFA_OFFSET note unconditionally.
20162         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
20163         the above functions.  Call ix86_add_queued_cfa_restore_notes when
20164         needed.
20165
20166         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
20167         force output of the label even for dwarf2out_do_cfi_asm.
20168         (add_fde_cfi): If -g2 and above and cfi might change CFA,
20169         force creation of CFI label and chain DW_CFA_set_loc jumping to it
20170         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
20171         caller.
20172         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
20173         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
20174         dwarf2out_cfi_label callers.
20175         * tree.h (dwarf2out_cfi_label): Adjust prototype.
20176         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
20177         Adjust dwarf2out_cfi_label callers.
20178         * config/vax/vax.c (vax_output_function_prologue): Likewise.
20179
20180         * config/i386/i386.h (struct machine_cfa_state,
20181         struct machine_function): Guard with ifndef USED_FOR_TARGET
20182         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
20183
20184         PR other/40024
20185         * emutls.c (__emutls_get_address): Change arr->size to mean number
20186         of allocated arr->data entries instead of # of slots + 1.
20187
20188         PR middle-end/40316
20189         * recog.c (peep2_reinit_state): New function.
20190         (peephole2_init_state): Use it at the end of a basic block and also
20191         when seeing a RTX_FRAME_RELATED_P insn.
20192
20193 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
20194
20195         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
20196         fixuns_truncrfdi2): New.
20197         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
20198         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
20199         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
20200         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
20201         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
20202         *recip_approx): Remove.
20203         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
20204         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
20205         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
20206         move to div.md.
20207         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
20208         setf_exp_rf): New.
20209
20210 2009-06-01  Ian Lance Taylor  <iant@google.com>
20211
20212         * attribs.c (register_attribute): Use CONST_CAST.
20213         * collect2.c (main): Use CONST_CAST2.
20214         (scan_prog_file): Likewise.
20215         * gcc.c (process_command, main): Likewise.
20216         * toplev.c (toplev_main): Likewise.
20217
20218         * c-typeck.c (handle_warn_cast_qual): New static function,
20219         partially broken out of build_c_cast.
20220         (build_c_cast): Call handle_warn_cast_qual.
20221         * doc/invoke.texi (Warning Options): Document new effect of
20222         -Wcast-qual.
20223
20224 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
20225
20226         * diagnostic.c (diagnostic_build_prefix): Always print columns.
20227         (diagnostic_report_current_module): Print columns.
20228         * common.opt (flag_show_column): Enable by default.
20229
20230 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
20231
20232         * alias.c (find_base_term): Check for NULL term before returning.
20233
20234 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
20235
20236         Revert due to PR40320:
20237         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
20238         * calls.c (emit_library_call_value_1): Don't force_operand for move
20239         and push insns.
20240
20241 2009-06-01  Olivier Hainque  <hainque@adacore.com>
20242             Eric Botcazou  <ebotcazou@adacore.com>
20243
20244         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
20245         to be processed as a bitfield for constructor output purposes.
20246         * output.h (initializer_constant_valid_for_bitfield_p): Declare
20247         new function.
20248         * varasm.c (oc_local_state): New type, output_constructor
20249         local state to support communication with helpers.
20250         (oc_outer_state): New type, output_constructor outer state of
20251         relevance in recursive calls.
20252         (output_constructor_array_range): New output_constructor helper,
20253         extracted code for an array range element.
20254         (output_constructor_regular_field): New output_constructor helper,
20255         extracted code for an element that is not a bitfield.
20256         (output_constructor_bitfield): New output_constructor helper,
20257         extracted code for a bitfield element.  Accept an OUTER state
20258         argument for recursive processing.  Recurse on record or array
20259         CONSTRUCTOR values, possibly past noop conversions.
20260         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
20261         VALUE is a valid constant-valued expression for use in a static
20262         bit-field initializer.
20263         (output_constructor): Rework to use helpers.  Accept and honor an
20264         OUTER state argument for recursive calls.  Return total size.  Be
20265         prepared for nested constructors initializing bitfields.
20266         (output_constant): Feed OUTER in calls to output_constructor.
20267
20268 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
20269
20270         * calls.c (emit_library_call_value_1): Don't force_operand for move
20271         and push insns.
20272
20273 2009-06-01  Nick Clifton  <nickc@redhat.com>
20274
20275         * doc/invoke.texi (IA-64 Options): Fix typo.
20276
20277 2009-06-01  Ira Rosen  <irar@il.ibm.com>
20278
20279         PR tree-optimization/39129
20280         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
20281         printed message.
20282         (vect_do_peeling_for_loop_bound): Use
20283         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
20284         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
20285         (vect_loop_versioning): Likewise.
20286         (vect_create_cond_for_alias_checks): Fix indentation.
20287         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
20288         macros.
20289         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
20290         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
20291         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
20292         "control flow in loop".
20293         (vect_estimate_min_profitable_iters): Use
20294         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
20295         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
20296         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
20297         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
20298         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
20299         statement belongs to a group of strided accesses with the exact code
20300         check.
20301         (vectorizable_load): Likewise.
20302         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
20303         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
20304
20305 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
20306
20307         * config/freebsd-stdint.h: New file.
20308         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
20309         Add freebsd-stdint.h to tm_file.
20310
20311 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
20312
20313         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
20314         (thumb2_extendhidi2): Likewise.
20315
20316 2009-05-31  Ian Lance Taylor  <iant@google.com>
20317
20318         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
20319
20320 2009-05-31  Ian Lance Taylor  <iant@google.com>
20321
20322         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
20323         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
20324         (ipa-reference.o): Depend upon gt-ipa-reference.h.
20325
20326 2009-05-31  Jason Merrill  <jason@redhat.com>
20327
20328         * tree-pretty-print.c (print_call_name): Take the callee, not the
20329         call itself.  Make non-static.  Use dump_function_name for functions.
20330         (dump_generic_node): Adjust.
20331         * diagnostic.h: Declare print_call_name.
20332         * gimple-pretty-print.c (dump_gimple_call): Use it.
20333
20334 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
20335
20336         * config/sh/sh.md (ashldi3_std): New define_expand.
20337         (ashldi3): Use it.
20338
20339 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
20340
20341         PR target/40313
20342         * config/sh/sh.c: Include debug.h.
20343         (sh_expand_epilogue): Emit a blockage insn before the frame
20344         pointer adjustment also when dwarf2out_do_frame returns true.
20345
20346 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
20347
20348         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
20349         (thumb2_extendqidi2): New pattern.
20350
20351 2009-05-31  Ira Rosen  <irar@il.ibm.com>
20352
20353         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
20354         mark phis for renaming.
20355         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
20356         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
20357         Call mark_sym_for_renaming.
20358         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
20359         * tree-vect-loop.c (vect_transform_loop): Remove
20360         vect_memsyms_to_rename initialization and a call to
20361         mark_set_for_renaming.
20362
20363 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
20364
20365         PR middle-end/40304
20366         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
20367         frame related even if !set_cfa && style < 0.
20368
20369 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
20370
20371         * config/i386/mingw-tls.c: New file.
20372         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
20373         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
20374         defining _WIN32 but not __CYGWIN__.
20375
20376 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20377
20378         * configure.ac: Add MPC support.
20379
20380         * config.in, configure: Regenerate.
20381
20382 2009-05-29  Richard Henderson  <rth@redhat.com>
20383
20384         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
20385         NOTE_INSN_BASIC_BLOCK.
20386         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
20387         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
20388         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
20389         to be deleted.
20390         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
20391         add in_use field.
20392         (add_cfi): Disable check redefining cfa away from drap.
20393         (lookup_cfa_1): Add remember argument; handle remember/restore.
20394         (lookup_cfa): Pass remember argument.
20395         (cfa_remember): New.
20396         (compute_barrier_args_size_1): Remove sibcall check.
20397         (dwarf2out_frame_debug_def_cfa): New.
20398         (dwarf2out_frame_debug_adjust_cfa): New.
20399         (dwarf2out_frame_debug_cfa_offset): New.
20400         (dwarf2out_frame_debug_cfa_register): New.
20401         (dwarf2out_frame_debug_cfa_restore): New.
20402         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
20403         (dwarf2out_begin_epilogue): New.
20404         (dwarf2out_frame_debug_restore_state): New.
20405         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
20406         DW_CFA_restore_state.
20407         (output_cfi_directive): Likewise.
20408         (convert_cfa_to_fb_loc_list): Likewise.
20409         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
20410         * dwarf2out.h: Update.
20411         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
20412         (copy_insn_1): Early out for null.
20413         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
20414         and dwarf2out_frame_debug_restore_state.
20415         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
20416         (prologue_insn_hash, epilogue_insn_hash): New.
20417         (free_after_compilation): Adjust freeing accordingly.
20418         (record_insns): Create hash table if needed; push insns into
20419         hash instead of array.
20420         (maybe_copy_epilogue_insn): New.
20421         (contains): Search hash table instead of array.
20422         (sibcall_epilogue_contains): Remove.
20423         (thread_prologue_and_epilogue_insns): Split eh_return insns
20424         and mark them as epilogues.
20425         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
20426         scanning in terms of basic blocks.
20427         * insn-notes.def (CFA_RESTORE_STATE): New.
20428         * jump.c (returnjump_p_1): Accept EH_RETURN.
20429         (eh_returnjump_p_1, eh_returnjump_p): New.
20430         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
20431         CFA_REGISTER, CFA_RESTORE): New.
20432         * rtl.def (EH_RETURN): New.
20433         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
20434
20435         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
20436         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
20437
20438         * config/i386/i386.c (gen_push): Update cfa state.
20439         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
20440         add a CFA_ADJUST_CFA note.
20441         (ix86_dwarf_handle_frame_unspec): Remove.
20442         (ix86_expand_prologue): Update cfa state.
20443         (ix86_emit_restore_reg_using_pop): New.
20444         (ix86_emit_restore_regs_using_pop): New.
20445         (ix86_emit_leave): New.
20446         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
20447         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
20448         * config/i386/i386.h (struct machine_cfa_state): New.
20449         (ix86_cfa_state): New.
20450         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
20451         (eh_return_internal): Merge from eh_return_<mode>,
20452         use eh_return rtx, split w/ epilogue.
20453
20454 2009-05-29  Ian Lance Taylor  <iant@google.com>
20455
20456         * builtins.c (validate_gimple_arglist): Don't use va_arg with
20457         enum type.
20458         * calls.c (emit_library_call_value_1): Likewise.
20459
20460         * c-typeck.c (c_build_va_arg): New function.
20461         * c-tree.h (c_build_va_arg): Declare.
20462         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
20463         instead of build_va_arg.
20464
20465 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
20466
20467         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
20468         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
20469         (ptr_difference_cost): Use affine combinations to compute it.
20470         (difference_cost): Likewise.
20471         (get_computation_cost_at): Compute more accurate cost for addresses
20472         if the ratio is a multiplier allowed in addresses.
20473         For non-addresses, consider that an additional offset or symbol is
20474         added only once.
20475
20476 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
20477
20478         * config/i386/i386.c (ix86_decompose_address): Avoid useless
20479         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
20480
20481         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
20482         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
20483         (prefix_rex): For UNIT_MMX don't imply the prefix by default
20484         if MODE_DI.
20485         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
20486         to 1 for TYPE_SSE{IADD1,CVT1}.
20487         (prefix_vex_imm8): Removed.
20488         (length_vex): Only pass 1 as second argument to
20489         ix86_attr_length_vex_default if prefix_extra is 0.
20490         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
20491         (length): For prefix vex computation use length_immediate
20492         attribute instead of prefix_vex_imm8.
20493         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
20494         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
20495         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
20496         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
20497         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
20498         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
20499         a space in between the operands.
20500         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
20501         if one operand is 0xff and the other one si, di, bp or sp.
20502         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
20503         other one si, di, bp or sp.
20504         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
20505         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
20506         type and mode attributes.
20507         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
20508         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
20509         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
20510         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
20511         prefix_data16 attribute iff MODE_DF.
20512         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
20513         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
20514         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
20515         constm128_operand in length_immediate computation.
20516         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
20517         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
20518         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
20519         length_immediate attribute to 1.
20520         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
20521         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
20522         for certain alternatives.
20523         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
20524         prefix_data16 attribute if MODE_V1DF.
20525         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
20526         length_immediate to 1.
20527         (set_got_rex64, set_rip_rex64): Remove length attribute, set
20528         length_address to 4, set mode attribute to MODE_DI.
20529         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
20530         (fxam<mode>2_i387): Set length attribute to 4.
20531         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
20532         *prefetch_3dnow_rex): Override length_address attribute.
20533         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
20534         attributes.
20535         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
20536         (constm128_operand): Removed.
20537         * config/i386/i386.c (memory_address_length): For
20538         disp && !index && !base in 64-bit mode account for SIB byte if
20539         print_operand_address can't optimize disp32 into disp32(%rip)
20540         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
20541         for fs: or gs: segment.
20542         (ix86_attr_length_immediate_default): When checking if shortform
20543         is possible, truncate immediate to the length of the non-shortened
20544         immediate.
20545         (ix86_attr_length_address_default): Ignore MEM_P operands
20546         with X constraint.
20547         (ix86_attr_length_vex_default): Only check for DImode on
20548         GENERAL_REG_P operands.
20549         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
20550         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
20551         (sse_cvttps2pi): Clear prefix_rep attribute.
20552         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
20553         attribute.
20554         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
20555         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
20556         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
20557         iff operand 2 is const_int_operand.
20558         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
20559         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
20560         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
20561         instead of vex.
20562         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
20563         prefix_data16.
20564         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
20565         prefix_data16 attribute for movlpd and movhpd instructions.
20566         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
20567         length_immediate for shufpd instruction.
20568         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
20569         (avx_cmpp<avxmodesuffixf2c><mode>3,
20570         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
20571         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
20572         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
20573         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
20574         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
20575         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
20576         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
20577         prefix_data16 attribute for the first alternative to 1.
20578         (*avx_loadlps): Override length_immediate for the first alternative.
20579         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
20580         attributes for second alternative.
20581         (*vec_concatv2sf_sse4_1): Override length_immediate and
20582         prefix_data16 attributes for second alternative.
20583         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
20584         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
20585         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
20586         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
20587         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
20588         prefix_data16 and length_immediate to 1.
20589         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
20590         to 1.
20591         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
20592         prefix_extra attribute for variants that don't have 0f prefix alone.
20593         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
20594         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
20595         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
20596         *sse4_1_pextrd): Set length_immediate to 1.
20597         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
20598         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
20599         to 1.
20600         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
20601         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
20602         length_immediate to 1 for second alternative.
20603         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
20604         prefix_extra and length_immediate attributes for the first
20605         alternative.
20606         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
20607         first alternative.
20608         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
20609         to 1 for the first and third alternative.
20610         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
20611         alternative.
20612         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
20613         attribute.
20614         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
20615         attribute to 0.
20616         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
20617         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
20618         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
20619         *avx_psign<mode>3): Set prefix_extra attribute to 1.
20620         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
20621         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
20622         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
20623         ssse3_psign<mode>3): Override prefix_rex attribute.
20624         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
20625         (ssse3_palignrti): Override length_immediate to 1.
20626         (ssse3_palignrdi): Override length_immediate to 1, override
20627         prefix_rex attribute.
20628         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
20629         (sse4a_extrqi): Override length_immediate to 2.
20630         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
20631         (sse4a_insertq): Override prefix_data16 to 0.
20632         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
20633         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
20634         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
20635         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
20636         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
20637         and length_immediate to 1.
20638         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
20639         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
20640         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
20641         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
20642         and length_immediate to 1.
20643         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
20644         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
20645         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
20646         avx_ptest256): Override prefix_extra to 1.
20647         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
20648         Override prefix_data16 and length_immediate to 1.
20649         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
20650         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
20651         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
20652         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
20653         prefix_data16 to 0 and prefix_extra to 2.
20654         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
20655         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
20656         attribute.
20657         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
20658         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
20659         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
20660         and prefix_extra to 2.
20661         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
20662         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
20663         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
20664         avx_vpermilvar<mode>3,
20665         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
20666         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
20667         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
20668         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
20669         Override prefix_extra to 1.
20670         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
20671         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
20672         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
20673         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
20674         prefix_extra and length_immediate to 1.
20675         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
20676         modrm to 0.
20677         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
20678         to 1 for the first alternative.
20679         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
20680         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
20681         cases.
20682         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
20683         *movv2sf_internal_avx, *movv2sf_internal): Override
20684         prefix_rep attribute for certain alternatives.
20685         (*mov<mode>_internal): Override prefix_rep or prefix_data16
20686         attributes for certain alternatives.
20687         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
20688         attributes for certain alternatives.
20689         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
20690         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
20691         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
20692         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
20693         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
20694         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
20695         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
20696         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
20697         length_immediate to 1 if operand 2 is const_int_operand.
20698         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
20699         *vec_extractv2si_1): Set length_immediate attribute to 1.
20700         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
20701         using old 3DNOW insn rather than SSE/3DNOW_A.
20702         (mmx_emms, mmx_femms): Clear modrm attribute.
20703
20704 2009-05-29  Martin Jambor  <mjambor@suse.cz>
20705
20706         * tree-sra.c:  New implementation of SRA.
20707
20708         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
20709         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
20710         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
20711         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
20712         (SRA_MAX_STRUCTURE_COUNT): Removed.
20713         (SRA_FIELD_STRUCTURE_RATIO): Removed.
20714         * doc/invoke.texi (sra-max-structure-size): Removed.
20715         (sra-field-structure-ratio): Removed.
20716
20717 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
20718
20719         PR middle-end/40291
20720         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
20721         before expansion.
20722
20723 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
20724
20725         PR rtl-optimization/40101
20726         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
20727         seqno.  Adjust comment.
20728         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
20729         inserting bookkeeping before a jump, the jump is not scheduled.
20730         When no positive seqno found, provide a value.  Add comment.
20731
20732 2009-05-29  Richard Guenther  <rguenther@suse.de>
20733
20734         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
20735         short-cutting on the first component.
20736
20737 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
20738
20739         PR middle-end/39958
20740         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
20741         for trees other than decls/types.
20742
20743 2009-05-29  Richard Guenther  <rguenther@suse.de>
20744
20745         * tree-ssa-operands.c (get_expr_operands): Do not handle
20746         INDIRECT_REFs in the handled-component case.  Remove
20747         unused get_ref_base_and_extent case.
20748         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
20749         tree_low_cst and host_integerp where possible.
20750         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
20751         codes for equivalence.
20752         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
20753
20754 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
20755
20756         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
20757         to tmake_file for i[34567]86-*-cygwin*.
20758
20759 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
20760
20761         PR target/40017
20762         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
20763         (altivec_categorize_keyword, init_vector_keywords,
20764         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
20765         similar to bool.
20766
20767 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
20768
20769         * tree.c (handle_dll_attribute): Check if node is
20770         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
20771
20772 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
20773
20774         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
20775         component.
20776         (thumb2_zero_extendqidi2): Likewise.
20777
20778 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
20779
20780         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
20781         instead of gen_movrt.
20782         * config/sh/sh.md (movrt): Remove.
20783
20784 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
20785
20786         * doc/invoke.texi (IA-64 Options):
20787         Add -msdata, -mfused-madd, -mno-inline-float-divide,
20788         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
20789         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
20790         -msched-prefer-non-control-spec-insns,
20791         -msched-stop-bits-after-every-cycle,
20792         -msched-count-spec-in-critical-path,
20793         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
20794         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
20795         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
20796         and -msched-spec-verbose.
20797
20798 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
20799
20800         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
20801         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
20802         error if used.
20803         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
20804
20805 2009-05-28  Richard Guenther  <rguenther@suse.de>
20806
20807         * tree-ssa-alias.c (ao_ref_init): New function.
20808         (ao_ref_base): Likewise.
20809         (ao_ref_base_alias_set): Likewise.
20810         (ao_ref_alias_set): Likewise.
20811         (refs_may_alias_p_1): Change signature.
20812         (refs_may_alias_p): Adjust.
20813         (refs_anti_dependent_p): Likewise.
20814         (refs_output_dependent_p): Likewise.
20815         (call_may_clobber_ref_p_1): Change signature.
20816         (call_may_clobber_ref_p): Adjust.
20817         (stmt_may_clobber_ref_p_1): New function split out from ...
20818         (stmt_may_clobber_ref_p): ... here.
20819         (maybe_skip_until): Adjust signature.
20820         (get_continuation_for_phi): Likewise.
20821         (walk_non_aliased_vuses): Likewise.
20822         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
20823         (ao_ref_init): Declare.
20824         (ao_ref_base): Likewise.
20825         (ao_ref_alias_set): Likewise.
20826         (stmt_may_clobber_ref_p_1): Likewise.
20827         (walk_non_aliased_vuses): Adjust.
20828         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
20829         (get_ref_from_reference_ops): remove.
20830         (vn_reference_lookup_2): Adjust signature.
20831         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
20832         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
20833         (vn_reference_lookup): Adjust.
20834         (vn_reference_insert): Likewise.
20835         (vn_reference_insert_pieces): Adjust signature.
20836         (visit_reference_op_call): Adjust.
20837         * tree-ssa-pre.c (get_expr_type): Simplify.
20838         (phi_translate_1): Adjust.
20839         (compute_avail): Likewise.
20840         (translate_vuse_through_block): Do not re-build trees.
20841         (value_dies_in_block_x): Likewise.
20842         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
20843         fields.
20844         (vn_reference_lookup_pieces): Adjust declaration.
20845         (vn_reference_insert_pieces): Likewise.
20846
20847 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
20848
20849         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
20850         with checking disabled.
20851
20852 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
20853
20854         PR target/37216
20855
20856         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
20857         macro definition for support of three-operand format aligned
20858         .comm directive in assembler on cygwin/pe/mingw target OS.
20859         * configure:  Regenerate.
20860         * config.h:  Regenerate.
20861
20862         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
20863         aligned form of .comm directive if -mpe-aligned-commons is in effect.
20864         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
20865
20866         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
20867         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
20868
20869 2009-05-28  Ira Rosen  <irar@il.ibm.com>
20870
20871         PR tree-optimization/40254
20872         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
20873         in analysis of basic blocks.
20874
20875 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
20876
20877         PR middle-end/33699
20878         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
20879         * target-def.h (TARGET_CONST_ANCHOR): New macro.
20880         (TARGET_INITIALIZER): Use it.
20881         * cse.c (CHEAPER): Move it up to the other macros.
20882         (insert): Rename this ...
20883         (insert_with_costs): ... to this.  Add cost parameters.  Update
20884         function comment.
20885         (insert): New function.  Call insert_with_costs.
20886         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
20887         find_reg_offset_for_const, try_const_anchors): New functions.
20888         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
20889         when using a const-anchor.  Call insert_const_anchors.
20890         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
20891         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
20892
20893 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
20894
20895         * tree-inline.c (remap_decls): Enable nonlocalized variables
20896         when not optimizing.
20897
20898 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
20899
20900         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
20901         Simplify other tests involving optimize.
20902
20903 2009-05-27  Tom Tromey  <tromey@redhat.com>
20904
20905         * unwind-dw2.c (_Unwind_DebugHook): New function.
20906         (uw_install_context): Call _Unwind_DebugHook.
20907
20908 2009-05-27  Tom Tromey  <tromey@redhat.com>
20909
20910         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
20911
20912 2009-05-27  Ian Lance Taylor  <iant@google.com>
20913
20914         * Makefile.in (LINKER, LINKER_FLAGS): Define.
20915         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
20916         (ALL_LINKERFLAGS): Define.
20917         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
20918         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
20919         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
20920         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
20921         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
20922         $(LINKER_FOR_BUILD).
20923         (build/gcov-iov$(build_exeext)): Likewise.
20924
20925 2009-05-27  Julian Brown  <julian@codesourcery.com>
20926
20927         * gcse.c (target.h): Include.
20928         (can_assign_to_reg_without_clobbers_p): Check that the target allows
20929         copy of argument to a pseudo register.
20930
20931 2009-05-27  Diego Novillo  <dnovillo@google.com>
20932
20933         * tree-ssa-live.c (dump_scope_block): Document arguments.
20934         (dump_scope_blocks): Document.
20935         (debug_scope_blocks): New.
20936         * tree-flow.h (debug_scope_blocks): Declare.
20937
20938 2009-05-21  Denis Chertykov  <denisc@overta.ru>
20939
20940         * doc/contrib.texi (Contributors): Add myself to the list.
20941
20942 2009-05-27  Olivier Hainque  <hainque@adacore.com>
20943
20944         * expr.c (target_align): New function.  Alignment the TARGET of an
20945         assignment may be assume to have.
20946         (highest_pow2_factor_for_target): Use it instead of relying on
20947         immediate tree attributes of TARGET, not necessarily honored when
20948         intermediate bitfields are involved.
20949
20950 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
20951
20952         PR target/40266
20953         * config/i386/driver-i386.c (host_detect_local_cpu): Support
20954         AVX, SSE4, AES, PCLMUL and POPCNT.
20955
20956 2009-05-27  Diego Novillo  <dnovillo@google.com>
20957
20958         * tree-pretty-print.c (dump_location): New.
20959         (dump_generic_node): Call it.
20960         Factor code to handle BLOCK nodes ...
20961         (dump_block_node): ... here.
20962
20963 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
20964
20965         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
20966         with it.
20967         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
20968         included.
20969         * gcc-plugin.h: Include config.h and system.h.
20970         (IN_GCC): Define if not defined.
20971
20972 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
20973
20974         PR middle-end/40249
20975         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
20976         with -fno-inline.
20977
20978 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
20979
20980         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
20981         applicable.
20982         * config/m32r/m32r.h: Ditto.
20983         * config/m32r/m32r.md: Ditto.
20984         * config/m32r/predicates.md: Ditto.
20985
20986 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
20987
20988         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
20989
20990 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
20991
20992         * doc/plugins.texi
20993         (Loading plugins): typo.
20994         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
20995         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
20996         (Interacting with the GCC Garbage Collector): Added new section.
20997         (Giving information about a plugin): Added new section for
20998         PLUGIN_INFO.
20999         * ggc.h (ggc_register_root_tab): Added declaration.
21000         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
21001         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
21002         (register_callback): Improved comment in declaration.
21003         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
21004         (extra_root_vec) Added static variable for dynamic roots registration.
21005         (ggc_register_root_tab) Added new routine.
21006         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
21007         PLUGIN_GGC_MARKING event.
21008         * ggc-zone.c: Include plugin.h.
21009         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
21010         * ggc-page.c: Include plugin.h.
21011         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
21012         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
21013         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
21014         (register_callback): check lack of callbacks for
21015         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
21016         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
21017         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
21018         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
21019         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
21020         dependency on plugin.h.
21021         (plugin.o): Added dependency on ggc.h...
21022
21023 2009-05-26  Richard Guenther  <rguenther@suse.de>
21024
21025         PR middle-end/40248
21026         Revert
21027         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
21028         with mismatched comparison modes.
21029
21030         * expr.c (expand_expr_real_1): Expand the operand of a
21031         VIEW_CONVERT_EXPR in its natural mode.
21032
21033 2009-05-26  Ian Lance Taylor  <iant@google.com>
21034
21035         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
21036         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
21037         (ALL_COMPILERFLAGS): Define.
21038         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
21039         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
21040         (collect2$(exeext), collect2.o): Likewise.
21041         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
21042         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
21043         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
21044         (libbackend.o, intl.o, cppdefault.o): Likewise.
21045         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
21046         (build/%.o): Use $(COMPILER_FOR_BUILD).
21047         (build/gen%$(build_exeext)): Likewise.
21048         (build/gcov-iov$(build_exeext)): LIkewise.
21049         * config/t-darwin (darwin.o): Use $(COMPILER).
21050         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
21051         * config/t-sol2 (sol2-c.o): Likewise.
21052         (sol2.o): Likewise.
21053         * config/t-vxworks (vxworks.o): Likewise.
21054         * config/x-darwin (host-darwin.o): Likewise.
21055         * config/x-hpux (host-hpux.o): Likewise.
21056         * config/x-linux (host-linux.o): Likewise.
21057         * config/x-solaris (host-solaris.o): Likewise.
21058         * config/alpha/x-alpha (driver-alpha.o): Likewise.
21059         * config/arm/t-arm (arm-c.o): Likewise.
21060         * config/arm/t-pe (pe.o): Likewise.
21061         * config/arm/t-wince-pe (pe.o): Likewise.
21062         * config/i386/t-cygming (winnt.o): Likewise.
21063         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
21064         * config/i386/t-cygwin (cygwin1.o): Likewise.
21065         (cygwin2.o): Likewise.
21066         * config/i386/t-i386 (i386-c.o): Likewise.
21067         * config/i386/t-interix (winnt.o): Likewise.
21068         * config/i386/t-netware (netware.o): Likewise.
21069         * config/i386/t-nwld (nwld.o): Likewise.
21070         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
21071         * config/i386/x-i386 (driver-i386.o): Likewise.
21072         * config/i386/x-cygwin (host-cygwin.o): Likewise.
21073         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
21074         * config/ia64/t-ia64 (ia64-c.o): Likewise.
21075         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
21076         * config/mips/x-native (driver-native.o): Likewise.
21077         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
21078         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
21079         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
21080         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
21081         * config/score/t-score-elf (score7.o): Likewise.
21082         (score3.o): Likewise.
21083         * config/sh/t-sh (sh-c.o): Likewise.
21084         * config/sh/t-symbian (sh-c.o): Likewise.
21085         (symbian.o): Likewise.
21086         * config/spu/t-spu-elf (spu-c.o): Likewise.
21087         * config/v850/t-v850 (v850-c.o): Likewise.
21088         * config/v850/t-v850e (v850-c.o): Likewise.
21089
21090 2009-05-26  Richard Guenther  <rguenther@suse.de>
21091
21092         PR tree-optimization/40122
21093         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
21094         VECTOR_CSTs if possible.
21095         (fold_gimple_assign): Likewise.
21096
21097 2009-05-26  Richard Guenther  <rguenther@suse.de>
21098
21099         PR middle-end/40252
21100         * fold-const.c (fold_binary): Use the correct types for building
21101         rotates.
21102
21103 2009-05-26  Richard Guenther  <rguenther@suse.de>
21104
21105         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
21106         redundant calls to merge_alias_info.
21107         (bump_vector_ptr): Likewise.
21108         * tree-ssa-copy.c (merge_alias_info): Remove.
21109         (replace_exp_1): Remove call to merge_alias_info.
21110         (propagate_tree_value): Likewise.
21111         (fini_copy_prop): Propagate points-to info.
21112         * tree-flow.h (merge_alias_info): Remove.
21113
21114 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
21115
21116         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
21117
21118 2009-05-25  Jan Hubicka  <jh@suse.cz>
21119
21120         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
21121         * cgraph.h (struct inline_summary): New filed self_wize,
21122         size_inlining_benefit, self_time and time_inlining_benefit.
21123         (struct cgraph_global_info): Replace insns by time ans size fields.
21124         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
21125         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
21126         (ipcp_update_callgraph): Do not touch function bodies.
21127         * ipa-inline.c: Include except.h
21128         (MAX_TIME): New constant.
21129         (overall_insns): Remove.
21130         (leaf_node_p): New.
21131         (overall_size, max_benefit): New static variables.
21132         (cgraph_estimate_time_after_inlining): New function.
21133         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
21134         (cgraph_clone_inlined_nodes): Update size.
21135         (cgraph_mark_inline_edge): Update size.
21136         (cgraph_estimate_growth): Use size info.
21137         (cgraph_check_inline_limits): Check size.
21138         (cgraph_default_inline_p): Likewise.
21139         (cgraph_edge_badness): Compute badness based on benefit and size cost.
21140         (cgraph_decide_recursive_inlining): Check size.
21141         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
21142         and times.
21143         (cgraph_decide_inlining): Likewise.
21144         (cgraph_decide_inlining_incrementally): Likewise; honor
21145         PARAM_EARLY_INLINING_INSNS.
21146         (likely_eliminated_by_inlining_p): New predicate.
21147         (estimate_function_body_sizes): New function.
21148         (compute_inline_parameters): Use it.
21149         * except.c (must_not_throw_labels): New function.
21150         * except.h (must_not_throw_labels): Declare.
21151         * tree-inline.c (init_inline_once): Kill inlining_weigths
21152         * tree-ssa-structalias.c: Avoid uninitialized warning.
21153         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
21154         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
21155         (PARAM_INLINE_CALL_COST): Remove.
21156         (PARAM_EARLY_INLINING_INSNS): New.
21157
21158 2009-05-25  Richard Guenther  <rguenther@suse.de>
21159
21160         PR tree-optimization/36327
21161         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
21162         callback for reference translation or lookup at the point of may-defs.
21163         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
21164         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
21165         for union COMPONENT_REFs.
21166         (vn_reference_lookup_3): New callback.  Lookup from memset
21167         and CONSTRUCTOR assignment, translate through struct copies.
21168         (vn_reference_lookup_pieces): Make sure to not free the
21169         passed operands array.  Adjust walk_non_aliased_vuses call.
21170         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
21171         make sure we do not leak memory.
21172
21173 2009-05-25  Richard Guenther  <rguenther@suse.de>
21174
21175         * tree-ssa-alias.h (dump_points_to_solution): Declare.
21176         * tree-inline.c (expand_call_inline): Reset the escaped and
21177         callused solutions.
21178         * tree-ssa-structalias.c (pass_build_ealias): New.
21179         * tree-pass.h (pass_build_ealias): Declare.
21180         * passes.c (init_optimization_passes): Add PTA during
21181         early optimizations.
21182         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
21183         and CALLUSED solutions.
21184         (dump_points_to_solution): New function, split out from ...
21185         (dump_points_to_info_for): ... here.
21186         * tree-parloops.c (parallelize_loops): Reset the escaped and
21187         callused solutions.
21188
21189 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21190
21191         PR bootstrap/40027
21192         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
21193         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
21194
21195 2009-05-25  Ira Rosen  <irar@il.ibm.com>
21196
21197         PR tree-optimization/40238
21198         * tree-vect-stmts.c (vect_init_vector): Insert initialization
21199         statements after basic block's labels.
21200         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
21201         to free the allocated memory.
21202
21203 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
21204
21205         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
21206         return address with a USE.
21207
21208 2009-05-24  Richard Guenther  <rguenther@suse.de>
21209
21210         PR middle-end/40233
21211         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
21212         array type from the main variant of the inner type.
21213
21214 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
21215
21216         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
21217         definition to bool (from int) to un-break build.
21218         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
21219
21220 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
21221
21222         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
21223         discard_stmt_changes): Delete.
21224         * tree-ssa-operands.c (scb_stack): Delete.
21225         (init_ssa_operands): Do not initialize it.
21226         (fini_ssa_operands): Do not free it.
21227         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
21228
21229         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
21230         update_stmt, remove the others.  Fix comments.
21231         * tree-dfa.c (optimize_stack_restore): Likewise.
21232         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
21233         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
21234         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
21235         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
21236         Likewise.
21237         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
21238         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
21239         (dom_opt_finalize_block): Likewise, adjusting access to
21240         stmts_to_rescan.
21241         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
21242         (stmts_to_rescan): Change item type to gimple.
21243         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
21244
21245 2009-05-24  Ira Rosen  <irar@il.ibm.com>
21246
21247         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
21248         * tree-pass.h (pass_slp_vectorize): New pass.
21249         * params.h (SLP_MAX_INSNS_IN_BB): Define.
21250         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
21251         * tree-vectorizer.c (timevar.h): Include.
21252         (user_vect_verbosity_level): Declare.
21253         (vect_location): Fix comment.
21254         (vect_set_verbosity_level): Update user_vect_verbosity_level
21255         instead of vect_verbosity_level.
21256         (vect_set_dump_settings): Add an argument. Ignore user defined
21257         verbosity if dump flags require higher level of verbosity. Print to
21258         stderr only for loop vectorization.
21259         (vectorize_loops): Update call to vect_set_dump_settings.
21260         (execute_vect_slp): New function.
21261         (gate_vect_slp): Likewise.
21262         (struct gimple_opt_pass pass_slp_vectorize): New.
21263         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
21264         access its members.
21265         (vec_info_for_bb): New function.
21266         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
21267         (VECTORIZATION_ENABLED): New macro.
21268         (SLP_ENABLED, SLP_DISABLED): Likewise.
21269         (vect_is_simple_use): Add bb_vec_info argument.
21270         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
21271         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
21272         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
21273         vect_schedule_slp, vect_analyze_slp): Likewise.
21274         (vect_analyze_stmt): Add slp_tree argument.
21275         (find_bb_location): Declare.
21276         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
21277         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
21278         (vect_analyze_loop_operations, vect_analyze_loop,
21279         get_initial_def_for_induction, vect_create_epilog_for_reduction,
21280         vect_finalize_reduction, vectorizable_reduction,
21281         vectorizable_live_operation, vect_transform_loop): Likewise.
21282         * tree-data-ref.c (dr_analyze_innermost): Update comment,
21283         skip evolution analysis if analyzing a basic block.
21284         (dr_analyze_indices): Likewise.
21285         (initialize_data_dependence_relation): Skip the test whether the
21286         object is invariant for basic blocks.
21287         (compute_all_dependences): Skip dependence analysis for data
21288         references in basic blocks.
21289         (find_data_references_in_stmt): Don't fail in case of invariant
21290         access in basic block.
21291         (find_data_references_in_bb): New function.
21292         (find_data_references_in_loop): Move code to
21293         find_data_references_in_bb and add a call to it.
21294         (compute_data_dependences_for_bb): New function.
21295         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
21296         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
21297         that STEP is 0.
21298         (vect_analyze_data_ref_dependence): Check for interleaving in case of
21299         unknown dependence in basic block and fail in case of dependence in
21300         basic block.
21301         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
21302         dependence instances from either loop or basic block vectorization
21303         info.
21304         (vect_compute_data_ref_alignment): Check if it is loop vectorization
21305         before calling nested_in_vect_loop_p.
21306         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
21307         dependence instances from either loop or basic block vectorization
21308         info.
21309         (vect_verify_datarefs_alignment): Likewise.
21310         (vect_enhance_data_refs_alignment): Adjust function calls.
21311         (vect_analyze_data_refs_alignment): Likewise.
21312         (vect_analyze_group_access): Fix printing. Skip different checks if
21313         DR_STEP is 0. Keep strided stores either in loop or basic block
21314         vectorization data structure. Fix indentation.
21315         (vect_analyze_data_ref_access): Fix comments, allow zero step in
21316         basic blocks.
21317         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
21318         dependence instances from either loop or basic block vectorization
21319         info.
21320         (vect_analyze_data_refs): Update comment. Call
21321         compute_data_dependences_for_bb to analyze basic blocks.
21322         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
21323         case of loop vectorization. In case of basic block vectorization use
21324         data-ref itself as a base.
21325         (vect_create_data_ref_ptr): In case of basic block vectorization:
21326         don't advance the pointer, add new statements before the current
21327         statement.  Adjust function calls.
21328         (vect_supportable_dr_alignment): Support only aligned accesses in
21329         basic block vectorization.
21330         * common.opt (ftree-slp-vectorize): New flag.
21331         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
21332         (vect_pattern_recog_1): Likewise.
21333         * tree-vect-stmts.c (process_use): Likewise.
21334         (vect_init_vector): Add new statements in the beginning of the basic
21335         block in case of basic block SLP.
21336         (vect_get_vec_def_for_operand): Adjust function calls.
21337         (vect_finish_stmt_generation): Likewise.
21338         (vectorizable_call): Add assert that it is loop vectorization, adjust
21339         function calls.
21340         (vectorizable_conversion, vectorizable_assignment): Likewise.
21341         (vectorizable_operation): In case of basic block SLP, take
21342         vectorization factor from statement's type and skip the relevance
21343         check. Adjust function calls.
21344         (vectorizable_type_demotion): Add assert that it is loop
21345         vectorization, adjust function calls.
21346         (vectorizable_type_promotion): Likewise.
21347         (vectorizable_store): Check for outer loop only in case of loop
21348         vectorization. Adjust function calls. For basic blocks, skip the
21349         relevance check and don't advance pointers.
21350         (vectorizable_load): Likewise.
21351         (vectorizable_condition): Add assert that it is loop vectorization,
21352         adjust function calls.
21353         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
21354         that it is not reduction, get vector type, call only supported
21355         functions, skip loop specific parts.
21356         (vect_transform_stmt): Check for outer loop only in case of loop
21357         vectorization.
21358         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
21359         (vect_is_simple_use): Fix comment, add new argument, fix conditions
21360         for external definition.
21361         * passes.c (pass_slp_vectorize): New pass.
21362         * tree-vect-slp.c (find_bb_location): New function.
21363         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
21364         check for patterns only in loops.
21365         (vect_build_slp_tree): Add argument, adjust function calls, fail in
21366         case of multiple types in basic block SLP.
21367         (vect_mark_slp_stmts_relevant): New function.
21368         (vect_supported_load_permutation_p): Fix comment.
21369         (vect_analyze_slp_instance): Add argument. In case of basic block
21370         SLP, take vectorization factor from statement's type, check that
21371         unrolling factor is 1. Adjust function call. Save SLP instance in
21372         either loop or basic block vectorization structure. Return FALSE,
21373         if SLP failed.
21374         (vect_analyze_slp): Add argument. Get strided stores groups from
21375         either loop or basic block vectorization structure. Return FALSE
21376         if basic block SLP failed.
21377         (new_bb_vec_info): New function.
21378         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
21379         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
21380         (vect_schedule_slp): Add argument. Get SLP instances from either
21381         loop or basic block vectorization structure. Set vectorization factor
21382         to be 1 for basic block SLP.
21383         (vect_slp_transform_bb): New function.
21384         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
21385
21386 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
21387
21388         * final.c (shorten_branches): Do not align labels for jump tables.
21389         (final_scan_insn): Use JUMP_TABLE_DATA_P.
21390
21391 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
21392
21393         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
21394         Remove outdated reference to flow.c and fix nits.
21395         * doc/gccint.texi: Tweak RTL description.
21396         * doc/rtl.texi: Likewise.
21397
21398 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
21399
21400         * config/avr/avr.c: Change my email address.
21401         * config/avr/avr.h: Likewise.
21402         * config/avr/avr.md: Likewise.
21403         * config/avr/avr-protos.h: Likewise.
21404         * config/avr/libgcc.S: Likewise.
21405
21406 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
21407
21408         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
21409         (spu_split_load, spu_split_store): Change return type to int.
21410         (spu_split_convert): Declare.
21411         * config/spu/predicates.md (spu_mem_operand): Remove.
21412         (spu_mov_operand): Update.
21413         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
21414         * config/spu/spu.c (regno_aligned_for_load): Remove.
21415         (reg_aligned_for_addr, spu_expand_load): Define.
21416         (spu_expand_extv): Reimplement and handle MEM.
21417         (spu_expand_insv): Handle MEM.
21418         (spu_sched_reorder): Handle insn's with length 0.
21419         (spu_legitimate_address_p): Reimplement.
21420         (store_with_one_insn_p): Return TRUE for any mode with size
21421         larger than 16 bytes.
21422         (address_needs_split): Define.
21423         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
21424         operands.
21425         (spu_convert_move): Define.
21426         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
21427         (spu_split_store): Change all MEM's to TImode.
21428         (spu_init_expanders): Preallocate registers that correspond to
21429         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
21430         mark_reg_pointer.
21431         (spu_split_convert): Define.
21432         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
21433         (_move<mode>, _movdi, _movti): Update predicate and condition.
21434         (load, store): Change to define_split.
21435         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
21436         extend<mode>ti2.
21437         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
21438         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
21439         define_insn_and_split of lshr<mode>3.
21440         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
21441         (<v>ashr<mode>3_imm): Define.
21442         (extv, extzv, insv): Allow MEM operands.
21443         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
21444         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
21445         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
21446         (_spu_convert2): Change to define_insn_and_split and remove the
21447         corresponding define_peephole2.
21448         (stack_protect_set, stack_protect_test, stack_protect_test_si):
21449         Change predicates to memory_operand.
21450
21451 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
21452
21453         * config/arm/thumb2.md: Add 16-bit multiply instructions.
21454
21455 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
21456
21457         PR tree-optimization/40219
21458         * tree.c (iterative_hash_expr): Make sure the builtin function is
21459         a normal builtin function and not a front end or back end builtin
21460         before indexing into the built_in_decls array.
21461
21462 2009-05-22  Richard Guenther  <rguenther@suse.de>
21463
21464         PR middle-end/38964
21465         * alias.c (write_dependence_p): Do not use TBAA for answering
21466         anti-dependence or output-dependence.
21467         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
21468         (emit_pointer_definition): Remove.
21469         (emit_alias_warning): Likewise.
21470         (find_what_var_points_to): Remove TBAA pruning code.
21471         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
21472         violations.
21473         (compute_points_to_sets): Remove code computing the set of
21474         dereferenced pointers.
21475         * tree-data-ref.c (dr_may_alias_p): Properly use the split
21476         oracle for querying anti and output dependencies.
21477         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
21478         if TBAA may be applied.
21479         (refs_anti_dependent_p): New function.
21480         (refs_output_dependent_p): Likewise.
21481         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
21482         (refs_output_dependent_p): Likewise.
21483         * doc/tree-ssa.texi (Memory model): New section.
21484         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
21485         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
21486         * cfgexpand.c (expand_gimple_basic_block): Do not handle
21487         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
21488         * expr.c (expand_expr_real_1): Likewise.
21489         * gimple-low.c (lower_stmt): Likewise.
21490         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
21491         (dump_gimple_cdt): Remove.
21492         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
21493         (gimple_size): Likewise.
21494         (walk_gimple_op): Likewise.
21495         (is_gimple_stmt): Likewise.
21496         (walk_stmt_load_store_addr_ops): Likewise.
21497         (gimple_build_cdt): Remove.
21498         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
21499         * gimple.h (gimple_cdt_new_type): Remove.
21500         (gimple_cdt_new_type_ptr): Likewise.
21501         (gimple_cdt_set_new_type): Likewise.
21502         (gimple_cdt_location): Likewise.
21503         (gimple_cdt_location_ptr): Likewise.
21504         (gimple_cdt_set_location): Likewise.
21505         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
21506         * tree-cfg.c (remove_useless_stmts_1): Do not handle
21507         GIMPLE_CHANGE_DYNAMIC_TYPE.
21508         (verify_types_in_gimple_stmt): Likewise.
21509         * tree-inline.c (estimate_num_insns): Likewise.
21510         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
21511         (copy_decl_to_var): Likewise.
21512         (copy_result_decl_to_var): Likewise.
21513         * tree-pretty-print.c (dump_generic_node): Do not handle
21514         CHANGE_DYNAMIC_TYPE_EXPR.
21515         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
21516         * tree-ssa-operands.c (get_expr_operands): Likewise.
21517         * tree-ssa-structalias.c (struct variable_info): Remove
21518         no_tbaa_pruning member.
21519         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
21520         (unify_nodes): Do not copy it.
21521         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
21522         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
21523         (set_uids_in_ptset): Do not check it.
21524         (find_what_var_points_to): Likewise.
21525         (compute_tbaa_pruning): Remove.
21526         (compute_points_to_sets): Do not call it.
21527         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
21528         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
21529         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
21530         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
21531         (DECL_NO_TBAA_P): Likewise.
21532         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
21533         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
21534         (expand_omp_atomic_pipeline): Do not set it.
21535         * print-tree.c (print_node): Do not dump it.
21536         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
21537         redundant check.
21538
21539 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
21540
21541         PR target/39856
21542         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
21543         for clobber.
21544
21545 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
21546
21547         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
21548         non-external.
21549
21550 2009-05-22  Ben Elliston  <bje@au.ibm.com>
21551
21552         * Makefile.in (bversion.h, s-bversion): New targets.
21553         (TOPLEV_H): Add bversion.h.
21554         * toplev.h: Include "bversion.h".
21555         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
21556         the __format__ attribute only if compiling with the same version
21557         of GCC as the sources (the "build version").
21558
21559 2009-05-22  Ben Elliston  <bje@au.ibm.com>
21560
21561         * c-format.c (handle_format_attribute): Fix comment typo.
21562
21563 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
21564
21565         PR target/37846
21566         * config/ia64/ia64.opt (mfused-madd): New.
21567         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
21568         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
21569         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
21570         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
21571         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
21572         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
21573         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
21574         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
21575         instruction if !TARGET_FUSED_MADD.
21576         (fpma, fpms): Remove colon from name.
21577
21578 2009-05-22  Richard Guenther  <rguenther@suse.de>
21579
21580         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
21581         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
21582         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
21583         TARGET_MEM_REF.
21584         (create_expression_by_pieces): Only convert if necessary.
21585         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
21586         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
21587
21588 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
21589
21590         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
21591         regular pattern from a template and rename it ...
21592         (*extzv_truncsi_exts): ... to this.
21593
21594 2009-05-21  Richard Guenther  <rguenther@suse.de>
21595
21596         * cgraph.h (struct cgraph_node): Remove inline_decl member.
21597         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
21598         (cgraph_default_inline_p): Likewise.
21599         (cgraph_decide_inlining_incrementally): Likewise.
21600
21601 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
21602             Uros Bizjak  <ubizjak@gmail.com>
21603
21604         * config/i386/cpuid.h (bit_MOVBE): New.
21605
21606         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
21607
21608         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
21609         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
21610         (ix86_handle_option): Handle OPT_mmovbe.
21611         (ix86_target_string): Add -mmovbe.
21612         (pta_flags): Add PTA_MOVBE.
21613         (processor_alias_table): Add PTA_MOVBE to "atom".
21614         (override_options): Handle PTA_MOVBE.
21615
21616         * config/i386/i386.h (TARGET_MOVBE): New.
21617
21618         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
21619         (*bswapsi_movbe): New.
21620         (*bswapdi_movbe): Likewise.
21621         (bswapdi2): Renamed to ...
21622         (*bswapdi_1): This.
21623         (bswapdi2): New expander.
21624
21625         * config/i386/i386.opt (mmovbe): New.
21626
21627         * doc/invoke.texi: Document -mmovbe.
21628
21629 2009-05-21  Taras Glek  <tglek@mozilla.com>
21630
21631         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
21632         * gcc-plugin.h (plugin_init): Updated signature.
21633         * gcc-plugin.h (plugin_name_args): Moved to this header.
21634         * doc/plugins.texi (plugin_init): Updated documention to reflect
21635         API change.
21636         * doc/plugins.texi (plugin_name_args): Added to documention.
21637
21638 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
21639
21640         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
21641         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
21642
21643 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
21644
21645         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
21646         JUMP_TABLE_DATA_P predicates where applicable.
21647         * config/i386/predicates.md: Ditto.
21648         * config/i386/sse.md: Ditto.
21649
21650 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
21651
21652         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
21653         operand2 -128 override length_immediate attribute to 1.
21654         * config/i386/predicates.md (constm128_operand): New predicate.
21655
21656         * config/i386/i386.c (memory_address_length): Handle %r12
21657         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
21658         also check REGNO.
21659         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
21660         mode look through optional ZERO_EXTEND and SUBREG.
21661         * config/i386/i386.md (R12_REG): New define_constant.
21662         (prefix_data16): For sse unit set also for MODE_TI insns.
21663         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
21664         insns set if operand 1 is ext_QIreg_operand.
21665         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
21666         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
21667         immediate.
21668         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
21669         mode from MODE_DI to MODE_SI.
21670         (movdi_1_rex64): Override modrm and length_immediate attributes
21671         only for movabs (TYPE_IMOV, alternative 2).
21672         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
21673         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
21674         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
21675         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
21676         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
21677         prefix_rex attribute if DImode.
21678         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
21679         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
21680         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
21681         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
21682         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
21683         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
21684         Likewise.  For TYPE_IMOV clear length_immediate attribute.
21685         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
21686         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
21687         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
21688         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
21689         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
21690         or one operand TYPE_ISHIFT.
21691         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
21692         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
21693         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
21694         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
21695         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
21696         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
21697         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
21698         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
21699         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
21700         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
21701         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
21702         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
21703         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
21704         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
21705         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
21706         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
21707         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
21708         set mode attribute, don't override length attribute.
21709         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
21710         to 1.
21711         (return_internal_long): Set length attribute to 2 instead of 1.
21712         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
21713         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
21714         prefix_rex attribute.
21715         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
21716         New predicates.
21717         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
21718
21719 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21720
21721         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
21722
21723 2009-05-20  Ian Lance Taylor  <iant@google.com>
21724
21725         * tree.c (build_tree_list_vec_stat): New function.
21726         (ctor_to_vec): New function.
21727         (build_nt_call_vec): New function.
21728         (build_call_array): Change args to be a const pointer.
21729         (build_call_vec): New function.
21730         * tree.h (build_nt_call_vec): Declare.
21731         (build_tree_list_vec_stat): Declare.
21732         (build_tree_list_vec): Define.
21733         (build_call_array): Update declaration.
21734         (build_call_vec): Declare.
21735         (ctor_to_vec): Declare.
21736         * c-common.c (tree_vector_cache): New static variable.
21737         (make_tree_vector): New function.
21738         (release_tree_vector): New function.
21739         (make_tree_vector_single): New function.
21740         (make_tree_vector_copy): New function.
21741         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
21742         (make_tree_vector_single, make_tree_vector_copy): Declare.
21743         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
21744         (c_parser_expr_list): Don't manage cache here, instead call
21745         make_tree_vector.
21746         (c_parser_release_expr_list): Remove static function.
21747         (c_parser_vec_to_tree_list): Remove static function.
21748         (c_parser_attributes): Call build_tree_list_vec instead of
21749         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
21750         c_parser_release_expr_list.
21751         (c_parser_postfix_expression_after_primary): Likewise.
21752         (c_parser_objc_keywordexpr): Likewise.
21753
21754 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
21755
21756         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
21757         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
21758         TARGET_CONVERT_TO_TYPE.
21759         * hooks.c (hook_tree_const_tree_null): Define.
21760         * hooks.h (hook_tree_const_tree_null): Declare.
21761         * target.h (struct gcc_target):  Add invalid_parameter_type,
21762         invalid_return_type, promoted_type, and convert_to_type fields.
21763         * target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define.
21764         (TARGET_INVALID_RETURN_TYPE): Define.
21765         (TARGET_PROMOTED_TYPE): Define.
21766         (TARGET_CONVERT_TO_TYPE): Define.
21767         (TARGET_INITIALIZER): Update for new fields.
21768         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
21769         (grokparms): Check targetm.invalid_parameter_type.
21770         * c-typeck.c (default_conversion): Check targetm.promoted_type.
21771         * c-convert.c (convert): Check targetm.convert_to_type.
21772
21773 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
21774
21775         * config/mips/mips.md (*extenddi_truncate<mode>,
21776         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
21777         defintions.
21778         (*extendhi_truncateqi): New define_insn_and_sptit.
21779
21780 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
21781
21782         PR middle-end/40204
21783         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
21784         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
21785
21786 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
21787
21788         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
21789         the operand of VIEW_CONVERT_EXPR.
21790
21791 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
21792
21793         * config/i386/driver-i386.c (host_detect_local_cpu): Check
21794         extended family and model for Intel processors.  Support Intel Atom.
21795
21796 2009-05-20  Olivier Hainque  <hainque@adacore.com>
21797
21798         * gstab.h (stab_code_type): Define, to be used instead of the
21799         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
21800         notice.
21801         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
21802         occurrences by stab_code_type.
21803         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
21804
21805 2009-05-20  Martin Jambor  <mjambor@suse.cz>
21806
21807         * tree-flow.h (insert_edge_copies_seq): Undeclare.
21808         (sra_insert_before): Likewise.
21809         (sra_insert_after): Likewise.
21810         (sra_init_cache): Likewise.
21811         (sra_type_can_be_decomposed_p): Likewise.
21812         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
21813         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
21814         (sra_insert_before): Likewise.
21815         (sra_insert_after): Likewise.
21816         (sra_init_cache): Likewise.
21817         (insert_edge_copies_seq): Made static and moved upwards.
21818
21819         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
21820         case.
21821
21822         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
21823
21824         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
21825         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
21826         simple copies.
21827
21828 2009-05-20  Richard Guenther  <rguenther@suse.de>
21829
21830         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
21831         with mismatched comparison modes.
21832
21833 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21834
21835         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
21836         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
21837         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
21838         with shifts for Thumb2.
21839         (orsi_notsi): New for orn.
21840         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
21841         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
21842         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
21843         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
21844         Don't invert remainder for IOR.
21845
21846 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
21847
21848         PR tree-optimization/40087
21849         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
21850         number_of_iterations_ne): Rename never_infinite argument.
21851         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
21852         number_of_iterations_le): Handle pointer-type ivs when
21853         exit_must_be_taken is false.
21854         (number_of_iterations_cond):  Do not always assume that
21855         exit_must_be_taken if the control variable is a pointer.
21856
21857 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
21858
21859         * c-typeck.c (build_binary_op): Allow % on integal vectors.
21860         * doc/extend.texi (Vector Extension): Document that % is allowed too.
21861
21862 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
21863
21864         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
21865         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
21866
21867 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21868
21869         PR c/40172
21870         * c.opt (Wlogical-op): Disabled by default.
21871         * c-opt (c_common_post_options): Do not enable Wlogical-op with
21872         Wextra.
21873         * doc/invoke.texi (Wlogical-op): Likewise.
21874
21875 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21876
21877         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
21878         into CASE_CONVERT.
21879         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
21880         Propagate the type of the first operand.
21881         <ASSERT_EXPR>: Simplify.
21882         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
21883         Rewrite using the RHS code as discriminant.
21884         <NOP_EXPR>: Turn into CASE_CONVERT.
21885         <PLUS_EXPR>: Propagate the type of the first operand.
21886
21887 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
21888
21889         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
21890         (ia64_dconst_0_375): New.
21891         * config/ia64/ia64.c (ia64_override_options): Remove
21892         -minline-sqrt-min-latency warning.
21893         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
21894         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
21895         * config/ia64/ia64.md (*sqrt_approx): Remove.
21896         (sqrtsf2): Remove #if 0.
21897         (sqrtsf2_internal_thr): Rewrite and move to div.md.
21898         (sqrtdf): Remove assert.
21899         (sqrtdf2_internal_thr): Rewrite and move to div.md.
21900         (sqrtxf2): Remove #if 0.
21901         (sqrtxf2_internal_thr): Rewrite and move to div.md.
21902         * div.md (sqrt_approx_rf): New.
21903         (sqrtsf2_internal_thr): New implementation.
21904         (sqrtsf2_internal_lat): New.
21905         (sqrtdf2_internal_thr: New implementation.
21906         (sqrtxf2_internal): New implementation.
21907
21908 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
21909             Hans-Peter Nilsson  <hp@axis.com>
21910
21911         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
21912         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
21913         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
21914         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
21915         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
21916         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
21917         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
21918         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
21919         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
21920         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
21921         * c-common.c: ...from here.
21922
21923 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21924
21925         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
21926
21927 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21928
21929         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
21930
21931 2009-05-19  Ben Elliston  <bje@au.ibm.com>
21932
21933         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
21934         assignments with memcpy calls.
21935         (add_fdes): Likewise.
21936         (binary_search_unencoded_fdes): Likewise.
21937         (linear_search_fdes): Eliminate type puns.
21938
21939 2009-05-19  Richard Guenther  <rguenther@suse.de>
21940
21941         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
21942         not falsely claim to have propagated into all uses.
21943
21944 2009-05-19  Ben Elliston  <bje@au.ibm.com>
21945
21946         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
21947         version to v3.0.
21948
21949 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
21950
21951         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
21952         * config/sh/sh.c (sh_legitimate_address_p): Make static.
21953         (TARGET_LEGITIMATE_ADDRESS_P): New.
21954         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21955         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
21956
21957 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
21958
21959         PR debug/40109
21960         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
21961         child of the containing namespace's DIE.
21962
21963 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
21964
21965         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
21966         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
21967         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
21968         extend patterns.
21969
21970 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
21971
21972         PR target/39942
21973         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
21974         gen_align with gen_pad.
21975         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
21976         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
21977
21978         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
21979         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
21980
21981         * config/i386/i386.md (align): Renamed to ...
21982         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
21983         ASM_OUTPUT_MAX_SKIP_PAD.
21984
21985 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
21986
21987         * config.gcc: Fix variable syntax.
21988
21989         PR target/39531
21990         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
21991         before calling exact_log2.
21992         (output_iorsi3): Likewise.
21993         (output_xorsi3): Likewise.
21994
21995 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
21996
21997         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
21998         for the none zero constant operand except for EQ and NE
21999         comprisons even when the first operand is R0.
22000
22001 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
22002
22003         * config/s390/2064.md: Remove trailing whitespaces.
22004         * config/s390/2084.md: Likewise.
22005         * config/s390/constraints.md: Likewise.
22006         * config/s390/fixdfdi.h: Likewise.
22007         * config/s390/libgcc-glibc.ver: Likewise.
22008         * config/s390/s390-modes.def: Likewise.
22009         * config/s390/s390-protos.h: Likewise.
22010         * config/s390/s390.c: Likewise.
22011         * config/s390/s390.h: Likewise.
22012         * config/s390/s390.md: Likewise.
22013         * config/s390/tpf-unwind.h: Likewise.
22014
22015 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
22016
22017         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
22018
22019 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
22020
22021         M68K TLS support.
22022         * configure.ac (m68k-*-*): Check if binutils support TLS.
22023         * configure: Regenerate.
22024         * config/m68k/predicates.md (symbolic_operand): Extend comment.
22025         * config/m68k/constraints.md (Cu): New constraint.
22026         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
22027         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
22028         (movsi): Handle TLS symbols.
22029         (addsi3_5200): Handle XTLS symbols, indent.
22030         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
22031         (m68k_tls_reference_p): Declare.
22032         (m68k_legitimize_address): Declare.
22033         (m68k_unwrap_symbol): Declare.
22034         * config/m68k/m68k.opt (mxtls): New option.
22035         * config/m68k/m68k.c (ggc.h): Include.
22036         (m68k_output_dwarf_dtprel): Implement hook.
22037         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
22038         (m68k_expand_prologue): Load GOT pointer when function needs it.
22039         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
22040         (m68k_legitimate_constant_address_p): Same.
22041         (m68k_decompose_address): Handle TLS references.
22042         (m68k_get_gp): New static function.
22043         (enum m68k_reloc): New contants.
22044         (TLS_RELOC_P): New macro.
22045         (m68k_wrap_symbol): New static function.
22046         (m68k_unwrap_symbol): New function.
22047         (m68k_final_prescan_insn_1): New static function.
22048         (m68k_final_prescan_insn): New function.
22049         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
22050         functions.
22051         (legitimize_pic_address): Handle TLS references..
22052         (m68k_tls_get_addr, m68k_get_tls_get_addr)
22053         (m68k_libcall_value_in_a0_p)
22054         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
22055         (m68k_call_m68k_read_tp): Helper variables and functions for ...
22056         (m68k_legitimize_tls_address): Handle TLS references.
22057         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
22058         New functions.
22059         (m68k_legitimize_address): Handle TLS symbols.
22060         (m68k_get_reloc_decoration): New static function.
22061         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
22062         UNSPEC_RELOC32.
22063         (m68k_output_dwarf_dtprel): Implement hook.
22064         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
22065         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
22066         m68k_call_* routines.
22067         (sched_attr_op_type): Handle TLS symbols.
22068         (gt-m68k.h): Include.
22069         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
22070         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
22071
22072 2009-05-18  Martin Jambor  <mjambor@suse.cz>
22073
22074         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
22075         (visit_store_addr_for_mod_analysis): New function.
22076         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
22077         (determine_cst_member_ptr): Use gimple_assign_single_p.
22078         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
22079         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
22080         operands.  Don't check number of operands of a NOP_EXPR.
22081
22082 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
22083
22084         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
22085
22086 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22087
22088         PR c/40172
22089         * c-common.c (warn_logical_operator): Don't warn if one of
22090         expression isn't always true or false.
22091
22092 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
22093
22094         * config/i386/biarch32.h: New file.
22095         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
22096
22097 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
22098
22099         * config/mips/mips.md (*zero_extend<mode>_trunchi,
22100         *zero_extend<mode>_truncqi): Merge these into ...
22101         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
22102         Name the pattern following this as *zero_extendhi_truncqi.
22103
22104 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
22105
22106         PR middle-end/39301
22107         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
22108         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
22109         (output_info): Make field HOST_WIDEST_INT.
22110         (print_statistics): Use HOST_WIDEST_INT_PRINT.
22111         (dump_bitmat_statistics): Same.
22112
22113 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
22114
22115         * config.gcc (use_gcc_stdint):  Set to wrap.
22116         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
22117         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
22118         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
22119         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
22120         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
22121         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
22122         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
22123         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
22124
22125 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
22126
22127         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
22128         tune_64.
22129         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
22130         Move definitions earlier.
22131         (OPT_ARCH64, OPT_ARCH32): Define.
22132         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
22133         and tune_64.
22134
22135 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
22136
22137         PR target/40153
22138         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
22139         implies.
22140
22141 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
22142
22143         * arm.md (movdi2): Copy non-reg values to DImode registers.
22144
22145 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
22146
22147         PR target/39942
22148         * final.c (label_to_max_skip): New function.
22149         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
22150         CODE_LABEL_NUMBER <= max_labelno.
22151         * output.h (label_to_max_skip): New prototype.
22152         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
22153         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
22154         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
22155         Handle CODE_LABELs with >= 16 byte alignment or with
22156         max_skip == (1 << align) - 1.
22157         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
22158         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
22159
22160         PR target/39942
22161         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
22162         .p2align 3 if MAX_SKIP is smaller than 7.
22163         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
22164
22165 2009-05-15  Ian Lance Taylor  <iant@google.com>
22166
22167         * alias.c (struct alias_set_entry_d): Rename from struct
22168         alias_set_entry.  Change all uses.
22169         * except.c (struct call_site_record_d): Rename from struct
22170         call_site_record.  Change all uses.
22171         * except.h (struct eh_region_d): Rename from struct eh_region.
22172         Change all uses.
22173         * gcse.c (struct hash_table_d): Rename from struct hash_table.
22174         Change all uses.
22175         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
22176         ivtype_map_elt.  Change all uses.
22177         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
22178         Change all uses.
22179         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
22180         * graphite.h (struct name_tree_d): Rename from struct name_tree.
22181         Change all uses.
22182         (struct sese_d): Rename from struct sese.  Change all uses.
22183         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
22184         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
22185         * optabs.h (struct optab_d): Rename from struct optab.  Change all
22186         uses.
22187         (struct convert_optab_d): Rename from struct convert_optab.
22188         Change all uses.
22189         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
22190         ipa_opt_pass.  Change all uses.
22191         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
22192         all uses.
22193
22194         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
22195         defined as a typedef.
22196         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
22197         defined as a tag.
22198
22199 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22200
22201         PR 16302
22202         * fold-const.c (make_range,build_range_check,merge_ranges): Move
22203         declaration to...
22204         (merge_ranges): Returns bool.
22205         * tree.h (make_range): .. to here.
22206         (build_range_check): Likewise.
22207         (merge_ranges): Likewise. Renamed from merge_ranges.
22208         * c-typeck.c (parser_build_binary_op): Update calls to
22209         warn_logical_operator.
22210         * c-common.c (warn_logical_operator): Add new warning.
22211         * c-common.h (warn_logical_operator): Update declaration.
22212
22213 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22214
22215         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
22216
22217 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22218
22219         * doc/install.texi: Document MPC requirements, flags etc.
22220
22221         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
22222         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
22223         Evaluate constant arguments.
22224         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
22225         (fold_builtin_1): Likewise, also evaluate constant arguments.
22226         Remove superfluous break.
22227         (do_mpc_ckconv): New.
22228         * real.h: Include mpc.h.
22229         * toplev.c (print_version): Output MPC version info if available.
22230
22231 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
22232
22233         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
22234
22235 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
22236
22237         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
22238         only once.
22239
22240 2009-05-15  Jan Hubicka  <jh@suse.cz>
22241
22242         * doc/invoke.texi (max-early-inliner-iterations): New flag.
22243         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
22244         (try_inline): Fix return value.
22245         (cgraph_decide_inlining_incrementally): Honor new value.
22246         (cgraph_early_inlining): Handle indirect inlining.
22247         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
22248
22249 2009-05-15  Jan Hubicka  <jh@suse.cz>
22250
22251         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
22252         * cgraphunit.c (cgraph_finalize_function): Set it.
22253         (cgraph_expand_function): Use it.
22254
22255 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
22256
22257         * real.c (encode_ieee_half): Define.
22258         (decode_ieee_half): Define.
22259         (ieee_half_format): Define.
22260         (arm_half_format): Define.
22261         * real.h (ieee_half_format): Declare.
22262         (arm_half_format): Declare.
22263
22264 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
22265
22266         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
22267         swapped, and reversed optabs exist before trying to use them.
22268
22269 2009-05-15  Paul Brook  <paul@codesourcery.com>
22270             Sandra Loosemore  <sandra@codesourcery.com>
22271
22272         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
22273         loads.  Allow PRE_DEC.
22274         (output_move_neon): Handle PRE_DEC.
22275         (arm_print_operand): Add 'A' for neon structure loads.
22276         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
22277         * config/arm/neon.md (neon_mov): Update comment.
22278         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
22279         calls.
22280         (Um): New constraint.
22281
22282 2009-05-15  Jan Hubicka  <jh@suse.cz>
22283
22284         Revert the following patch until testsuite fallout is fixed:
22285         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
22286         * cgraph.h (struct inline_summary): New filed self_wize,
22287         size_inlining_benefit, self_time and time_inlining_benefit.
22288         (struct cgraph_global_info): Replace insns by time ans size fields.
22289         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
22290         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
22291         (ipcp_update_callgraph): Do not touch function bodies.
22292         * ipa-inline.c: Include except.h
22293         (MAX_TIME): New constant.
22294         (overall_insns): Remove
22295         (overall_size, max_benefit): New static variables.
22296         (cgraph_estimate_time_after_inlining): New function.
22297         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
22298         (cgraph_clone_inlined_nodes): Update size.
22299         (cgraph_mark_inline_edge): Update size.
22300         (cgraph_estimate_growth): Use size info.
22301         (cgraph_check_inline_limits): Check size.
22302         (cgraph_default_inline_p): Likewise.
22303         (cgraph_edge_badness): Compute badness based on benefit and size cost.
22304         (cgraph_decide_recursive_inlining): Check size.
22305         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
22306         and times.
22307         (cgraph_decide_inlining): Likewise.
22308         (cgraph_decide_inlining_incrementally): Likewise; honor
22309         PARAM_EARLY_INLINING_INSNS.
22310         (likely_eliminated_by_inlining_p): New predicate.
22311         (estimate_function_body_sizes): New function.
22312         (compute_inline_parameters): Use it.
22313         * except.c (must_not_throw_labels): New function.
22314         * except.h (must_not_throw_labels): Declare.
22315         * tree-inline.c (init_inline_once): Kill inlining_weigths
22316         * tree-ssa-structalias.c: Avoid uninitialized warning.
22317         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
22318         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
22319         (PARAM_INLINE_CALL_COST): Remove.
22320         (PARAM_EARLY_INLINING_INSNS): New.
22321
22322 2009-05-15  Richard Guenther  <rguenther@suse.de>
22323
22324         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
22325         not TODO_update_ssa.
22326
22327 2009-05-15  Richard Guenther  <rguenther@suse.de>
22328
22329         PR tree-optimization/39999
22330         * gimple.h (gimple_expr_type): Use the expression type looking
22331         through useless conversions.
22332         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
22333         (vn_nary_op_insert_stmt): Likewise.
22334         (simplify_binary_expression): Likewise.
22335
22336 2009-05-15  Richard Guenther  <rguenther@suse.de>
22337
22338         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
22339         New options, enabled by default.
22340         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
22341         Document.
22342         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
22343         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
22344         * tree-ssa-structalias.c (gate_tree_pta): New function.
22345         (pass_build_alias): Use it.
22346
22347 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
22348
22349         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
22350         recurse on an invariant address if a conversion from a pointer
22351         type to a wider integer type is involved.
22352
22353 2009-05-15  Jan Hubicka  <jh@suse.cz>
22354
22355         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
22356         * cgraph.h (struct inline_summary): New filed self_wize,
22357         size_inlining_benefit, self_time and time_inlining_benefit.
22358         (struct cgraph_global_info): Replace insns by time ans size fields.
22359         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
22360         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
22361         (ipcp_update_callgraph): Do not touch function bodies.
22362         * ipa-inline.c: Include except.h
22363         (MAX_TIME): New constant.
22364         (overall_insns): Remove
22365         (overall_size, max_benefit): New static variables.
22366         (cgraph_estimate_time_after_inlining): New function.
22367         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
22368         (cgraph_clone_inlined_nodes): Update size.
22369         (cgraph_mark_inline_edge): Update size.
22370         (cgraph_estimate_growth): Use size info.
22371         (cgraph_check_inline_limits): Check size.
22372         (cgraph_default_inline_p): Likewise.
22373         (cgraph_edge_badness): Compute badness based on benefit and size cost.
22374         (cgraph_decide_recursive_inlining): Check size.
22375         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
22376         and times.
22377         (cgraph_decide_inlining): Likewise.
22378         (cgraph_decide_inlining_incrementally): Likewise; honor
22379         PARAM_EARLY_INLINING_INSNS.
22380         (likely_eliminated_by_inlining_p): New predicate.
22381         (estimate_function_body_sizes): New function.
22382         (compute_inline_parameters): Use it.
22383         * except.c (must_not_throw_labels): New function.
22384         * except.h (must_not_throw_labels): Declare.
22385         * tree-inline.c (init_inline_once): Kill inlining_weigths
22386         * tree-ssa-structalias.c: Avoid uninitialized warning.
22387         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
22388         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
22389         (PARAM_INLINE_CALL_COST): Remove.
22390         (PARAM_EARLY_INLINING_INSNS): New.
22391         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
22392         (inline-call-cost): Remove.
22393         (early-inlining-insns): New.
22394
22395 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
22396
22397         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
22398         for bounds.
22399         (print_int_cst_bounds_in_octal_p): Likewise.
22400         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
22401         with subtypes.
22402         * dwarf2out.c (base_type_die): Likewise.
22403         (is_subrange_type): Delete.
22404         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
22405         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
22406         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
22407         if the destination type is boolean.
22408         (build_range_check): Do not special-case subtypes.
22409         (fold_sign_changed_comparison): Likewise.
22410         (fold_unary): Likewise.
22411         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
22412         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
22413         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
22414         * tree.c (subrange_type_for_debug_p): New predicate based on the
22415         former is_subrange_type.
22416         * tree.h (subrange_type_for_debug_p): Declare.
22417         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
22418         (convert_affine_scev): Remove call to above function.
22419         (chrec_convert_aggressive): Likewise.
22420         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
22421         false for conversions involving subtypes.
22422         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
22423         (vrp_val_min): Likewise.
22424         (needs_overflow_infinity): Likewise.
22425         (extract_range_from_unary_expr): Likewise.
22426
22427 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
22428
22429         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
22430         * config/frv/frv.c: Likewise.
22431         * config/s390/s390.c: Likewise.
22432         * config/sparc/sparc.h: Likewise.
22433         * config/i386/i386.h: Likewise.
22434         * config/i386/i386.c: Likewise.
22435         * config/crx/crx.c: Likewise.
22436         * config/m68hc11/m68hc11.h: Likewise.
22437         * config/iq2000/iq2000.c: Likewise.
22438         * config/mn10300/mn10300.h: Likewise.
22439         * config/mn10300/mn10300.c: Likewise.
22440         * config/m68k/m68k.c: Likewise.
22441         * config/rs6000/rs6000.c: Likewise.
22442         * config/rs6000/xcoff.h: Likewise.
22443         * config/rs6000/linux64.h: Likewise.
22444         * config/rs6000/sysv4.h: Likewise.
22445         * config/score/score3.c: Likewise.
22446         * config/score/score7.c: Likewise.
22447         * config/score/score.c: Likewise.
22448         * config/arm/arm.md: Likewise.
22449         * config/mips/mips.c: Likewise.
22450         * config/mips/mips.md: Likewise.
22451         * config/bfin/bfin.h: Likewise.
22452         * config/pa/pa.c: Likewise.
22453         * config/pa/constraints.md: Likewise.
22454
22455         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
22456         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
22457         * config/pdp11/pdp11.h: Use memory_address_p instead.
22458
22459 2009-05-14  Ian Lance Taylor  <iant@google.com>
22460
22461         * passes.c (finish_optimization_passes): Change i to int.
22462         * plugin.c (plugins_active_p): Change event to int.
22463         (dump_active_plugins): Likewise.
22464         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
22465         Add cast.
22466         * tree.c (tree_range_check_failed): Change c to unsigned int.
22467         (omp_clause_range_check_failed): Likewise.
22468         (build_common_builtin_nodes): Change mode to int.  Add cast.
22469         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
22470         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
22471
22472         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
22473         ++ or -- with a variable of enum type.
22474
22475 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
22476
22477         PR driver/40144
22478         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
22479
22480 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
22481
22482         * store-motion.c: Do not include params.h
22483         * Makefile.in: Fix dependencies for various files.
22484
22485 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
22486
22487         * auto-inc-dec.c: Fix pass description, remove apparent
22488         accidental duplication.
22489
22490 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
22491
22492         PR middle-end/40147
22493         * ipa-utils.h (memory_identifier_string): Moved to ...
22494         * tree.h (memory_identifier_string): Here.  Add GTY(()).
22495
22496 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
22497
22498         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
22499         in the former documentation of...
22500         (GO_IF_LEGITIMATE_ADDRESS): ... this.
22501         * ira-conflicts.c (get_dup_num): Use address_operand.
22502         * targhooks.c (default_legitimate_address_p): New.
22503         * targhooks.h (default_legitimate_address_p): New.
22504         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
22505         Call hook.
22506         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
22507         * target.h (struct target): Add legitimate_address_p.
22508         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
22509         (TARGET_INITIALIZER): Include it.
22510
22511         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22512         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
22513         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
22514         (TARGET_LEGITIMATE_ADDRESS_P): New.
22515
22516         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22517         (REG_OK_STRICT_P): Delete.
22518         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
22519         (frv_legitimate_address_p_1): ... this.
22520         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
22521         (frv_legitimate_address_p_1): ... the renamed old
22522         frv_legitimate_address_p.
22523         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
22524         (TARGET_LEGITIMATE_ADDRESS_P): New.
22525
22526         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22527         * config/s390/s390-protos.h (legitimate_address_p): Remove.
22528         * config/s390/s390.c (legitimate_address_p): Rename to...
22529         (s390_legitimate_address_p): ... this, make static.
22530         (legitimize_address): Adjust call.
22531         (TARGET_LEGITIMATE_ADDRESS_P): New.
22532         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
22533
22534         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22535         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
22536         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
22537         (TARGET_LEGITIMATE_ADDRESS_P): New.
22538
22539         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22540         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
22541         * config/spu/spu.c (spu_legitimate_address): Rename to...
22542         (spu_legitimate_address_p): ... this, make static.
22543         (TARGET_LEGITIMATE_ADDRESS_P): New.
22544
22545         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22546         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
22547         * config/sparc/sparc.c (legitimate_address_p): Rename to...
22548         (sparc_legitimate_address_p): ... this, make static and return bool.
22549         (legitimize_address): Adjust call.
22550         (TARGET_LEGITIMATE_ADDRESS_P): New.
22551
22552         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22553         * config/i386/i386-protos.h (legitimate_address_p): Remove.
22554         * config/i386/i386.c (legitimate_address_p): Rename to...
22555         (ix86_legitimate_address_p): ... this, make static.
22556         (constant_address_p): Move after it, adjust call.
22557         (TARGET_LEGITIMATE_ADDRESS_P): New.
22558
22559         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22560         * config/avr/avr-protos.h (legitimate_address_p): Remove.
22561         * config/avr/avr.c (legitimate_address_p): Rename to...
22562         (avr_legitimate_address_p): ... this, make static.
22563         (legitimize_address): Adjust call.
22564         (TARGET_LEGITIMATE_ADDRESS_P): New.
22565
22566         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22567         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
22568         * config/crx/crx.c (crx_legitimate_address_p): Make static.
22569         (TARGET_LEGITIMATE_ADDRESS_P): New.
22570
22571         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22572         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
22573         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
22574         (TARGET_LEGITIMATE_ADDRESS_P): New.
22575
22576         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22577         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
22578         Remove.
22579         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
22580         Make static.
22581         (TARGET_LEGITIMATE_ADDRESS_P): New.
22582
22583         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22584         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
22585         Remove.
22586         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
22587         Rename to...
22588         (m68hc11_legitimate_address_p): ... this, make static.
22589         (go_if_legitimate_address_internal): Rename to...
22590         (m68hc11_legitimate_address_p_1): ... this.
22591         (legitimize_address): Adjust call.
22592         (TARGET_LEGITIMATE_ADDRESS_P): New.
22593
22594         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22595         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
22596         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
22597         (TARGET_LEGITIMATE_ADDRESS_P): New.
22598
22599         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22600         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
22601         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
22602         (mn10300_legitimate_address_p): ... this, make static.
22603         (TARGET_LEGITIMATE_ADDRESS_P): New.
22604
22605         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22606         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
22607         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
22608         (TARGET_LEGITIMATE_ADDRESS_P): New.
22609
22610         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22611         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
22612         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
22613         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22614         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
22615         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
22616         (rs6000_legitimate_address_p): ... this, make static.
22617         (TARGET_LEGITIMATE_ADDRESS_P): New.
22618         (REG_MODE_OK_FOR_BASE_P): Delete.
22619         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
22620
22621         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22622         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
22623         Delete.
22624         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
22625         static, adjust types.
22626         (TARGET_LEGITIMATE_ADDRESS_P): New.
22627
22628         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22629         * config/score/score.c (score_address_p): Rename to...
22630         (score_legitimate_address_p): ... this.
22631         (TARGET_LEGITIMATE_ADDRESS_P): New.
22632         * config/score/score3.c (score3_address_p): Rename to...
22633         (score3_legitimate_address_p): ... this.
22634         * config/score/score7.c (score7_address_p): Rename to...
22635         (score7_legitimate_address_p): ... this.
22636
22637         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
22638         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
22639         GO_IF_LEGITIMATE_ADDRESS): Delete.
22640         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
22641         thumb2_legitimate_address_p): Delete.
22642         (arm_legitimate_address_p): Rename to...
22643         (arm_legitimate_address_outer_p): ... this.
22644         * config/arm/constraints.md ("Uq"): Adjust call.
22645         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
22646         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
22647         to...
22648         (arm_legitimate_address_outer_p): ... this.
22649         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
22650         static.
22651         (TARGET_LEGITIMATE_ADDRESS_P): New.
22652
22653         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22654         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
22655         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
22656         (TARGET_LEGITIMATE_ADDRESS_P): New.
22657
22658         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22659         * config/vax/vax-protos.h (legitimate_address_p): Remove.
22660         * config/vax/vax.c (legitimate_address_p): Rename to...
22661         (vax_legitimate_address_p): ... this, make static.
22662         (TARGET_LEGITIMATE_ADDRESS_P): New.
22663
22664         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22665         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
22666         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
22667         (TARGET_LEGITIMATE_ADDRESS_P): New.
22668
22669         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22670         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
22671         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
22672         (mmix_legitimate_address_p): ... this, make static.
22673         (TARGET_LEGITIMATE_ADDRESS_P): New.
22674
22675         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22676         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
22677         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
22678         (TARGET_LEGITIMATE_ADDRESS_P): New.
22679
22680 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
22681
22682         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
22683         of MODE_COMPLEX_INT.
22684
22685 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22686
22687         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
22688         LCT_NORMAL in function call.
22689         * mips-tdump.c (print_file_desc): Add cast to enum type.
22690         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
22691         (mark_stabs): Add casts to enum types.
22692         (parse_stabs_common): Add casts to enum types.
22693
22694 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
22695
22696         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
22697         Check for invalid values of LETTER.
22698
22699 2009-05-13  Taras Glek  <tglek@mozilla.com>
22700
22701         * attribs.c (register_attribute): moved out attribute registration
22702         into register_attribute.
22703         * doc/plugins.texi: Documented register_attribute and
22704         PLUGIN_ATTRIBUTES.
22705         * gcc-plugin.h: Added forward decl for register_attribute.
22706         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
22707         * plugin.c (register_callback, invoke_plugin_callbacks): Added
22708         PLUGIN_ATTRIBUTES boilerplate.
22709
22710 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
22711
22712         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
22713         values even in sentinel and empty entries.
22714         (ms_printf_flag_specs):  Likewise.
22715         (ms_scanf_flag_specs):  Likewise.
22716         (ms_strftime_flag_specs):  Likewise.
22717         (ms_print_char_table):  Likewise.
22718         (ms_scan_char_table):  Likewise.
22719         (ms_time_char_table):  Likewise.
22720
22721 2009-05-13  Doug Kwan  <dougkwan@google.com>
22722
22723         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
22724
22725 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
22726
22727         * config/mips/mips.md (store): Add attributes for QI and HI.
22728         Update comment.
22729         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
22730         (truncdi<mode>2): ... this new pattern.
22731
22732 2009-05-13  Brad Hards  <bradh@kde.org>
22733
22734         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
22735
22736 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
22737             Ben Elliston <bje@au.ibm.com>
22738
22739         PR middle-end/40035
22740         * dse.c (check_mem_read_rtx): Guard against width == -1.
22741
22742 2009-05-13  Michael Matz  <matz@suse.de>
22743
22744         PR middle-end/39976
22745         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
22746         (trivially_conflicts_p): New function.
22747         (insert_backedge_copies): Use it.
22748
22749 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
22750
22751         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
22752         (handle_stdc_pragma): Use new enum constant names.
22753         (handle_pragma_float_const_decimal64): Ditto.
22754
22755 2009-05-13  Ian Lance Taylor  <iant@google.com>
22756
22757         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
22758         tree.def.
22759
22760 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
22761
22762         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
22763         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
22764         multilibs.
22765         * config/m68k/m68k.h (FL_UCLINUX): Define.
22766
22767 2009-05-13  Jan Hubicka  <jh@suse.cz>
22768
22769         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
22770
22771 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
22772
22773         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
22774         unless -fschedule-insns is specified.
22775
22776 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
22777
22778         PR target/39561
22779         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
22780         TARGET_EXPAND_CBRANCHDI4.
22781         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
22782         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
22783         (cmpeqdi): Fix comment.
22784
22785 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
22786
22787         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
22788         (sh_legitimate_address_p): Likewise.
22789         * config/sh/sh.c (sh_legitimate_index_p): New.
22790         (sh_legitimate_address_p): Likewise.
22791         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
22792         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
22793         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
22794         (MAYBE_BASE_REGISTER_RTX_P): New macro.
22795         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
22796         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
22797         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
22798         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
22799         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
22800
22801 2009-05-12  Jan Hubicka  <jh@suse.cz>
22802
22803         * tree-inline.c (estimate_operator_cost): Add operands;
22804         when division happens by constant, it is cheap.
22805         (estimate_num_insns): Loads and stores are not having cost of 0;
22806         EH magic stuff is cheap; when computing runtime cost of switch,
22807         use log2 base of amount of its cases; builtin_expect has cost of 0;
22808         compute cost for moving return value of call.
22809         (init_inline_once): Initialize time_based flags.
22810         * tree-inline.h (eni_weights_d): Add time_based flag.
22811
22812 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
22813
22814         * df-core.c: Update head documentation.
22815
22816 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
22817
22818         PR bootstrap/40118
22819         * rs6000.c (rs6000_generate_compare): Use op1b instead of
22820         shadowing exisiting variable op1.
22821
22822 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
22823
22824         PR target/37179
22825         * config/i386/driver-i386.c (processor_signatures): New enum.
22826         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
22827         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
22828         processor signature to detect geode processor.
22829
22830 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
22831
22832         Revert:
22833
22834         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
22835
22836         * optabs.c (prepare_cmp_insn): Temporarily disable test that
22837         causes spurious differences between trunk and cond-optab branch.
22838
22839 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
22840
22841         * dojump.c (compare_from_rtx): Delete.
22842         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
22843         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
22844         if the comparison does not satisfy the predicate; test predicates for
22845         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
22846         further if one existing pattern fails.
22847         * expr.h (compare_from_rtx): Delete.
22848         (prepare_operand): Declare it.
22849         * optabs.c: Change "lib call" to "libcall" throughout.
22850         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
22851         HAVE_conditional_trap, emit_cmp_insn): Delete.
22852         (can_compare_p): Delete cmp_optab case.
22853         (prepare_float_lib_cmp): Return an rtx and a machine mode.
22854         Accept other parameters by value.
22855         (prepare_operand): Make non-static.
22856         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
22857         other parameters by value.  Try to widen operands here based on
22858         an optab_methods argument and looking at cbranch_optab.
22859         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
22860         loop.  Use cbranch_optab directly.
22861         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
22862         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
22863         assertion.
22864         (emit_conditional_move, emit_conditional_add): Inline what's needed
22865         of compare_from_rtx, using new prepare_cmp_insn for the rest.
22866         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
22867         with COMPARE.  Move cmov_optab and cstore_optab above
22868         with cbranch_optab, move cmp_optab down with ucmp_optab,
22869         remove tst_otpab.  Do not initialize trap_rtx.
22870         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
22871         for trap code.  Do not check HAVE_conditional_trap.  Use
22872         prepare_cmp_insn.  Accept no predicate for operand 3.
22873         * optabs.h (OTI_cmp): Mark as used only for libcalls.
22874         (OTI_ctrap, ctrap_optab): New.
22875         (tst_optab): Delete.
22876         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
22877         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
22878         with lookup of ctrap_optab.
22879         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
22880         Delete.
22881         (ctrap_optab): New.
22882
22883         * combine.c (combine_simplify_rtx, simplify_set): Do not
22884         special case comparing against zero for cc0 machines.
22885         * simplify-rtx.c (simplify_binary_operation_1): Never remove
22886         COMPARE on cc0 machines.
22887         (simplify_relational_operation): Return a new expression when
22888         a COMPARE could be removed.
22889         * final.c (final_scan_insn): Compare cc_status values
22890         against LHS of a (compare FOO (const_int 0)) cc0 source.
22891         Also check if cc_status.value is the full compare.
22892
22893         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
22894         (cstoreMM4): Document.
22895         (conditional_trap): Document ctrapMM4 instead.
22896         (sync_compare_and_swapMM): Refer to cbranchcc4.
22897         (Dependent Patterns): Eliminate obsolete information referring to
22898         the old jump optimization phase.
22899         (Canonicalization): Include cbranchcc4 case, omit canonicalization
22900         of compares with 0 on cc0 machines.
22901         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
22902         avoiding references to cc0.  Remove text about storing operands
22903         in cmpMM.
22904         * doc/tm.texi (Condition Codes): Include blurb on different
22905         condition code representations, separate into subsections for
22906         CC0, MODE_CC and conditional execution.
22907
22908         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
22909         alpha_emit_setcc): Accept operands and a machine mode.
22910         * config/alpha/alpha.c (alpha_emit_conditional_branch):
22911         Get code/op0/op1 from operands, use machine mode argument
22912         instead of alpha_compare.fp_p.  Emit the branch here.
22913         (alpha_emit_setcc): Likewise, and return boolean.
22914         (alpha_emit_conditional_move): Likewise.  Assert that
22915         cmp_op_mode == cmp_mode, and simplify accordingly.
22916         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
22917         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
22918         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
22919         Delete.
22920         (stack probe test): Use cbranchdi4.
22921         * config/alpha/predicates.md (alpha_cbranch_operator): New.
22922
22923         * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
22924         * config/arc/arc.h (movsicc, movsfcc): Use it.
22925         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
22926         (cbranchsi4, cstoresi4): New.
22927         (cmpsi, bCC and sCC expanders): Remove.
22928
22929         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
22930         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
22931         * config/arm/predicates.md (arm_comparison_operator): Only include
22932         floating-point operators if there is a hardware floating-point unit.
22933         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
22934         deferring to cbranch_cc and cstore_cc respectively.
22935         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
22936         cbranch_cc, cstore_cc): New.
22937         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
22938         arm_compare_op1.
22939         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
22940
22941         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
22942         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
22943         as an argument.
22944         (adjust_insn_length): Adjust calls.
22945         (avr_reorg): Handle (compare (foo) (const_int 0)).
22946         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
22947         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
22948         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
22949         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
22950         (bCC): Remove.
22951         (cbranchqi4, cbranchhi4, cbranchsi4): New.
22952         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
22953
22954         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
22955         (cbranchsi4, cstorebi4, cstoresi4): New.
22956         (movbisi): This insn is duplicate, split it to zero_extend.
22957         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
22958         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
22959         (bfin_optimize_loop): Use cbranch expander.
22960         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
22961         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
22962         (bfin_bimode_comparison_operator): ... this.
22963         (bfin_direct_comparison_operator): New.
22964
22965         * config/cris/cris.c (cris_normal_notice_update_cc): Look
22966         inside (compare FOO (const_int 0)).
22967         (cris_rtx_costs): Handle ZERO_EXTRACT.
22968         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
22969         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
22970         (*tstdi_v32): Delete.
22971         (*cmpdi_non_v32): Add M alternative for operand 1.
22972         (cmpsi, cmp<mode>): Make private.
22973         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
22974         with COMPARE.
22975         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
22976
22977         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
22978         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
22979         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
22980         (cc_reg_operand): New.
22981         (any_cond): Delete.
22982         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
22983         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
22984         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
22985         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
22986         crx_expand_scond): Delete.
22987
22988         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
22989         (cbranchsi4): New.
22990         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
22991         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
22992
22993         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
22994         cstoresi4, cstoresf4, cstoredf4): New.
22995         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
22996         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
22997         Receive the entire operands array.
22998         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
22999         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
23000         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
23001         Get test/op0/op1 from the operands array.
23002         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
23003
23004         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
23005         (h8300_expand_store): New.
23006         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
23007         (const_int 0)).
23008         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
23009         (h8300_expand_store): New.
23010         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
23011         or do not try to produce (set (cc0) REG).
23012         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
23013         change a compare into a move to a scratch register.  Disable some
23014         peepholes when comparing with zero.
23015         (tstsi, tsthi, tstsi, cmpqi): Make private.
23016         (cmphi): Delete.
23017         (bCC, sCC): Delete.
23018         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
23019         cstoresi4): New.
23020
23021         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
23022         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
23023         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
23024         (ix86_emit_i387_log1p): Use cbranchxf2.
23025         (ix86_expand_setcc): Return void.
23026         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
23027         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
23028         cmp<MODEF>, cmpcc): Remove.
23029         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
23030         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
23031         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
23032         (sCC and bCC expanders): Remove.
23033         (stack_protect_test): Use cbranchcc4.
23034
23035         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
23036         Delete.
23037         (ia64_expand_compare): Accept three rtx by reference and return void.
23038         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
23039         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
23040         from *expr.  Update *expr with the BImode comparison to do.
23041         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
23042         cmptf, bCC, sCC, conditional_trap): Delete.
23043         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
23044         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
23045         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
23046         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
23047         * config/ia64/predicates.md (ia64_cbranch_operator): New.
23048
23049         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
23050         type of last argument.
23051         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
23052         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
23053         use machine mode argument instead of branch_type.  Remove dead
23054         code for floating-point comparisons.
23055         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
23056         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
23057         Remove.
23058         (cbranchsi4, cstoresi4): New.
23059         * config/iq2000/predicates.md (reg_or_const_operand): New.
23060
23061         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
23062         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
23063         (b<code>_op): Rewrite to...
23064         (bcc_op): ... this, using match_operator.
23065         (s<code>_op): Rewrite to...
23066         (scc_op): ... this, using match_operator.
23067         (s<code>_24_op): Rewrite to...
23068         (scc_op_24): ... this, using match_operator.
23069         (s<code>_<mode>): Rewrite to...
23070         (cstore<mode>4): ... this, using match_operator.
23071         (s<code>_<mode>_24): Rewrite to...
23072         (cstore<mode>4_24): ... this, using match_operator.
23073         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
23074         m32c_unpend_compare, m32c_expand_scc): Delete.
23075         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
23076         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
23077         (m32c_expand_movcc): Change NE to EQ if necessary.
23078         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
23079
23080         * config/m32r/m32r-protos.h (gen_cond_store): New.
23081         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
23082         (gen_cond_store): New, from sCC patterns.
23083         (m32r_expand_block_move): Use cbranchsi4.
23084         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
23085         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
23086         (cbranchsi4, cstoresi4): New.
23087
23088         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
23089         Delete.
23090         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
23091         (m68hc11_notice_update_cc): Look into a compare with 0.
23092         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
23093         Delete.
23094         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
23095         cmphi, cmpqi, bCC): Delete.
23096         (cbranchsi4, cbranchhi4, cbranchqi4): New.
23097         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
23098         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
23099         sets with COMPARE.
23100
23101         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
23102         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
23103         * config/m68k/constraints.md (H): New.
23104         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
23105         the define_insn below.
23106         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
23107         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
23108         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
23109         patterns): Wrap RHS with COMPARE.
23110         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
23111         (*cmpdi_internal): Name this pattern.
23112         (cmpdi): Change to define_insn.
23113         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
23114         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
23115         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
23116         predicate.
23117         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
23118         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
23119         (conditional_trap): Change to...
23120         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
23121         (*conditional_trap): Use the ordered_comparison_operator and
23122         const1_operand predicates.
23123         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
23124         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
23125         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
23126         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
23127
23128         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
23129         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
23130         (mcore_gen_compare): New.
23131         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
23132         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
23133         (mcore_gen_compare): ... this.
23134         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
23135         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
23136         (stack probe pattern): Use cbranchsi4.
23137
23138         * config/mips/predicates.md (mips_cstore_operator): New.
23139         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
23140         * config/mips/mips.md (any_cond): Delete.
23141         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
23142         always succeed.
23143         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
23144         fixuns_truncsfdi2): Use cbranch patterns.
23145         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
23146         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
23147         Adjust call to mips_expand_conditional_branch.
23148         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
23149         cstore<GPR:mode>4.
23150         * config/mips/mips-protos.h (mips_expand_conditional_branch,
23151         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
23152         * config/mips/mips.c (cmp_operands): Delete.
23153         (mips_emit_compare): Get comparison operands from *op0/*op1.
23154         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
23155         that it succeeds.  Use op0/op1 instead of cmp_operands.
23156         (mips_expand_conditional_branch, mips_expand_conditional_move,
23157         mips_expand_conditional_trap): Likewise.
23158         (mips_block_move_loop): Use cbranch patterns.
23159         * config/mips/mips.h (cmp_operands): Delete.
23160
23161         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
23162         (mmix_gen_compare_reg): Just return a register in the right CC mode.
23163         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
23164         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
23165         (*cmpcc_folded): Rename to...
23166         (*cmpdi_folded): this.
23167         (*cmpcc): Rename to...
23168         (*cmps): ... this.
23169         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
23170         (bCC): Remove.
23171         (cbranchdi4): New.
23172         (cbranchdf4): New.  Handle invalid comparisons here.
23173         * config/mmix/predicates.md (float_comparison_operator): New.
23174
23175         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
23176         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
23177         * config/mn10300/mn10300.md (tst): Delete.
23178         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
23179         Name these patterns and wrap RHS in a compare.
23180         (*cmpsi): Make this pattern private.  Include tst.
23181         (*cmpsf): Make this pattern private.
23182         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
23183         (compare with zero peepholes): Likewise.
23184         (bCC): Remove.
23185         (cbranchsi4, cbranchsf4): New.
23186         (casesi): Use cbranchsi4.
23187
23188         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
23189         hppa_branch_type): Delete.
23190         (return_addr_rtx): Use cbranchsi4.
23191         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
23192         Emit CCFPmode comparison here.
23193         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
23194         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
23195         hppa_branch_type): Delete.
23196         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
23197         (movsicc, movdicc): Remove references to hppa_compare_op0,
23198         hppa_compare_op1 and compare_from_rtx.
23199         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
23200         (casesi): Use cbranchsi4.
23201
23202         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
23203         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
23204         * config/pdp11/pdp11.md (register_or_const0_operand): New.
23205         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
23206         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
23207         (bCC): Delete.
23208         (cbranchdf4, cbranchhi4, cbranchqi4): New.
23209         (*branch, *branch_inverted): New.
23210
23211         * config/picochip/picochip.md (cbranchhi4): Use
23212         ordered_comparison_operator.
23213         (cmphi, bCC): Remove.
23214
23215         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
23216         (trap_comparison_operator): Delete.
23217         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
23218         rs6000_emit_cbranch): Accept mode and operands.
23219         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
23220         rs6000_compare_fp_p): Delete.
23221         (rs6000_generate_compare): Accept mode and comparison.  Extract code
23222         and op0/op1 from there.  Replace references to rs6000_compare_op0
23223         and rs6000_compare_op1.
23224         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
23225         extract result from passed operands.
23226         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
23227         extract loc from passed operands.
23228         (rs6000_emit_cmove): Likewise.
23229         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
23230         rs6000_compare_fp_p): Delete.
23231         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
23232         (cbranch<GPR>4, cbranch<FP>4): New.
23233         (cstore<mode>4): New.  Consolidate here all choices about when to use
23234         portable or specialized sCC sequences.
23235         (stack_protect_test): Use cbranchsi4.
23236         (conditional_trap): Replace with ctrap<GPR>4.
23237         (conditional trap insn): Replace trap_comparison_operator with
23238         ordered_comparison_operator.
23239
23240         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
23241         (s390_emit_prologue): Use ctrap.
23242         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
23243         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
23244         New predicates replacing...
23245         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
23246         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
23247         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
23248         (add<mode>cc): Do not use s390_compare_op0/op1.
23249         (s<code>): Change to...
23250         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
23251         (seq): Change to...
23252         (cstorecc4): ... this.  Handle EQ or NE equally.
23253         (*sne): Un-privatize for use in cstorecc4.
23254         (b<code>): Change to...
23255         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
23256         (conditional_trap): Replace with...
23257         (ctrap<GPR>4, ctrap<FP>4): ... these.
23258         (stack_protect): Use cbranchcc4.
23259
23260         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
23261         * config/score/score-protos.h (score_gen_cmp): Delete.
23262         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
23263         (score_block_move-loop): Use cbranchsi4.
23264         * config/score/score.md (cbranchsi4): New.
23265         (cmpsi, bCC): Delete.
23266         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
23267         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
23268         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
23269         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
23270         * config/score/score3.h (score3_gen_cmp): Delete.
23271         * config/score/score7.h (score7_gen_cmp): Delete.
23272
23273         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
23274         (sh_emit_scc_to_t): ... this.  Return void.
23275         (from_compare): Rename to...
23276         (sh_emit_compare_and_branch): ... this.
23277         (sh_emit_compare_and_set): New.
23278         (sh_expand_t_scc): Accept operands.
23279         * config/sh/predicates.md (sh_float_comparison_operator): New.
23280         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
23281         (prepare_scc_operands): Rename to...
23282         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
23283         arguments.
23284         (sh_emit_cheap_store_flag): New.
23285         (sh_emit_set_t_insn): New.
23286         (from_compare): Rename to...
23287         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
23288         handling of TARGET_SH2E floating point to avoid recursive call.
23289         Generate branch here.
23290         (sh_emit_compare_and_set): New.
23291         (sh_expand_t_scc): Get op0/op1 from arguments.
23292         (sh_emit_cheap_store_flag): New.
23293         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
23294         cases.
23295         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
23296         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
23297         (movsicc, movdicc): Do nothing when it recreated operands from
23298         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
23299         prepare_scc_operands (now sh_emit_scc_to_t).
23300         (udivdi3): Use cstoresi4.
23301         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
23302         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
23303         (cbranchint4_media, cbranchfp4_media): New.
23304         (casesi): Use cbranchdi4.
23305         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
23306         Delete.
23307         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
23308         (movnegt): Remove second operand.
23309         (cbranchsf4, cbranchdf4): New.
23310         (stack_protect): Use cbranchdi4/cbranchsi4.
23311
23312         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
23313         (gen_compare_reg): Accept comparison, extract part of it to...
23314         (gen_compare_reg_1): ... this.
23315         (gen_compare_operator): Delete.
23316         (gen_v9_scc): Accept separate destination, comparison code and arms.
23317         Do not use sparc_compare_op0/sparc_compare_op1.
23318         (emit_scc_insn, emit_conditional_branch_insn): New.
23319         (emit_v9_brxx): Make static.  Remove useless assertion.
23320         (sparc_emit_float_lib_cmp): Return RTL instead of calling
23321         emit_cmp_insn.
23322         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
23323         * config/sparc/sparc-protos.h (gen_compare_reg,
23324         sparc_emit_float_lib_cmp): Adjust prototype.
23325         (emit_scc_insn, emit_conditional_branch_insn): New.
23326         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
23327         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
23328         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
23329         iterators to the top.
23330         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
23331         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
23332         snedi_special_trunc): Delete.
23333         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
23334         and snedi_special_trunc.
23335         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
23336         cbranchdi4, cbranch<F:mode>4): New.
23337         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
23338         here.  Use gen_compare_reg instead of gen_compare_operator.
23339         (conditional_trap): Replace with...
23340         (ctrapsi4, ctrapdi4): ... this.
23341         (stack_protect_test): Use cbranchcc4.
23342
23343         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
23344         argument to rtx.
23345         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
23346         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
23347         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
23348         from operands[0] or operands[3] depending on is_set.
23349         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
23350         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
23351         cmpdf, bCC), sCC: Remove.
23352         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
23353         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
23354         cstoredf4): New.
23355         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
23356         spu_emit_branch_or_set.
23357
23358         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
23359         Add two arguments.
23360         * config/stormy16/stormy16.h (xstormy16_compare_op0,
23361         xstormy16_compare_op1): Delete.
23362         * config/stormy16/stormy16.c (xstormy16_compare_op0,
23363         xstormy16_compare_op1): Delete.
23364         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
23365         Adjust calls.
23366         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
23367         (cmphi, cmpsi, bCC): Remove.
23368
23369         * config/v850/v850.md (tstsi, cmpsi): Fold into...
23370         (*cmpsi): ... this one.
23371         (cbranchsi4, cstoresi4): New.
23372         (bCC expanders): Delete.
23373         (sCC insns): Fold into...
23374         (*setcc): ... this one.
23375         (casesi): Do not use gen_cmpsi and gen_bgtu.
23376         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
23377         (movsicc): Simplify.
23378         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
23379
23380         * config/vax/vax-protos.h (cond_name): New.
23381         (vax_output_conditional_branch): Remove.
23382         * config/vax/vax.c (cond_name): New.
23383         (vax_output_conditional_branch): Remove.
23384         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
23385         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
23386         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
23387         (bit<VAXint>): Wrap source with (compare).
23388         (b<code> and following unnamed pattern): Rename to *branch and
23389         *branch_reversed.  Change macroization to match_operator.
23390         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
23391
23392         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
23393         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
23394         Change last argument to machine_mode.
23395         (xtensa_expand_scc): Add machine_mode argument.
23396         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
23397         (gen_conditional_move, xtensa_expand_conditional_branch,
23398         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
23399         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
23400         Adjust operand numbers.
23401         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
23402         Delete.
23403         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
23404         (cmpsi, cmpsf, b<code>, s<code>): Delete.
23405         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
23406
23407 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
23408
23409         * optabs.c (prepare_cmp_insn): Temporarily disable test that
23410         causes spurious differences between trunk and cond-optab branch.
23411
23412 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
23413
23414         PR target/37137
23415         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
23416
23417 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
23418
23419         * tree.c (iterative_hash_pointer): Delete.
23420         (iterative_hash_expr): Short-circuit handling of NULL pointer.
23421         Hash UIDs and versions of SSA names.  Don't special-case built-in
23422         function declarations.
23423
23424 2009-05-11  Ian Lance Taylor  <iant@google.com>
23425
23426         PR bootstrap/40103
23427         * graphite.c: Force -Wc++-compat to only be a warning before
23428         #including "cloog/cloog.h".
23429
23430 2009-05-11  Martin Jambor  <mjambor@suse.cz>
23431
23432         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
23433
23434 2009-05-11  Jan Hubicka  <jh@suse.cz>
23435
23436         * tree-ssa-loop-ivcanon.c: Include target.h
23437         (struct loop_size): new structure.
23438         (constant_after_peeling): New predicate.
23439         (tree_estimate_loop_size): New function.
23440         (estimated_unrolled_size): Rewrite for new estimates.
23441         (try_unroll_loop_completely): Use new estimates.
23442         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
23443
23444 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23445
23446         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
23447         libcpp interface change.
23448         (spu_macro_to_expand): Likewise.
23449
23450 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
23451
23452         PR tree-optimization/40026
23453         * gimplify.c (gimplify_init_constructor): Change initial conditional
23454         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
23455         optimize_compound_literals_in_ctor.
23456
23457 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
23458
23459         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
23460         New devices.
23461         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
23462
23463 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
23464
23465         * tree-vect-data-refs.c (vect_analyze_group_access): Use
23466         HOST_WIDE_INT for gap.
23467
23468 2009-05-11  Ira Rosen  <irar@il.ibm.com>
23469
23470         PR tree-optimization/40074
23471         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
23472         account in group size and step comparison.
23473
23474 2009-05-11  Richard Guenther  <rguenther@suse.de>
23475
23476         * passes.c (init_optimization_passes): Strip now incorrect comment.
23477         (execute_function_todo): Do not set PROP_alias.
23478         * tree-pass.h (PROP_alias): Remove.
23479         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
23480         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
23481         * tree-nrv.c (pass_return_slot): Likewise.
23482         * tree-object-size.c (pass_object_sizes): Likewise.
23483         * tree-ssa-dom.c (pass_dominator): Likewise.
23484         (pass_phi_only_cprop): Likewise.
23485         * tree-ssa-dse.c (pass_dse): Likewise.
23486         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
23487         (pass_cselim): Likewise.
23488         * tree-ssa-pre.c (pass_pre): Likewise.
23489         (pass_fre): Likewise.
23490         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
23491         * tree-ssa-sink.c (pass_sink_code): Likewise.
23492         * tree-stdarg.c (pass_stdarg): Likewise.
23493         * tree-tailcall.c (pass_tail_calls): Likewise.
23494         * tree-vrp.c (pass_vrp): Likewise.
23495
23496 2009-05-10  Ian Lance Taylor  <iant@google.com>
23497
23498         * basic-block.h (enum profile_status): Break out of struct
23499         control_flow_graph.
23500         * cgraph.h (struct inline_summary): Break out of struct
23501         cgraph_local_info.
23502         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
23503         of struct cgraph_order_sort.
23504         * combine.c (enum undo_kind): New enum, broken out of struct undo.
23505         * cse.c (struct branch_path): Break out of struct
23506         cse_basic_block_data.
23507         * except.h (enum eh_region_type): Break out of struct eh_region.
23508         * gcc.c (enum add_del): Break out of struct modify_target.
23509         * genrecog.c (enum decision_type): Break out of struct decision_test.
23510         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
23511         ggc_pch_data.
23512         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
23513         * regmove.c (enum match_use): New enum, broken out of struct match.
23514         * sched-int.h (enum post_call_group): New enum, broken out of
23515         struct deps.
23516         (struct deps_reg): Break out of struct deps.
23517         * target.h (struct asm_int_op): Break out of struct gcc_target.
23518         * tree-eh.c (struct goto_queue_node): Break out of struct
23519         leh_tf_state.
23520         * tree-inline.h (enum copy_body_cge_which): Break out of
23521         copy_body_data.
23522         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
23523
23524         * c-decl.c (in_struct, struct_types): New static variables.
23525         (pushtag): Add loc parameter.  Change all callers.
23526         (lookup_tag): Add ploc parameter.  Change all callers.
23527         (check_compound_literal_type): New function.
23528         (parser_xref_tag): Add loc parameter.  Change all callers.  If
23529         -Wc++-compat, warn about struct/union/enum types defined within a
23530         struct or union.
23531         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
23532         and loc parameters.  Change all callers.  Change error calls to
23533         error_at, using loc.  For a redefinition, if the location of the
23534         original definition is known, report it.  Set in_struct and
23535         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
23536         (finish_struct): Add new parameters enclosing_in_struct and
23537         enclosing_struct_types.  Change all callers.  Set
23538         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
23539         in the struct.  If in a struct, add this struct to struct_types.
23540         (start_enum): Add loc parameter.  Change all callers.  Use
23541         error_at for errors, using loc.  For a redefinition, if the
23542         location of the original definition is known, report it.  If in a
23543         struct, add this enum type to struct_types.  If -Wc++-compat warn
23544         if in sizeof, typeof, or alignof.
23545         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
23546         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
23547         (c_parser_enum_specifier): Get enum location for start_enum.
23548         (c_parser_struct_or_union_specifier): Get struct location for
23549         start_struct.  Save in_struct and struct_types status between
23550         start_struct and finish_struct.
23551         (c_parser_cast_expression): Get location of cast.
23552         (c_parser_alignof_expression): Get location of type.
23553         (c_parser_postfix_expression): Likewise.
23554         (c_parser_postfix_expression_after_paren_type): Add type_loc
23555         parameter.  Change all callers.  Call check_compound_literal_type.
23556         Use type_loc for error about variable size type.
23557         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
23558         of an enum constant from an enum type defined in a struct or union.
23559         (c_cast_expr): Add loc parameter.  Change all callers.  If
23560         -Wc++-compat, warn about defining a type in a cast.
23561         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
23562         (start_enum, start_struct, finish_struct): Update declarations.
23563         (parser_xref_tag, c_cast_expr): Update declarations.
23564         (check_compound_literal_type): Declare.
23565
23566 2009-05-11  Ben Elliston  <bje@au.ibm.com>
23567
23568         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
23569         for recent libcpp interface change.
23570         (rs6000_macro_to_expand): Likewise.
23571
23572 2009-05-10  Michael Matz  <matz@suse.de>
23573
23574         PR target/40031
23575         * config/arm/arm.c (require_pic_register): Emit on entry edge,
23576         not at entry of function.
23577
23578 2009-05-10  Richard Guenther  <rguenther@suse.de>
23579
23580         PR tree-optimization/40081
23581         Revert
23582         * tree-sra.c (instantiate_element): Instantiate scalar replacements
23583         using the main variant of the element type.  Do not fiddle with
23584         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
23585
23586         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
23587         structs with volatile fields.
23588
23589 2009-05-10  Jan Hubicka  <jh@suse.cz>
23590
23591         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
23592         (estimate_move_cost): Assert that it does not get called for
23593         VOID_TYPE_P.
23594         (estimate_num_insns): Skip VOID types in argument handling.
23595         (optimize_inline_calls): Delete unreachable blocks and verify that
23596         callgraph is valid.
23597
23598 2009-05-10  Jan Hubicka  <jh@suse.cz>
23599
23600         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
23601         * cgraph.c (cgraph_mark_address_taken_node): New function.
23602         (dump_cgraph_node): Dump new flag.
23603         * cgraph.h (struct cgraph_node): Add address_taken.
23604         (cgraph_mark_address_taken_node): New function.
23605         * ipa.c (cgraph_postorder): Prioritize functions with address taken
23606         since new direct calls can be born.
23607
23608 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
23609
23610         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
23611         tok->val.node.node.
23612
23613 2009-05-10  Jan Hubicka  <jh@suse.cz>
23614
23615         PR middle-end/40084
23616         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
23617         argument; rewrite.
23618         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
23619         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
23620         * tree-inline.c (copy_bb): Set frequency correctly.
23621         (fold_marked_statements): Update call to
23622         cgraph_update_edges_for_call_stmt.
23623
23624 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
23625
23626         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
23627         identifiers in diagnostics.
23628         * config/arm/arm.c (arm_handle_fndecl_attribute,
23629         arm_handle_isr_attribute): Likewise.
23630         * config/avr/avr.c (avr_handle_progmem_attribute,
23631         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
23632         * config/bfin/bfin.c (handle_int_attribute,
23633         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
23634         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
23635         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
23636         Likewise.
23637         * config/darwin.c (darwin_handle_kext_attribute,
23638         darwin_handle_weak_import_attribute): Likewise.
23639         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
23640         h8300_handle_eightbit_data_attribute,
23641         h8300_handle_tiny_data_attribute): Likewise.
23642         * config/i386/i386.c (ix86_handle_cconv_attribute,
23643         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
23644         * config/i386/winnt.c (ix86_handle_shared_attribute,
23645         ix86_handle_selectany_attribute): Likewise.
23646         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
23647         * config/m32c/m32c.c (function_vector_handler): Likewise.
23648         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
23649         m68hc11_handle_fntype_attribute): Likewise.
23650         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
23651         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
23652         * config/mips/mips.c (mips_insert_attributes,
23653         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
23654         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
23655         rs6000_handle_struct_attribute): Likewise.
23656         * config/sh/sh.c (sh_insert_attributes,
23657         sh_handle_resbank_handler_attribute,
23658         sh_handle_interrupt_handler_attribute,
23659         sh2a_handle_function_vector_handler_attribute,
23660         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
23661         Likewise.
23662         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
23663         * config/spu/spu.c (spu_handle_fndecl_attribute,
23664         spu_handle_vector_attribute): Likewise.
23665         * config/stormy16/stormy16.c
23666         (xstormy16_handle_interrupt_attribute): Likewise.
23667         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
23668         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
23669
23670 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
23671
23672         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
23673         (pp_translate_identifiers): New.
23674         (pp_identifier): Only conditionally translate identifier to locale
23675         character set.
23676         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
23677         (pp_base_tree_identifier): Only conditionally translate identifier
23678         to locale character set.
23679         * c-pretty-print.c (M_): Define.
23680         (pp_c_type_specifier, pp_c_primary_expression): Mark English
23681         fragments for conditional translation with M_.
23682         * tree-pretty-print.c (maybe_init_pretty_print): Disable
23683         identifier translation.
23684
23685 2009-05-10  Richard Guenther  <rguenther@suse.de>
23686
23687         PR tree-optimization/40081
23688         * tree-sra.c (instantiate_element): Instantiate scalar replacements
23689         using the main variant of the element type.  Do not fiddle with
23690         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
23691
23692 2009-05-09  Jan Hubicka  <jh@suse.cz>
23693
23694         PR middle-end/40080
23695         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
23696         indirect calls; verify cgraph afterwards.
23697
23698 2009-05-09  Jan Hubicka  <jh@suse.cz>
23699
23700         PR bootstrap/40082
23701         * ipa.c (update_inlined_to_pointer): New function.
23702         (cgraph_remove_unreachable_nodes): Use it.
23703
23704 2009-05-09  Jan Hubicka  <jh@suse.cz>
23705
23706         * tree-eh.c (struct leh_state): Remove prev_try.
23707         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
23708         not track prev_try.
23709         * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
23710         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
23711         remove_eh_handler_and_replace, foreach_reachable_handler,
23712         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
23713         * except.h (struct eh_region): Remove eh_region_u_cleanup.
23714         (gen_eh_region_cleanup): Update prototype.
23715
23716 2009-05-09  Jan Hubicka  <jh@suse.cz>
23717
23718         PR middle-end/40043
23719         * except.c (copy_eh_region): Always set prev_try.
23720         (redirect_eh_edge_to_label): Find outer try.
23721         (foreach_reachable_handler): When looking for prev try
23722         handle case where previous try is not going to be taken.
23723
23724 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
23725
23726         PR tree-optimization/40049
23727         * tree-vect-stmts.c (vectorizable_operation): If the machine has
23728         only vector/vector shifts, convert the type of the constant to the
23729         appropriate type to avoid building incorrect trees, which
23730         eventually have problems with garbage collection.
23731
23732 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
23733
23734         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
23735         -1 for complex floating-point types if honoring signed zeros.
23736
23737 2009-05-08  Jan Hubicka  <jh@suse.cz>
23738
23739         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
23740         argument; handle correctly when profile is absent.
23741         (build_cgraph_edges): Update.
23742         (rebuild_cgraph_edges): Update.
23743         * cgraph.c: Do not include varray.h.
23744         (cgraph_set_call_stmt_including_clones): New function.
23745         (cgraph_create_edge_including_clones): Likewise
23746         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
23747         (cgraph_update_edges_for_call_stmt): Handle clones.
23748         (cgraph_remove_node): Handle clone tree.
23749         (cgraph_remove_node_and_inline_clones): New function.
23750         (dump_cgraph_node): Dump clone tree.
23751         (cgraph_clone_node): Handle clone tree.
23752         (clone_function_name): Bring here from tree-inline.c.
23753         (cgraph_create_virtual_clone): New function.
23754         * cgraph.h (ipa_replace_map): Move here from ipa.h.
23755         (cgraph_clone_info): New function.
23756         (strut cgraph_node): Add clone_info and new clone tree pointers.
23757         (cgraph_remove_node_and_inline_clones,
23758         cgraph_set_call_stmt_including_clones,
23759         cgraph_create_edge_including_clones,
23760         cgraph_create_virtual_clone): Declare.
23761         (cgraph_function_versioning): Use VEC argument.
23762         (compute_call_stmt_bb_frequency): Update prototype.
23763         (cgraph_materialize_all_clones): New function.
23764         * ipa-cp.c (ipcp_update_cloned_node): Remove.
23765         (ipcp_create_replace_map): Update to VECtors.
23766         (ipcp_update_callgraph): Use virtual clones.
23767         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
23768         (ipcp_update_profiling): Do not update local profiling.
23769         (ipcp_insert_stage): Use VECtors and virtual clones.
23770         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
23771         (clone_of_p): New function.
23772         (cgraph_preserve_function_body_p): Use clone tree.
23773         (cgraph_optimize): Materialize clones.
23774         (cgraph_function_versioning): Update for VECtors.
23775         (save_inline_function_body): Use clone tree.
23776         (cgraph_materialize_clone): New function.
23777         (cgraph_materialize_all_clones): Likewise.
23778         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
23779         * ipa.c: Include gimple.h.
23780         (cgraph_remove_unreachable_nodes): Use clone tree.
23781         * ipa-prop.c (ipa_note_param_call): Update call to
23782         compute_call_stmt_bb_frequencycall.
23783         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
23784         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
23785         (copy_bb): Handle updating of clone tree; add new edge when new call
23786         appears.
23787         (expand_call_inline): Be strict about every call having edge.
23788         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
23789         (delete_unreachable_blocks_update_callgraph): New function.
23790         (tree_function_versioning): Use VECtors; always remove unreachable
23791         blocks and fold conditionals.
23792         * tree-inline.h: Do not include varray.h.
23793         (tree_function_versioning): Remove.
23794         * Makefile.in (GTFILES): Remove tree-inline.c
23795         * passes.c (do_per_function): Do only functions having body.
23796         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
23797         tree.
23798
23799 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
23800             Andrew Morrow  <acm@google.com>
23801
23802         PR c/36892
23803         * c-common.c (c_common_attribute_table): Permit deprecated
23804         attribute to take an optional argument.
23805         (handle_deprecated_attribute): If the optional argument to
23806         __attribute__((deprecated)) is not a string ignore the attribute
23807         and emit a warning.
23808
23809         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
23810         * c-typeck.c (build_component_ref): Likewise.
23811         (build_external_ref): Likewise.
23812
23813         * toplev.c (warn_deprecated_use): Add an attribute argument.
23814         Emit the message associated with __attribute__((deprecated)).
23815
23816         * toplev.h (warn_deprecated_use): Updated.
23817
23818         * doc/extend.texi: Document new optional parameter to
23819         __attribute__((deprecated))
23820
23821 2009-05-08  Michael Eager <eager@eagercon.com>
23822
23823         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
23824         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
23825
23826 2009-05-08  Richard Guenther  <rguenther@suse.de>
23827
23828         PR tree-optimization/40062
23829         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
23830         Avoid exponential behavior.
23831
23832 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
23833
23834         PR rtl-optimization/33928
23835         PR 26854
23836         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
23837         process_uses, build_single_def_use_links): New.
23838         (update_df): Update use_def_ref.
23839         (forward_propagate_into): Use get_def_for_use instead of use-def
23840         chains.
23841         (fwprop_init): Call build_single_def_use_links and let it initialize
23842         dataflow.
23843         (fwprop_done): Free use_def_ref.
23844         (fwprop_addr): Eliminate duplicate call to df_set_flags.
23845         * df-problems.c (df_rd_simulate_artificial_defs_at_top,
23846         df_rd_simulate_one_insn): New.
23847         (df_rd_bb_local_compute_process_def): Update head comment.
23848         (df_chain_create_bb): Use the new RD simulation functions.
23849         * df.h (df_rd_simulate_artificial_defs_at_top,
23850         df_rd_simulate_one_insn): New.
23851         * opts.c (decode_options): Enable fwprop at -O1.
23852         * doc/invoke.texi (-fforward-propagate): Document this.
23853
23854 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
23855
23856         PR c/24581
23857         * c-typeck.c (build_binary_op): Handle arithmetic between one real
23858         and one complex operand specially.
23859         * tree-complex.c (some_nonzerop): Do not identify a real value as
23860         zero if flag_signed_zeros.
23861
23862 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
23863
23864         PR rtl-optimization/33928
23865         * loop-invariant.c (record_use): Fix && vs. || mishap.
23866
23867 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
23868
23869         PR rtl-optimization/33928
23870         * loop-invariant.c (struct use): Add addr_use_p.
23871         (struct def): Add n_addr_uses.
23872         (struct invariant): Add cheap_address.
23873         (create_new_invariant): Set cheap_address.
23874         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
23875         (record_uses): Pass df_ref to record_use.
23876         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
23877         used only as such.
23878
23879 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
23880
23881         * config/sh/sh.c: Do not include c-pragma.h.
23882
23883 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
23884
23885         * config/spu/spu.c: Remove include of c-common.h.
23886
23887 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
23888
23889         PR c/39037
23890         * c-common.h (mark_valid_location_for_stdc_pragma,
23891         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
23892         clear_float_const_decimal64, float_const_decimal64_p): New.
23893         * c.opt (Wunsuffixed-float-constants): New.
23894         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
23895         unsuffixed float constant, handle new warning.
23896         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
23897         * c-decl.c (c_scope): New flag float_const_decimal64.
23898         (set_float_const_decimal64, clear_float_const_decimal64,
23899         float_const_decimal64_p): New.
23900         (push_scope): Set new flag.
23901         * c-parser.c (c_parser_translation_unit): Mark when it's valid
23902         to use STDC pragmas.
23903         (c_parser_external_declaration): Ditto.
23904         (c_parser_compound_statement_nostart): Ditto.
23905         * c-pragma.c (valid_location_for_stdc_pragma,
23906         mark_valid_location_for_stdc_pragma,
23907         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
23908         handle_pragma_float_const_decimal64): New.
23909         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
23910         * cp/semantics.c (valid_location_for_stdc_pragma_p,
23911         set_float_const_decimal64, clear_float_const_decimal64,
23912         float_const_decimal64_p): New dummy functions.
23913         * doc/extend.texi (Decimal Float): Remove statement that the
23914         pragma, and suffix for double constants, are not supported.
23915         * doc/invoke.texi (Warning Options): List new option.
23916         (-Wunsuffixed-float-constants): New.
23917
23918 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
23919
23920         * config/i386/i386.c: Do not include c-common.h.
23921
23922 2009-05-07  Mark Heffernan  <meheff@google.com>
23923
23924         * doc/invoke.texi (Debugging Options): Document change of debugging
23925         dump location.
23926         * opts.c (decode_options): Make dump_base_name relative to
23927         aux_base_name directory.
23928
23929 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
23930
23931         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
23932         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
23933
23934 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
23935
23936         * Makefile.in (install-plugin): Simplify a bit.
23937
23938 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
23939
23940         * Makefile.in (OBJS-common): Add regcprop.o.
23941         (regcprop.o): New.
23942         * timevar.def (TV_CPROP_REGISTERS): New.
23943         * regrename.c (regrename_optimize): Return 0.
23944         (rest_of_handle_regrename): Delete.
23945         (pass_rename_registers): Point to regrename_optimize.
23946         (struct value_data_entry, struct value_data,
23947         kill_value_one_regno, kill_value_regno, kill_value,
23948         set_value_regno, init_value_data, kill_clobbered_value,
23949         kill_set_value, kill_autoinc_value, copy_value,
23950         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
23951         replace_oldest_value_reg, replace_oldest_value_addr,
23952         replace_oldest_value_mem, copyprop_hardreg_forward_1,
23953         debug_value_data, validate_value_data): Move...
23954         * regcprop.c: ... here.
23955         (rest_of_handle_cprop): Delete.
23956         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
23957
23958 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
23959
23960         PR middle-end/40057
23961         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
23962         GEN_INT for 1 << bitnum.
23963         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
23964         build_int_cst_type.
23965
23966 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
23967
23968         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
23969         Remove wrong description of "nand" operation.
23970
23971 2009-05-06  Richard Guenther  <rguenther@suse.de>
23972             Adam Nemet  <anemet@caviumnetworks.com>
23973
23974         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
23975         comment.  Add that if LHS is not a gimple register, then RHS1 has
23976         to be a single object (GIMPLE_SINGLE_RHS).
23977
23978 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
23979
23980         * expr.c (get_def_for_expr): Move it up in the file.
23981         (store_field): When expanding a bit-field store, look at the
23982         defining gimple stmt for the masking conversion.
23983
23984 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
23985
23986         PR middle-end/39986
23987         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
23988         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
23989         32-bit memcpy into long.
23990
23991 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
23992
23993         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
23994         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
23995         new_reg_loc_descr.
23996         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
23997         instead of appending DW_OP_deref*.
23998
23999 2009-05-06  Michael Matz  <matz@suse.de>
24000
24001         PR middle-end/40021
24002         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
24003         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
24004
24005 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
24006
24007         * Makefile.in (install-plugin): Fix srcdir handling.
24008
24009 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
24010
24011         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
24012         when processing for not_regs_needed bitmap.
24013         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
24014         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while
24015         handling it for rhs.
24016
24017 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
24018
24019         * config/i386/i386.md (unnamed inc/dec peephole): Use
24020         optimize_insn_for_size_p instead of optimize_size.
24021         * config/i386/predicates.md (incdec_operand): Likewise.
24022         (aligned_operand): Likewise.
24023         * config/i386/sse.md (divv8sf3): Likewise.
24024         (sqrtv8sf2): Likewise.
24025
24026 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
24027
24028         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
24029
24030         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
24031
24032 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
24033
24034         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
24035         ssemodesuffixf2c with avxmodesuffixf2c.
24036
24037 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
24038
24039         PR c/40032
24040         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
24041
24042 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
24043
24044         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
24045         (struct tree_base): Adjust spacing for 8 bit boundaries.
24046         (struct tree_decl_common): Add decl_by_reference_flag bit.
24047         (DECL_BY_REFERENCE): Adjust.
24048         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
24049         print DECL_BY_REFERENCE bit.
24050         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
24051         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
24052         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
24053         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
24054         unconditionally.
24055
24056         PR middle-end/39666
24057         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
24058         range of the type, but default label is missing, add it with one
24059         of the existing labels instead of adding a new label for it.
24060
24061 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
24062
24063         * dwarf.h: Remove.
24064
24065 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
24066
24067         * Makefile.in (enable_plugin, plugin_includedir): New.
24068         (install): Depend on install-plugin.
24069         (PLUGIN_HEADERS): New.
24070         (install-plugin): New.
24071         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
24072
24073 2009-05-05  Richard Guenther  <rguenther@suse.de>
24074
24075         PR tree-optimization/40022
24076         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
24077         the only vuse.
24078         (phivn_valid_p): Fix tuplification error, simplify.
24079         (phiprop_insert_phi): Add dumps.
24080         (propagate_with_phi): Simplify.
24081
24082 2009-05-05  Richard Guenther  <rguenther@suse.de>
24083
24084         PR middle-end/40023
24085         * builtins.c (gimplify_va_arg_expr): Properly build the address.
24086
24087 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
24088
24089         * tree.h (strip_float_extensions): Remove duplicate declaration.
24090         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
24091         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
24092         block_ultimate_origin): Rearrange the declarations line to match the
24093         comment that indicates the .c file which the functions are defined.
24094         (dwarf2out_*, set_decl_rtl): Add comment.
24095         (get_base_address): Adjust comment.
24096         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
24097         declarations line and add comment.
24098         (is_builtin_name): Add blank after function name, for clarity.
24099
24100 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
24101
24102         * attribs.c (decl_attributes): Use %qE for identifiers in
24103         diagnostics.
24104         * cgraphunit.c (verify_cgraph_node): Translate function names to
24105         locale character set in diagnostics.
24106         * coverage.c (get_coverage_counts): Use %qE for identifiers in
24107         diagnostics.
24108         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
24109         Document that functions are named in UTF-8.
24110         * expr.c (expand_expr_real_1): Translate function names to locale
24111         character set in diagnostics.
24112         * gimplify.c (omp_notice_variable, omp_is_private,
24113         gimplify_scan_omp_clauses): Use %qE for identifiers in
24114         diagnostics.
24115         * langhooks.c (lhd_print_error_function): Translate function names
24116         to locale character set.
24117         * langhooks.h (decl_printable_name): Document that return value is
24118         in internal character set.
24119         * stmt.c: Include pretty-print.h
24120         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
24121         diagnostics.
24122         (resolve_operand_name_1): Translate named operand name to locale
24123         character set.
24124         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
24125         diagnostics.
24126         * toplev.c (announce_function): Translate function names to locale
24127         character set.
24128         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
24129         (default_tree_printer): Use pp_identifier or translate identifiers
24130         to locale character set.  Mark "<anonymous>" for translation.
24131         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
24132         for identifiers in diagnostics.
24133         * tree.c (handle_dll_attribute): Use %qE for identifiers in
24134         diagnostics.
24135         * varasm.c (output_constructor): Use %qE for identifiers in
24136         diagnostics.
24137
24138 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
24139
24140         * configure.ac: use ` ` instead of $()
24141         * configure: Regenerate.
24142
24143 2009-05-05  Ben Elliston  <bje@au.ibm.com>
24144
24145         * config/pa/linux-atomic.c: Eliminate conditional include of
24146         errno.h on non-LP64 systems to simplify build requirements.
24147
24148 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
24149
24150         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
24151         diagnostics.
24152         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
24153         and pass value to identifier_to_locale.
24154         (warn_variable_length_array): Make name a tree.
24155         (grokdeclarator): Separate diagnostic texts for named and unnamed
24156         declarators.  Use %qE for named declarators.
24157         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
24158         diagnostics.
24159         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
24160         identifiers in diagnostics.
24161         * c-typeck.c (push_member_name, start_init): Pass identifiers to
24162         identifier_to_locale.  Mark "anonymous" strings for translation.
24163
24164 2009-05-04  Michael Eager <eager@eagercon.com>
24165
24166         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
24167         address for DImode/DFmode only if double-precision FP regs.
24168
24169 2009-05-04  Michael Eager <eager@eagercon.com>
24170
24171         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
24172         TARGET_SINGLE_FLOAT check.
24173
24174 2009-05-04  Michael Eager <eager@eagercon.com>
24175
24176         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
24177
24178 2009-05-04  Michael Eager <eager@eagercon.com>
24179
24180         * gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx
24181         * config/rs6000/t-xilinx: New
24182
24183 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
24184
24185         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
24186         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
24187         * gcc/explow.c (memory_address): Use target hook.
24188         * gcc/targhooks.c (default_legitimize_address): New.
24189         * gcc/targhooks.h (default_legitimize_address): New.
24190         * gcc/target.h (legitimize_address): New.
24191         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
24192         (TARGET_INITIALIZER): Include it.
24193         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
24194
24195         * config/bfin/bfin-protos.h (legitimize_address): Remove.
24196         * config/bfin/bfin.c (legitimize_address): Remove.
24197         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
24198         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
24199         Remove.
24200         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
24201         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
24202
24203         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
24204         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
24205         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
24206         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
24207         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
24208         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
24209         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
24210         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
24211         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
24212         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
24213         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
24214         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
24215         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
24216         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
24217         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
24218         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
24219         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
24220         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
24221         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
24222         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
24223         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
24224         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
24225         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
24226
24227         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
24228         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
24229         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
24230         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
24231         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
24232         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
24233         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
24234         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
24235         (thumb_legitimize_address): Delete.
24236         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
24237         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
24238         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
24239         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
24240         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
24241         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
24242         Delete.
24243         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
24244         Delete.
24245
24246         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
24247         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
24248         * config/m32r/m32r.c (m32r_legitimize_address): New.
24249         * config/m68k/m68k.c (m68k_legitimize_address): New.
24250         * config/score/score.c (score_legitimize_address): Standardize.
24251         * config/score/score3.c (score3_legitimize_address): Standardize.
24252         * config/score/score3.h (score3_legitimize_address): Adjust.
24253         * config/score/score7.c (score7_legitimize_address): Standardize.
24254         * config/score/score7.h (score7_legitimize_address): Adjust.
24255         * config/sh/sh.c (sh_legitimize_address): New.
24256         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
24257
24258         * gcc/config/s390/s390.c (legitimize_address): Rename to...
24259         (s390_legitimize_address): ... this.
24260         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
24261         (sparc_legitimize_address): ... this.
24262         * gcc/config/i386/i386.c (legitimize_address): Rename to...
24263         (ix86_legitimize_address): ... this.
24264         * gcc/config/avr/avr.c (legitimize_address): Rename to...
24265         (avr_legitimize_address): ... this.
24266         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
24267         (mn10300_legitimize_address): ... this.
24268         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
24269         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
24270         (alpha_expand_mov): Adjust call.
24271
24272         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
24273         * config/spu/spu.c (spu_legitimize_address): Likewise.
24274         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
24275         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
24276
24277 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
24278
24279         * intl.c (locale_encoding, locale_utf8): New.
24280         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
24281         * intl.h (locale_encoding, locale_utf8): Declare.
24282         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
24283         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
24284         New.
24285         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
24286         argument.
24287         (pp_tree_identifier): Define to call pp_base_tree_identifier.
24288         (pp_base_tree_identifier): Declare as function.
24289         (identifier_to_locale): Declare.
24290         * Makefile.in (pretty-print.o): Update dependencies.
24291         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
24292
24293 2009-05-04  Richard Guenther  <rguenther@suse.de>
24294
24295         PR middle-end/40015
24296         * builtins.c (fold_builtin_memory_op): Do not decay to element
24297         type if the size matches the whole array.
24298
24299 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
24300
24301         * expmed.c (synth_mult): When trying out a shift, pass the result
24302         of a signed shift.
24303
24304 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
24305
24306         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
24307         (shiftsub1_cost): New.
24308         (init_expmed): Compute shiftsub1_cost.
24309         (synth_mult): Optimize multiplications by constants of the form
24310         -(2^^m-1) for some constant positive integer m.
24311
24312 2009-05-03  Richard Guenther  <rguenther@suse.de>
24313
24314         PR c/39983
24315         * c-typeck.c (array_to_pointer_conversion): Do not built
24316         ADDR_EXPRs of arrays of pointer-to-element type.
24317         * c-gimplify.c (c_gimplify_expr): Revert change fixing
24318         up wrong ADDR_EXPRs after-the-fact.
24319         * c-common.c (strict_aliasing_warning): Strip pointer
24320         conversions for obtaining the original type.
24321         * builtins.c (fold_builtin_memset): Handle array types.
24322         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
24323         and array types
24324
24325 2009-05-03  Richard Guenther  <rguenther@suse.de>
24326
24327         PR middle-end/23329
24328         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
24329         Do not lose casts from array types with unknown extent to array
24330         types with known extent.
24331         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
24332         alias set compatibility.
24333
24334 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24335
24336         * flags.h (extra_warnings): Delete.
24337         * toplev.c (process_options): Handle Wuninitialized here.
24338         * opts.c (extra_warnings): Delete.
24339         (set_Wextra): Delete.
24340         (common_handle_option): -Wextra can be handled automatically.
24341         * c-opts.c (c_common_handle_option): Delete obsolete code.
24342         (c_common_post_options): Simplify comment.
24343         * common.opt (W): Add Var.
24344         (Wextra): Add Var.
24345         (Wuninitialized): Initialize to -1.
24346
24347 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
24348             Richard Guenther  <rguenther@suse.de>
24349
24350         * expr.c (get_def_for_expr): New function.
24351         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
24352         SSA rather than trees.
24353         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
24354         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
24355
24356 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
24357
24358         * c-common.c (reswords): Add _Imaginary.
24359         * c-common.c (enum rid): Add RID_IMAGINARY.
24360
24361 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
24362
24363         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
24364         Patch by Richard Guenther.
24365
24366 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
24367
24368         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
24369         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
24370         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
24371         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
24372         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
24373         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
24374         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
24375         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
24376         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
24377         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
24378         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
24379         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
24380         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
24381         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
24382         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
24383         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
24384         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
24385         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
24386
24387 2009-05-02  Richard Guenther  <rguenther@suse.de>
24388
24389         PR tree-optimization/39940
24390         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
24391         doing so.
24392
24393 2009-05-02  Richard Guenther  <rguenther@suse.de>
24394
24395         PR middle-end/40001
24396         * tree-ssa.c (execute_update_addresses_taken): Properly check
24397         if we can mark a variable DECL_GIMPLE_REG_P.
24398         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
24399         back to the end of the function.
24400         (is_gimple_reg_type): Remove complex type special casing.
24401         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
24402         if not optimizing.
24403
24404 2009-05-02  Ben Elliston  <bje@au.ibm.com>
24405
24406         * doc/collect2.texi (Collect2): Document search path behaviour
24407         when configured with --with-ld.
24408
24409 2009-05-02  Jan Hubicka  <jh@suse.cz>
24410
24411         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
24412         parameter; update callers.
24413         (coalesce_cost_edge): EH edges are costier because they needs
24414         splitting even if not critical and even more costier when there are
24415         multiple EH predecestors.
24416
24417 2009-05-02  Jan Hubicka  <jh@suse.cz>
24418
24419         * except.c (remove_eh_handler_and_replace): Handle updating after
24420         removing TRY blocks.
24421
24422 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
24423
24424         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
24425
24426 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
24427
24428         * varasm.c: Do not include c-pragma.h.
24429         * attribs.c: Do not incude c-common.h.
24430
24431 2009-05-01  Michael Matz  <matz@suse.de>
24432
24433         * calls.c (initialize_argument_information): Handle SSA names like
24434         decls with a non MEM_P DECL_RTL.
24435
24436 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
24437
24438         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
24439         * ipa-utils.c: Likewise.
24440         * ipa-type-escape.c: Likewise.
24441         * cgraphunit.c Do not include c-common.h.
24442         * ipa-pure-const.c: Likewise.
24443         * tree-if-conv.c: Likewise.
24444         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
24445         * ipa-struct-reorg.c: Likewise.
24446         * tree-nomudflap.c: Likewise.
24447         * tree-ssa-structalias.c: Likewise.
24448
24449 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
24450
24451         * store-motion.c: Many cleanups to make this pass a first-class
24452         citizen instead of an appendix to gcse load motion.  Add TODO list
24453         to make this pass faster/cleaner/better.
24454
24455         (struct ls_expr): Post gcse.c-split cleanups.
24456         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
24457         "stores" field to "avail_stores".
24458         (pre_ldst_mems): Rename to store_motion_mems.
24459         (pre_ldst_table): Rename to store_motion_mems_table.
24460         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
24461         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
24462         (ldst_entry): Rename to st_expr_entry, update users.
24463         (free_ldst_entry): Rename to free_st_expr_entry, update users.
24464         (free_ldst_mems): Rename to free_store_motion_mems, update users.
24465         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
24466         update caller.
24467         (first_ls_expr): Rename to first_st_expr, update users.
24468         (next_ls_expr): Rename to next_st_expr, update users.
24469         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
24470         fields properly for store motion instead of names inherited from load
24471         motion in gcse.c.
24472         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
24473         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
24474         are done with it.
24475
24476         (ae_kill): Rename to st_kill, update users.
24477         (ae_gen): Rename to st_avloc, update users.
24478         (transp): Rename to st_transp, update users.
24479         (pre_insert_map): Rename to st_insert_map, update users.
24480         (pre_delete_map): Rename to st_delete_map, update users.
24481         (insert_store, build_store_vectors, free_store_memory,
24482         one_store_motion_pass): Update for abovementioned changes.
24483
24484         (gcse_subst_count, gcse_create_count): Remove.
24485         (one_store_motion_pass): New statistics counters "n_stores_deleted"
24486         and "n_stores_created", local variables.
24487
24488         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
24489         use for_each_rtx.
24490
24491         (regvec, compute_store_table_current_insn): Remove.
24492         (reg_set_info, reg_clear_last_set): Remove.
24493         (compute_store_table): Use DF caches instead of local dataflow
24494         solvers.
24495
24496 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
24497
24498         * c-objc-common.c (c_tree_printer): Print identifiers with
24499         pp_identifier, not pp_string.  Mark "({anonymous})" for
24500         translation.
24501         * c-pretty-print.c (pp_c_ws_string): New.
24502         (pp_c_cv_qualifier, pp_c_type_specifier,
24503         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
24504         pp_c_storage_class_specifier, pp_c_function_specifier,
24505         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
24506         pp_c_primary_expression, pp_c_postfix_expression,
24507         pp_c_unary_expression, pp_c_shift_expression,
24508         pp_c_relational_expression, pp_c_equality_expression,
24509         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
24510         use pp_string and pp_c_ws_string in place of pp_identifier and
24511         pp_c_identifier for non-identifiers.  Mark English strings for
24512         translation.
24513         * c-pretty-print.h (pp_c_ws_string): Declare.
24514
24515 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
24516             Roland McGrath <roland@redhat.com>
24517
24518         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
24519         (ENABLE_LD_BUILDID): New configuration option.
24520         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
24521         (LINK_BUILDID_SPEC): New macro.
24522         (init_spec): If defined, prepend it between LINK_EH_SPEC and
24523         link_spec.
24524         * doc/install.texi: Document --enable-linker-build-id option.
24525         * configure: Rebuild.
24526         * config.in: Rebuild.
24527
24528 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
24529
24530         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
24531         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
24532         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
24533         MIPS_GP_SAVE_AREA_SIZE.
24534         * config/mips/mips.c (struct mips_frame_info): Update comment
24535         before arg_pointer_offset and hard_frame_pointer_offset.
24536         (mips_compute_frame_info): Update diagram before function: to
24537         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
24538         indicate the position of frame_pointer_rtx with -fstack-protector and
24539         to show args_size.  Don't allocate cprestore area for leaf functions
24540         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
24541         cprestore_size.
24542         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
24543
24544 2009-04-30  Michael Matz  <matz@suse.de>
24545
24546         PR tree-optimization/39955
24547         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
24548
24549 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
24550
24551         * ira.c (setup_cover_and_important_classes):  Use safe macro
24552         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
24553         directly.
24554         * genpreds.c (write_tm_preds_h):  Output suitable definition of
24555         REG_CLASS_FOR_CONSTRAINT.
24556
24557 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
24558
24559         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
24560         instead of an int.
24561         * bitmap.c (bitmap_descriptor): Likewise.
24562         * ggc-common.c (loc_descriptor): Likewise.
24563         * varray.c (varray_descriptor): Likewise.
24564         * vec.c (vec_descriptor): Likewise.
24565
24566 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
24567
24568         * Makefile.in (dce.o): Add $(EXCEPT_H).
24569         * dce.c: Include except.h and delete redundant vector definitions.
24570         (deletable_insn_p): Return false for non-call insns that can throw
24571         if DF is running.
24572
24573 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
24574
24575         * gcse.c (ae_gen): Remove.
24576         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
24577         and make non-static function to make it available in store-motion.c.
24578         Update call sites with search-and-replace.
24579         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
24580         extract_mentioned_regs, extract_mentioned_regs_helper,
24581         find_moveable_store, compute_store_table, load_kills_store, find_loads,
24582         store_killed_in_insn, store_killed_after, store_killed_before,
24583         build_store_vectors, insert_insn_start_basic_block, insert-store,
24584         remove_reachable_equiv_notes, replace_store_insn, delete_store,
24585         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
24586         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
24587         * store-motion.c: ...new file.  Also copy data structures from gcse.c
24588         and clean up to remove parts not used by store motion.
24589         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
24590         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
24591
24592 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24593
24594         PR target/38571
24595         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
24596         when optimizing for size.
24597
24598 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
24599
24600         * gcse.c (gcse_constant_p): Fix typo in last change.
24601
24602 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
24603
24604         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
24605
24606 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
24607
24608         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
24609
24610 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
24611
24612         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
24613         CONST_HIGH_PART result.
24614
24615 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
24616
24617         * config/avr/avr.c (initial_elimination_offset): Rename to
24618         avr_initial_elimination_offset.
24619         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
24620         change return type to bool.
24621         (avr_can_eliminate): New function.
24622         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
24623         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
24624         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
24625         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
24626         avr_initial_elimination_offset.
24627         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
24628         (avr_initial_elimination_offset): Define.
24629
24630 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
24631             Steven Bosscher  <steven@gcc.gnu.org>
24632
24633         PR rtl-optimization/39938
24634         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
24635         * cfgrtl.c: Include insn-attr.h.
24636         (rest_of_pass_free_cfg): New function.
24637         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
24638         * resource.c (init_resource_info): Remove call to df_analyze.
24639
24640 2009-04-29  Richard Guenther  <rguenther@suse.de>
24641
24642         PR target/39943
24643         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
24644         allow conversion to signed integers.
24645
24646 2009-04-29  Richard Guenther  <rguenther@suse.de>
24647
24648         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
24649         shifts of floating point vectors if the shift amount is
24650         a constant multiple of the element size.
24651
24652 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
24653             Michael Matz  <matz@suse.de>
24654
24655         PR middle-end/39927
24656         PR bootstrap/39929
24657         * tree-outof-ssa.c (emit_partition_copy): New function.
24658         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
24659         insert_part_to_rtx_on_edge): Perform the partition base var
24660         copy using emit_partition_copy.
24661         (insert_value_copy_on_edge): Convert constants to the right mode.
24662         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
24663         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
24664
24665 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
24666
24667         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
24668         scan backwards to try to find a constant to initialize it.
24669
24670         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
24671         insn before the loop_end instruction, don't look past labels.
24672
24673 2009-04-29  Richard Guenther  <rguenther@suse.de>
24674
24675         PR middle-end/39937
24676         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
24677         loose type conversions.
24678         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
24679         stmts only if there are no uses of its definition.
24680
24681 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
24682
24683         * config/bfin/bfin.h (splitting_loops): Declare.
24684         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
24685         Reorder bit definitions to be ascending.
24686         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
24687         * config/bfin/bfin.c (splitting_loops): New variable.
24688         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
24689         (struct loop_info): Remove members INIT and LOOP_INIT.
24690         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
24691         the LSETUP sequence.  Allow LC to be loaded from any register, but
24692         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
24693         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
24694         set to 1.
24695         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
24696         of reload_completed.
24697
24698         From Jie Zhang:
24699         * config/bfin/bfin.md (movsi_insn): Refine constraints.
24700
24701 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
24702
24703         * Makefile.in (PLUGIN_VERSION_H): New.
24704         (OBJS-common): Remove plugin-version.o.
24705         (plugin.o): Depend on (PLUGIN_VERSION_H).
24706         (plugin-version.o): Remove.
24707         * configure: Regenerate
24708         * configure.ac: Create plugin-version.h.
24709         * gcc-plugin.h (plugin_gcc_version): Remove.
24710         (plugin_default_version_check): Change signature.
24711         * plugin-version.c: Remove.
24712         * plugin.c: Include plugin-version.h.
24713         (str_plugin_gcc_version_name): Remove.
24714         (try_init_one_plugin): Pass gcc version to plugin_init.
24715         (plugin_default_version_check): Both gcc and plugin versions are now
24716         arguments.
24717
24718 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
24719
24720         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
24721         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
24722         Remove special case testing for last insn of inner loops. Don't fail
24723         if the loop ends with a jump, emit an extra nop instead.
24724
24725         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
24726         DREGS rather than comparing directly.  Remove code that tries to
24727         account for latencies.
24728
24729 2009-04-29  Richard Guenther  <rguenther@suse.de>
24730
24731         PR tree-optimization/39941
24732         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
24733         eliminating an indirect call.
24734
24735 2009-04-29  Richard Guenther  <rguenther@suse.de>
24736
24737         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
24738         parameter.  Allow invariants as base if !require_lvalue.
24739         (verify_gimple_assign_single): Adjust.
24740
24741 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
24742
24743         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
24744         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
24745         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
24746         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
24747         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
24748         a VEC_SELECT.
24749         * config/bfin/bfin.c (bfin_expand_builtin,
24750         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
24751
24752 2009-04-28  Richard Guenther  <rguenther@suse.de>
24753
24754         * tree-vect-loop.c (get_initial_def_for_induction): Use
24755         correct types for pointer increment.
24756
24757 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24758
24759         * toplev.c (print_version): Update GMP version string calculation.
24760
24761 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
24762
24763         PR rtl-optimization/39938
24764         * resource.c (init_resource_info): Add call to df_analyze.
24765
24766 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
24767
24768         * config/alpha/alpha.md (usegp): Cast the result of
24769         alpha_find_lo_sum_using_gp to enum attr_usegp.
24770         * config/alpha/alpha.c (override_options): Remove end-of-structure
24771         marker element from cpu_table.  Use array size of cpu_table to handle
24772         -mcpu and -mtune options.
24773         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
24774
24775 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
24776
24777         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
24778         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
24779         tune_32 and tune_64.
24780         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
24781         support on PowerPC.
24782         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
24783         * config/rs6000/option-defaults.h: ... here.  New file.
24784         (OPT_64, OPT_32): Define.
24785         (MASK_64BIT): Define to 0 if not already defined.
24786         (OPT_ARCH64, OPT_ARCH32): Define.
24787         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
24788         and tune_64.
24789
24790 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24791
24792         * config/arm/arm.c (arm_override_options): Emit error on using
24793         fpa with AAPCS.
24794
24795 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
24796
24797         PR rtl-optimization/39914
24798         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
24799         registers for allocnos created from user-defined variables only
24800         when not optimizing.
24801
24802 2009-04-28  Richard Guenther  <rguenther@suse.de>
24803
24804         PR middle-end/39937
24805         * fold-const.c (fold_binary): Use distribute_real_division only
24806         on float types.
24807
24808 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
24809
24810         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
24811         add hpux-stdint.h to tm_file.
24812         (hppa[12]*-*-hpux11*): Ditto.
24813         (ia64*-*-hpux*): Ditto.
24814         * config/hpux-stdint.h: New.
24815         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
24816         __STDC_EXT__ for all compiles.
24817         * config/pa/pa-hpux.h: Ditto.
24818         * config/pa/pa-hpux10.h: Ditto.
24819         * config/pa/pa-hpux11.h: Ditto.
24820
24821 2009-04-28  Catherine Moore  <clm@codesourcery.com>
24822
24823         * debug.h (set_name): Add comment.
24824
24825 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
24826
24827         PR target/39929
24828         * config/darwin.c (machopic_gen_offset): Check
24829         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
24830         * config/arm/arm.c (require_pic_register): Likewise.
24831
24832 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
24833
24834         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
24835         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
24836         m32c_promote_prototypes): Delete.
24837
24838 2009-04-28  Michael Matz  <matz@suse.de>
24839
24840         PR middle-end/39922
24841         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
24842         constants.
24843
24844 2009-04-28  Richard Guenther  <rguenther@suse.de>
24845
24846         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
24847
24848 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24849
24850         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
24851         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
24852         * config/arm/arm-tune.md: Regenerate.
24853
24854 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
24855
24856         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
24857         block if there are complex incoming edges.
24858         (sel_merge_blocks): Remove useless assert.
24859         (sel_redirect_edge_and_branch): Check that edge was redirected.
24860         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
24861         (sel_find_rgns): Delete declaration.
24862         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
24863         the region when it is not a preheader.
24864
24865 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
24866
24867         PR c/39323
24868         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
24869
24870 2009-04-28  Richard Guenther  <rguenther@suse.de>
24871
24872         * tree.h (SSA_NAME_VALUE): Remove.
24873         (struct tree_ssa_name): Remove value_handle member.
24874         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
24875         array for jump threading.
24876         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
24877         SSA_NAME_VALUEs.
24878         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
24879         * tree-flow.h (threadedge_initialize_values): Declare.
24880         (threadedge_finalize_values): Likewise.
24881         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
24882         (SSA_NAME_VALUE): Define.
24883         (threadedge_initialize_values): New function.
24884         (threadedge_finalize_values): Likewise.
24885         * tree-ssa-dom.c (ssa_name_values): New global variable.
24886         (SSA_NAME_VALUE): Define.
24887         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
24888
24889 2009-04-28  Ira Rosen  <irar@il.ibm.com>
24890
24891         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
24892         Use REPORT_VECTORIZED_LOCATIONS instead
24893         REPORT_VECTORIZED_LOOPS.
24894         * tree-vectorizer.c (vect_verbosity_level): Make static.
24895         (vect_loop_location): Rename to vect_location.
24896         (vect_set_verbosity_level): Update comment.
24897         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
24898         and vect_location.
24899         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
24900         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
24901         instead REPORT_UNVECTORIZED_LOOPS.
24902         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
24903         and vect_loop_def to vect_external_def and vect_internal_def.
24904         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
24905         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
24906         REPORT_UNVECTORIZED_LOCATIONS.
24907         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
24908         and vect_used_in_loop and to vect_unused_in_scope and
24909         vect_used_in_scope.
24910         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
24911         (vect_verbosity_level): Remove declaration.
24912         (vect_analyze_operations): Likewise.
24913         (vect_analyze_stmt): Declare.
24914         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
24915         REPORT_UNVECTORIZED_LOCATIONS.
24916         (vect_get_loop_niters): Fix indentation.
24917         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
24918         (vect_analyze_loop_operations): New function.
24919         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
24920         vect_analyze_operations.
24921         (vect_is_simple_reduction): Use new names.
24922         (vectorizable_live_operation, vect_transform_loop): Likewise.
24923         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
24924         to specify whether the data references can be a part of interleaving
24925         chain.
24926         (vect_analyze_data_ref_dependence): Use new names.
24927         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
24928         (vect_create_addr_base_for_vector_ref): Remove redundant code.
24929         * tree-vect-patterns.c (widened_name_p): Use new names.
24930         (vect_recog_dot_prod_pattern): Likewise.
24931         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
24932         (process_use, vect_mark_stmts_to_be_vectorized,
24933         vect_model_simple_cost, vect_model_store_cost,
24934         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
24935         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
24936         vectorizable_operation, vectorizable_type_demotion,
24937         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
24938         vectorizable_condition): Likewise.
24939         (vect_analyze_operations): Split into vect_analyze_loop_operations
24940         and ...
24941         (vect_analyze_stmt): ... new function.
24942         (new_stmt_vec_info): Use new names.
24943         (vect_is_simple_use): Use new names and fix comment.
24944         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
24945         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
24946
24947 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
24948
24949         PR target/39911
24950         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
24951         and integer modes for x87 operands.  Do not ICE for unsupported size,
24952         generate error instead.  Generate error for unsupported operand types.
24953         ['z']: Do not handle HImode memory operands specially.  Warning
24954         for floating-point operands.  Fallthru to 'Z' for unsupported operand
24955         types.  Do not ICE for unsupported size, generate error instead.
24956         (output_387_binary_op): Use %Z to output operands.
24957         (output_fp_compare): Ditto.
24958         (output_387_reg_move): Ditto.
24959
24960 2009-04-28  Ben Elliston  <bje@au.ibm.com>
24961
24962         PR c++/35652
24963         Revert:
24964
24965         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
24966
24967         * builtins.c (c_strlen): Do not warn here.
24968         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
24969         * c-common.c (pointer_int_sum): Take an explicit location.
24970         Warn about offsets out of bounds.
24971         * c-common.h (pointer_int_sum): Adjust declaration.
24972
24973 2009-04-27  Ian Lance Taylor  <iant@google.com>
24974
24975         * collect2.c (is_ctor_dtor): Change type of ret field in struct
24976         names to symkind.
24977         * dce.c (run_fast_df_dce): Change type of old_flags to int.
24978         * df-core.c (df_set_flags): Change return type to int.  Change
24979         type of old_flags to int.
24980         (df_clear_flags): Likewise.
24981         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
24982         (df_get_conditional_uses): Likewise.
24983         * df.h (df_set_flags, df_clear_flags): Update declarations.
24984         * dwarf2out.c (struct indirect_string_node): Change type of form
24985         field to enum dwarf_form.
24986         (AT_string_form): Change return type to enum dwarf_form.
24987         * fixed-value.c (fixed_compare): Add cast to enum type.
24988         * fwprop.c (update_df): Change 0 to VOIDmode.
24989         * gensupport.c: Change 0 to UNKNOWN.
24990         * gimple.h (gimple_cond_code): Add cast to enum type.
24991         * haifa-sched.c (reemit_notes): Add cast to enum type.
24992         * hooks.c (hook_int_void_no_regs): Remove function.
24993         * hooks.h (hook_int_void_no_regs): Remove declaration.
24994         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
24995         * predict.c (combine_predictions_for_insn): Add casts to enum type.
24996         * real.c (real_arithmetic): Add cast to enum type.
24997         (real_compare): Likewise.
24998         * target.h (struct gcc_target): Change return type of
24999         branch_target_register_class to enum reg_class.
25000         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
25001         default_branch_target_register_class.
25002         * targhooks.c (default_branch_target_register_class): New function.
25003         * targhooks.h (default_branch_target_register_class): Declare.
25004         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
25005         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
25006         cast to int.
25007         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
25008         ERROR_MARK.
25009         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
25010         vect_uninitialized_def.  Change 0 to ERROR_MARK.
25011         * tree-vect-stmts.c (supportable_widening_operation): Don't
25012         initialize icode1 and icode2.
25013         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
25014         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
25015         and to STD_C89.
25016         (cmn_err_flag_specs): Change 0 to STD_C89.
25017         (cmn_err_char_table): Likewise.
25018         * config/arm/arm.c (get_arm_condition_code): Change type of code
25019         to enum arm_cond_code.
25020         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
25021         (IWMMXT_BUILTIN2): Likewise.
25022         (neon_builtin_type_bits): Don't define typedef.
25023         (neon_builtin_datum): Change type of bits field to int.
25024         (arm_expand_neon_args): Add cast to enum type.
25025         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
25026         TLS_MODEL_NONE.
25027         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
25028         casts to enum type.
25029         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
25030         MIPS_FP_COND_f.
25031         * config/mips/mips.md (jal_macro): Return enum constant.
25032         (single_insn): Likewise.
25033         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
25034         CODE_FOR_nothing.
25035         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25036         casts to enum type.
25037         * config/s390/s390.c (s390_tune_flags): Change type to int.
25038         (s390_arch_flags): Likewise.
25039         (s390_handle_arch_option): Change flags field of struct pta to int.
25040         * config/s390/s390.h (s390_tune_flags): Update declaration.
25041         (s390_arch_flags): Likewise.
25042         * config/sh/sh.c (prepare_move_operands): Compare
25043         tls_symbolic_operand result with enum constant.
25044         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
25045         (sh_expand_prologue): Add cast to enum type.
25046         (sh_expand_epilogue): Likewise.
25047         (tls_symbolic_operand): Change return type to enum tls_model.
25048         (fpscr_set_from_mem): Add cast to enum type.
25049         (legitimize_pic_address): Compare tls_symbolic_operand result with
25050         enum constant.
25051         (sh_target_reg_class): Change return type to enum reg_class.
25052         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
25053         PROCESSOR_xxx.
25054         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
25055         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
25056         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
25057         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
25058         (delayed_branch, tls_call_delay): Likewise.
25059         (eligible_for_sibcall_delay): Likewise.
25060         (eligible_for_return_delay): Likewise.
25061         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
25062         (spu_expand_builtin_1): Likewise.
25063
25064         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
25065         for all types of conversions.
25066         (output_init_element): Issue -Wc++-compat warning if needed when
25067         initializing a bitfield with enum type.
25068         * c-parser.c (c_parser_expression): Set original_type to
25069         original_type of right hand operand of comma operator.
25070
25071 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25072
25073         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
25074         grammar nits.
25075         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
25076         * doc/cpp.texi (Standard Predefined Macros)
25077         (Implementation-defined behavior): Likewise.
25078         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
25079         * doc/gimple.texi (GIMPLE Exception Handling)
25080         (@code{GIMPLE_ASSIGN}): Likewise.
25081         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
25082         * doc/invoke.texi (Warning Options, Optimize Options)
25083         (AVR Options, Darwin Options): Likewise.
25084         (Optimize Options): Reformulate -fwhole-program description.
25085         * doc/loop.texi (Lambda): Likewise.
25086         * doc/md.texi (Output Template, Define Constraints)
25087         (Standard Names, Insn Splitting): Likewise.
25088         * doc/options.texi (Option properties): Likewise.
25089         * doc/passes.texi (Tree-SSA passes): Likewise.
25090         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
25091         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
25092         (File Names and DBX): Likewise.
25093         * doc/trouble.texi (Incompatibilities): Likewise.
25094
25095 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
25096
25097         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
25098         instruction is correct.
25099
25100 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
25101
25102         Allow non-constant arguments to conversion intrinsics.
25103         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
25104         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
25105         * spu.c (print_operand): Handle 'v' and 'w'.
25106         (exp2_immediate_p, spu_gen_exp2): Define.
25107         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
25108         spu_convtf_1): Update parameter descriptions.
25109         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
25110         * constraints.md ('v', 'w'): New.
25111         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
25112         Remove.
25113         (i2f, I2F): New define_mode_attr.
25114         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
25115         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
25116         fixuns_truncv4sfv4si2):  Update to use mode attribute.
25117         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
25118         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
25119         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
25120         patterns for combine.
25121
25122 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
25123
25124         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
25125         (cprop, hoist, pre, store_motion): New debug counters.
25126         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
25127         is not an RTL pass anymore.
25128         (pass_profiling): Remove extern decl for pass removed in 2005.
25129         (pass_gcse, pass_jump_bypass): Remove.
25130         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
25131         to 0 for clean state.
25132         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
25133         * cse.c (gate_handle_cse_after_global_opts,
25134         rest_of_handle_cse_after_global_opts): New functions.
25135         (pass_cse_after_global_opts): New pass, does local CSE.
25136         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
25137         (TV_CPROP): New timevar.
25138         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
25139         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
25140         (gcse_main, recompute_all_luids): Remove.
25141         (compute_hash_table_work): Call max_reg_num instead of reading
25142         max_gcse_regno.
25143         (cprop_jump): Don't set run_jump_opt_after_gcse.
25144         (constprop_register): Always allow to alter jumps.
25145         (cprop_insn): Likewise.
25146         (do_local_cprop): Likewise.
25147         (local_cprop_pass): Likewise.  Return non-zero if something changed.
25148         (cprop): Remove function, fold interesting bits into one_cprop_pass.
25149         (find_implicit_sets): Add note about missed optimization opportunity.
25150         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
25151         pass_rtl_cprop execute function.
25152         Don't bother tracking the pass number, each pass gets its own dumpfile
25153         now anyway.
25154         Always allow to alter jumpsand bypass jumps.
25155         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
25156         will just find no suitable set.
25157         (pre_edge_insert): Fix dumping, this function is for PRE only.
25158         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
25159         pass_rtl_pre execute function.
25160         (hoist_code): Return non-zero if something changed.  Keep track of
25161         substitutions and insertions for statistics gathering similar to PRE.
25162         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
25163         called from the pass_rtl_hoist execute function.  Show pass statistics.
25164         (compute_store_table): Use max_reg_num directly instead of using the
25165         formerly global max_gcse_regno.
25166         (build_store_vectors): Likewise.
25167         (replace_store_insn): Fix dumping.
25168         (store_motion): Rename to ...
25169         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
25170         pass, called from the pass_rtl_store_motion execute function.  Keep
25171         track of substitutions and insertions for statistics gathering similar
25172         to PRE.
25173         (bypass_jumps): Remove, fold interesting bits into ...
25174         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
25175         from the pass_rtl_cprop execute function.
25176         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
25177         pass_jump_bypass): Remove.
25178         (gate_handle_gcse, rest_of_handle_gcse): Remove.
25179         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
25180         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
25181         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
25182         (gate_rtl_store_motion, execute_rtl_store_motion,
25183         pass_rtl_store_motion): New.
25184         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
25185         make it clear that -fcse-skip-blocks is a no-op for backward compat.
25186         * passes.c (init_optimization_passes): Remove pass_gcse and
25187         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
25188         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
25189         instead of pass_jump_bypass.
25190
25191 2009-04-27  Richard Guenther  <rguenther@suse.de>
25192
25193         PR middle-end/39928
25194         * gimplify.c (gimplify_expr): If we are required to create
25195         a temporary make sure it ends up as register.
25196
25197 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
25198
25199         PR target/39903
25200         * config/i386/i386.c (construct_container): Don't call
25201         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
25202         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
25203
25204 2009-04-27  Michael Matz  <matz@suse.de>
25205
25206         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
25207         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
25208         * tree-ssa-live.h (find_replaceable_exprs): Return a bitmap.
25209         (dump_replaceable_exprs): Take a bitmap.
25210         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
25211         array.
25212         (expand_gimple_basic_block): Likewise.
25213         * tree-ssa-ter.c (struct temp_expr_table_d): Make
25214         replaceable_expressions member a bitmap.
25215         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
25216         (mark_replaceable): Likewise.
25217         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
25218         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
25219
25220 2009-04-27  Richard Guenther  <rguenther@suse.de>
25221
25222         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
25223         (verify_stmts): Dispatch to gimple/type verification code.
25224         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
25225         issue with call argument types.
25226
25227 2009-04-27  Michael Matz  <matz@suse.de>
25228
25229         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
25230         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
25231         to above.
25232
25233 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
25234             Eric Botcazou  <ebotcazou@adacore.com>
25235
25236         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
25237         a label's basic block.
25238         (mark_target_live_regs): Tidy and rework obsolete comments.
25239         Change back DF problem to LIVE.  If a label starts a basic block,
25240         assume that all registers that used to be live then still are.
25241         (init_resource_info): If a label starts a basic block, set its
25242         BLOCK_FOR_INSN accordingly.
25243         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
25244
25245 2009-04-27  Richard Guenther  <rguenther@suse.de>
25246
25247         * tree-flow-inline.h (function_ann): Remove.
25248         (get_function_ann): Likewise.
25249         * tree-dfa.c (create_function_ann): Remove.
25250         * tree-flow.h (struct static_var_ann_d): Remove.
25251         (struct function_ann_d): Likewise.
25252         (union tree_ann_d): Remove fdecl member.
25253         (function_ann_t): Remove.
25254         (function_ann, get_function_ann, create_function_ann): Remove
25255         declarations.
25256
25257 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
25258
25259         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
25260
25261 2009-04-27  Jan Hubicka  <jh@suse.cz>
25262
25263         * ipa-pure-const.c (struct funct_state_d): New fields
25264         state_previously_known, looping_previously_known; remove
25265         state_set_in_source.
25266         (analyze_function): Use new fields.
25267         (propagate): Avoid assumption that state_set_in_source imply
25268         nonlooping.
25269
25270         * tree-ssa-loop-niter.c (finite_loop_p): New function.
25271         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
25272         * cfgloop.h (finite_loop_p): Declare.
25273
25274 2009-04-26  Michael Matz  <matz@suse.de>
25275
25276         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
25277
25278 2009-04-26  Michael Matz  <matz@suse.de>
25279
25280         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
25281         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
25282         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
25283         pass_mark_used_blocks): Remove.
25284         * tree-optimize.c (pass_free_datastructures,
25285         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
25286         * passes.c (init_optimization_passes): Don't call
25287         pass_mark_used_blocks, remove dead code.
25288
25289 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
25290
25291         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
25292         * tree-ssa-live.h (register_ssa_partition): Likewise.
25293
25294 2009-04-26  Michael Matz  <matz@suse.de>
25295
25296         Expand from SSA.
25297         * builtins.c (fold_builtin_next_arg): Handle SSA names.
25298         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
25299         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
25300         SSA names.
25301         (compare_pairs): Swap cost comparison.
25302         (coalesce_ssa_name): Don't use change_partition_var.
25303         * tree-nrv.c (struct nrv_data): Add modified member.
25304         (finalize_nrv_r): Set it.
25305         (tree_nrv): Use it to update statements.
25306         (pass_nrv): Require PROP_ssa.
25307         * tree-mudflap.c (mf_decl_cache_locals,
25308         mf_build_check_statement_for): Use make_rename_temp.
25309         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
25310         * alias.c (find_base_decl): Handle SSA names.
25311         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
25312         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
25313         * rtl.h (set_reg_attrs_for_parm): Declare.
25314         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
25315         to "optimized", remove unused locals at finish.
25316         (execute_free_datastructures): Make global, call
25317         delete_tree_cfg_annotations.
25318         (execute_free_cfg_annotations): Don't call
25319         delete_tree_cfg_annotations.
25320
25321         * ssaexpand.h: New file.
25322         * expr.c (toplevel): Include ssaexpand.h.
25323         (expand_assignment): Handle SSA names the same as register variables.
25324         (expand_expr_real_1): Expand SSA names.
25325         * cfgexpand.c (toplevel): Include ssaexpand.h.
25326         (SA): New global variable.
25327         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
25328         (SSAVAR): New macro.
25329         (set_rtl): New helper function.
25330         (add_stack_var): Deal with SSA names, use set_rtl.
25331         (expand_one_stack_var_at): Likewise.
25332         (expand_one_stack_var): Deal with SSA names.
25333         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
25334         before unique numbers.
25335         (expand_stack_vars): Use set_rtl.
25336         (expand_one_var): Accept SSA names, add asserts for them, feed them
25337         to above subroutines.
25338         (expand_used_vars): Expand all partitions (without default defs),
25339         then only the local decls (ignoring those expanded already).
25340         (expand_gimple_cond): Remove edges when jumpif() expands an
25341         unconditional jump.
25342         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
25343         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
25344         SSA name.
25345         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
25346         members of SA; deal with PARM_DECL partitions here; expand
25347         all PHI nodes, free tree datastructures and SA.  Commit instructions
25348         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
25349         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
25350         info and statements at start, collect garbage at finish.
25351         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
25352         (VAR_ANN_PARTITION) Remove.
25353         (change_partition_var): Don't declare.
25354         (partition_to_var): Always return SSA names.
25355         (var_to_partition): Only accept SSA names.
25356         (register_ssa_partition): Only check argument.
25357         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
25358         member.
25359         (delete_var_map): Don't free it.
25360         (var_union): Only accept SSA names, simplify.
25361         (partition_view_init): Mark only useful SSA names as used.
25362         (partition_view_fini): Only deal with SSA names.
25363         (change_partition_var): Remove.
25364         (dump_var_map): Use ssa_name instead of partition_to_var member.
25365         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
25366         basic blocks.
25367         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
25368         (struct _elim_graph): New member const_dests; nodes member vector of
25369         ints.
25370         (set_location_for_edge): New static helper.
25371         (create_temp): Remove.
25372         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
25373         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
25374         (new_elim_graph): Allocate const_dests member.
25375         (clean_elim_graph): Truncate const_dests member.
25376         (delete_elim_graph): Free const_dests member.
25377         (elim_graph_size): Adapt to new type of nodes member.
25378         (elim_graph_add_node): Likewise.
25379         (eliminate_name): Likewise.
25380         (eliminate_build): Don't take basic block argument, deal only with
25381         partition numbers, not variables.
25382         (get_temp_reg): New static helper.
25383         (elim_create): Use it, deal with RTL temporaries instead of trees.
25384         (eliminate_phi): Adjust all calls to new signature.
25385         (assign_vars, replace_use_variable, replace_def_variable): Remove.
25386         (rewrite_trees): Only do checking.
25387         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
25388         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
25389         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
25390         contains_tree_r, MAX_STMTS_IN_LATCH,
25391         process_single_block_loop_latch, analyze_edges_for_bb,
25392         perform_edge_inserts): Remove.
25393         (expand_phi_nodes): New global function.
25394         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
25395         functions, initialize new parameter, remember partitions having a
25396         default def.
25397         (finish_out_of_ssa): New global function.
25398         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
25399         don't reset in_ssa_p here, don't disable TER when mudflap.
25400         (pass_del_ssa): Remove.
25401         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
25402         partition members.
25403         (execute_free_datastructures): Declare.
25404         * Makefile.in (SSAEXPAND_H): New variable.
25405         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
25406         * basic-block.h (commit_one_edge_insertion): Declare.
25407         * passes.c (init_optimization_passes): Move pass_nrv and
25408         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
25409         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
25410         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
25411         (redirect_branch_edge): Deal with super block when expanding, split
25412         out jump patching itself into ...
25413         (patch_jump_insn): ... here, new static helper.
25414
25415 2009-04-26  Michael Matz  <matz@suse.de>
25416
25417         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
25418         beyond num_ssa_names.
25419         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
25420         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
25421
25422 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
25423
25424         PR inline-asm/39543
25425         * fwprop.c (forward_propagate_asm): New function.
25426         (forward_propagate_and_simplify): Propagate also into __asm, if it
25427         doesn't increase the number of referenced registers.
25428
25429         PR c/39889
25430         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
25431
25432 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
25433
25434         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
25435         note_nonlocal_vla_type for nonlocal VLAs.
25436         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
25437         contains_remapped_vars, remap_vla_decls): New functions.
25438         (convert_nonlocal_reference_stmt): If not optimizing, call
25439         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
25440         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
25441         if it wasn't found in var_map.
25442         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
25443         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
25444         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
25445         declare_vars.
25446         * gimplify.c (nonlocal_vlas): New variable.
25447         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
25448         referenced VLAs.
25449         (gimplify_body): Create and destroy nonlocal_vlas.
25450
25451         * dwarf2out.c (loc_descr_plus_const): New function.
25452         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
25453         mem_loc_descriptor, loc_descriptor_from_tree_1,
25454         descr_info_loc, gen_variable_die): Use it.
25455
25456         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
25457         !TREE_STATIC VAR_DECLs.
25458         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
25459         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
25460         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
25461         DECL_BY_REFERENCE is valid.
25462         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
25463         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
25464         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
25465         Copy DECL_BY_REFERENCE.
25466         (struct nesting_copy_body_data): New type.
25467         (nesting_copy_decl): New function.
25468         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
25469         if they have variable length.
25470
25471 2009-04-26  Michael Matz  <matz@suse.de>
25472
25473         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
25474         mark new temporaries for renaming.
25475
25476 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
25477
25478         PR c/39581
25479         * c-decl.c (global_bindings_p): Return negative value.
25480         (c_variable_size): New.  Based on variable_size from
25481         stor-layout.c.
25482         (grokdeclarator): Call c_variable_size not variable_size.
25483
25484 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
25485
25486         * config/i386/i386.c (print_operand) ['z']: Fix typo.
25487
25488 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
25489
25490         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
25491         Redefine it to just use mingw/include.
25492         (ASM_SPEC): Rules for -m32 and -m64.
25493         (LINK_SPEC): Use Likewise.
25494         (SPEC_32): New define.
25495         (SPEC_64): Likewise.
25496         (SUB_LINK_SPEC): Likewise.
25497         (MULTILIB_DEFAULTS): New define.
25498         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
25499         Add multilib options.
25500         (MULTILIB_DIRNAMES): Likewise.
25501         (MULTILIB_OSDIRNAMES): Likewise.
25502         (LIBGCC): Likewise.
25503         (INSTALL_LIBGCC): Likewise.
25504
25505 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
25506
25507         PR c/39556
25508         * c-tree.h (enum c_inline_static_type): New.
25509         (record_inline_static): Declare.
25510         * c-decl.c (struct c_inline_static, c_inline_statics,
25511         record_inline_static, check_inline_statics): New.
25512         (pop_file_scope): Call check_inline_statics.
25513         (start_decl): Call record_inline_static instead of pedwarning
25514         directly for static in inline function.
25515         * c-typeck.c (build_external_ref): Call record_inline_static
25516         instead of pedwarning directly for static referenced in inline
25517         function.
25518
25519 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
25520
25521         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
25522         not new but only being rescanned.
25523         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
25524         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
25525         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
25526         record_set_info, compute_set, grealloc): Remove.
25527         (recompute_all_luids): New function.
25528         (gcse_main): Don't compute sets, and don't do related memory
25529         allocations/free-ing.  If something changed before the end of the
25530         pass, update LUIDs using recompute_all_luids.
25531         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
25532         (free_gcse_mem): Don't free it either.
25533         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
25534         Use the df insn LUIDs.
25535         (load_killed_in_block): Likewise.
25536         (compute_hash_table_work): Don't compute reg_set_in_block.
25537         (compute_transp): Use DF_REG_DEF_CHAINs.
25538         (local_cprop_pass): Don't use compute_sets and related functions.
25539         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
25540         Use get_max_uid() instead of max_cuid.
25541         (insert_insn_end_basic_block, pre_insert_copy_insn,
25542         update_ld_motion_stores): Don't try to
25543         keep reg_set tables up to date.
25544         (pre_insert_copies): Use df insn LUIDs.
25545         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
25546         (reg_set_info): Don't use extra bitmap argument.
25547         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
25548         information to compute regs_set_in_block.
25549         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
25550         (bypass_jumps): Don't use compute_sets and friends.
25551
25552 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25553
25554         PR testsuite/39710
25555         * opts.c (undocumented_msg): Do not leave blank even with
25556         ENABLE_CHECKING.
25557
25558 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
25559
25560         * c-decl.c (build_enumerator): Allow values folding to integer
25561         constants but not integer constant expressions with a pedwarn if
25562         pedantic.
25563
25564 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
25565
25566         PR c/39582
25567         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
25568         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
25569         type is an integer constant.
25570
25571 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
25572
25573         PR target/39897
25574         * config/i386/i386.c (print_operand) ['z']: Revert handling of
25575         HImode operands.
25576
25577 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
25578
25579         PR c/39564
25580         * c-decl.c (grokdeclarator): Diagnose declarations of functions
25581         with variably modified return type and no storage class
25582         specifiers, except for the case of nested functions.  Distinguish
25583         extern declarations of functions with variably modified return
25584         types from those of objects with variably modified types.
25585
25586 2009-04-25  Jan Hubicka  <jh@suse.cz>
25587
25588         * tree.c (list_equal_p): New function.
25589         * tree.h (list_equal_p): Declare.
25590         * coretypes.h (edge_def, edge, const_edge, basic_block_def
25591         basic_block_def, basic_block, const_basic_block): New.
25592         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
25593         (redirect_eh_edge): New function.
25594         (make_eh_edge_update_phi): EH edges are not abnormal.
25595         * except.c: Include tree-flow.h.
25596         (list_match): New function.
25597         (eh_region_replaceable_by_p): New function.
25598         (replace_region): New function.
25599         (hash_type_list): New function.
25600         (hash_eh_region): New function.
25601         (eh_regions_equal_p): New function.
25602         (merge_peers): New function.
25603         (remove_unreachable_regions): Verify EH tree when checking;
25604         merge peers.
25605         (copy_eh_region_1): New function.
25606         (copy_eh_region): New function.
25607         (push_reachable_handler): New function.
25608         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
25609         regions without label but with live RESX.
25610         * except.h (redirect_eh_edge_to_label): New.
25611         * tree-flow.h (redirect_eh_edge): New.
25612         * coretypes.h (edge_def, edge, const_edge, basic_block_def
25613         basic_block_def, basic_block, const_basic_block): Remove.
25614         * Makefile.in (except.o): Add dependency on tree-flow.h
25615         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
25616         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
25617         Remove.
25618
25619 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
25620
25621         PR bootstrap/39645
25622         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
25623         on the destination of memcpy.
25624
25625 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
25626
25627         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
25628         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
25629         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
25630
25631 2009-04-25  Jan Hubicka  <jh@suse.cz>
25632
25633         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
25634         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
25635         to be reached by different label than left.
25636         (update_eh_edges): Update comment; remove edge_to_remove if possible
25637         and return true if suceeded.
25638         (cleanup_empty_eh): Accept sharing map; handle shared regions.
25639         (cleanup_eh): Compute sharing map.
25640         * except.c (remove_eh_handler_and_replace): Add argument if we should
25641         update regions.
25642         (remove_unreachable_regions): Update for label sharing.
25643         (label_to_region_map): Likewise.
25644         (get_next_region_sharing_label): New function.
25645         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
25646         prev_try pointers.
25647         (remove_eh_handler): Update.
25648         (remove_eh_region_and_replace_by_outer_of): New function.
25649         * except.h (struct eh_region): Add next_region_sharing_label.
25650         (remove_eh_region_and_replace_by_outer_of,
25651         get_next_region_sharing_label): Declare.
25652         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
25653
25654 2009-04-25  Jan Hubicka  <jh@suse.cz>
25655
25656         * tree-cfg.c (split_critical_edges): Split also edges where we can't
25657         insert code even if they are not critical.
25658
25659 2009-04-25  Jan Hubicka  <jh@suse.cz>
25660
25661         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
25662         (gimple_can_remove_branch_p): EH edges won't remove branch by
25663         redirection.
25664         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
25665         updating of non-abnormal EH edges.
25666         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
25667         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
25668         (split_critical_edges): Split also edges where emitting code on them
25669         will lead to splitting later.
25670
25671 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
25672             H.J. Lu  <hongjiu.lu@intel.com>
25673
25674         PR target/39590
25675         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
25676         the configured assembler supports fildq and fistpq mnemonics.
25677         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
25678         * configure: Regenerated.
25679         * config.in: Ditto.
25680
25681         * config/i386/i386.c (print_operand): Handle 'Z'.
25682         ['z']: Remove handling of special fild/fist suffixes.
25683         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
25684         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
25685         suffix of fild insn.
25686         (*floatsi<mode>2_vector_mixed): Ditto.
25687         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
25688         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
25689         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
25690         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
25691         * config/i386/gas.h (GAS_MNEMONICS): Remove.
25692
25693 2009-04-25  Ben Elliston  <bje@au.ibm.com>
25694
25695         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
25696         the source of a set operation.
25697
25698 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
25699
25700         * target.h (struct gcc_target): Add case_values_threshold field.
25701         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
25702         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
25703         * targhooks.c (default_case_values_threshold): New function.
25704         * targhooks.h (default_case_values_threshold): Declare function.
25705         * stmt.c (expand_case): Use case_values_threshold target hook.
25706         * expr.h (case_values_threshold): Remove declartation.
25707         * expr.c (case_values_threshold): Remove function.
25708         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
25709
25710         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
25711         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
25712         (avr_case_values_threshold): Declare as static.
25713         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
25714
25715         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
25716         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
25717         (mn10300_case_values_threshold): New function.
25718
25719 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
25720
25721         * ira.c (setup_cover_and_important_classes): Add enum cast.
25722
25723 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
25724
25725         * genpreds.c (write_enum_constraint_num): Output definition of
25726         CONSTRAINT_NUM_DEFINED_P macro.
25727         * ira.c (setup_cover_and_important_classes): Use
25728         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
25729
25730 2009-04-24  DJ Delorie  <dj@redhat.com>
25731
25732         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
25733         __SH2A_SINGLE_ONLY__ also.
25734
25735 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
25736
25737         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
25738         (movdf_internal): Ditto.
25739         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
25740         SFmode and DFmode constants.
25741         (ia64_print_operand): Add 'G' format for printing
25742         floating point constants.
25743
25744 2009-04-24  Richard Guenther  <rguenther@suse.de>
25745
25746         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
25747         from unsigned additions.
25748
25749 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
25750
25751         * c-typeck.c (set_init_index): Allow array designators that are
25752         not integer constant expressions with a pedwarn if pedantic.
25753
25754 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
25755
25756         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
25757         zero if no overlap in nonzero bits between the operands.
25758
25759 2009-04-24  Ian Lance Taylor  <iant@google.com>
25760
25761         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
25762         (record_dead_and_set_regs): Likewise.
25763         * df.h (struct df_mw_hardreg): Change flags field to int.
25764         (struct df_base_ref): Likewise.
25765         (struct df): Change changeable_flags field to int.
25766         * df-scan.c (df_defs_record): Change clobber_flags to int.
25767         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
25768         constants rather than #define macros.
25769         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
25770         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
25771         (enum dwarf_calling_convention): Likewise.
25772         (enum dwarf_line_number_x_ops): Likewise.
25773         (enum dwarf_call_frame_info): Likewise.
25774         (enum dwarf_source_language): Likewise.
25775         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
25776         (add_calling_convention_attribute): Likewise.
25777         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
25778         (combine_comparisons): Change compcode to int.  Add cast to enum type.
25779         * genrecog.c (maybe_both_true_2): Change c to int.
25780         (write_switch): Likewise.  Add cast to enum type.
25781         * gimplify.c (gimplify_omp_for): Handle return values from
25782         gimplify_expr using MIN rather than bitwise or.
25783         (gimplify_expr): Add cast to enum type.
25784         * ipa-prop.c (update_jump_functions_after_inlining): Change
25785         IPA_BOTTOM to IPA_JF_UNKNOWN.
25786         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
25787         Add casts to enum type.
25788         (setup_cover_and_important_classes): Change cl to int.  Add casts
25789         to enum type.
25790         (setup_class_translate): Change cl and mode to int.
25791         (ira_init_once): Change mode to int.
25792         (free_register_move_costs): Likewise.
25793         (setup_prohibited_mode_move_regs): Add casts to enum type.
25794         * langhooks.c (add_builtin_function_common): Rework assertion that
25795         value fits bitfield.
25796         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
25797         * omega.c (omega_do_elimination): Avoid math on enum types.
25798         * optabs.c (expand_vec_shift_expr): Remove casts to int.
25799         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
25800         int local to handle integral_argment value.
25801         * regmove.c (try_auto_increment): Change PUT_MODE to
25802         PUT_REG_NOTE_KIND.
25803         * reload.c (push_secondary_reload): Add casts to enum type.
25804         (secondary_reload_class, find_valid_class): Likewise.
25805         * reload1.c (emit_input_reload_insns): Likewise.
25806         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
25807         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
25808         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
25809         constant.
25810         * tree.c (build_common_builtin_nodes): Add casts to enum type.
25811         * tree-complex.c (complex_lattice_t): Typedef to int rather than
25812         enum type.
25813         (expand_complex_libcall): Add casts to enum type.
25814         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
25815         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
25816         with ERROR_MARK, not NUM_TREE_CODES.
25817         (vect_create_epilog_for_reduction): Likewise.
25818         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
25819         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
25820         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
25821         enum machine_mode.
25822         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
25823         vect_unused_in_loop.  Change 0 to loop_vect.
25824         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
25825         * var-tracking.c (get_init_value): Change return type to enum
25826         var_init_status.
25827         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
25828         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
25829         arm_fp_model.
25830         (arm_override_options): Add casts to enum type.
25831         (arm_emit_tls_decoration): Likewise.
25832         * config/i386/i386.c (ix86_function_specific_restore): Add casts
25833         to enum type.
25834         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
25835         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
25836         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
25837         enum type.
25838         * config/s390/s390.c (code_for_builtin_64): Change to array of
25839         enum insn_code.
25840         (code_for_builtin_31): Likewise.
25841         (s390_expand_builtin): Change code_for_builtin to enum insn_code
25842         const *.
25843         * config/sparc/sparc.c (sparc_override_options): Change value
25844         field in struct code_model to enum cmodel.  In initializer change
25845         0 to NULL and add cast to enum type.
25846
25847         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
25848         Change all callers.  Issue a -Wc++-compat warning using
25849         lhs_origtype if necessary.
25850         (convert_for_assignment): Issue -Wc++-compat warnings about
25851         invalid conversions to enum type on assignment.
25852         * c-common.h (build_modify_expr): Update declaration.
25853
25854 2009-04-24  Nick Clifton  <nickc@redhat.com>
25855
25856         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
25857         (function_arg_advance): Likewise.
25858         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
25859         5th alternative.
25860
25861 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
25862
25863         * config/s390/constraints.md ('I', 'J'): Fix condition.
25864
25865 2009-04-24  Diego Novillo  <dnovillo@google.com>
25866
25867         * gengtype-parse.c (parse_error): Add newline after message.
25868
25869 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
25870
25871         * config/i386/sse.md (avxmodesuffixs): Removed.
25872         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
25873         (*avx_pinsr<ssevecsize>): This.
25874
25875 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
25876
25877         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
25878         follow chains of regs with a single definition, and allow expressions
25879         that are function_invariant_p.
25880         (simple_rhs_p): Allow expressions that are function_invariant_p.
25881
25882 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
25883
25884         PR middle-end/39867
25885         * fold-const.c (fold_cond_expr_with_comparison): When folding
25886         > and >= to MAX, make sure the MAX uses the same type as the
25887         comparison's operands.
25888
25889 2009-04-24  Nick Clifton  <nickc@redhat.com>
25890
25891         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
25892         addressing for DImode accesses.
25893         (frv_print_operand_address): Handle PLUS case.
25894         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
25895
25896 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
25897
25898         PR rtl-optimization/39794
25899         * alias.c (canon_true_dependence): Add x_addr argument.
25900         * rtl.h (canon_true_dependence): Adjust prototype.
25901         * cse.c (check_dependence): Adjust canon_true_dependence callers.
25902         * cselib.c (cselib_invalidate_mem): Likewise.
25903         * gcse.c (compute_transp): Likewise.
25904         * dse.c (scan_reads_nospill): Likewise.
25905         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
25906         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
25907         canon_base_addr of the group, plus optional offset.
25908         (struct group_info): Rename canon_base_mem to
25909         canon_base_addr.
25910         (get_group_info): Set canon_base_addr to canon_rtx of base, not
25911         canon_rtx of base_mem.
25912
25913 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
25914
25915         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
25916         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
25917
25918 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25919
25920         * config/spu/spu-builtins.h: Delete file.
25921
25922         * config/spu/spu.h (enum spu_builtin_type): Move here from
25923         spu-builtins.h.
25924         (struct spu_builtin_description): Likewise.  Add GTY marker.
25925         Do not use enum spu_function_code or enum insn_code.
25926         (spu_builtins): Add extern declaration.
25927
25928         * config/spu/spu.c: Do not include "spu-builtins.h".
25929         (enum spu_function_code, enum spu_builtin_type_index,
25930         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
25931         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
25932         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
25933         unsigned_V2DI_type_node): Move here from spu-builtins.h.
25934         (spu_builtin_types): Make static.  Add GTY marker.
25935         (spu_builtins): Add extern declaration with GTY marker.
25936         Include "gt-spu.h".
25937
25938         * config/spu/spu-c.c: Do not include "spu-builtins.h".
25939         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
25940         Check programmatically whether all parameters are scalar.
25941
25942         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
25943
25944 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
25945
25946         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
25947         assignment from the constructor either if the target is volatile.
25948
25949 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
25950
25951         * config/arm/arm.md (insv): Do not share operands[0].
25952
25953 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
25954
25955         * config/vxlib-tls.c (active_tls_threads): Delete.
25956         (delete_hook_installed): New.
25957         (tls_delete_hook): Don't delete the delete hook.
25958         (tls_destructor): Delete it here.
25959         (__gthread_set_specific): Adjust installing the delete hook.
25960         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
25961         __gthread_leave_tsd_dtor_context.
25962
25963 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
25964
25965         * c-format.c (gcc_tdiag_char_table): Add support for %E.
25966
25967 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
25968
25969         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
25970         enum type.
25971         (alpha_rtx_costs): Ditto.
25972         (emit_unlikely_jump): Use add_reg_note.
25973         (emit_frame_store_1): Ditto.
25974         (alpha_expand_prologue): Ditto.
25975         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
25976         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
25977
25978 2009-04-23  Nick Clifton  <nickc@redhat.com>
25979
25980         * config/v850/v850.md (epilogue): Remove suppressed code.
25981         (return): Rename to return_simple and remove test of frame size.
25982         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
25983         to gen_return_simple.
25984
25985 2009-04-22  Jing Yu  <jingyu@google.com>
25986
25987         PR testsuite/39781
25988         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
25989
25990 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
25991
25992         PR C/31499
25993         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
25994         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
25995         value is a VECTOR_CST, the element type is the element type of the
25996         vector.
25997
25998 2009-04-22  DJ Delorie  <dj@redhat.com>
25999
26000         * config/m32c/m32c.h: Update GTY annotations to new syntax.
26001
26002 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
26003
26004         * alias.c (find_base_term): Move around LO_SUM case, so that
26005         CONST falls through into PLUS/MINUS handling.
26006
26007         PR c/39855
26008         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
26009         into 0, use omit_one_operand.
26010
26011 2009-04-23  Ben Elliston  <bje@au.ibm.com>
26012
26013         * config/rs6000/linux-unwind.h (get_regs): Remove type
26014         puns. Change the type of `pc' to an array of unsigned ints and
26015         update all users.  Constify frame24.
26016
26017 2009-04-22  DJ Delorie  <dj@redhat.com>
26018
26019         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
26020         declarations before code.
26021         (current_function_special_page_vector): Likewise.
26022         (m32c_expand_insv): Silence a warning.
26023
26024 2009-04-21  Taras Glek  <tglek@mozilla.com>
26025
26026         * alias.c: Update GTY annotations to new syntax.
26027         * basic-block.h: Likewise.
26028         * bitmap.h: Likewise.
26029         * c-common.h: Likewise.
26030         * c-decl.c: Likewise.
26031         * c-parser.c: Likewise.
26032         * c-pragma.c: Likewise.
26033         * c-tree.h: Likewise.
26034         * cfgloop.h: Likewise.
26035         * cgraph.h: Likewise.
26036         * config/alpha/alpha.c: Likewise.
26037         * config/arm/arm.h: Likewise.
26038         * config/avr/avr.h: Likewise.
26039         * config/bfin/bfin.c: Likewise.
26040         * config/cris/cris.c: Likewise.
26041         * config/darwin.c: Likewise.
26042         * config/frv/frv.c: Likewise.
26043         * config/i386/i386.c: Likewise.
26044         * config/i386/i386.h: Likewise.
26045         * config/i386/winnt.c: Likewise.
26046         * config/ia64/ia64.h: Likewise.
26047         * config/iq2000/iq2000.c: Likewise.
26048         * config/mips/mips.c: Likewise.
26049         * config/mmix/mmix.h: Likewise.
26050         * config/pa/pa.c: Likewise.
26051         * config/pa/pa.h: Likewise.
26052         * config/rs6000/rs6000.c: Likewise.
26053         * config/s390/s390.c: Likewise.
26054         * config/sparc/sparc.c: Likewise.
26055         * config/xtensa/xtensa.c: Likewise.
26056         * cselib.h: Likewise.
26057         * dbxout.c: Likewise.
26058         * dwarf2out.c: Likewise.
26059         * except.c: Likewise.
26060         * except.h: Likewise.
26061         * fixed-value.h: Likewise.
26062         * function.c: Likewise.
26063         * function.h: Likewise.
26064         * gimple.h: Likewise.
26065         * integrate.c: Likewise.
26066         * optabs.c: Likewise.
26067         * output.h: Likewise.
26068         * real.h: Likewise.
26069         * rtl.h: Likewise.
26070         * stringpool.c: Likewise.
26071         * tree-data-ref.c: Likewise.
26072         * tree-flow.h: Likewise.
26073         * tree-scalar-evolution.c: Likewise.
26074         * tree-ssa-address.c: Likewise.
26075         * tree-ssa-alias.h: Likewise.
26076         * tree-ssa-operands.h: Likewise.
26077         * tree.c: Likewise.
26078         * tree.h: Likewise.
26079         * varasm.c: Likewise.
26080         * varray.h: Likewise.
26081         * vec.h: Likewise.
26082         * coretypes.h: Do not define GTY macro if it is already defined.
26083         * doc/gty.texi: Update GTY documentation to new syntax.
26084         * gengtype-lex.l: Enforce attribute-like syntax for GTY
26085         annotations on structs.
26086         * gengtype-parse.c: Likewise.
26087
26088 2009-04-22  Mark Heffernan  <meheff@google.com>
26089
26090         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
26091
26092 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
26093
26094         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
26095         where appropriate.
26096
26097 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
26098
26099         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
26100         the same as a PLUS without a shift.  Increase the cost of a
26101         CONST_INT in MULT.
26102
26103 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26104
26105         * Makefile.in: Update dependencies.
26106         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
26107         * errors.h: Remove bogus comment about compatibility.
26108         (warning): Update declaration.
26109         * genautomata.c: Update all calls to warning.
26110         * gimple.c: Do not include errors.h. Include toplev.h.
26111         * tree-ssa-structalias.c: Do not include errors.h.
26112         * omega.c: Likewise.
26113         * tree-ssa-reassoc.c: Likewise.
26114         * config/spu/spu-c.c: Likewise.
26115         * config/spu/t-spu-elf: Update dependencies.
26116
26117 2009-04-22  Richard Guenther  <rguenther@suse.de>
26118
26119         PR tree-optimization/39824
26120         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
26121         make sure the types are compatible.
26122
26123 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26124
26125         PR c++/14875
26126         * c-common.c (c_parse_error): Take a token_flags parameter.
26127         Use token_type for the token type instead.
26128         Pass token_flags to cpp_type2name.
26129         * c-common.h (c_parse_error): Update declaration.
26130         * c-parser.c (c_parser_error): Pass 0 as token flags.
26131
26132 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
26133
26134         PR rtl-optimization/39580
26135         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
26136
26137 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26138
26139         * function.c (expand_function_end): Do not emit a jump to the "naked"
26140         return label for fall-through returns.
26141         * except.c (sjlj_emit_function_exit): Always place the call to the
26142         unregister function at the location installed by expand_function_end.
26143
26144 2009-04-22  Richard Guenther  <rguenther@suse.de>
26145
26146         PR tree-optimization/39845
26147         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
26148         (gen_inbound_check): Likewise.
26149
26150 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
26151
26152         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
26153         padding for PPC.
26154         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
26155         * config/vxlib.c (__gthread_once): Add race guard for PPC.
26156
26157 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
26158
26159         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
26160         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
26161         shift counts to avoid out-of-bounds array accesses.
26162
26163 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
26164
26165         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
26166         (Pmode): Move above.
26167
26168 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
26169
26170         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
26171         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
26172         GET_CODE macro.  Use IN_RANGE macro where appropriate.
26173         * config/alpha/alpha.h: Ditto.
26174         * config/alpha/alpha.md: Ditto.
26175         * config/alpha/constraints.md: Ditto.
26176         * config/alpha/predicates.md: Ditto.
26177
26178 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
26179
26180         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
26181         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26182         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26183         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26184         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26185         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26186         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26187         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26188         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26189         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26190         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26191         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26192         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26193         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26194         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26195         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26196         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26197         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26198         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26199         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26200         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26201         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26202         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26203         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26204         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26205         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26206         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
26207
26208 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
26209
26210         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
26211         references from comments.
26212         * cfgbuild.c (count_basic_blocks): Delete.
26213         (find_basic_blocks_1): Delete.
26214         (find_basic_blocks): Delete.
26215         * except.c (finish_eh_generation): Make static.  Move comment from
26216         except.h here.  Remove find_basic_blocks references from comments.
26217         * except.h (finish_eh_generation): Delete.
26218         * basic-block.h (find_basic_blocks): Delete.
26219         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
26220
26221 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26222
26223         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
26224         (sdbout_parms):  Likewise.
26225
26226 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
26227
26228         * config/sh/sh.c (prepare_cbranch_operands): Use
26229         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
26230         (expand_cbranchdi4): Likewise.
26231         (from_compare): Add cast to enum type.
26232         (expand_cbranchsi4): Use add_reg_note.
26233         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
26234         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
26235         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
26236         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
26237         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
26238         instead of CODE_FOR_nothing.
26239         (cbranchdi4): Likewise.  Fix the order of arguments for
26240         gen_rtx_fmt_ee.
26241         (push_fpscr): Use add_reg_note.
26242         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
26243         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
26244
26245 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
26246
26247         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
26248         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
26249         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
26250         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
26251         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
26252         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
26253         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
26254         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
26255         config/alpha/x-vms, config/arc/t-arc,
26256         config/arm/README-interworking, config/arm/arm-c.c,
26257         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
26258         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
26259         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
26260         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
26261         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
26262         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
26263         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
26264         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
26265         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
26266         config/cris/t-elfmulti, config/crx/t-crx,
26267         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
26268         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
26269         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
26270         config/h8300/t-h8300, config/i386/athlon.md,
26271         config/i386/darwin-libgcc.10.4.ver,
26272         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
26273         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
26274         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
26275         config/i386/t-linux64, config/i386/t-nwld,
26276         config/i386/t-rtems-i386, config/i386/t-sol2-10,
26277         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
26278         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
26279         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
26280         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
26281         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
26282         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
26283         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
26284         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
26285         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
26286         config/m68k/t-uclinux, config/mcore/t-mcore,
26287         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
26288         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
26289         config/mips/crtn.asm, config/mips/irix-crti.asm,
26290         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
26291         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
26292         config/mips/mips-fixed.md, config/mips/sb1.md,
26293         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
26294         config/mips/t-iris6, config/mips/t-isa3264,
26295         config/mips/t-libgcc-mips16, config/mips/t-linux64,
26296         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
26297         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
26298         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
26299         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
26300         config/mn10300/t-linux, config/mn10300/t-mn10300,
26301         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
26302         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
26303         config/picochip/libgccExtras/clzsi2.asm,
26304         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
26305         config/rs6000/darwin-libgcc.10.4.ver,
26306         config/rs6000/darwin-libgcc.10.5.ver,
26307         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
26308         config/rs6000/t-aix43, config/rs6000/t-aix52,
26309         config/rs6000/t-darwin, config/rs6000/t-fprules,
26310         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
26311         config/rs6000/t-lynx, config/rs6000/t-netbsd,
26312         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
26313         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
26314         config/rs6000/t-rtems, config/rs6000/t-spe,
26315         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
26316         config/score/t-score-elf, config/sh/divcost-analysis,
26317         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
26318         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
26319         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
26320         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
26321         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
26322         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
26323         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
26324         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
26325         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
26326         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
26327         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
26328         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
26329         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
26330         limitx.h, version.c, xcoff.h: Add copyright and license notices.
26331         * config/h8300/genmova.sh: Include copyright and license notices
26332         in generated output.
26333         * config/h8300/mova.md: Regenerate.
26334         * doc/install.texi2html: Include word "Copyright" in copyright
26335         notice and use name "Free Software Foundation, Inc.".
26336         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
26337         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
26338         ChangeLog-2007, ChangeLog-2008: Correct dates.
26339
26340 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
26341
26342         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
26343         NE_EXPR operations as well.
26344         * c-parser.c (c_parser_condition): Do not set location information on
26345         the condition.
26346         (c_parser_conditional_expression): Likewise.
26347         (c_parser_binary_expression): Set location information on operators.
26348         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
26349         TRUTH_NOT_EXPR has been folded.
26350         * fold-const.c (fold_truth_not_expr): Copy location information from
26351         the incoming expression to the outgoing one.
26352         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
26353         recursive calls on the LHS of the operator but pass that of the
26354         operator to recursive calls on the RHS of the operator.  Set it
26355         on the COND_EXPR.
26356         (shortcut_cond_expr): Set the locus of the operator on the second
26357         COND_EXPR and that of the expression on the first in degenerate cases.
26358         Pass the locus of the expression to calls to shortcut_cond_r.
26359         Set the locus of the 'then' block on the associated jump, if any.
26360         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
26361         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
26362         expression to call to gimplify_boolean_expr.
26363
26364 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
26365
26366         * config.gcc: Add additional configuration for
26367         i686-w64-mingw* and x86_64-w64-mingw* triplet.
26368         * config/i386/mingw-w64.h: New mingw-w64 specific header.
26369         (CPP_SPEC): Redefine for allowing -municode option.
26370         (STARTFILE_SPEC): Likewise.
26371         * config/i386/t-mingw-w64: New.
26372         * config/i386/mingw-w64.opt: New.
26373         (municode): Add new target option.
26374         * doc/invoke.texi (municode): Add documentation for new option.
26375
26376 2009-04-21  Ian Lance Taylor  <iant@google.com>
26377
26378         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
26379         Correct test for number of arguments.
26380         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
26381
26382 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
26383
26384         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
26385         argument of emit_library_call.
26386
26387 2009-04-21  Richard Guenther  <rguenther@suse.de>
26388
26389         PR middle-end/39829
26390         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
26391         inside VIEW_CONVERT_EXPRs.
26392
26393 2009-04-21  Martin Jambor  <mjambor@suse.cz>
26394
26395         * tree-switch-conversion.c (build_constructors): Split a long line.
26396         (constructor_contains_same_values_p): New function.
26397         (build_one_array): Create assigns of constants if possible, do not
26398         call mark_sym_for_renaming, call update_stmt.
26399         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
26400         make_rename_temp.  Do not call mark_symbols_for_renaming, call
26401         update_stmt.
26402         (gen_def_assigns): Do not call mark_symbols_for_renaming or
26403         find_new_referenced_vars, call update_stmt.
26404         (gen_inbound_check): Use create_tmp_var and create ssa names manually
26405         instead of calling make_rename_temp.  Do not call
26406         find_new_referenced_vars or mark_symbols_for_renaming, call
26407         update_stmt.
26408
26409 2009-04-21  Richard Guenther  <rguenther@suse.de>
26410
26411         PR tree-optimization/39827
26412         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
26413         (tree_ssa_phiprop): Pass the correct array size.
26414
26415 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
26416
26417         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
26418
26419 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26420
26421         PR 16202
26422         * c-typeck.c (lvalue_p): Move declaration ...
26423         * c-common.h (lvalue_p): ... to here.
26424         * c-common.c (candidate_equal_p): New.
26425         (add_tlist): Use it.
26426         (merge_tlist): Use it.
26427         (warn_for_collisions_1): Likewise.
26428         (warning_candidate_p): Accept more candidates.
26429         (verify_tree): A warning candidate can be an expression. Use
26430         candidate_equal_p.
26431
26432 2009-04-21  Ben Elliston  <bje@au.ibm.com>
26433
26434         PR target/5267
26435         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
26436         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
26437         options.  Remove -mcall-solaris documentation.
26438
26439 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
26440
26441         PR c++/13358
26442         * doc/invoke.texi (-Wlong-long): Update description.
26443         * c-lex (interpret_integer): Only warn if there was no previous
26444         overflow and -Wlong-long is enabled.
26445         * c-decl.c (declspecs_add_type): Drop redundant flags.
26446         * c.opt (Wlong-long): Init to -1.
26447         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
26448         and front-end warn_long_long. Wlong-long only depends on other
26449         flags if it is uninitialized.
26450         * c-parser.c (disable_extension_diagnostics): warn_long_long is
26451         the same for CPP and FE.
26452         (restore_extension_diagnostics): Likewise.
26453
26454 2009-04-20  Ian Lance Taylor  <iant@google.com>
26455
26456         Fix enum conversions which are invalid in C++:
26457         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
26458         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
26459         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
26460         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
26461         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
26462         (dbxout_parms): Likewise.
26463         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
26464         (df_clear_flags): Likewise.
26465         * df-problems.c (df_rd_bb_local_compute_process_def): Change
26466         top_flag parameter to int.
26467         (df_chain_create_bb_process_use): Likewise.
26468         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
26469         Remove cast.
26470         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
26471         (df_ref_create_structure, df_def_record_1): Likewise.
26472         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
26473         (df_notes_rescan): Change 0 to VOIDmode in function call.
26474         (df_get_call_refs, df_insn_refs_collect): Likewise.
26475         (df_bb_regs_collect): Likewise.
26476         (df_entry_block_defs_collect): Likewise.
26477         (df_exit_block_uses_collect): Likewise.
26478         * df.h: Update declarations.
26479         * double-int.c (double_int_divmod): Add cast to enum type.
26480         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
26481         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
26482         (based_loc_descr): Likewise.
26483         (loc_descriptor_from_tree_1): Change first_op and second_op to
26484         enum dwarf_location_atom.  Add cast to enum type.
26485         * expmed.c (init_expmed): Change 0 to SET in function call.
26486         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
26487         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
26488         (do_store_flag): Likewise.
26489         * fixed-value.h (struct fixed_value): Change mode to enum
26490         machine_mode.
26491         * function.c (assign_parms): Change 0 to VOIDmode in function call.
26492         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
26493         function call.
26494         (insert_insn_decl, insert_decl, insert_state): Likewise.
26495         (automata_list_finish): Likewise.
26496         * genrecog.c (process_define_predicate): Add cast to enum type.
26497         * gensupport.c (init_predicate_table): Add cast to enum type.
26498         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
26499         function call.
26500         (gimple_build_call_1, gimple_build_label): Likewise.
26501         (gimple_build_goto, gimple_build_asm_1): Likewise.
26502         (gimple_build_switch_1, gimple_build_cdt): Likewise.
26503         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
26504         (enum fallback): Rename from enum fallback_t.
26505         (fallback_t): Typedef as int.
26506         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
26507         GSI_SAME_STMT in function call.
26508         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
26509         enum type.
26510         (setup_reg_class_relations): Likewise.
26511         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
26512         (setup_prohibited_class_mode_regs): Add cast to enum type.
26513         (setup_prohibited_mode_move_regs): Likewise.
26514         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
26515         (record_address_regs): Change i to enum reg_class.
26516         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
26517         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
26518         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
26519         (GET_MODE_2XWIDER_MODE): Likewise.
26520         (GET_CLASS_NARROWEST_MODE): Likewise.
26521         * omp-low.c (expand_omp_for): Add cast to enum type.
26522         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
26523         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
26524         * postreload.c (reload_cse_simplify_operands): Change rclass local
26525         to enum reg_class.
26526         * predict.c (combine_predictions_for_insn): Change best_predictor
26527         and predictor to enum br_predictor.
26528         (combine_predictions_for_bb): Likewise.
26529         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
26530         use SET_PREDICT_EXPR_OUTCOME.
26531         * real.c (real_arithmetic): Change icode to code in function call.
26532         * reginfo.c (init_move_cost): Add casts to enum type.
26533         (init_reg_sets_1, init_fake_stack_mems): Likewise.
26534         * regmove.c (regclass_compatible_p): Change class0 and class1 to
26535         enum reg_class.
26536         * reload.c (find_valid_class): Add casts to enum type.
26537         (push_reload): Change 0 to NO_REGS in function call.
26538         (find_reloads): Change this_alternative to array of enum
26539         reg_class.  Remove some now-unnecessary casts.
26540         (make_memloc): Change 0 to VOIDmode in function call.
26541         * reload1.c (reload): Change 0 to VOIDmode in function call.
26542         (eliminate_regs_1, elimination_effects): Likewise.
26543         (eliminate_regs_in_insn): Likewise.
26544         (emit_input_reload_insns): Add cast to enum type.
26545         (delete_output_reload): Change 0 to VOIDmode in function call.
26546         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
26547         to enum type in function call.
26548         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
26549         (SET_PREDICT_EXPR_OUTCOME): Define.
26550         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
26551         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
26552         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
26553         (dump_function): Likewise.
26554         * tree-dump.h: Update declarations.
26555         * tree-pass.h: Update declarations.
26556         * varasm.c (assemble_integer): Change mclass to enum mode_class.
26557         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
26558         enum type.
26559         (arm_rtx_costs_1): Correct parenthesization.
26560         (arm_rtx_costs): Add casts to enum type.
26561         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
26562         (vfp_emit_fstmd): Use add_rg_note.
26563         (emit_multi_reg_push, emit_sfm): Likewise.
26564         (thumb_set_frame_pointer): Likewise.
26565         (arm_expand_prologue): Likewise.
26566         (arm_regno_class): Change return type to enum reg_class.
26567         (thumb1_expand_prologue): Use add_reg_note.
26568         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
26569         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
26570         in function call.
26571         * config/arm/gentune.sh: Add cast to enum type.
26572         * config/arm/arm-tune.md: Rebuild.
26573         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
26574         (ix86_split_fp_branch, predict_jump): Likewise.
26575         (ix86_expand_multi_arg_builtin): Change sub_code from enum
26576         insn_code to enum rtx_code.
26577         (ix86_builtin_vectorized_function): Add cast to enum type.
26578         * config/i386/i386.md (truncdfsf2): Change slot to enum
26579         ix86_stack_slot.
26580         (truncxf<mode>2, isinf<mode>2): Likewise.
26581         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
26582         enum type.
26583         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
26584         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
26585         (insert_bundle_state): Change 1 to INSERT in function call.
26586         (ia64_add_bundle_selector_before): Likewise.
26587         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
26588         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
26589         (restore_stack_nonlocal): Likewise.
26590         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
26591         function call.
26592         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
26593         function call.
26594         (mips_rtx_costs): Likewise.
26595         (mips_override_options): Add casts to enum type.
26596         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
26597         in function call.
26598         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
26599         (store_reg, set_reg_plus_d): Likewise.
26600         (hppa_expand_prologue, hppa_profile_hook): Likewise.
26601         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
26602         cast to enum type.
26603         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
26604         function call.
26605         (emit_unlikely_jump): Use add_reg_note.
26606         (rs6000_emit_allocate_stack): Likewise.
26607         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
26608         (output_toc): Change 1 to INSERT in function call.
26609         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
26610         (rs6000_initialize_trampoline): Likewise.
26611         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
26612         function call.
26613         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
26614         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
26615         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
26616         (save_gprs): Use add_reg_note.
26617         (s390_emit_prologue): Likewise.
26618         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
26619         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
26620         (sparc_fold_builtin): Add cast to enum type.
26621         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
26622         enum insn_code.
26623         (spu_expand_prologue): Use add_reg_note.
26624         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
26625
26626 2009-04-20  Ian Lance Taylor  <iant@google.com>
26627
26628         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
26629         (c_parser_postfix_expression_after_primary): Get VEC for list of
26630         arguments.  Get original types of arguments.  Call
26631         build_function_call_vec.
26632         (cached_expr_list_1, cached_expr_list_2): New static variables.
26633         (c_parser_expr_list): Change return type to VEC *.  Add
26634         p_orig_types parameter.  Change all callers.
26635         (c_parser_release_expr): New static function.
26636         (c_parser_vec_to_tree_list): New static function.
26637         * c-typeck.c (build_function_call): Rewrite to build a VEC and
26638         call build_function_call_vec.
26639         (build_function_call_vec): New function, based on old
26640         build_function_call.
26641         (convert_arguments): Remove nargs and argarray parameters.  Change
26642         values to a VEC.  Add origtypes parameter.
26643         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
26644         (convert_for_assignment): Add origtype parameter.  Change all
26645         callers.  If warn_cxx_compat, check for conversion to an enum
26646         type when calling a function.
26647         (store_init_value): Add origtype parameter.  Change all callers.
26648         (digest_init): Likewise.
26649         (struct init_node): Add origtype field.
26650         (add_pending_init): Add origtype parameter.  Change all callers.
26651         (output_init_element): Likewise.
26652         (output_pending_init_elements): Pass origtype from init_node to
26653         output_init_element.
26654         (process_init_element): Pass origtype from c_expr to
26655         output_init_element.
26656         (c_finish_return): Add origtype parameter.  Change all callers.
26657         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
26658         caller.
26659         (sync_resolve_params): Likewise.
26660         (sync_resolve_return): Change params to first_param.  Change caller.
26661         (resolve_overloaded_builtins): Change params to VEC *.  Change
26662         callers.  Save first parameter around call to build_function_call_vec.
26663         * c-decl.c (finish_decl): Add origtype parameter.  Change all
26664         callers.  Call build_function_call_vec rather than
26665         build_function_call for cleanup.
26666         * c-tree.h: Update declarations.
26667         * c-common.h: Update declarations.
26668         * stub-objc.c (objc_rewrite_function_call): Change parameter from
26669         params to first_param.
26670         * target.h (struct gcc_target): Change resolve_overloaded_builtin
26671         params parameter from tree to void *.
26672         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
26673         Change arglist parameter to have type void *, and to be a pointer
26674         to a VEC.
26675         * config/rs6000/rs6000-protos.h
26676         (altivec_resolve_overloaded_builtin): Update declaration.
26677         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
26678         fnargs parameter to have type void *, and to be a pointer to a
26679         VEC.  Call build_function_call_vec instead of
26680         build_function_call.
26681         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
26682
26683 2009-04-20  Joey Ye  <joey.ye@intel.com>
26684             Xuepeng Guo  <xuepeng.guo@intel.com>
26685             H.J. Lu  <hongjiu.lu@intel.com>
26686
26687         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
26688
26689         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
26690         (IX86_LEA_PRIORITY): Likewise.
26691         (distance_non_agu_define): New function.
26692         (distance_agu_use): Likewise.
26693         (ix86_lea_for_add_ok): Likewise.
26694         (ix86_dep_by_shift_count): Likewise.
26695
26696         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
26697         should split for LEA.
26698
26699         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
26700         function.
26701         (ix86_dep_by_shift_count): Likewise.
26702
26703 2009-04-20  Richard Guenther  <rguenther@suse.de>
26704
26705         * expr.c (handled_component_p): Move ...
26706         * tree.h (handled_component_p): ... here.
26707         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
26708         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
26709         and REALPART_EXPR to be in one group.
26710
26711 2009-04-20  Richard Guenther  <rguenther@suse.de>
26712
26713         * basic-block.h (get_all_dominated_blocks): Declare.
26714         * dominance.c (get_all_dominated_blocks): New function.
26715         * tree-cfg.c (get_all_dominated_blocks): Remove.
26716         (remove_edge_and_dominated_blocks): Adjust.
26717         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
26718         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
26719         instead of recursing.
26720
26721 2009-04-20  Doug Kwan  <dougkwan@google.com>
26722
26723         * cgraph.h (cgraph_node_ptr): New type for vector functions.
26724         (struct cgraph_node_set_def): New type.
26725         (cgraph_node_set) New type. Also declare vector functions.
26726         (struct cgraph_node_set_element_def): New type.
26727         (cgraph_node_set_element): Ditto.
26728         (cgraph_node_set_iterator): New iterator type.
26729         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
26730         cgraph_node_set_remove, dump_cgraph_node_set,
26731         debug_cgraph_node_set): New prototypes.
26732         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
26733         cgraph_node_set_size): New inlines.
26734         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
26735         including cgraph.h.
26736         (struct ipa_opt_pass): Add struct cgraph_node_set_def
26737         argument to function 'write_summary'.
26738         * ipa.c: Include ggc.h.
26739         (hash_cgraph_node_set_element,
26740         eq_cgraph_node_set_element, cgraph_node_set_new,
26741         cgraph_node_set_add, cgraph_node_set_remove,
26742         cgraph_node_set_find, dump_cgraph_node_set,
26743         debug_cgraph_node_set): New functions.
26744         * Makefile.in (ipa.o): Add dependency on GGC_H.
26745
26746 2009-04-20  Ira Rosen  <irar@il.ibm.com>
26747
26748         PR tree-optimization/39675
26749         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
26750         check of the return code of vect_schedule_slp. Check that
26751         stmt_vec_info still exists for the statement, before checking its
26752         vectorization type.
26753
26754 2009-04-20  Michael Matz  <matz@suse.de>
26755
26756         * Makefile.in (generated_files): Take out $(simple_generated_c).
26757
26758 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
26759
26760         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
26761         (UINTPTR_TYPE):  Likewise.
26762
26763 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
26764
26765         PR c/37481
26766         * c-typeck.c (digest_init): Check for initializing an array with a
26767         string literal.
26768
26769 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
26770
26771         PR c/19771
26772         * c-semantics.c (pop_stmt_list): Propagate
26773         STATEMENT_LIST_HAS_LABEL to parent statement list.
26774
26775 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
26776
26777         * config/mips/mips.h (mips_tune_attr): New macro.
26778         * config/mips/mips.md (cpu): Use it.
26779
26780 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
26781
26782         PR c/38243
26783         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
26784         declaring a tag.
26785
26786 2009-04-19  Diego Novillo  <dnovillo@google.com>
26787
26788         * toplev.c (compile_file): Move call to coverage_finish ...
26789         * cgraphunit.c (ipa_passes): ... here.
26790         Call cgraph_process_new_functions.
26791         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
26792         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
26793
26794 2009-04-19  Jan Hubicka  <jh@suse.cz>
26795
26796         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
26797         cfun.
26798         (dump_cgraph_node): Dump can throw external flag.
26799         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
26800
26801 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26802
26803         PR c/32061
26804         PR c++/36954
26805         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
26806         * common.opt (Wlogical-op): Move from here...
26807         * c.opt (Wlogical-op): ... to here.
26808         * c-typeck.c (parser_build_binary_op): Update call to
26809         warn_logical_operator.
26810         * c-opts.c (c_common_post_options): Enable warn_logical_op with
26811         extra_warnings.
26812         * c-common.c (warn_logical_op): Update.
26813         * c-common.h (warn_logical_op): Update declaration.
26814
26815 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
26816
26817         * tree.c (protected_set_expr_location): Fix formatting.
26818
26819 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
26820
26821         PR c/27676
26822         * c-typeck.c (readonly_warning): new.
26823         (build_unary_op, build_modify_expr): Use readonly_warning for
26824         storing into something readonly but not const-qualified.
26825
26826 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
26827
26828         PR c/22367
26829         * c-typeck.c (build_unary_op): Check for taking address of
26830         expression of type void.
26831
26832 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
26833
26834         PR c/35210
26835         * c-typeck.c (build_function_call): Check for calling a function
26836         with qualified void return types.  Call require_complete_type when
26837         generating a trap.
26838
26839 2009-04-18  Jan Hubicka  <jh@suse.cz>
26840
26841         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
26842         Set nothrow flag.
26843         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
26844         can_throw_external flag.
26845         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
26846         * ipa-pure-const.c (ignore_edge): New function.
26847         (propagate): Compute order for NOTHROW computation; set NOTHROWs
26848         only over can_throw_external edges.
26849         (local_pure_const): Add nothrow flag.
26850         * ipa-utils.c (searchc): Add ignore_edge callback.
26851         (ipa_utils_reduced_inorder): Add ignore_edge callback.
26852         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
26853         (set_nothrow_function_flags): Update cgraph.
26854         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
26855
26856 2009-04-18  Richard Guenther  <rguenther@suse.de>
26857
26858         PR middle-end/39804
26859         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
26860         (fold_stmt): ... this and ...
26861         (fold_stmt_inplace): ... this.
26862         (fold_stmt_1): Fold references in calls and asms.
26863         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
26864
26865 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
26866
26867         * tree-vrp.c (ssa_name_nonzero_p): Remove.
26868         * tree.h: Remove the prototype for ssa_name_nonzero_p.
26869
26870 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
26871
26872         * tree.c (function_args_count): Remove.
26873         * tree.h: Remove the prototype for function_args_count.
26874
26875 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
26876
26877         * tree-iterator.c (expr_only): Remove.
26878         * tree.h: Remove the prototype for expr_only.
26879
26880 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
26881
26882         * reginfo.c (cannot_change_mode_set_regs): Remove.
26883         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
26884
26885 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
26886
26887         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
26888         whether operands 0 and 1 overlaps.
26889
26890 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26891
26892         PR middle-end/36902
26893         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
26894         pointer. Use warning_at instead of warning.
26895         (search_for_addr_array): Likewise.
26896         (check_array_bounds): Likewise.
26897         (check_all_array_refs): Check that the incoming edge is not in the
26898         list of edges to be removed.
26899         (check_all_array_refs): Avoid the temporal pointer.
26900         (vrp_visit_cond_stmt): Fix typo.
26901         (simplify_switch_using_ranges): Handle the case where the switch
26902         index is an integer constant.
26903
26904 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
26905
26906         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
26907
26908 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
26909
26910         * doc/extend.texi, doc/invoke.texi: Fix typos.
26911
26912 2009-04-17  Cary Coutant  <ccoutant@google.com>
26913
26914         * tree-flow-inline.h (get_lineno): Fix inverted test.
26915
26916 2009-04-17  Diego Novillo  <dnovillo@google.com>
26917
26918         * tree-ssa-pre.c (create_expression_by_pieces): Remove
26919         assertion for AVAIL_OUT.
26920
26921 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
26922
26923         PR target/38627
26924         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
26925         * config/sh/linux-atomic.asm: Likewise.
26926
26927 2009-04-17  Diego Novillo  <dnovillo@google.com>
26928
26929         * except.c (debug_eh_tree): New.
26930         (struct eh_region, struct eh_status): Move ...
26931         * except.h: ... here.
26932         (add_type_for_runtime): Declare extern.
26933         (lookup_type_for_runtime): Likewise.
26934         (debug_eh_tree): Declare.
26935         * Makefile.in (GTFILES): List except.h before except.c
26936
26937 2009-04-17  Diego Novillo  <dnovillo@google.com>
26938
26939         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
26940         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
26941         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
26942         (find_vars_r): ... here.
26943         * tree-flow.h (find_referenced_vars_in): Declare.
26944         * tree-ssa-pre.c (create_expression_by_pieces): Assert
26945         that AVAIL_OUT exists for BLOCK.
26946         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
26947         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
26948         (tree-parloops.o): Likewise.
26949
26950 2009-04-17  Simon Baldwin  <simonb@google.com>
26951
26952         * toplev.c (default_tree_printer): Add handling for %E format.
26953
26954 2009-04-17  Diego Novillo  <dnovillo@google.com>
26955
26956         * tree-pretty-print.c (dump_generic_node): Add break after
26957         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
26958         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
26959         FUNCTION_TYPE together.  Call print_struct_decl when printing
26960         structures and TDF_SLIM is not given.
26961         (print_struct_decl): Fix logic for detecting recursion.
26962
26963 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
26964
26965         PR 31567
26966         * gcc.c (create_at_file): New.
26967         (compile_input_file_p): New.
26968         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
26969         * main.c (main): Update call to toplev_main.
26970         * toplev.c (toplev_main): Change signature. Call expandargv.
26971         * toplev.h (toplev_main): Change signature.
26972
26973 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
26974
26975         * dwarf2out.c (field_byte_offset): Use the type size as the field size
26976         if the latter is not constant.
26977
26978 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
26979
26980         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
26981
26982 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
26983
26984         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
26985         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
26986
26987 2009-04-17  Richard Guenther  <rguenther@suse.de>
26988
26989         * tree-ssa-structalias.c (get_constraint_for_component_ref):
26990         Handle component references view-converting an invariant address.
26991
26992 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
26993
26994         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
26995         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
26996         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
26997         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
26998         Use @deftypevr rather than @deftypevar.
26999
27000 2009-04-17  Richard Guenther  <rguenther@suse.de>
27001
27002         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
27003         (get_prop_source_stmt): Likewise.
27004         (can_propagate_from): Likewise.
27005
27006 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
27007
27008         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
27009         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
27010         (--with-multilib-list): Add default value.
27011         * configure: Regenerate.
27012         * Makefile.in (TM_ENDIAN_CONFIG): Define.
27013         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
27014         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
27015         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
27016         Don't add default cpu to multilib list unnecessarily, but do enable
27017         the relevant compiler option..
27018         Add support for --with-multilib-list=<blank> and
27019         --with-multilib-list=!<somelib> to supress unwanted multilibs.
27020         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
27021         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
27022         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
27023         TM_MULTILIB_CONFIG.
27024         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
27025         (MULTILIB_OSDIRNAMES): New variable.
27026         * config/sh/t-1e: Delete file.
27027         * config/sh/t-mlib-sh1: Delete file.
27028         * config/sh/t-mlib-sh2: Delete file.
27029         * config/sh/t-mlib-sh2a: Delete file.
27030         * config/sh/t-mlib-sh2a-nofpu: Delete file.
27031         * config/sh/t-mlib-sh2a-single: Delete file.
27032         * config/sh/t-mlib-sh2a-single-only: Delete file.
27033         * config/sh/t-mlib-sh2e: Delete file.
27034         * config/sh/t-mlib-sh3e: Delete file.
27035         * config/sh/t-mlib-sh4: Delete file.
27036         * config/sh/t-mlib-sh4-nofpu: Delete file.
27037         * config/sh/t-mlib-sh4-single: Delete file.
27038         * config/sh/t-mlib-sh4-single-only: Delete file.
27039         * config/sh/t-mlib-sh4a: Delete file.
27040         * config/sh/t-mlib-sh4a-nofpu: Delete file.
27041         * config/sh/t-mlib-sh4a-single: Delete file.
27042         * config/sh/t-mlib-sh4a-single-only: Delete file.
27043         * config/sh/t-mlib-sh4al: Delete file.
27044         * config/sh/t-mlib-sh5-32media: Delete file.
27045         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
27046         * config/sh/t-mlib-sh5-64media: Delete file.
27047         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
27048         * config/sh/t-mlib-sh5-compact: Delete file.
27049         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
27050         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
27051         * doc/install.texi (Options specification): Add
27052         --with-multilib-list and --with-endian.
27053
27054 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
27055
27056         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
27057         REVISION_c.
27058         (OBJS-common): Add plugin-version.o.
27059         (plugin-version.o): New.
27060         * gcc-plugin.h (plugin_gcc_version): New.
27061         (plugin_default_version_check): New.
27062         (plugin_init_func, plugin_init): Add version argument.
27063         * plugin-version.c: New.
27064         * plugin.c (str_plugin_gcc_version_name): New.
27065         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
27066         pass it to the init function.
27067         (plugin_default_version_check): New.
27068
27069 2009-04-17  Richard Guenther  <rguenther@suse.de>
27070
27071         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
27072         for decl-vs-decl disambiguation.
27073
27074 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
27075
27076         * config/s390/s390.h (s390_tune_attr): New macro definition.
27077         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
27078
27079 2009-04-17  Richard Guenther  <rguenther@suse.de>
27080
27081         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
27082         (fold_stmt_r): Likewise.
27083         (maybe_fold_reference): New function.
27084         (fold_gimple_assign): Handle cases fold_stmt_r did.
27085         (fold_stmt): Do not use fold_stmt_r.
27086         (fold_stmt_inplace): Likewise.
27087
27088 2009-04-17  Richard Guenther  <rguenther@suse.de>
27089
27090         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
27091         (record_equivalences_from_stmt): Remove useless checks and
27092         simplifications.
27093         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
27094         the type is already suitable.
27095
27096 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
27097
27098         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
27099
27100 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
27101
27102         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
27103         (CMPtype): Define as __gcc_CMPtype.
27104
27105 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
27106
27107         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
27108         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
27109
27110 2009-04-17  Richard Guenther  <rguenther@suse.de>
27111
27112         PR tree-optimization/39746
27113         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
27114         special-casing for builtins and static variable use/def.
27115         (call_may_clobber_ref_p_1): Likewise.
27116
27117 2009-04-16  Ian Lance Taylor  <iant@google.com>
27118
27119         * df.h: Include "timevar.h".
27120         (struct df_problem): Change tv_id field to timevar_id_t.
27121         * tree-pass.h: Include "timevar.h".
27122         (struct opt_pass): Change tv_id field to timevar_id_t.
27123         * timevar.h (timevar_id_t): Define TV_NONE.
27124         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
27125         TV_NONE rather than tv_id != 0.
27126         (execute_one_pass): Likewise.
27127         * Makefile.in (DF_H): Add $(TIMEVAR_H).
27128         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
27129         dependencies to $(TREE_PASS_H).
27130         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
27131         to TV_NONE.
27132         (pass_branch_target_load_optimize2): Likewise.
27133         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
27134         (pass_outof_cfg_layout_mode): Likewise.
27135         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
27136         (pass_rebuild_cgraph_edges): Likewise.
27137         (pass_remove_cgraph_callee_edges): Likewise.
27138         * df-core.c (pass_df_initialize_opt): Likewise.
27139         (pass_df_initialize_no_opt): Likewise.
27140         (pass_df_finish): Likewise.
27141         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
27142         * except.c (pass_set_nothrow_function_flags): Likewise.
27143         (pass_convert_to_eh_region_ranges): Likewise.
27144         * final.c (pass_compute_alignments): Likewise.
27145         * function.c (pass_instantiate_virtual_regs): Likewise.
27146         (pass_init_function): Likewise.
27147         (pass_leaf_regs): Likewise.
27148         (pass_match_asm_constraints): Likewise.
27149         * gimple-low.c (pass_lower_cf): Likewise.
27150         (pass_mark_used_blocks): Likewise.
27151         * init-regs.c (pass_initialize_regs): Likewise.
27152         * integrate.c (pass_initial_value_sets): Likewise.
27153         * ira.c (pass_ira): Likewise.
27154         * jump.c (pass_cleanup_barriers): Likewise.
27155         * omp-low.c (pass_expand_omp): Likewise.
27156         (pass_lower_omp): Likewise.
27157         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
27158         * recog.c (pass_split_all_insns): Likewise.
27159         (pass_split_after_reload): Likewise.
27160         (pass_split_before_regstack): Likewise.
27161         (pass_split_before_sched2): Likewise.
27162         (pass_split_for_shorten_branches): Likewise.
27163         * reginfo.c (pass_reginfo_init): Likewise.
27164         (pass_subregs_of_mode_init): Likewise.
27165         (pass_subregs_of_mode_finish): Likewise.
27166         * passes.c (pass_postreload): Likewise.
27167         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
27168         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
27169         (pass_warn_function_return): Likewise.
27170         (pass_warn_function_noreturn): Likewise.
27171         * tree-complex.c (pass_lower_complex): Likewise.
27172         (pass_lower_complex_O0): Likewise.
27173         * tree-if-conv.c (pass_if_conversion): Likewise.
27174         * tree-into-ssa.c (pass_build_ssa): Likewise.
27175         * tree-mudflap.c (pass_mudflap_1): Likewise.
27176         (pass_mudflap_2): Likewise.
27177         * tree-nomudflap.c (pass_mudflap_1): Likewise.
27178         (pass_mudflap_2): Likewise.
27179         * tree-nrv.c (pass_return_slot): Likewise.
27180         * tree-object-size.c (pass_object_sizes): Likewise.
27181         * tree-optimize.c (pass_all_optimizations): Likewise.
27182         (pass_early_local_passes): Likewise.
27183         (pass_all_early_optimizations): Likewise.
27184         (pass_cleanup_cfg): Likewise.
27185         (pass_cleanup_cfg_post_optimizing): Likewise.
27186         (pass_free_datastructures): Likewise.
27187         (pass_free_cfg_annotations): Likewise.
27188         (pass_fixup_cfg): Likewise.
27189         (pass_init_datastructures): Likewise.
27190         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
27191         (pass_late_warn_uninitialized): Likewise.
27192         (pass_update_address_taken): Likewise.
27193         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
27194         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
27195         (pass_cse_sincos): Likewise.
27196         (pass_convert_to_rsqrt): Likewise.
27197         * tree-ssa-structalias.c (pass_build_alias): Likewise.
27198         * tree-stdarg.c (pass_stdarg): Likewise.
27199         * tree-tailcall.c (pass_tail_recursion): Likewise.
27200         (pass_tail_calls): Likewise.
27201         * tree-vect-generic.c (pass_lower_vector): Likewise.
27202         (pass_lower_vector_ssa): Likewise.
27203         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
27204
27205 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
27206
27207         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
27208         XLR entry.
27209         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
27210         Handle -march=xlr.
27211         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
27212         logical and signext.
27213
27214 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
27215
27216         PR target/39767
27217         * config/sh/predicates.md (arith_operand): Check if the operand
27218         of TRUNCATE is a REG.
27219
27220 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27221
27222         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
27223         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
27224
27225 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27226
27227         * tree-iterator.c (tsi_split_statement_list_after,
27228         tsi_split_statement_list_before): Remove.
27229         * tree-iterator.h: Remove the prototypes for
27230         tsi_split_statement_list_after and tsi_split_statement_list_before.
27231
27232 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27233
27234         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
27235         * tree-ssa-propagate.h: Remove the prototype for
27236         stmt_makes_single_load.
27237
27238 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27239
27240         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
27241         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
27242
27243 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27244
27245         * tree-iterator.c (EXPR_LAST_BODY): Remove.
27246
27247 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27248
27249         * except.c (eh_region_outer_p): Remove.
27250         * except.h: Remove the prototype for eh_region_outer_p.
27251
27252 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
27253
27254         * function.c (current_function_assembler_name): Remove.
27255         * function.h: Remove the prototype for
27256         current_function_assembler_name.
27257
27258 2009-04-16  Ian Lance Taylor  <iant@google.com>
27259
27260         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
27261         (add_reg_note): Call alloc_reg_note.
27262         * rtl.h (alloc_reg_note): Declare.
27263         * combine.c (try_combine): Use alloc_reg_note.
27264         (recog_for_combine, move_deaths): Likewise.
27265         (distribute_notes): Use alloc_reg_note and add_reg_note.
27266         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
27267         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
27268         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
27269
27270 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
27271
27272         PR rtl-optimization/39762
27273         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
27274         ira_may_move_out_cost): Add comments about way of their usage.
27275         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
27276
27277         * ira-conflicts.c (process_regs_for_copy): Use function
27278         ira_get_register_move_cost instead of global
27279         ira_register_move_cost.
27280
27281         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
27282         color_pass, move_spill_restore, update_curr_costs): Ditto.
27283
27284         * ira-lives.c (process_single_reg_class_operands): Ditto.
27285
27286         * ira-emit.c (emit_move_list): Ditto.
27287
27288         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
27289         (record_reg_classes): Ditto.  Use functions
27290         ira_get_register_move_cost and ira_get_may_move_cost instead of
27291         global vars ira_register_move_cost, ira_may_move_out_cost and
27292         ira_may_move_in_cost.
27293         (record_address_regs): Don't call ira_init_register_move_cost.
27294         Use function ira_get_may_move_cost instead of global
27295         ira_may_move_in_cost.
27296         (process_bb_node_for_hard_reg_moves): Use function
27297         ira_get_register_move_cost instead of global ira_register_move_cost.
27298         (ira_costs): Don't call ira_init_register_move_cost.
27299
27300 2009-04-16  Richard Guenther  <rguenther@suse.de>
27301
27302         * tree-cfg.c (verify_gimple_assign_binary):
27303         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
27304         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
27305         (create_general_new_stmt): Note that this function is broken.
27306
27307 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
27308
27309         * common.opt (fhelp): Add Var(help_flag).
27310         * gcc-plugin.h (plugin_info): Add help.
27311         * plugin.c (plugin_name_args): Add help.
27312         (register_plugin_info): Set plugin->help.
27313         (print_help_one_plugin): New.
27314         (print_plugins_help): New.
27315         * plugin.h (print_plugins_help): New.
27316         * toplev.c (toplev_main): Call print_plugins_help if needed.
27317
27318 2009-04-16  Richard Guenther  <rguenther@suse.de>
27319
27320         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
27321         (gimple_ior_addresses_taken_1): New function.
27322         (gimple_ior_addresses_taken): Likewise.
27323         * gimple.h (struct gimple_statement_with_ops_base): Remove
27324         addresses_taken member.
27325         (gimple_ior_addresses_taken): Declare.
27326         (gimple_addresses_taken, gimple_addresses_taken_ptr,
27327         gimple_set_addresses_taken): Remove.
27328         * ipa-reference.c (mark_address): New function.
27329         (scan_stmt_for_static_refs): Use it for marking addresses taken.
27330         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
27331         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
27332         (gimple_add_to_addresses_taken): Remove.
27333         (get_tmr_operands): Call mark_address_taken.
27334         (get_asm_expr_operands): Likewise.
27335         (get_expr_operands): Likewise.
27336         (build_ssa_operands): Do not clear the addresses_taken bitmap.
27337         (free_stmt_operands): Do not free it.
27338         * tree-ssa.c (delete_tree_ssa): Likewise.
27339         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
27340
27341 2009-04-16  Richard Guenther  <rguenther@suse.de>
27342
27343         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
27344         (walk_stmt_load_store_ops): Likewise.
27345         * gimple.c (get_base_loadstore): New function.
27346         (walk_stmt_load_store_addr_ops): Likewise.
27347         (walk_stmt_load_store_ops): Likewise.
27348         * ipa-pure-const.c (check_op): Simplify.
27349         (check_load, check_store): New functions.
27350         (check_stmt): Use walk_stmt_load_store_ops.
27351         * ipa-reference.c (mark_load): Adjust signature.
27352         (mark_store): Likewise.
27353         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
27354
27355 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
27356
27357         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
27358         (plugin_info): New.
27359         * opts.c (common_handle_option): Don't call print_version.
27360         * plugin.c (plugin_name_args): Add version.
27361         (register_plugin_info): New.
27362         (register_callback): Handle PLUGIN_INFO.
27363         (try_init_one_plugin): New.
27364         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
27365         if failed to init.
27366         (finalize_one_plugin): New.
27367         (finalize_plugins): New.
27368         (print_one_plugin): New.
27369         (print_plugins_versions): New.
27370         * plugin.h (print_plugins_versions): New.
27371         (finalize_plugins): New.
27372         * toplev.c (compile_file): Don't call initialize_plugins.
27373         (print_version): Call print_plugins_versions.
27374         (toplev_main): Call initialize_plugins. Print version if needed.
27375         Call finalize_plugins.
27376
27377 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
27378
27379         * common.opt (fversion): New.
27380         * gcc.c (print_version): New.
27381         (process_command): Don't print the version. Just set print_version.
27382         (main): Print version. Call subprocesses if print_version and
27383         verbose_flag are set.
27384         * opts.c (common_handle_option): Handle OPT_fversion.
27385
27386 2009-04-16  Richard Guenther  <rguenther@suse.de>
27387             Ira Rosen  <irar@il.ibm.com>
27388
27389         PR tree-optimization/39698
27390         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
27391         type of the reduction variable.  Only generate the def if
27392         it is needed.
27393
27394         * omp-low.c (expand_omp_for_generic): When converting to a pointer
27395         make sure to first convert to an integer of the same precision.
27396         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
27397         the type of the evolution correctly in computing the new
27398         induction variable base.
27399
27400 2009-04-16  Richard Guenther  <rguenther@suse.de>
27401
27402         PR middle-end/39625
27403         * tree-cfg.c (make_blocks): Split statements with to-be
27404         abnormal SSA names on the lhs.
27405
27406 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
27407
27408         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
27409         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
27410         * c-typeck.c (really_start_incremental_init): Likewise.
27411         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
27412         (TARGET_INITIALIZER): Remove it.
27413         * target.h (struct target): Remove vector_opaque_p.
27414         * tree.c (build_opaque_vector_type): New.
27415         * tree.h (TYPE_VECTOR_OPAQUE): New.
27416         (build_opaque_vector_type): Declare.
27417         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
27418         * config/rs6000/rs6000.c (build_opaque_vector_type,
27419         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
27420         (rs6000_init_builtins): Use build_opaque_vector_type for
27421         opaque_V4SI_type_node.
27422
27423 2009-04-15  Catherine Moore  <clm@codesourcery.com>
27424
27425         * debug.h (set_name):  Declare.
27426         * dwarf2out.c (dwarf2out_set_name): Declare.
27427         (dwarf2_debug_hooks): Add set_name.
27428         (find_AT_string): New.
27429         (add_AT_string): Call find_AT_string.
27430         (dwarf2out_set_name): New.
27431         * cp/decl.c (grokdeclarator): Call set_name.
27432         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
27433         * debug.c (do_nothing_debug_hooks):  Likewise.
27434         * dbxout.c (dbx_debug_hooks): Likewise.
27435         * sdbout.c (sdb_debug_hooks): Likewise.
27436
27437 2009-04-15  Michael Eager  <eager@eagercon.com>
27438
27439         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
27440         reg for single-precision FPU.
27441         * config/rs6000/rs6000.md (movsi_internal1): Only for
27442         !TARGET_SINGLE_FPU.
27443         (movsi_internal1_single): New. Add pattern to move SI values to/from
27444         single-precision FP regs.
27445
27446 2009-04-15  Richard Guenther  <rguenther@suse.de>
27447
27448         * omp-low.c (lower_rec_input_clauses): Build correct address
27449         expressions.
27450         (expand_omp_for_generic): Fix multiplication type.
27451         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
27452         (generate_memset_zero): Fix types.
27453         * tree-profile.c (prepare_instrumented_value): Correctly
27454         widen a pointer.
27455
27456 2009-04-15  Ian Lance Taylor  <iant@google.com>
27457
27458         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
27459         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
27460         for -Wall and for -Wc++-compat.
27461         (c_common_post_options): For C++, set warn_enum_compare if not
27462         already set.
27463         * c-tree.h (struct c_expr): Add field original_type.
27464         (build_external_ref): Update declaration.
27465         * c-parser.c (c_parser_braced_init): Set original_type.
27466         (c_parser_initelt): Likewise.
27467         (c_parser_expr_no_commas): Likewise.
27468         (c_parser_conditional_expression): Likewise.
27469         (c_parser_cast_expression): Likewise.
27470         (c_parser_unary_expression): Likewise.  Pull setting of
27471         original_code to top of function.
27472         (c_parser_sizeof_expression): Set original_type.
27473         (c_parser_alignof_expression): Likewise.
27474         (c_parser_postfix_expression): Likewise.  Pull setting of
27475         original_code to top of function.
27476         (c_parser_postfix_expression_after_paren_type): Set original_type.
27477         (c_parser_postfix_expression_after_primary): Likewise.
27478         (c_parser_expression): Likewise.
27479         * c-typeck.c (build_external_ref): Add type parameter.  Change all
27480         callers.
27481         (c_expr_sizeof_expr): Set original_type field.
27482         (parser_build_unary_op): Likewise.
27483         (parser_build_binary_op): Likewise.  Optionally warn about
27484         comparisons of enums of different types.
27485         (digest_init): Set original_type field.
27486         (really_start_incremental_init): Likewise.
27487         (push_init_level, pop_init_level): Likewise.
27488         * doc/invoke.texi (Warning Options): -Wenum-compare now
27489         supported in C.
27490
27491 2009-04-15  Richard Guenther  <rguenther@suse.de>
27492
27493         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
27494         out a necessary conversion.
27495         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
27496         names we didn't value number.
27497         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
27498
27499 2009-04-15  Richard Guenther  <rguenther@suse.de>
27500
27501         PR tree-optimization/39764
27502         * tree-ssa-ccp.c (get_value): Canonicalize value with
27503         canonicalize_float_value.
27504
27505 2009-04-15  Jan Hubicka  <jh@suse.cz>
27506
27507         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
27508         Wrong version of patch.
27509
27510 2009-04-15  Jan Hubicka  <jh@suse.cz>
27511
27512         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
27513
27514 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
27515
27516         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
27517         our distinct integral and vector types.
27518
27519 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
27520
27521         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
27522         * init.c (build_vtbl_address): Remove call to assemble_external.
27523
27524 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
27525
27526         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
27527         output for other floating point modes.
27528
27529 2009-04-14  Diego Novillo  <dnovillo@google.com>
27530
27531         * diagnostic.c (diagnostic_report_diagnostic): Do not
27532         warn about loaded plugins for DK_ERROR and DK_WARNING.
27533         * c-decl.c (declspecs_add_type): Move call to
27534         invoke_plugin_callbacks ...
27535         * c-parser.c (c_parser_declspecs): ... here.
27536         * plugin.c (dump_active_plugins): Tidy output.
27537
27538 2009-04-14  Diego Novillo  <dnovillo@google.com>
27539             Le-Chun Wu  <lcwu@google.com>
27540
27541         * configure.ac: Add --enable-plugin support.
27542         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
27543         * Makefile.in (PLUGIN_H): Define.
27544         Export ENABLE_PLUGIN and GMPINC to site.exp.
27545         Add PLUGINLIBS to link command.
27546         Add/modify dependencies for plugin.o and files including plugin.h.
27547         (plugin.o): New.
27548         * config.in: Regenerate.
27549
27550         * opts.c (common_handle_option): Handle OPT_fplugin_ and
27551         OPT_fplugin_arg_.
27552
27553 2009-04-14  Le-Chun Wu  <lcwu@google.com>
27554
27555         * tree-pass.h (register_one_dump_file): Add a prototype for
27556         register_one_dump_file.
27557         * toplev.c (compile_file): Call initialize_plugins.
27558         (do_compile): Call invoke_plugin_callbacks.
27559         (toplev_main): Call invoke_plugin_callbacks.
27560         * common.opt: Add -fplugin= and -fplugin-arg-.
27561         * gcc-plugin.h: New public header file for plugins to include.
27562         * plugin.c: New source file.
27563         * plugin.h: New internal header file.
27564         * passes.c (register_one_dump_file): Make it external.
27565
27566         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
27567
27568 2009-04-14  Diego Novillo  <dnovillo@google.com>
27569
27570         * doc/plugins.texi: New.
27571         * doc/gccint.texi: Add reference to Plugins chapter.
27572         * doc/invoke.texi: Document -fplugin and -fplugin-arg
27573         * diagnostic.c (diagnostic_report_diagnostic): Warn about
27574         loaded plugins, if any.
27575         * timevar.def (TV_PLUGIN_INIT): Define.
27576         (TV_PLUGIN_RUN): Define.
27577         * plugin.c: Include timevar.h
27578         (plugins_active_p): New.
27579         (dump_active_plugins): New.
27580         (debug_active_plugins): New.
27581
27582 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
27583
27584         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
27585         library paths.
27586         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
27587
27588 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
27589
27590         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
27591         the same as a minus without a shift.
27592
27593 2009-04-14  Nick Clifton  <nickc@redhat.com>
27594
27595         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
27596         comparisons with small integers will always produce a short
27597         branch.
27598
27599 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
27600
27601         Merge:
27602         2008-12-19  Diego Novillo  <dnovillo@google.com>
27603
27604         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
27605
27606 2009-04-14  Richard Guenther  <rguenther@suse.de>
27607
27608         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
27609         verification.
27610         (verify_gimple_assign_binary): Likewise.  Handle shifts and
27611         rotates correctly.
27612         (verify_gimple_phi): Print the mismatched argument position.
27613         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
27614         Fix types.
27615         (vect_update_init_of_dr): Likewise.
27616         * matrix-reorg.c (transform_access_sites): Do what the
27617         comment suggests.
27618         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
27619
27620 2009-04-13  Michael Eager  <eager@eagercon.com>
27621
27622         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
27623         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
27624         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
27625         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
27626         remove duplicate config
27627
27628 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
27629
27630         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
27631         file_name:line_number type locator of the call site.
27632
27633 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
27634
27635         * genautomata.c: Put blank after comma.
27636         (automaton_decls): New.
27637         (struct unit_usage): Add comments to member next.
27638         (store_alt_unit_usage): Keep the list ordered.
27639         (unit_present_on_list_p, equal_alternatives_p): New.
27640         (check_regexp_units_distribution): Check units distribution
27641         correctness correctly.
27642         (main): Don't write automata if error is found.  Return correct
27643         exit code.
27644
27645         * config/m68k/cf.md (cfv4_ds): Remove.
27646         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
27647         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
27648
27649         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
27650         power4-load-ext, power4-store, power4-store-update,
27651         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
27652         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
27653         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
27654         power4-sqrt, power4-isync): Modify reservation to make correct
27655         unit distribution to automata.
27656
27657         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
27658         power5-store-update, power5-two, power5-three, power5-lmul,
27659         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
27660
27661 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
27662
27663         * except.c (pass_set_nothrow_function_flags): Set name and add
27664         TODO_dump_func.
27665         (set_nothrow_function_flags): Mention in the dump file when
27666         changing a function to nothrow.
27667
27668 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
27669
27670         PR/39066
27671         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
27672         instead of unsigned long.
27673
27674 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27675
27676         * config/arm/arm.c (return_used_this_function): Remove.
27677         (arm_output_function_prologue): Remove use of
27678         return_used_this_function.
27679         (output_return_instruction): Replace use of
27680         return_used_this_function
27681         by cfun->machine->return_used_this_function.
27682         (arm_output_epilogue): Likewise.
27683         (arm_output_function_epilogue): Likewise.
27684         (thumb_unexpanded_epilogue): Likewise.
27685         * config/arm/arm.h (struct machine_function):
27686         New member return_used_this_function.
27687
27688 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
27689
27690         * doc/install.texi: Correct description of default directory for
27691         --with-gxx-include-dir.
27692
27693 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
27694
27695         * fold-const.c (build_range_check): Properly deal with enumeral and
27696         boolean base types.
27697
27698 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
27699
27700         * doc/invoke.texi (max_gcse_passes): Remove documentation.
27701         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
27702         * params.h (MAX_GCSE_PASSES): Remove.
27703         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
27704         in sequence.  Remove ability to run multiple passes.
27705         (bypass_jumps): Report run as third CPROP pass.
27706
27707 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
27708
27709         PR middle-end/39651
27710         * except.c (can_throw_external): Look at each insn in a SEQUENCE
27711         when deciding whether the whole SEQUENCE can throw.
27712
27713 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
27714
27715         PR target/39740
27716         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
27717         offseted label references.
27718
27719 2009-04-11  Jan Hubicka  <jh@suse.cz>
27720
27721         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
27722
27723 2009-04-11  Richard Guenther  <rguenther@suse.de>
27724
27725         PR middle-end/39732
27726         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
27727         return variables as TREE_ADDRESSABLE.
27728
27729 2009-04-11  Richard Guenther  <rguenther@suse.de>
27730
27731         PR tree-optimization/39713
27732         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
27733         reference trees have SSA_NAME operands.
27734
27735 2009-04-11  Richard Guenther  <rguenther@suse.de>
27736
27737         PR c/39712
27738         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
27739         address expressions.
27740
27741 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
27742
27743         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
27744         match changes in Cygwin 1.7
27745         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
27746         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
27747
27748 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
27749
27750         PR tree-optimization/39701
27751         * doc/invoke.texi (Optimization Options): Document change in
27752         meaning and initialization of -fdelete-null-pointer-checks.
27753
27754 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
27755
27756         PR middle-end/39701
27757         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
27758
27759         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
27760         here.
27761
27762         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
27763
27764 2009-04-10  Chao-ying Fu  <fu@mips.com>
27765
27766         * doc/tm.texi (Instruction Output): Document
27767         TARGET_ASM_FINAL_POSTSCAN_INSN.
27768         * target.h (final_postscan_insn): New field in asm_out.
27769         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
27770         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
27771         * final.c (final_scan_insn): Call
27772         targetm.asm_out.final_postscan_insn after outputting
27773         an asm macro and a normal instruction.
27774
27775         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
27776         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
27777         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
27778         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
27779         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
27780
27781 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
27782
27783         PR middle-end/39701
27784         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
27785         variables as non-NULL even with -fdelete-null-pointer-checks.
27786
27787 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
27788
27789         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
27790
27791 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
27792
27793         PR target/39678
27794         * config/i386/i386.c (classify_argument): Handle SCmode with
27795         (bit_offset % 64) != 0.
27796
27797 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
27798
27799         * doc/invoke.texi (Optimize Options): Add cross-reference to
27800         -Q --help=optimizers examples.
27801
27802 2009-04-10  Ben Elliston  <bje@au.ibm.com>
27803
27804         PR target/36800
27805         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
27806         regalign for the reg == fpr and TDmode case.
27807
27808 2009-04-09  David Ayers  <ayers@fsfe.org>
27809
27810         PR objc/29200
27811         * objc/objc-act.c (warn_with_method): Remove helper function.
27812         (check_duplicates): Call warning and inform directly.
27813         (really_start_method): Likewise.
27814
27815 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
27816
27817         * expmed.c (expand_divmod): Always use a comparison for a division
27818         by a large unsigned integer.
27819
27820         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
27821         for things others than variables or functions as nonzero.
27822
27823 2009-04-09  Nick Clifton  <nickc@redhat.com>
27824
27825         * unwind-compat.c: Change copyright header to refer to version
27826         3 of the GNU General Public License with version 3.1 of the
27827         GCC Runtime Library Exception and to point readers at the
27828         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
27829         * config/alpha/crtfastmath.c: Likewise.
27830         * config/alpha/linux-unwind.h: Likewise.
27831         * config/alpha/qrnnd.asm: Likewise.
27832         * config/alpha/vms-crt0-64.c: Likewise.
27833         * config/alpha/vms-crt0.c: Likewise.
27834         * config/alpha/vms-dwarf2.asm: Likewise.
27835         * config/alpha/vms-dwarf2eh.asm: Likewise.
27836         * config/alpha/vms-psxcrt0-64.c: Likewise.
27837         * config/alpha/vms-psxcrt0.c: Likewise.
27838         * config/alpha/vms_tramp.asm: Likewise.
27839         * config/arc/initfini.c: Likewise.
27840         * config/arc/lib1funcs.asm: Likewise.
27841         * config/arm/bpabi-v6m.S: Likewise.
27842         * config/arm/bpabi.S: Likewise.
27843         * config/arm/bpabi.c: Likewise.
27844         * config/arm/crti.asm: Likewise.
27845         * config/arm/crtn.asm: Likewise.
27846         * config/arm/ieee754-df.S: Likewise.
27847         * config/arm/ieee754-sf.S: Likewise.
27848         * config/arm/lib1funcs.asm: Likewise.
27849         * config/arm/libunwind.S: Likewise.
27850         * config/arm/linux-atomic.c: Likewise.
27851         * config/arm/mmintrin.h: Likewise.
27852         * config/arm/pr-support.c: Likewise.
27853         * config/arm/unaligned-funcs.c: Likewise.
27854         * config/arm/unwind-arm.c: Likewise.
27855         * config/arm/unwind-arm.h: Likewise.
27856         * config/avr/libgcc.S: Likewise.
27857         * config/bfin/crti.s: Likewise.
27858         * config/bfin/crtlibid.s: Likewise.
27859         * config/bfin/crtn.s: Likewise.
27860         * config/bfin/lib1funcs.asm: Likewise.
27861         * config/bfin/linux-unwind.h: Likewise.
27862         * config/cris/arit.c: Likewise.
27863         * config/cris/cris_abi_symbol.c: Likewise.
27864         * config/darwin-64.c: Likewise.
27865         * config/darwin-crt2.c: Likewise.
27866         * config/darwin-crt3.c: Likewise.
27867         * config/darwin.h: Likewise.
27868         * config/dbxelf.h: Likewise.
27869         * config/dfp-bit.c: Likewise.
27870         * config/dfp-bit.h: Likewise.
27871         * config/elfos.h: Likewise.
27872         * config/fixed-bit.c: Likewise.
27873         * config/fixed-bit.h: Likewise.
27874         * config/fp-bit.c: Likewise.
27875         * config/fp-bit.h: Likewise.
27876         * config/fr30/crti.asm: Likewise.
27877         * config/fr30/crtn.asm: Likewise.
27878         * config/fr30/lib1funcs.asm: Likewise.
27879         * config/freebsd-spec.h: Likewise.
27880         * config/frv/cmovd.c: Likewise.
27881         * config/frv/cmovh.c: Likewise.
27882         * config/frv/cmovw.c: Likewise.
27883         * config/frv/frvbegin.c: Likewise.
27884         * config/frv/frvend.c: Likewise.
27885         * config/frv/lib1funcs.asm: Likewise.
27886         * config/glibc-stdint.h: Likewise.
27887         * config/h8300/clzhi2.c: Likewise.
27888         * config/h8300/crti.asm: Likewise.
27889         * config/h8300/crtn.asm: Likewise.
27890         * config/h8300/ctzhi2.c: Likewise.
27891         * config/h8300/fixunssfsi.c: Likewise.
27892         * config/h8300/lib1funcs.asm: Likewise.
27893         * config/h8300/parityhi2.c: Likewise.
27894         * config/h8300/popcounthi2.c: Likewise.
27895         * config/i386/ammintrin.h: Likewise.
27896         * config/i386/att.h: Likewise.
27897         * config/i386/avxintrin.h: Likewise.
27898         * config/i386/biarch64.h: Likewise.
27899         * config/i386/bmmintrin.h: Likewise.
27900         * config/i386/cpuid.h: Likewise.
27901         * config/i386/cross-stdarg.h: Likewise.
27902         * config/i386/crtfastmath.c: Likewise.
27903         * config/i386/crtprec.c: Likewise.
27904         * config/i386/cygming-crtbegin.c: Likewise.
27905         * config/i386/cygming-crtend.c: Likewise.
27906         * config/i386/cygwin.asm: Likewise.
27907         * config/i386/emmintrin.h: Likewise.
27908         * config/i386/gmm_malloc.h: Likewise.
27909         * config/i386/gthr-win32.c: Likewise.
27910         * config/i386/i386.h: Likewise.
27911         * config/i386/immintrin.h: Likewise.
27912         * config/i386/linux-unwind.h: Likewise.
27913         * config/i386/linux64.h: Likewise.
27914         * config/i386/mm3dnow.h: Likewise.
27915         * config/i386/mmintrin-common.h: Likewise.
27916         * config/i386/mmintrin.h: Likewise.
27917         * config/i386/nmmintrin.h: Likewise.
27918         * config/i386/pmm_malloc.h: Likewise.
27919         * config/i386/pmmintrin.h: Likewise.
27920         * config/i386/smmintrin.h: Likewise.
27921         * config/i386/sol2-c1.asm: Likewise.
27922         * config/i386/sol2-ci.asm: Likewise.
27923         * config/i386/sol2-cn.asm: Likewise.
27924         * config/i386/sol2-gc1.asm: Likewise.
27925         * config/i386/tmmintrin.h: Likewise.
27926         * config/i386/unix.h: Likewise.
27927         * config/i386/w32-unwind.h: Likewise.
27928         * config/i386/wmmintrin.h: Likewise.
27929         * config/i386/x86-64.h: Likewise.
27930         * config/i386/x86intrin.h: Likewise.
27931         * config/i386/xmmintrin.h: Likewise.
27932         * config/ia64/crtbegin.asm: Likewise.
27933         * config/ia64/crtend.asm: Likewise.
27934         * config/ia64/crtfastmath.c: Likewise.
27935         * config/ia64/crti.asm: Likewise.
27936         * config/ia64/crtn.asm: Likewise.
27937         * config/ia64/fde-glibc.c: Likewise.
27938         * config/ia64/lib1funcs.asm: Likewise.
27939         * config/ia64/linux-unwind.h: Likewise.
27940         * config/ia64/quadlib.c: Likewise.
27941         * config/ia64/unwind-ia64.c: Likewise.
27942         * config/linux.h: Likewise.
27943         * config/m32c/m32c-lib1.S: Likewise.
27944         * config/m32c/m32c-lib2-trapv.c: Likewise.
27945         * config/m32c/m32c-lib2.c: Likewise.
27946         * config/m32r/initfini.c: Likewise.
27947         * config/m68hc11/larith.asm: Likewise.
27948         * config/m68hc11/m68hc11-crt0.S: Likewise.
27949         * config/m68k/cf.md: Likewise.
27950         * config/m68k/crti.s: Likewise.
27951         * config/m68k/crtn.s: Likewise.
27952         * config/m68k/lb1sf68.asm: Likewise.
27953         * config/m68k/linux-unwind.h: Likewise.
27954         * config/mcore/crti.asm: Likewise.
27955         * config/mcore/crtn.asm: Likewise.
27956         * config/mcore/lib1.asm: Likewise.
27957         * config/mips/linux-unwind.h: Likewise.
27958         * config/mips/loongson.h: Likewise.
27959         * config/mips/mips16.S: Likewise.
27960         * config/mmix/crti.asm: Likewise.
27961         * config/mmix/crtn.asm: Likewise.
27962         * config/pa/fptr.c: Likewise.
27963         * config/pa/hpux-unwind.h: Likewise.
27964         * config/pa/lib2funcs.asm: Likewise.
27965         * config/pa/linux-atomic.c: Likewise.
27966         * config/pa/linux-unwind.h: Likewise.
27967         * config/pa/milli64.S: Likewise.
27968         * config/pa/quadlib.c: Likewise.
27969         * config/pa/stublib.c: Likewise.
27970         * config/picochip/libgccExtras/adddi3.asm: Likewise.
27971         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
27972         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
27973         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
27974         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
27975         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
27976         * config/picochip/libgccExtras/divmod15.asm: Likewise.
27977         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
27978         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
27979         * config/picochip/libgccExtras/longjmp.asm: Likewise.
27980         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
27981         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
27982         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
27983         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
27984         * config/picochip/libgccExtras/setjmp.asm: Likewise.
27985         * config/picochip/libgccExtras/subdi3.asm: Likewise.
27986         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
27987         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
27988         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
27989         * config/rs6000/750cl.h: Likewise.
27990         * config/rs6000/altivec.h: Likewise.
27991         * config/rs6000/biarch64.h: Likewise.
27992         * config/rs6000/crtresfpr.asm: Likewise.
27993         * config/rs6000/crtresgpr.asm: Likewise.
27994         * config/rs6000/crtresxfpr.asm: Likewise.
27995         * config/rs6000/crtresxgpr.asm: Likewise.
27996         * config/rs6000/crtsavfpr.asm: Likewise.
27997         * config/rs6000/crtsavgpr.asm: Likewise.
27998         * config/rs6000/darwin-asm.h: Likewise.
27999         * config/rs6000/darwin-fallback.c: Likewise.
28000         * config/rs6000/darwin-fpsave.asm: Likewise.
28001         * config/rs6000/darwin-ldouble.c: Likewise.
28002         * config/rs6000/darwin-tramp.asm: Likewise.
28003         * config/rs6000/darwin-unwind.h: Likewise.
28004         * config/rs6000/darwin-vecsave.asm: Likewise.
28005         * config/rs6000/darwin-world.asm: Likewise.
28006         * config/rs6000/e500crtres32gpr.asm: Likewise.
28007         * config/rs6000/e500crtres64gpr.asm: Likewise.
28008         * config/rs6000/e500crtres64gprctr.asm: Likewise.
28009         * config/rs6000/e500crtrest32gpr.asm: Likewise.
28010         * config/rs6000/e500crtrest64gpr.asm: Likewise.
28011         * config/rs6000/e500crtresx32gpr.asm: Likewise.
28012         * config/rs6000/e500crtresx64gpr.asm: Likewise.
28013         * config/rs6000/e500crtsav32gpr.asm: Likewise.
28014         * config/rs6000/e500crtsav64gpr.asm: Likewise.
28015         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
28016         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
28017         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
28018         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
28019         * config/rs6000/eabi-ci.asm: Likewise.
28020         * config/rs6000/eabi-cn.asm: Likewise.
28021         * config/rs6000/eabi.asm: Likewise.
28022         * config/rs6000/linux-unwind.h: Likewise.
28023         * config/rs6000/linux64.h: Likewise.
28024         * config/rs6000/paired.h: Likewise.
28025         * config/rs6000/paired.md: Likewise.
28026         * config/rs6000/ppc64-fp.c: Likewise.
28027         * config/rs6000/ppu_intrinsics.h: Likewise.
28028         * config/rs6000/rs6000.h: Likewise.
28029         * config/rs6000/si2vmx.h: Likewise.
28030         * config/rs6000/sol-ci.asm: Likewise.
28031         * config/rs6000/sol-cn.asm: Likewise.
28032         * config/rs6000/spe.h: Likewise.
28033         * config/rs6000/spu2vmx.h: Likewise.
28034         * config/rs6000/sysv4.h: Likewise.
28035         * config/rs6000/tramp.asm: Likewise.
28036         * config/rs6000/vec_types.h: Likewise.
28037         * config/s390/linux-unwind.h: Likewise.
28038         * config/s390/tpf-unwind.h: Likewise.
28039         * config/score/crti.asm: Likewise.
28040         * config/score/crtn.asm: Likewise.
28041         * config/sh/crt1.asm: Likewise.
28042         * config/sh/crti.asm: Likewise.
28043         * config/sh/crtn.asm: Likewise.
28044         * config/sh/divtab-sh4-300.c: Likewise.
28045         * config/sh/divtab-sh4.c: Likewise.
28046         * config/sh/divtab.c: Likewise.
28047         * config/sh/lib1funcs-4-300.asm: Likewise.
28048         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
28049         * config/sh/lib1funcs.asm: Likewise.
28050         * config/sh/lib1funcs.h: Likewise.
28051         * config/sh/linux-atomic.asm: Likewise.
28052         * config/sh/linux-unwind.h: Likewise.
28053         * config/sh/shmedia.h: Likewise.
28054         * config/sh/sshmedia.h: Likewise.
28055         * config/sh/ushmedia.h: Likewise.
28056         * config/sparc/crtfastmath.c: Likewise.
28057         * config/sparc/linux-unwind.h: Likewise.
28058         * config/sparc/sol2-c1.asm: Likewise.
28059         * config/sparc/sol2-ci.asm: Likewise.
28060         * config/sparc/sol2-cn.asm: Likewise.
28061         * config/spu/divmodti4.c: Likewise.
28062         * config/spu/divv2df3.c: Likewise.
28063         * config/spu/float_disf.c: Likewise.
28064         * config/spu/float_unsdidf.c: Likewise.
28065         * config/spu/float_unsdisf.c: Likewise.
28066         * config/spu/float_unssidf.c: Likewise.
28067         * config/spu/mfc_multi_tag_release.c: Likewise.
28068         * config/spu/mfc_multi_tag_reserve.c: Likewise.
28069         * config/spu/mfc_tag_release.c: Likewise.
28070         * config/spu/mfc_tag_reserve.c: Likewise.
28071         * config/spu/mfc_tag_table.c: Likewise.
28072         * config/spu/multi3.c: Likewise.
28073         * config/spu/spu_internals.h: Likewise.
28074         * config/spu/spu_intrinsics.h: Likewise.
28075         * config/spu/spu_mfcio.h: Likewise.
28076         * config/spu/vec_types.h: Likewise.
28077         * config/spu/vmx2spu.h: Likewise.
28078         * config/stormy16/stormy16-lib2.c: Likewise.
28079         * config/svr4.h: Likewise.
28080         * config/sync.c: Likewise.
28081         * config/v850/lib1funcs.asm: Likewise.
28082         * config/vxlib-tls.c: Likewise.
28083         * config/vxlib.c: Likewise.
28084         * config/vxworks-dummy.h: Likewise.
28085         * config/xtensa/crti.asm: Likewise.
28086         * config/xtensa/crtn.asm: Likewise.
28087         * config/xtensa/ieee754-df.S: Likewise.
28088         * config/xtensa/ieee754-sf.S: Likewise.
28089         * config/xtensa/lib1funcs.asm: Likewise.
28090         * config/xtensa/lib2funcs.S: Likewise.
28091         * config/xtensa/linux-unwind.h: Likewise.
28092         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
28093         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
28094         * coretypes.h: Likewise.
28095         * crtstuff.c: Likewise.
28096         * defaults.h: Likewise.
28097         * dwarf2.h: Likewise.
28098         * emutls.c: Likewise.
28099         * gbl-ctors.h: Likewise.
28100         * gcov-io.h: Likewise.
28101         * ginclude/float.h: Likewise.
28102         * ginclude/iso646.h: Likewise.
28103         * ginclude/stdarg.h: Likewise.
28104         * ginclude/stdbool.h: Likewise.
28105         * ginclude/stddef.h: Likewise.
28106         * ginclude/stdfix.h: Likewise.
28107         * ginclude/stdint-gcc.h: Likewise.
28108         * ginclude/tgmath.h: Likewise.
28109         * gthr-aix.h: Likewise.
28110         * gthr-dce.h: Likewise.
28111         * gthr-gnat.c: Likewise.
28112         * gthr-gnat.h: Likewise.
28113         * gthr-lynx.h: Likewise.
28114         * gthr-mipssde.h: Likewise.
28115         * gthr-nks.h: Likewise.
28116         * gthr-posix.c: Likewise.
28117         * gthr-posix.h: Likewise.
28118         * gthr-posix95.h: Likewise.
28119         * gthr-rtems.h: Likewise.
28120         * gthr-single.h: Likewise.
28121         * gthr-solaris.h: Likewise.
28122         * gthr-tpf.h: Likewise.
28123         * gthr-vxworks.h: Likewise.
28124         * gthr-win32.h: Likewise.
28125         * gthr.h: Likewise.
28126         * libgcc2.c: Likewise.
28127         * libgcc2.h: Likewise.
28128         * libgcov.c: Likewise.
28129         * tsystem.h: Likewise.
28130         * typeclass.h: Likewise.
28131         * unwind-c.c: Likewise.
28132         * unwind-compat.h: Likewise.
28133         * unwind-dw2-fde-compat.c: Likewise.
28134         * unwind-dw2-fde-darwin.c: Likewise.
28135         * unwind-dw2-fde-glibc.c: Likewise.
28136         * unwind-dw2-fde.c: Likewise.
28137         * unwind-dw2-fde.h: Likewise.
28138         * unwind-dw2.c: Likewise.
28139         * unwind-dw2.h: Likewise.
28140         * unwind-generic.h: Likewise.
28141         * unwind-pe.h: Likewise.
28142         * unwind-sjlj.c: Likewise.
28143         * unwind.inc: Likewise.
28144         * config/arm/neon-gen.ml: Change generated copyright header to
28145         refer to version 3 of the GNU General Public License with
28146         version 3.1 of the GCC Runtime Library Exception and to point
28147         readers at the COPYING3 and COPYING3.RUNTIME files and the
28148         FSF's license web page.
28149         * config/arm/arm_neon.h: Regenerate.
28150
28151 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
28152
28153         * config/cris/cris.md: Change copyright header to refer to version
28154         3 of the GNU General Public License.
28155         * doc/install.texi2html: Change copyright header to refer to version
28156         3 of the GNU General Public License and to point readers at the
28157         COPYING3 file and the FSF's license web page.
28158         * config/vax/linux.h: Likewise.
28159
28160 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
28161
28162         * config/i386/i386.md (cmpcc): New.
28163         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
28164         (sync_compare_and_swap_cc*): Delete.
28165
28166         * config/s390/s390.c (s390_compare_emitted): Remove.
28167         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
28168         s390_compare_emitted used to be handled.  Assert that modes match.
28169         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
28170         refer to sync_compare_and_swap_ccsi.
28171         * config/s390/s390.h (s390_compare_emitted): Remove.
28172         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
28173         instead of s390_compare_emitted.
28174         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
28175         instead of s390_compare_emitted.
28176         * config/s390/s390.md (cmpcc): New.
28177         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
28178         CC_REGNUM, do not pretend it's set.
28179         (sync_compare_and_swap_cc*): Delete.
28180         * config/s390/predicates.md (cc_reg_operand): New.
28181
28182         * expr.c (sync_compare_and_swap_cc): Delete.
28183         * optabs.h (sync_compare_and_swap_cc): Delete.
28184         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
28185         is being used with can_compare_p.
28186         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
28187         (find_cc_set): New.
28188         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
28189         look for a MODE_CC set instead.  Use emit_store_flag.
28190         (expand_compare_and_swap_loop): Likewise, with some additional
28191         complication to avoid a force_reg when useless.  Use
28192         emit_cmp_and_jump_insns.
28193         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
28194         * doc/md.texi (sync_compare_and_swap_cc): Merge with
28195         sync_compare_and_swap documentation.
28196
28197 2009-04-09  Jan Hubicka  <jh@suse.cz>
28198
28199         * except.c (find_prev_try): Break out from ....
28200         (duplicate_eh_regions): ... here; properly update prev_try pointers
28201         when duplication part of tree.
28202         (dump_eh_tree): Improve dumping.
28203         (verify_eh_region): New.
28204         (verify_eh_tree): Use it.
28205
28206 2009-04-06  Richard Guenther  <rguenther@suse.de>
28207
28208         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
28209         &ARRAY addresses by adjusting their types and prepending
28210         a conversion.
28211         * tree-cfg.c (verify_gimple_assign_single): Verify that
28212         addresses are correct.
28213
28214 2009-04-09  Richard Guenther  <rguenther@suse.de>
28215
28216         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
28217         indices into an array reference if possible.
28218         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
28219         Fold POINTER_PLUS_EXPR statements with invariant address.
28220
28221 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
28222
28223         PR target/39634
28224         * config.gcc (powerpc64-*-linux*): Always build biarch.
28225
28226 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
28227
28228         PR c/39613
28229         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
28230         it and pedwarn if this results in an INTEGER_CST.
28231
28232 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
28233
28234         * doc/install.texi: Update minimum GMP version.  Remove obsolete
28235         text in MPFR section.
28236
28237 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
28238
28239         * dwarf2out.c (class_scope_p): New static inline.
28240         (class_or_namespace_scope_p): Use it.
28241         (gen_variable_die): Use DW_TAG_member tag for static data member
28242         declarations instead of DW_TAG_variable.
28243
28244         PR middle-end/39573
28245         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
28246         variables.
28247
28248 2009-04-08  Richard Guenther  <rguenther@suse.de>
28249
28250         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
28251         valueize random data.
28252
28253 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
28254
28255         * config.gcc (aix tm_file):  Add aix-stdint.h.
28256         (aix tm clause use_gcc_stdint):  Set to wrap.
28257         * config/rs6000/aix-stdint.h:  New file.
28258
28259 2009-04-08  Richard Guenther  <rguenther@suse.de>
28260
28261         PR middle-end/36291
28262         * tree-dfa.c (add_referenced_var): Do not recurse into
28263         global initializers.
28264         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
28265         exposed variables.
28266         (fold_const_aggregate_ref): Likewise.
28267
28268 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
28269
28270         * recog.c (ordered_comparison_operator): New.
28271         * gensupport.c (std_preds): Add it.
28272         * doc/md.texi (Machine-Independent Predicates): Document it.
28273
28274 2009-04-08  Jan Hubicka  <jh@suse.cz>
28275
28276         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
28277         * function.h (rtl_eh): Remove exception_handler_label_map.
28278         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
28279         remove_exception_handler_label, for_each_eh_label_1): Remove.
28280         (rtl_remove_unreachable_regions): Remove.
28281         (convert_from_eh_region_ranges): Do not remove unreachable regions.
28282         (find_exception_handler_labels): Don't build the hashtable.
28283         (maybe_remove_eh_handler): Remove.
28284         (for_each_eh_label): Rewrite to walk the tree.
28285         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
28286         * except.h (maybe_remove_eh_handler): Remove.
28287         * passes.c (init_optimization_passes): Schedule second EH cleanup
28288         before out-of-ssa.
28289         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
28290         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
28291
28292 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
28293
28294         * genoutput.c (validate_optab_operands): New.
28295         (gen_insn, gen_expand): Call it.
28296
28297         * genflags.c (gen_insn): Detect misused iterators.
28298         (main): Pass line_no to gen_insn, exit with status 1 on error.
28299
28300         * genextract.c (line_no): Make global.
28301         (VEC_safe_set_locstr): Change assertion to error message.
28302         (main): Exit with status 1 on error.
28303
28304 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
28305
28306         PR c/39614
28307         PR c/39673
28308         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
28309         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
28310         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
28311         * c-convert.c (convert): Do not call fold on results of conversion
28312         functions when the result is a C_MAYBE_CONST_EXPR.
28313         * c-parser.c (c_parser_postfix_expression): Do not fold condition
28314         of __builtin_choose_expr.
28315         * c-typeck.c (remove_c_maybe_const_expr): New.
28316         (build_unary_op, build_conditional_expr, build_compound_expr,
28317         build_binary_op, c_objc_common_truthvalue_conversion): Call
28318         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
28319         integer operands.
28320
28321 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
28322
28323         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
28324         CODE to produce a new one. Add a prototype to use fold_convert_const
28325
28326 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
28327
28328         PR bootstrap/39660
28329         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
28330         mix declarations and code.
28331
28332 2009-04-08  Ben Elliston  <bje@au.ibm.com>
28333
28334         * gcc.c: Replace `CC' with `GCC' throughout.
28335
28336 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
28337
28338         * doc/invoke.texi: Document Atom support.
28339
28340 2009-04-07  Jason Merrill  <jason@redhat.com>
28341
28342         PR c++/25185
28343         * c-common.h, c-common.c: Add flag_pretty_templates.
28344         * c-opts.c (c_common_handle_option): Set it.
28345         * c.opt: Add -fno-pretty-templates.
28346         * doc/invoke.texi (C++ Dialect Options): Likewise.
28347
28348 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
28349
28350         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
28351         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
28352         (ia64_expand_builtin): Likewise.
28353
28354 2009-04-07  Martin Jambor  <mjambor@suse.cz>
28355
28356         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
28357         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
28358         ADDR_EXPRS are include too.
28359
28360 2009-04-07  Richard Guenther  <rguenther@suse.de>
28361
28362         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
28363         decls are only used if passes as parameters or if they are
28364         local statics and the call is not to a builtin.
28365         (call_may_clobber_ref_p_1): Likewise.
28366
28367 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
28368
28369         * expr.c (do_store_flag): Remove last argument.  Simplify code
28370         to avoid duplication of tests already done by can_compare_p.
28371         (expand_expr_real_1): Adjust caller.
28372
28373 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
28374
28375         * optabs.c (can_compare_p): Test the predicate of a
28376         cbranch and cstore pattern.
28377
28378 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
28379
28380         * expr.c (convert_move): Use emit_store_flag instead of
28381         "emulating" it.
28382
28383 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
28384
28385         * config/i386/i386.c (ix86_compare_emitted): Remove.
28386         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
28387         ix86_compare_op0 like ix86_compare_emitted used to be handled.
28388         * config/i386/i386.h (ix86_compare_emitted): Remove.
28389         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
28390         instead of ix86_compare_emitted.
28391         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
28392
28393 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
28394
28395         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
28396         Add t-sysroot-suffix to tmake_file.
28397         * config/print-sysroot-suffix.sh: New file.
28398         * config/t-sysroot-suffix: New file.
28399
28400 2009-04-07  Ben Elliston  <bje@au.ibm.com>
28401
28402         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
28403         as the latter produces a warning when the target does not support
28404         infinity.
28405
28406 2009-04-07  Ben Elliston  <bje@au.ibm.com>
28407
28408         * dfp.c: Replace type punning assignments with memcpy throughout.
28409         * Makefile.in (dfp.o-warn): Remove.
28410
28411 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
28412
28413         PR target/39634
28414         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
28415         Include soft-fp/t-softfp after rs6000/t-linux64.
28416
28417 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
28418
28419         * stor-layout.c (set_sizetype): Use the full precision of their
28420         machine mode for bitsize types.
28421
28422 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
28423
28424         * config/i386/i386.md: Revert 2 accidental checkins.
28425
28426 2009-04-06  Joey Ye  <joey.ye@intel.com>
28427             Xuepeng Guo  <xuepeng.guo@intel.com>
28428             H.J. Lu  <hongjiu.lu@intel.com>
28429
28430         Atom pipeline model, tuning and insn selection.
28431         * config.gcc (atom): Add atom config options and target.
28432
28433         * config/i386/atom.md: New.
28434
28435         * config/i386/i386.c (atom_cost): New cost.
28436         (m_ATOM): New macro flag.
28437         (initial_ix86_tune_features): Set m_ATOM.
28438         (x86_accumulate_outgoing_args): Likewise.
28439         (x86_arch_always_fancy_math_387): Likewise.
28440         (processor_target): Add Atom cost.
28441         (cpu_names): Add Atom cpu name.
28442         (override_options): Set Atom ISA.
28443         (ix86_issue_rate): New case PROCESSOR_ATOM.
28444         (ix86_adjust_cost): Likewise.
28445
28446         * config/i386/i386.h (TARGET_ATOM): New target macro.
28447         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
28448         (TARGET_OPT_AGU): New target option.
28449         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
28450         (processor_type): Add PROCESSOR_ATOM.
28451
28452         * config/i386/i386.md (cpu): Add new value "atom".
28453         (use_carry, movu): New attr.
28454         (atom.md): Include atom.md.
28455         (adddi3_carry_rex64): Set attr "use_carry".
28456         (addqi3_carry): Likewise.
28457         (addhi3_carry): Likewise.
28458         (addsi3_carry): Likewise.
28459         (*addsi3_carry_zext): Likewise.
28460         (subdi3_carry_rex64): Likewise.
28461         (subqi3_carry): Likewise.
28462         (subhi3_carry): Likewise.
28463         (subsi3_carry): Likewise.
28464         (x86_movdicc_0_m1_rex64): Likewise.
28465         (*x86_movdicc_0_m1_se): Likewise.
28466         (x86_movsicc_0_m1): Likewise.
28467         (*x86_movsicc_0_m1_se): Likewise.
28468         (*adddi_1_rex64): Emit add insn as much as possible.
28469         (*addsi_1): Likewise.
28470         (return_internal): Set atom_unit.
28471         (return_internal_long): Likewise.
28472         (return_pop_internal): Likewise.
28473         (*rcpsf2_sse): Set atom_sse_attr attr.
28474         (*qrt<mode>2_sse): Likewise.
28475         (*prefetch_sse): Likewise.
28476
28477         * config/i386/i386-c.c (ix86_target_macros_internal): New case
28478         PROCESSOR_ATOM.
28479         (ix86_target_macros_internal): Likewise.
28480
28481         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
28482         (*prefetch_sse_rex): Likewise.
28483         (sse_rcpv4sf2): Likewise.
28484         (sse_vmrcpv4sf2): Likewise.
28485         (sse_sqrtv4sf2): Likewise.
28486         (<sse>_vmsqrt<mode>2): Likewise.
28487         (sse_ldmxcsr): Likewise.
28488         (sse_stmxcsr): Likewise.
28489         (*sse_sfence): Likewise.
28490         (sse2_clflush): Likewise.
28491         (*sse2_mfence): Likewise.
28492         (*sse2_lfence): Likewise.
28493         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
28494         (<sse>_movup<ssemodesuffixf2c>): Likewise.
28495         (avx_movdqu<avxmodesuffix>): Likewise.
28496         (avx_lddqu<avxmodesuffix>): Likewise.
28497         (sse2_movntv2di): Change attr "type" to "ssemov".
28498         (sse2_movntsi): Likewise.
28499         (rsqrtv8sf2): Change attr "type" to "sseadd".
28500         (sse3_addsubv2df3): Set attr "atom_unit".
28501         (sse3_h<plusminus_insn>v4sf3): Likewise.
28502         (*sse2_pmaddwd): Likewise.
28503         (*vec_extractv2di_1_rex64): Likewise.
28504         (*vec_extractv2di_1_avx): Likewise.
28505         (sse2_psadbw): Likewise.
28506         (ssse3_phaddwv8hi3): Likewise.
28507         (ssse3_phaddwv4hi3): Likewise.
28508         (ssse3_phadddv4si3): Likewise.
28509         (ssse3_phadddv2si3): Likewise.
28510         (ssse3_phaddswv8hi3): Likewise.
28511         (ssse3_phaddswv4hi3): Likewise.
28512         (ssse3_phsubwv8hi3): Likewise.
28513         (ssse3_phsubwv4hi3): Likewise.
28514         (ssse3_phsubdv4si3): Likewise.
28515         (ssse3_phsubdv2si3): Likewise.
28516         (ssse3_phsubswv8hi3): Likewise.
28517         (ssse3_phsubswv4hi3): Likewise.
28518         (ssse3_pmaddubsw128): Likewise.
28519         (sse3_pmaddubsw: Likewise.
28520         (ssse3_palignrti): Likewise.
28521         (ssse3_palignrdi): Likewise.
28522
28523 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
28524
28525         * doc/install.texi (Specific): Fix two cross-references to MinGW.
28526
28527 2009-04-06  Richard Guenther  <rguenther@suse.de>
28528
28529         PR tree-optimization/28868
28530         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
28531         of which PHI results we inserted.
28532         (insert_into_preds_of_block): Record inserted PHIs.
28533         (eliminate): Eliminate redundant PHI nodes.
28534         (init_pre): Init inserted_phi_names.
28535
28536 2009-04-06  Richard Guenther  <rguenther@suse.de>
28537
28538         PR tree-optimization/39643
28539         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
28540         IMAGPART_EXPRs of complex constants.
28541         (execute_fold_all_builtins): If we folded a call queue
28542         TODO_update_address_taken.
28543
28544 2009-04-06  Jan Hubicka  <jh@suse.cz>
28545
28546         PR middle-end/39659
28547         * except.c (remove_unreachable_regions): Propagate may_contain_throw
28548         flag.
28549
28550 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
28551
28552         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
28553         delay slot.
28554         (ic_invalidate_array): Likewise.
28555
28556 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
28557
28558         * calls.c (emit_library_call_value_1): Fix a problem with parameter
28559         alignment for library calls.
28560
28561 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
28562
28563         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
28564         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
28565         * config/i386/mingw-stdint.h:  New file.
28566
28567 2009-04-05  Richard Guenther  <rguenther@suse.de>
28568
28569         PR tree-optimization/39648
28570         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
28571         our &A vs. &A[0] IL deficiencies.
28572
28573 2009-04-04  Jan Hubicka  <jh@suse.cz>
28574
28575         * except.c (sjlj_find_directly_reachable_regions): Be ready for
28576         removed toplevel regions.
28577         (sjlj_mark_call_sites): Likewise.
28578
28579 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
28580
28581         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
28582         (cygwin tm clause use_gcc_stdint):  Set to wrap.
28583         * config/i386/cygwin-stdint.h:  New file.
28584
28585 2009-04-04  Richard Guenther  <rguenther@suse.de>
28586
28587         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
28588         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
28589         single-argument PHIs if we are in loop-closed SSA form.
28590         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
28591         for the pre-condition.
28592         (slpeel_tree_peel_loop_to_edge): Likewise.
28593         (vect_build_loop_niters): Take an optional sequence to append stmts.
28594         (vect_generate_tmps_on_preheader): Likewise.
28595         (vect_do_peeling_for_loop_bound): Take extra guards for the
28596         pre-condition.
28597         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
28598         the cost model check.
28599         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
28600         guards if we are going to peel.  Do not apply versioning in that case.
28601         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
28602         (vect_do_peeling_for_loop_bound): Likewise.
28603         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
28604         loop bound only record extra pre-conditions, do not apply loop
28605         versioning.
28606
28607 2009-04-04  Richard Guenther  <rguenther@suse.de>
28608
28609         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
28610         renaming code.
28611
28612 2009-04-04  Jan Hubicka  <jh@suse.cz>
28613
28614         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
28615         last_basic_block for size of bb->index indexed array.
28616         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
28617         compute_out, link_btr_uses, build_btr_def_use_webs,
28618         build_btr_def_use_webs, migrate_btr_defs): Likewise.
28619
28620 2009-04-04  Jan Hubicka  <jh@suse.cz>
28621
28622         * except.c (remove_eh_handler_and_replace): Break out from ...
28623         (remove_eh_handler): ... here.
28624         (bring_to_root): New function.
28625         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
28626         handled ones, bring others to root of tree.
28627
28628 2009-04-04  Jan Hubicka  <jh@suse.cz>
28629
28630         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
28631         (all_phis_safe_to_merge): New function.
28632         (update_info): New structure.
28633         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
28634         (cleanup_empty_eh): Update SSA if possible.
28635
28636 2009-04-04  Richard Guenther  <rguenther@suse.de>
28637
28638         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
28639         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
28640         (append_vuse): Likewise.
28641
28642 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
28643
28644         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
28645         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
28646         instead of REG_UNSAVED for DW_CFA_undefined.
28647         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
28648         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
28649         outermost frame.
28650
28651 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
28652
28653         PR target/39501
28654         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
28655
28656 2009-04-04  Richard Guenther  <rguenther@suse.de>
28657
28658         PR tree-optimization/8781
28659         PR tree-optimization/37892
28660         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
28661         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
28662         (valueize_refs): Call it for *& valueizations.
28663         (shared_reference_ops_from_ref): Rename to ...
28664         (valueize_shared_reference_ops_from_ref): ... this and valueize.
28665         (shared_reference_ops_from_call): Rename to ...
28666         (valueize_shared_reference_ops_from_call): ... this and valueize.
28667         (vn_reference_lookup): Update.
28668         (visit_reference_op_call): Likewise.
28669         * tree-ssa-pre.c (phi_translate_1): Fold *&.
28670         (eliminate): Value-replace the call address in call statements.
28671
28672 2009-04-04  Richard Guenther  <rguenther@suse.de>
28673
28674         PR tree-optimization/39636
28675         * tree-ssa-forwprop.c
28676         (forward_propagate_addr_into_variable_array_index): Check for
28677         GIMPLE_ASSIGN before accessing the rhs code.
28678
28679 2009-04-03  Jason Merrill  <jason@redhat.com>
28680
28681         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
28682
28683 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
28684
28685         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
28686         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
28687         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
28688         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
28689         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
28690         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
28691         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
28692         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
28693         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
28694         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
28695         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
28696         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
28697         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
28698         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
28699         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
28700         Use fr_reg_or_fp01_operand instead of fr_register_operand
28701
28702         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
28703         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
28704         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
28705
28706 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
28707
28708         PR rtl-optimization/39607
28709         PR rtl-optimization/39631
28710
28711         Revert:
28712
28713         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
28714         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
28715         instead of DF_LR_OUT.
28716         * ira-lives.c (process_bb_node_lives): Ditto.
28717         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
28718         instead of DF_LR_{OUT,IN}.
28719         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
28720         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
28721
28722 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
28723
28724         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
28725         (execute_lower_omp): Always run but take the short way out if -fopenmp
28726         is not given.
28727         (gate_lower_omp): Remove, forcing the pass manager to always run the
28728         pass and always set PROP_gimple_lomp.
28729         (pass_lower_omp): Remove gate function.
28730         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
28731         PROP_trees.  Instead, require it.
28732         * ipa-cp.c (pass_ipa_cp): Likewise.
28733         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
28734         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
28735         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
28736         and PROP_gimple_leh.
28737
28738 2009-04-03  Richard Guenther  <rguenther@suse.de>
28739
28740         PR middle-end/13146
28741         PR tree-optimization/23940
28742         PR tree-optimization/33237
28743         PR middle-end/33974
28744         PR middle-end/34093
28745         PR tree-optimization/36201
28746         PR tree-optimization/36230
28747         PR tree-optimization/38049
28748         PR tree-optimization/38207
28749         PR tree-optimization/38230
28750         PR tree-optimization/38301
28751         PR tree-optimization/38585
28752         PR middle-end/38895
28753         PR tree-optimization/38985
28754         PR tree-optimization/39299
28755         * tree-ssa-structalias.h: Remove.
28756         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
28757         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
28758         (struct vuse_element_d): Remove.
28759         (struct vuse_vec_d): Likewise.
28760         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
28761         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
28762         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
28763         VUSE_ELEMENT_VAR): Likewise.
28764         (struct voptype_d): Likewise.
28765         (NUM_VOP_FREE_BUCKETS): Likewise.
28766         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
28767         (struct stmt_operands_d): Remove.
28768         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
28769         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
28770         VDEF_NUM, VDEF_VECT): Likewise.
28771         (copy_virtual_operands): Remove.
28772         (operand_build_cmp): Likewise.
28773         (create_ssa_artificial_load_stmt): Likewise.
28774         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
28775         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
28776         vuse_index and mayuse_index members.  Pack and move done and iter_type
28777         members to the front.
28778         (SSA_OP_VMAYUSE): Remove.
28779         (SSA_OP_VIRTUAL_USES): Adjust.
28780         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
28781         (unlink_stmt_vdef): Declare.
28782         (add_to_addressable_set): Remove.
28783         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
28784         (vrp_visit_stmt): Likewise.
28785         * doc/tree-ssa.texi (Alias analysis): Update.
28786         * doc/invoke.texi (max-aliased-vops): Remove docs.
28787         (avg-aliased-vops): Likewise.
28788         * tree-into-ssa.c (syms_to_rename): Remove.
28789         (need_to_update_vops_p): Likewise.
28790         (need_to_initialize_update_ssa_p): Rename to ...
28791         (update_ssa_initialized_fn): ... this.  Track function we are
28792         initialized for.
28793         (symbol_marked_for_renaming): Simplify.
28794         (add_new_name_mapping): Do not set need_to_update_vops_p.
28795         (dump_currdefs): Use SYMS_TO_RENAME.
28796         (rewrite_update_stmt): Always walk all uses/defs.
28797         (dump_update_ssa): Adjust.
28798         (init_update_ssa): Take function argument.  Track what we are
28799         initialized for.
28800         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
28801         (create_new_def_for): Initialize for cfun, assert we are initialized
28802         for cfun.
28803         (mark_sym_for_renaming): Simplify.
28804         (mark_set_for_renaming): Do not initialize update-ssa.
28805         (need_ssa_update_p): Simplify.  Take function argument.
28806         (name_mappings_registered_p): Assert we ask for the correct function.
28807         (name_registered_for_update_p): Likewise.
28808         (ssa_names_to_replace): Likewise.
28809         (release_ssa_name_after_update_ssa): Likewise.
28810         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
28811         (dump_decl_set): Do not print a newline.
28812         (debug_decl_set): Do it here.
28813         (dump_update_ssa): And here.
28814         * tree-ssa-loop-im.c (move_computations): Adjust.
28815         (movement_possibility): Likewise.
28816         (determine_max_movement): Likewise.
28817         (gather_mem_refs_stmt): Likewise.
28818         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
28819         or NAME_MEMORY_TAG.
28820         * tree-complex.c (update_all_vops): Remove.
28821         (expand_complex_move): Adjust.
28822         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
28823         Simplify test for memory referencing statement.  Exclude
28824         non-invariant ADDR_EXPRs.
28825         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
28826         * tree-loop-distribution.c (generate_memset_zero): Adjust.
28827         (rdg_flag_uses): Likewise.
28828         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
28829         related code.
28830         (tree_optimize_tail_calls_1): Also split the
28831         edge from the entry block if we have degenerate PHI nodes in
28832         the first basic block.
28833         * tree.c (init_ttree): Remove memory-tag related code.
28834         (tree_code_size): Likewise.
28835         (tree_node_structure): Likewise.
28836         (build7_stat): Re-write to be build6_stat.
28837         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
28838         (SSA_VAR_P): Adjust.
28839         (struct tree_memory_tag): Remove.
28840         (struct tree_memory_partition_tag): Likewise.
28841         (union tree_node): Adjust.
28842         (build7): Re-write to be build6.
28843         * tree-pass.h (pass_reset_cc_flags): Remove.
28844         (TODO_update_address_taken): New flag.
28845         (pass_simple_dse): Remove.
28846         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
28847         * params.h (MAX_ALIASED_VOPS): Remove.
28848         (AVG_ALIASED_VOPS): Likewise.
28849         * omp-low.c (expand_omp_taskreg): Update SSA form.
28850         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
28851         aliases the lhs in a copy stmt.
28852         * tree-ssa-dse.c (struct address_walk_data): Remove.
28853         (memory_ssa_name_same): Likewise.
28854         (memory_address_same): Likewise.
28855         (get_kill_of_stmt_lhs): Likewise.
28856         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
28857         unused stores.  Look through PHI nodes into post-dominated regions.
28858         (dse_optimize_stmt): Simplify.  Properly remove stores.
28859         (tree_ssa_dse): Compute dominators.
28860         (execute_simple_dse): Remove.
28861         (pass_simple_dse): Likewise.
28862         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
28863         gimple_loaded_syms and gimple_stored_syms computation.
28864         * toplev.c (dump_memory_report): Dump alias and pta stats.
28865         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
28866         (vn_reference_eq): Likewise.
28867         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
28868         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
28869         valueize_vuses): Remove.
28870         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
28871         (get_def_ref_stmt_vuse): ... this.
28872         (vn_reference_lookup_2): New function.
28873         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
28874         walking equivalent vuses.  Simplify.
28875         (vn_reference_lookup): Likewise.
28876         (vn_reference_insert): Likewise.
28877         (vn_reference_insert_pieces): Likewise.
28878         (visit_reference_op_call): Simplify.
28879         (visit_reference_op_load): Likewise.
28880         (visit_reference_op_store): Likewise.
28881         (init_scc_vn): Remove shared_lookup_vuses initialization.
28882         (free_scc_vn): Remove shared_lookup_vuses freeing.
28883         (sort_vuses, sort_vuses_heap): Remove.
28884         (get_ref_from_reference_ops): Export.
28885         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
28886         vector with single vuse pointer.
28887         (vn_reference_lookup_pieces, vn_reference_lookup,
28888         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
28889         (shared_vuses_from_stmt): Remove.
28890         (get_ref_from_reference_ops): Declare.
28891         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
28892         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
28893         memory-tag related code.
28894         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
28895         (likely_value): Add comment, skip static-chain of call statements.
28896         (surely_varying_stmt_p): Adjust.
28897         (gimplify_and_update_call_from_tree): Likewise.
28898         (execute_fold_all_builtins): Do not rebuild alias info.
28899         (gimplify_and_update_call_from_tree): Properly update VOPs.
28900         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
28901         (copy_ref_info): Remove memory-tag related code.
28902         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
28903         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
28904         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
28905         computation.
28906         * tree-ssa-dom.c (gimple_p): Remove typedef.
28907         (eliminate_redundant_computations): Adjust.
28908         (record_equivalences_from_stmt): Likewise.
28909         (avail_expr_hash): Likewise.
28910         (avail_expr_eq): Likewise.
28911         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
28912         (stmt_makes_single_load): Likewise.
28913         (stmt_makes_single_store): Likewise.
28914         * tree-ssa-alias.c: Rewrite completely.
28915         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
28916         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
28917         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
28918         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
28919         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
28920         Remove public functions.
28921         (pass_reset_cc_flags): Remove.
28922         (pass_build_alias): Move ...
28923         * tree-ssa-structalias.c (pass_build_alias): ... here.
28924         * tree-ssa-alias.c (may_be_aliased): Move ...
28925         * tree-flow-inline.h (may_be_aliased): ... here.
28926         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
28927         count_uses_and_derefs): Move ...
28928         * gimple.c: ... here.
28929         * gimple.h (count_uses_and_derefs): Declare.
28930         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
28931         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
28932         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
28933         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
28934         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
28935         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
28936         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
28937         New functions.
28938         * tree-dfa.c (refs_may_alias_p): Move ...
28939         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
28940         * tree-ssa-alias.h: New file.
28941         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
28942         (statement_sink_location): Likewise.
28943         * opts.c (decode_options): Do not adjust max-aliased-vops or
28944         avg-aliased-vops values.
28945         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
28946         (TV_CALL_CLOBBER): Likewise.
28947         (TV_FLOW_SENSITIVE): Likewise.
28948         (TV_FLOW_INSENSITIVE): Likewise.
28949         (TV_MEMORY_PARTITIONING): Likewise.
28950         (TV_ALIAS_STMT_WALK): New timevar.
28951         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
28952         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
28953         (get_address_description): Remove memory-tag related code.
28954         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
28955         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
28956         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
28957         and immediate uses in statements.  Document.
28958         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
28959         (dump_symbols): Remove.
28960         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
28961         * alias.c (get_deref_alias_set): New function split out from ...
28962         (get_alias_set): ... here.
28963         * alias.h (get_deref_alias_set): Declare.
28964         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
28965         type parameter.  Remove restrict pointer handling.  Create a
28966         ref-all pointer in case type-based alias sets do not conflict.
28967         (vect_analyze_data_refs): Remove SMT related code.
28968         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
28969         (vectorizable_load): Likewise.
28970         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
28971         (DR_SYMBOL_TAG, DR_VOPS): Remove.
28972         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
28973         Ignore vops and SMTs.
28974         (dr_analyze_alias): Likewise..
28975         (free_data_ref): Likewise.
28976         (create_data_ref): Likewise.
28977         (analyze_all_data_dependences): Likewise.
28978         (get_references_in_stmt): Adjust.
28979         * tree-flow-inline.h (gimple_aliases_computed_p,
28980         gimple_addressable_vars, gimple_call_clobbered_vars,
28981         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
28982         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
28983         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
28984         gimple_mem_ref_stats): Remove.
28985         (gimple_vop): New function.
28986         (op_iter_next_use): Remove vuses and mayuses cases.
28987         (op_iter_next_def): Remove vdefs case.
28988         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
28989         (clear_and_done_ssa_iter): Do not set removed fields.
28990         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
28991         Assert we are not iterating over vuses or vdefs if not also
28992         iterating over uses or defs.
28993         (op_iter_init_use): Likewise.
28994         (op_iter_init_def): Likewise.
28995         (op_iter_next_vdef): Remove.
28996         (op_iter_next_mustdef): Likewise.
28997         (op_iter_init_vdef): Likewise.
28998         (compare_ssa_operands_equal): Likewise.
28999         (link_use_stmts_after): Handle vuse operand.
29000         (is_call_used): Use is_call_clobbered.
29001         (is_call_clobbered): Global variables are always call clobbered,
29002         query the call-clobbers bitmap.
29003         (mark_call_clobbered): Ignore global variables.
29004         (clear_call_clobbered): Likewise.
29005         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
29006         virtual operands sanity check.
29007         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
29008         Remove.
29009         (TARGET_MEM_REF): Remove TMR_TAG operand.
29010         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
29011         Remove call-clobber related code.
29012         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
29013         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
29014         partitions or escape reason.
29015         (get_single_def_stmt, get_single_def_stmt_from_phi,
29016         get_single_def_stmt_with_phi): Remove.
29017         (dump_referenced_vars): Tidy.
29018         (get_ref_base_and_extent): Allow bare decls.
29019         (collect_dfa_stats): Adjust.
29020         * graphite.c (rename_variables_in_stmt): Adjust.
29021         (graphite_copy_stmts_from_block): Likewise.
29022         (translate_clast): Likewise.
29023         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
29024         (EXPR_DIES): New.
29025         (translate_vuse_through_block): Use the oracle.
29026         (phi_translate_1): Adjust.
29027         (value_dies_in_block_x): Use the oracle.  Cache the outcome
29028         in EXPR_DIES.
29029         (valid_in_sets): Check if the VUSE for
29030         a REFERENCE is available.
29031         (eliminate): Do not remove stmts during elimination,
29032         instead queue and remove them afterwards.
29033         (do_pre): Do not rebuild alias info.
29034         (pass_pre): Run TODO_rebuild_alias before PRE.
29035         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
29036         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
29037         (mark_all_v_defs_stmt): Remove.
29038         (mark_all_v_defs_seq): Adjust.
29039         (sra_replace): Likewise.
29040         (scalarize_use): Likewise.
29041         (scalarize_copy): Likewise.
29042         (scalarize_init): Likewise.
29043         (scalarize_ldst): Likewise.
29044         (todoflags): Remove.
29045         (tree_sra): Do not rebuild alias info.
29046         (tree_sra_early): Adjust.
29047         (pass_sra): Run TODO_update_address_taken before SRA.
29048         * tree-predcom.c (set_alias_info): Remove.
29049         (prepare_initializers_chain): Do not call it.
29050         (mark_virtual_ops_for_renaming): Adjust.
29051         (mark_virtual_ops_for_renaming_list): Remove.
29052         (initialize_root_vars): Adjust.
29053         (initialize_root_vars_lm): Likewise.
29054         (prepare_initializers_chain): Likewise.
29055         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
29056         (may_propagate_copy_into_stmt): Likewise.
29057         (merge_alias_info): Do nothing for now.
29058         (propagate_tree_value_into_stmt): Adjust.
29059         (stmt_may_generate_copy): Likewise.
29060         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
29061         not mark symbols for renaming.
29062         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
29063         with the same statement, make sure to update the new pointed-to one.
29064         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
29065         call statements, do not mark symbols for renaming.
29066         (mark_operand_necessary): Dump something.
29067         (ref_may_be_aliased): New function.
29068         (mark_aliased_reaching_defs_necessary_1): New helper function.
29069         (mark_aliased_reaching_defs_necessary): Likewise.
29070         (mark_all_reaching_defs_necessary_1): Likewise.
29071         (mark_all_reaching_defs_necessary): Likewise.
29072         (propagate_necessity): Do not process virtual PHIs.  For
29073         non-aliased loads mark all reaching definitions as necessary.
29074         For aliased loads and stores mark the immediate dominating
29075         aliased clobbers as necessary.
29076         (visited): New global static.
29077         (perform_tree_ssa_dce): Free visited bitmap after propagating
29078         necessity.
29079         (remove_dead_phis): Perform simple dead virtual PHI removal.
29080         (remove_dead_stmt): Properly unlink virtual operands when
29081         removing stores.
29082         (eliminate_unnecessary_stmts): Schedule PHI removal after
29083         stmt removal.
29084         * tree-ssa-ter.c (is_replaceable_p): Adjust.
29085         (process_replaceable): Likewise.
29086         (find_replaceable_in_bb): Likewise.
29087         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
29088         based on the single gimple vop.
29089         (verify_flow_insensitive_alias_info): Remove.
29090         (verify_flow_sensitive_alias_info): Likewise.
29091         (verify_call_clobbering): Likewise.
29092         (verify_memory_partitions): Likewise.
29093         (verify_alias_info): Likewise.
29094         (verify_ssa): Adjust..
29095         (execute_update_addresses_taken): Export.  Update SSA
29096         manually.  Optimize only when optimizing.  Use a local bitmap.
29097         (pass_update_address_taken): Remove TODO_update_ssa, add
29098         TODO_dump_func.
29099         (pass_update_address_taken): Just use TODO_update_address_taken.
29100         (init_tree_ssa): Do not initialize addressable_vars.
29101         (verify_ssa): Verify new VUSE / VDEF properties.
29102         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
29103         Do not call verify_alias_info.
29104         (delete_tree_ssa): Clear the VUSE, VDEF operands.
29105         Do not free the loaded and stored syms bitmaps.  Reset the escaped
29106         and callused solutions.  Do not free addressable_vars.
29107         Remove memory-tag related code.
29108         (warn_uninitialized_var): Aliases are always available.
29109         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
29110         * lambda-code.c (can_put_in_inner_loop): Adjust.
29111         (can_put_after_inner_loop): Likewise.
29112         (perfect_nestify): Likewise.
29113         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
29114         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
29115         (vectorizable_conversion): Do not mark symbols for renaming.
29116         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
29117         (expand_call_inline): Unlink the calls virtual operands before
29118         replacing it.
29119         (tree_function_versioning): Do not call update_ssa if we are not
29120         updating clones.  Simplify.
29121         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
29122         (propagate_with_phi): Likewise..
29123         * tree-outof-ssa.c (create_temp): Remove memory tag and call
29124         clobber code.  Assert we are not aliased or global.
29125         * tree-flow.h: Include tree-ssa-alias.h
29126         (enum escape_type): Remove.
29127         (struct mem_sym_stats_d): Likewise.
29128         (struct mem_ref_stats_d): Likewise.
29129         (struct gimple_df): Add vop member.  Remove global_var,
29130         call_clobbered_vars, call_used_vars, addressable_vars,
29131         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
29132         escaped and callused members.
29133         (struct ptr_info_def): Remove all members, add points-to solution
29134         member pt.
29135         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
29136         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
29137         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
29138         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
29139         (tree-ssa-alias.o): Likewise.
29140         (toplev.o): Add tree-ssa-alias.h
29141         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
29142         * gimple.c (gimple_set_bb): Fix off-by-one error.
29143         (is_gimple_reg): Do not handle memory tags.
29144         (gimple_copy): Also copy virtual operands.
29145         Delay updating the statement.  Do not reset loaded and stored syms.
29146         (gimple_set_stored_syms): Remove.
29147         (gimple_set_loaded_syms): Likewise.
29148         (gimple_call_copy_skip_args): Copy the virtual operands
29149         and mark the new statement modified.
29150         * tree-ssa-structalias.c (may_alias_p): Remove.
29151         (set_uids_in_ptset): Take the alias set to prune with as
29152         parameter.  Fold in the alias test of may_alias_p.
29153         (compute_points_to_sets): Compute whether a ptr is dereferenced
29154         in a local sbitmap.
29155         (process_constraint): Deal with &ANYTHING on the lhs, reject all
29156         other ADDRESSOF constraints on the lhs.
29157         (get_constraint_for_component_ref): Assert that we don't get
29158         ADDRESSOF constraints from the base of the reference.
29159         Properly generate UNKNOWN_OFFSET for DEREF if needed.
29160         (struct variable_info): Remove collapsed_to member.
29161         (get_varinfo_fc): Remove.
29162         (new_var_info): Do not set collapsed_to.
29163         (dump_constraint): Do not follow cycles.
29164         (dump_constraint_graph): Likewise.
29165         (build_pred_graph): Likewise.
29166         (build_succ_graph): Likewise.
29167         (rewrite_constraints): Likewise.
29168         (do_simple_structure_copy): Remove.
29169         (do_rhs_deref_structure_copy): Remove.
29170         (do_lhs_deref_structure_copy): Remove.
29171         (collapse_rest_of_var): Remove.
29172         (do_structure_copy): Re-implement.
29173         (pta_stats): New global variable.
29174         (dump_pta_stats): New function.
29175         (struct constraint_expr): Make offset signed.
29176         (UNKNOWN_OFFSET): Define special value.
29177         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
29178         (solution_set_expand): New helper function split out from ...
29179         (do_sd_constraint): ... here.
29180         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
29181         (do_ds_constraint): Likewise.
29182         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
29183         and CALLUSED = *CALLUSED.
29184         (set_union_with_increment): Make inc argument signed.
29185         (type_safe): Remove.
29186         (get_constraint_for_ptr_offset): Handle unknown and negative
29187         constant offsets.
29188         (first_vi_for_offset): Handle offsets before start.  Bail
29189         out early for offsets beyond the variable extent.
29190         (first_or_preceding_vi_for_offset): New function.
29191         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
29192         Together with ESCAPED = *ESCAPED this properly computes reachability.
29193         (find_what_var_points_to): New function.
29194         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
29195         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
29196         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
29197         pt_solutions_intersect): New functions.
29198         (compute_call_used_vars): Remove.
29199         (compute_may_aliases): New main entry into PTA computation.
29200         * gimple.h (gimple_p): New typedef.
29201         (struct gimple_statement_base): Remove references_memory_p.
29202         (struct gimple_statement_with_memory_ops_base): Remove
29203         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
29204         members.
29205         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
29206         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
29207         gimple_set_references_memory): Remove.
29208         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
29209         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
29210         New functions.
29211         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
29212         (verify_expr): Allow RESULT_DECL.
29213         (gimple_duplicate_bb): Do not copy virtual operands.
29214         (gimple_duplicate_sese_region): Adjust.
29215         (gimple_duplicate_sese_tail): Likewise.
29216         (mark_virtual_ops_in_region): Remove.
29217         (move_sese_region_to_fn): Do not call it.
29218         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
29219         and pass_simple_dse.
29220         (execute_function_todo): Handle TODO_update_address_taken,
29221         call execute_update_addresses_taken for TODO_rebuild_alias.
29222         (execute_todo): Adjust.
29223         (execute_one_pass): Init dump files early.
29224         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
29225         call-clobbered.
29226         (create_general_new_stmt): Clear vops.
29227         * tree-ssa-reassoc.c (get_rank): Adjust.
29228         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
29229         symbols for renaming.
29230         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
29231         (PARAM_AVG_ALIASED_VOPS): Likewise.
29232         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
29233         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
29234         * tree-ssa-operands.c: Simplify for new virtual operand representation.
29235         (operand_build_cmp, copy_virtual_operands,
29236         create_ssa_artificial_load_stmt, add_to_addressable_set,
29237         gimple_add_to_addresses_taken): Remove public functions.
29238         (unlink_stmt_vdef): New function.
29239
29240 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
29241
29242         * config.gcc (powerpc-*-linux*): Merge variants.
29243
29244 2009-04-02  Chao-ying Fu  <fu@mips.com>
29245             James Grosbach  <james.grosbach@microchip.com>
29246
29247         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
29248         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
29249         cop0_sp_offset.
29250         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
29251         keep_interrupts_masked_p, use_debug_exception_return_p.
29252         (mips_attribute_table): Add interrupt, use_shadow_register_set,
29253         keep_interrupts_masked, use_debug_exception_return.
29254         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
29255         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
29256         New functions.
29257         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
29258         (mips_print_operand): Process COP0 registers to print $0 .. $31
29259         correctly for GAS to process.
29260         (mips_interrupt_extra_call_saved_reg_p): New function.
29261         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
29262         extra registers.
29263         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
29264         (mips_compute_frame_info): Add supports for interrupt context that
29265         includes doubleword accumulators and COP0 registers.
29266         (mips_for_each_saved_acc): New function.
29267         (mips_for_each_saved_gpr_and_fpr): Change the function name from
29268         mips_for_each_saved_reg.
29269         (mips_save_reg): Save accumulators.
29270         (mips_kernel_reg_p): A new for_each_rtx callback.
29271         (mips_expand_prologue): Support interrupt handlers.
29272         (mips_restore_reg): Restore accumulators.
29273         (mips_expand_epilogue): Support interrupt handlers.
29274         (mips_can_use_return_insn): Return false for interrupt handlers.
29275         (mips_epilogue_uses): New function.
29276         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
29277         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
29278         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
29279         cop0_move): New instructions.
29280         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
29281         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
29282         defines.
29283         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
29284         New defines.
29285         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
29286         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
29287         interrupt handlers, we use K0 as the temporary register.
29288         (EPILOGUE_USES): Change to a function call.
29289         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
29290         handlers, we use K0 as the temporary register.
29291
29292         * doc/extend.texi (Function Attributes): Document interrupt,
29293         use_shadow_register_set, keep_interrupts_masked,
29294         use_debug_exception_return for MIPS attributes.
29295
29296 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
29297
29298         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
29299         Remove a number of t-files from tmake_file.
29300         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
29301         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
29302         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
29303         target_prototype, not TARGET_PROTOTYPE.
29304         (LINK_OS_GNU_SPEC): Define.
29305         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
29306         and darwin-ldoubdle.c.
29307
29308 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
29309
29310         PR driver/39293
29311         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
29312         (cpp_options): Ditto.
29313         (default_compilers): Ditto.
29314         (display_help): Ditto.
29315         (process_command): Ditto.
29316         (do_spec_1): Ditto.
29317         (set_input): Use lbasename instead of duplicate code.
29318         (save_temps_prefix): New static for -save-temps=obj.
29319         (save_temps_length): Ditto.
29320
29321         * doc/invoke.texi (-save-temps=obj): Document new variant to
29322         -save-temps switch.
29323
29324 2009-04-02  Jeff Law  <law@redhat.com>
29325
29326         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
29327         variable.
29328
29329 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
29330
29331         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
29332         * configure: Regenerated.
29333
29334 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
29335
29336         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
29337         share the argument list.
29338
29339 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
29340
29341         Merge
29342
29343         2009-02-12  Diego Novillo  <dnovillo@google.com>
29344
29345         * varpool.c (debug_varpool): New.
29346         * cgraph.h (debug_varpool): Declare.
29347
29348 2009-04-02  Jan Hubicka  <jh@suse.cz>
29349
29350         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
29351         pass.
29352
29353 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
29354
29355         * config/i386/i386.c (ix86_abi): Move initialization to ...
29356         (override_options): Here.
29357
29358 2009-04-02  Christian Bruel  <christian.bruel@st.com>
29359
29360         * config/sh/sh.c (sh_dwarf_register_span): New function.
29361         (TARGET_DWARF_REGISTER_SPAN): Define.
29362         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
29363
29364 2009-04-02  Ira Rosen  <irar@il.ibm.com>
29365
29366         PR tree-optimization/39595
29367         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
29368         interleaved loads group is not  greater than the SLP group size.
29369
29370 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
29371
29372         * builtins.c (is_builtin_name): New.
29373         (called_as_built_in): Use is_builtin_name.
29374         * tree.h (is_builtin_name): New.
29375         * varasm.c (incorporeal_function_p): Use is_builtin_name
29376
29377 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
29378
29379         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
29380
29381 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
29382
29383         PR c++/26693
29384         * c-decl.c (clone_underlying_type): Move this ...
29385         * c-common.c (set_underlying_type): ... here.
29386         Also, make sure the function properly sets TYPE_STUB_DECL() on
29387         the newly created typedef variant type.
29388         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
29389         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
29390         points.
29391
29392 2009-04-02  Richard Guenther  <rguenther@suse.de>
29393
29394         PR tree-optimization/37221
29395         * tree-flow.h (degenerate_phi_result): Declare.
29396         * tree-ssa-dom.c (degenerate_phi_result): Export.
29397         * tree-scalar-evolution.c (analyze_initial_condition): If
29398         the initial condition is defined by a degenerate PHI node
29399         use the degenerate value.
29400
29401 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
29402
29403         PR rtl-optimization/39588
29404         * combine.c (merge_outer_ops): Do not set the constant when this
29405         is not necessary.
29406         (simplify_shift_const_1): Do not modify it either in this case.
29407
29408 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
29409
29410         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
29411         tuning is deprecated if -mtune value is set to an Itanium1 variant.
29412
29413 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
29414
29415         PR c/29027
29416         * c-lex.c (interpret_float): Default (no suffix) is double.
29417
29418 2009-04-1  Xinliang David Li  <davidxl@google.com>
29419
29420         * config/i386/i386.c (legitimate_constant_p): Recognize
29421         all one vector constant.
29422
29423 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29424
29425         * config/vax/vax.c: Add #includes to silence warnings.
29426         Change #include order to silence two warnings.
29427
29428 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29429
29430         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
29431         (ASM_SPEC): Pass -k to the assembler for PIC code.
29432
29433 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29434
29435         * config.gcc: Add vax-*-linux* to the switch.
29436         * config/vax/linux.h: New file. (TARGET_VERSION,
29437         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
29438
29439 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29440
29441         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
29442         Use predicate macros instead of GET_CODE() == foo.
29443         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
29444         ashlsi3, rotrsi3, <unnamed>): Likewise.
29445
29446 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29447
29448         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
29449         jbbccihi, jbbccisi): Remova trailing whitespace.
29450         * config/vax/constraints.md: Likewise.
29451         * config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
29452         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
29453         * config/vax/predicates.md: Likewise.
29454         * config/vax/vax.c (print_operand_address, vax_output_int_move,
29455         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
29456         * config/vax/vax.h: Likewise.
29457         * config/vax/vax.md (nonlocal_goto): Likewise.
29458
29459 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29460
29461         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
29462         (indirectable_address_p, adjacent_operands_p): Add spaces around
29463         braces.
29464         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
29465
29466 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29467
29468         * config/vax/vax.c (legitimate_constant_address_p,
29469         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
29470         index_term_p, reg_plus_index_p, legitimate_address_p,
29471         vax_mode_dependent_address_p): Update comments to match functions
29472         modified by the recent int->bool conversion.
29473
29474 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29475
29476         * config/vax/builtins.md: Update copyright message.
29477         * config/vax/constraints.md: Likewise.
29478         * config/vax/netbsd-elf.h: Likewise.
29479         * config/vax/predicates.md: Likewise.
29480         * config/vax/vax-protos.h: Likewise.
29481         * config/vax/vax.c: Likewise.
29482         * config/vax/vax.h: Likewise.
29483         * config/vax/vax.md: Likewise.
29484         * config/vax/vax.opt: Likewise.
29485
29486 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
29487
29488         * config/vax/builtins.md (ffssi2, ffssi2_internal,
29489         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
29490         * config/vax/constraints.md (B, R): Likewise.
29491         * config/vax/predicates.md (external_memory_operand,
29492         nonimmediate_addsub_di_operand): Likewise.
29493         * config/vax/vax.c (vax_output_int_add): Likewise.
29494         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
29495         untyped_call): Likewise.
29496
29497 2009-04-01  Matt Thomas  <matt@3am-software.com>
29498
29499         * config/vax/predicates.md: New file.
29500         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
29501         external_const_operand, nonsymbolic_operand, external_memory_operand,
29502         indirect_memory_operand, indexed_memory_operand,
29503         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
29504         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
29505         predicate.
29506         * config/vax/constraints.md: New file.
29507         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
29508         New constraint.
29509         * config/vax/builtins.md: New file.
29510         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
29511         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
29512         jbbccisi): Define.
29513         * config/vax/vax.opt (mqmath): Add option.
29514         * config/vax/vax.md (isfx): Extend with DI.
29515         (VAXintQH, VAXintQHSD): Define.
29516         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
29517         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
29518         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
29519         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
29520         (movdi): Update constraints and use vax_output_int_move().
29521         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
29522         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
29523         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
29524         nonlocal_goto): New.
29525         (mov<mode>): Extend accepted operand types.
29526         (subdi3_old): Rename from subdi3, change update constraints and use
29527         a new implementation.
29528         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
29529         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
29530         MOVE_RATIO, CLEAR_RATIO): Define.
29531         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
29532         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
29533         (PRINT_OPERAND): Redefine using a function instead of inlined code.
29534         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
29535         (split_quadword_operands): Make static and really allow variable
29536         splitting.
29537         (print_operand_address): Update for PIC generation.
29538         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
29539         indexable_address_p, fixup_mathdi_operand,
29540         vax_expand_addsub_di_operands, adjacent_operands_p): New.
29541         (vax_float_literal, legitimate_constant_p,
29542         indirectable_constant_address_p, index_term_p,
29543         reg_plus_index_p): Return bool instead of int.
29544         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
29545         where needed.
29546         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
29547         generation.
29548         (vax_output_conditional_branch): Indent.
29549         (legitimate_constant_address_p, indirectable_constant_address_p,
29550         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
29551         vax_mode_dependent_address_p): Return bool instead of int, update for
29552         PIC generation.
29553         * config/vax/vax-protos.h (legitimate_constant_address_p,
29554         legitimate_constant_p, legitimate_address_p,
29555         vax_mode_dependent_address_p): Change declaration to bool.
29556         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
29557         vax_expand_addsub_di_operands, vax_output_int_subtract,
29558         vax_output_movmemsi): Declare.
29559         (split_quadword_operands, vax_float_literal): Delete declaration.
29560         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
29561         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
29562         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
29563         ASM_OUTPUT_DWARF_PCREL): Define.
29564         (ASM_SPEC): Change definition to allow PIC generation.
29565
29566 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
29567
29568         * doc/sourcebuild.texi: Update front-end requirements.
29569
29570 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
29571
29572         PR target/39226
29573         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
29574         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
29575         (booldi3_internal3): Use boolean_or_operator instead of
29576         boolean_operator.
29577
29578 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
29579
29580         PR c/39605
29581         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
29582         declarator whose size is not an integer constant expression but
29583         folds to an integer constant, then treat it as a constant
29584         subsequently.
29585
29586 2009-04-01  Richard Guenther  <rguenther@suse.de>
29587
29588         * fold-const.c (fold_plusminus_mult_expr): Do not fold
29589         i * 4 + 2 to (i * 2 + 1) * 2.
29590
29591 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
29592
29593         PR c/37772
29594         * c-parser.c (c_parser_asm_statement): Skip until close paren and
29595         return if c_parser_asm_string_literal returned NULL.
29596
29597 2009-04-01  Nick Clifton  <nickc@redhat.com>
29598
29599         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
29600         already defined.
29601         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
29602         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
29603         other typedefs to avoid conflicts with libgcc2.c.  Define labels
29604         to gain 16-bit bit-manipulation functions from libgcc2.c and then
29605         include it.
29606         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
29607         to gain 16-bit trapping arithmetic functions from libgcc2.c and
29608         then include it.
29609
29610 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
29611
29612         * varasm.c (default_function_rodata_section): Declare DOT as
29613         const char*.
29614
29615 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
29616             Andrey Galkin  <agalkin@hypercom.com>
29617
29618         PR/39492
29619         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
29620         Make object_name unique for each process.
29621
29622 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
29623
29624         PR other/39591
29625         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
29626         addressable variables in the parallel that could go out of scope while
29627         running queued tasks.
29628
29629 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
29630
29631         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
29632         (CASE_VALUES_THRESHOLD): Redefine.
29633         * config/avr/avr.c (avr_override_options): Remove initialization of
29634         avr_case_values_threshold variable.
29635         (avr_case_values_threshold): Remove variable. Add new function.
29636         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
29637         * config/avr/avr.opt (mno-tablejump): Remove option.
29638         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
29639
29640 2009-04-01  DJ Delorie  <dj@redhat.com>
29641
29642         * varasm.c (default_function_rodata_section): Don't assume
29643         anything about where the first '.' in the section name is.
29644
29645 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
29646
29647         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
29648         rs6000_emit_stack_tie.
29649
29650 2009-03-31  Ian Lance Taylor  <iant@google.com>
29651
29652         * tree-eh.c (tree_remove_unreachable_handlers): Compare
29653         gimple_code with GIMPLE_RESX, not RESX.
29654
29655 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
29656
29657         * c-common.c (c_get_ident): New.
29658         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
29659
29660 2009-04-01  Ben Elliston  <bje@au.ibm.com>
29661
29662         * config/rs6000/sysv4.opt (msdata): Improve option description.
29663
29664 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
29665
29666         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
29667         (divdf3_internal_lat): Remove.
29668         (divxf3_internal_lat): Remove.
29669         (divxf3_internal_thr): Remove.
29670         (divxf): Use divxf3_internal.
29671         * config/ia64/div.md (divsf3_internal_lat): New.
29672         (divdf3_internal_lat): New.
29673         (divxf3_internal): New.
29674
29675 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
29676
29677         PR c/448
29678         * Makefile.in (USE_GCC_STDINT): Define.
29679         (stmp-int-hdrs): Install stdint.h if applicable.
29680         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
29681         if known.
29682         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
29683         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
29684         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
29685         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29686         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
29687         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
29688         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
29689         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29690         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
29691         (c_common_nodes_and_builtins): Initialize
29692         underlying_wchar_type_node.  Do not initialize
29693         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
29694         nodes for new types.
29695         (c_stddef_cpp_builtins): Define macros for new types.
29696         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
29697         Remove.
29698         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
29699         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
29700         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
29701         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
29702         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
29703         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
29704         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
29705         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
29706         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
29707         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
29708         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
29709         int16_type_node, int32_type_node, int64_type_node,
29710         uint8_type_node, uint16_type_node, c_uint32_type_node,
29711         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
29712         int_least32_type_node, int_least64_type_node,
29713         uint_least8_type_node, uint_least16_type_node,
29714         uint_least32_type_node, uint_least64_type_node,
29715         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
29716         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
29717         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
29718         uintptr_type_node): Define.
29719         * c-cppbuiltin.c (builtin_define_constants,
29720         builtin_define_type_minmax): New.
29721         (builtin_define_stdint_macros): Define more macros.
29722         (c_cpp_builtins): Define more limit macros.
29723         (type_suffix): New.
29724         (builtin_define_type_max): Define in terms of
29725         builtin_define_type_minmax.  Remove is_long parameter.  All
29726         callers changed.
29727         * config.gcc (use_gcc_stdint): Define.
29728         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
29729         Add newlib-stdint.h for generic targets.
29730         * config/glibc-stdint.h, config/newlib-stdint.h,
29731         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
29732         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
29733         * config/score/score.h (UINTPTR_TYPE): Define.
29734         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
29735         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
29736         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29737         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
29738         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
29739         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
29740         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29741         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
29742         * config/spu/spu.h (STDINT_LONG32): Define.
29743         * configure.ac (use_gcc_stdint): Substitute.
29744         * configure: Regenerate.
29745         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
29746         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
29747         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
29748         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
29749         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
29750         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
29751         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
29752         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
29753         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
29754         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
29755         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
29756         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
29757         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
29758         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
29759         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
29760         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
29761         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
29762         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
29763         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
29764         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
29765         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
29766         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
29767         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
29768         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29769         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
29770         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
29771         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
29772         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29773         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
29774
29775 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
29776
29777         * loop-iv.c (suitable_set_for_replacement): Renamed from
29778         simplify_using_assignment; changed to return bool and to accept new
29779         args DEST and SRC.  Return true iff we find a source/destination pair
29780         that can be used to make a replacement, and fill SRC and DEST if so.
29781         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
29782         changed.
29783         (simplify_using_initial_values): Deal with altered regs here and track
29784         more precisely the effect they have on the validity of our expression.
29785
29786         * loop-iv.c (simplify_using_condition): A condition of the form
29787         (EQ REG CONST) can be used to simply make a substitution.
29788         (simplify_using_initial_values): Keep track of conditions we have seen
29789         and keep using them to simplify new expressions, while applying the
29790         same substitutions to them as to the expression.
29791
29792         * simplify-rtx.c (simplify_relational_operation_1): Simplify
29793         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
29794         GEU/LTU reversed.
29795
29796         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
29797         changed.  Use this when trying to improve the upper bound.
29798         Generate the comparison by using simplify_gen_relational.
29799
29800         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
29801
29802         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
29803         functions.
29804         (simplify_using_assignment, simplify_using_initial_values): Call
29805         replace_in_expr to make replacements.  Call replace_single_def_regs
29806         once on the initial version of the expression.
29807
29808 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29809
29810         PR target/27237
29811         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
29812
29813 2009-03-31  Richard Guenther  <rguenther@suse.de>
29814
29815         PR middle-end/31029
29816         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
29817         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
29818
29819 2009-03-31  Richard Guenther  <rguenther@suse.de>
29820
29821         * tree.h (div_if_zero_remainder): Declare.
29822         * fold-const.c (div_if_zero_remainder): Export.
29823         * tree-ssa-forwprop.c
29824         (forward_propagate_addr_into_variable_array_index): Handle
29825         constant array index addition outside of the variable index.
29826
29827 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
29828
29829         PR target/39592
29830         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
29831         define_splits, floatunssi<mode>2): Require x87 conversions from
29832         DImode to be permitted.
29833
29834 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
29835
29836         PR preprocessor/15638
29837         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
29838
29839 2009-03-31  Richard Guenther  <rguenther@suse.de>
29840
29841         PR middle-end/23401
29842         PR middle-end/27810
29843         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
29844         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
29845         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
29846         a separate statement.
29847         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
29848         (lookup_tmp_var): Likewise.
29849         (is_gimple_formal_tmp_or_call_rhs): Remove.
29850         (is_gimple_reg_or_call_rhs): Rename to ...
29851         (is_gimple_reg_rhs_or_call): ... this.
29852         (is_gimple_mem_or_call_rhs): Rename to ...
29853         (is_gimple_mem_rhs_or_call): ... this.
29854         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
29855         DECL_GIMPLE_REG_P only if is_formal is true.
29856         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
29857         for non-proper post-modify expression gimplification.
29858         (gimplify_self_mod_expr): For post-modify expressions gimplify
29859         the lvalue to a minimal lvalue.
29860         (rhs_predicate_for): Remove formal temp case.
29861         (gimplify_modify_expr_rhs): Likewise.
29862         (gimplify_addr_expr): Use is_gimple_reg.
29863         (gimplify_expr): Remove formal temp cases.
29864         (gimple_regimplify_operands): Likewise.
29865         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
29866         and FILTER_EXPR like constants.
29867         * gimple.c (walk_gimple_op): Fix val_only initialization, use
29868         is_gimple_reg.
29869         (is_gimple_formal_tmp_rhs): Remove.
29870         (is_gimple_reg_rhs): Remove special casing.
29871         (is_gimple_mem_rhs): Fix.
29872         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
29873         (is_gimple_formal_tmp_var): Remove.
29874         (is_gimple_formal_tmp_reg): Likewise.
29875         (is_gimple_min_lval): Allow invariant component ref parts.
29876         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
29877         is_gimple_formal_tmp_reg): Remove declarations.
29878         * tree-cfg.c (verify_expr): Verify that variables with address
29879         taken do not have DECL_GIMPLE_REG_P set.
29880         * tree-mudflap.c (mf_build_check_statement_for): Use
29881         force_gimple_operand instead of gimplify_expr.
29882
29883 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
29884
29885         * modulo-sched.c (sms_schedule_by_order): Pass the actual
29886         schedulable rows to compute_split_row.
29887
29888 2009-03-31  Ben Elliston  <bje@au.ibm.com>
29889
29890         PR target/31635
29891         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
29892         OPT_mvrsave.
29893
29894 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
29895
29896         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
29897         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
29898         * configure: Regenerate.
29899         * config.in: Regenerate.
29900         * config/rs6000/rs6000.opt (mtls-markers): Add.
29901         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
29902         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
29903         (tls_ld_aix, tls_ld_sysv): Likewise.
29904         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
29905         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
29906
29907 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
29908
29909         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
29910
29911 2009-03-30  Jan Hubicka  <jh@suse.cz>
29912
29913         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
29914         out of RESX.
29915         (tree_remove_unreachable_handlers): Cleanup EH predecestor
29916         detection and label handling.
29917
29918 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
29919
29920         * ira-int.h (ira_allocno): Rename left_conflicts_num to
29921         left_conflicts_size.
29922         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
29923         ALLOCNO_LEFT_CONFLICTS_SIZE.
29924
29925         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
29926         remove_allocno_from_bucket_and_push,
29927         allocno_spill_priority_compare, push_allocnos_to_stack,
29928         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
29929         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
29930         (setup_allocno_left_conflicts_num): Ditto.  Rename to
29931         setup_allocno_left_conflicts_size.
29932         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
29933         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
29934         setup_allocno_left_conflicts_size instead of
29935         setup_allocno_left_conflicts_num.
29936
29937         * ira-build.c (ira_create_allocno): Use
29938         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
29939         ALLOCNO_LEFT_CONFLICTS_NUM.
29940
29941 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
29942
29943         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
29944         instead of DF_LR_OUT.
29945
29946         * ira-lives.c (process_bb_node_lives): Ditto.
29947
29948         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
29949         instead of DF_LR_{OUT,IN}.
29950
29951         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
29952
29953         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
29954
29955 2009-03-30  Jan Hubicka  <jh@suse.cz>
29956
29957         * except.c (label_to_region_map): Fix thinko.
29958
29959 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
29960
29961         PR middle-end/38237
29962         * tree.h (tree_find_value): New declaration.
29963         * tree.c (tree_find_value): New function.
29964         * varasm.c (assemble_external): Avoid duplicate entries on lists.
29965
29966 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
29967
29968         PR debug/39563
29969         * c-decl.c (struct c_binding): Add locus field.
29970         (bind): Add locus argument, set locus field from it.
29971         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
29972         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
29973         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
29974         implicitly_declare, undeclared_variable, lookup_label,
29975         declare_label, c_make_fname_decl, c_builtin_function,
29976         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
29977         bind callers.
29978
29979 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
29980
29981         PR target/38781
29982         * config/i386/i386.c (classify_argument): Check total size of
29983         structure.
29984
29985 2009-03-30  Martin Jambor  <mjambor@suse.cz>
29986
29987         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
29988         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
29989         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
29990         respectively.
29991
29992         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
29993         seen_variable_array_ref while also traversing a union.
29994
29995         * tree-inline.c (optimize_inline_calls): Do not call
29996         cgraph_node_remove_callees.
29997         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
29998         (pass_remove_cgraph_callee_edges): New variable.
29999         * passes.c (init_optimization_passes): Add
30000         pass_remove_cgraph_callee_edges after early inlining and before all
30001         late intraprocedural passes.
30002
30003         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
30004
30005 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
30006
30007         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
30008         Fix typos in names.
30009
30010 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
30011
30012         * combine.c (simplify_comparison): Use have_insn_for.
30013         * dojump.c (do_jump): Likewise.
30014
30015 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
30016
30017         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
30018         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
30019         sparc_compare_op0 like sparc_compare_emitted used to be handled.
30020         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
30021         instead of sparc_compare_emitted.
30022         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
30023         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
30024         instead of sparc_compare_emitted.
30025
30026 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
30027
30028         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
30029         enter/exit cfglayout mode.
30030         (pass_partition_block): Require it.
30031         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
30032         (combine_instructions): Track basic blocks instead of labels.
30033         (update_cfg_for_uncondjump): New.
30034         (try_combine): Use it.  Update jumps after rescanning.
30035         (pass_combine): Require PROP_cfglayout.
30036         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
30037
30038 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
30039
30040         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
30041         Provide/destroy PROP_cfglayout respectively.
30042         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
30043         * tree-pass.h (PROP_cfglayout): New.
30044
30045 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
30046
30047         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
30048         fold_convert_const_fixed_from_fixed,
30049         fold_convert_const_fixed_from_int,
30050         fold_convert_const_fixed_from_real, fold_negate_const): Do not
30051         set TREE_CONSTANT_OVERFLOW.
30052         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
30053         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
30054
30055 2009-03-30  Ira Rosen  <irar@il.ibm.com>
30056
30057         * tree-vect-loop-manip.c: New file.
30058         * tree-vectorizer.c: Update documentation and included files.
30059         (vect_loop_location): Make extern.
30060         (rename_use_op): Move to tree-vect-loop-manip.c
30061         (rename_variables_in_bb, rename_variables_in_loop,
30062         slpeel_update_phis_for_duplicate_loop,
30063         slpeel_update_phi_nodes_for_guard1,
30064         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
30065         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
30066         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
30067         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
30068         find_loop_location): Likewise.
30069         (new_stmt_vec_info): Move to tree-vect-stmts.c.
30070         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
30071         get_vectype_for_scalar_type, vect_is_simple_use,
30072         supportable_widening_operation, supportable_narrowing_operation):
30073         Likewise.
30074         (bb_in_loop_p): Move to tree-vect-loop.c.
30075         (new_loop_vec_info, destroy_loop_vec_info,
30076         reduction_code_for_scalar_code, report_vect_op,
30077         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
30078         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
30079         (vect_supportable_dr_alignment): Likewise.
30080         * tree-vectorizer.h (tree-data-ref.h): Include.
30081         (vect_loop_location): Declare.
30082         Reorganize function declarations according to the new file structure.
30083         * tree-vect-loop.c: New file.
30084         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
30085         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
30086         * tree-vect-data-refs.c: New file.
30087         * tree-vect-patterns.c (timevar.h): Don't include.
30088         * tree-vect-stmts.c: New file.
30089         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
30090         tree-vect-slp.c, tree-vect-loop.c.
30091         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
30092         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
30093         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
30094         (tree-vect-analyze.o): Remove.
30095         (tree-vect-transform.o): Likewise.
30096         (tree-vect-data-refs.o): Add rule.
30097         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
30098         tree-vect-slp.o): Likewise.
30099         (tree-vect-patterns.o): Remove redundant dependencies.
30100         (tree-vectorizer.o): Likewise.
30101         * tree-vect-slp.c: New file.
30102
30103 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30104
30105         * optc-gen.awk: Warn if an option flag has multiple different
30106         help strings.
30107
30108 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
30109
30110         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
30111         -floop-block): Document dependences on PPL, CLooG and Graphite.
30112
30113 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
30114
30115         PR rtl-optimization/323
30116         * c-common.c (c_fully_fold, convert_and_check,
30117         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
30118         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
30119         * c-common.def (EXCESS_PRECISION_EXPR): New.
30120         * c-cppbuiltin.c (builtin_define_float_constants): Define
30121         constants with enough digits for long double.
30122         * c-lex.c (interpret_float): Interpret constant with excess
30123         precision where appropriate.
30124         * c-opts.c (c_common_post_options): Set
30125         flag_excess_precision_cmdline.  Give an error for
30126         -fexcess-precision=standard for C++ for processors where the
30127         option is significant.
30128         * c-parser.c (c_parser_conditional_expression): Handle excess
30129         precision in condition.
30130         * c-typeck.c (convert_arguments): Handle arguments with excess
30131         precision.
30132         (build_unary_op): Move excess precision outside operation.
30133         (build_conditional_expr): Likewise.
30134         (build_compound_expr): Likewise.
30135         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
30136         (build_modify_expr): Handle excess precision in RHS.
30137         (convert_for_assignment): Handle excess precision in converted
30138         value.
30139         (digest_init, output_init_element, process_init_element): Handle
30140         excess precision in initializer.
30141         (c_finish_return): Handle excess precision in return value.
30142         (build_binary_op): Handle excess precision in operands and add
30143         excess precision as needed for operation.
30144         * common.opt (-fexcess-precision=): New option.
30145         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
30146         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
30147         For standard excess precision, output explicit conversion to and
30148         truncation from XFmode.
30149         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
30150         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
30151         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
30152         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
30153         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
30154         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
30155         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
30156         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
30157         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
30158         define_splits, sqrt<mode>2): Disable where appropriate for
30159         standard excess precision.
30160         * convert.c (convert_to_real): Do not shorten arithmetic to type
30161         for which excess precision would be used.
30162         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
30163         * doc/invoke.texi (-fexcess-precision=): Document option.
30164         (-mfpmath=): Correct index entry.
30165         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
30166         flag_excess_precision): New.
30167         * langhooks.c (lhd_post_options): Set
30168         flag_excess_precision_cmdline.
30169         * opts.c (common_handle_option): Handle -fexcess-precision=.
30170         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
30171         init_excess_precision): New.
30172         (lang_dependent_init_target): Call init_excess_precision.
30173         * tree.c (excess_precision_type): New.
30174         * tree.h (excess_precision_type): Declare.
30175
30176 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
30177
30178         PR c/35235
30179         * c-typeck.c (build_component_ref): Do not copy qualifiers from
30180         non-lvalue to component.
30181
30182 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
30183
30184         PR preprocessor/34695
30185         * Makefile.in (c-opts.o): Depend on c-tree.h.
30186         * c-common.c: Move down include of diagnostic.h.
30187         (done_lexing, c_cpp_error): New.
30188         * c-common.h (done_lexing): Declare.
30189         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
30190         (parse_in).
30191         * c-opts.c: Include c-tree.h.
30192         (c_common_init_options): Set preprocessor error callback.
30193         (c_common_handle_option): Do not set preprocessor
30194         inhibit_warnings, warnings_are_errors, warn_system_headers,
30195         pedantic_errors or inhibit_warnings flags.
30196         (c_common_post_options): Do not check cpp_errors (parse_in).
30197         (c_common_finish): Do not output dependencies if there were
30198         errors.  Do not check return value of cpp_finish.
30199         * c-ppoutput.c (pp_file_change): Set input_location.
30200         * c-tree.h (c_cpp_error): Declare.
30201         * diagnostic.c (diagnostic_set_info_translated): Also initialize
30202         override_column.
30203         (diagnostic_build_prefix): Check override_column.
30204         * diagnostic.h (diagnostic_info): Add override_column field.
30205         (diagnostic_override_column): Define.
30206
30207 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
30208
30209         * c-common.c (c_expand_expr, c_staticp): Remove.
30210         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
30211         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
30212         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
30213         * c-gimplify.c (gimplify_compound_literal_expr,
30214         optimize_compound_literals_in_ctor): Remove.
30215         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
30216         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
30217         * c-semantics.c (emit_local_var): Remove.
30218
30219         * langhooks-def.h (lhd_expand_expr): Remove.
30220         * langhooks.c (lhd_expand_expr): Remove.
30221         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
30222
30223         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
30224         handling from c-semantics.c; don't call into langhook.
30225         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
30226         * gimplify.c (gimplify_compound_literal_expr,
30227         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
30228         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
30229         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
30230         as was done in c-gimplify.c.
30231         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
30232         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
30233         Move from c-common.h.
30234         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
30235
30236         * tree.c (staticp): Do not call langhook.
30237         * langhooks.c (lhd_staticp): Delete.
30238         * langhooks-def.h (lhd_staticp): Delete prototype.
30239         (LANG_HOOKS_STATICP): Delete.
30240         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
30241
30242         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
30243         instead of DECL_STMTs.
30244
30245 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
30246
30247         PR c/456
30248         PR c/5675
30249         PR c/19976
30250         PR c/29116
30251         PR c/31871
30252         PR c/35198
30253         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
30254         void_type_node.
30255         (fold_call_expr): Return a NOP_EXPR from folding rather than the
30256         contained expression.
30257         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
30258         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
30259         conditional expressions for C.
30260         (decl_constant_value_for_optimization): Move from
30261         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
30262         whether optimizing and that the expression is a VAR_DECL not of
30263         array type instead of doing such checks in the caller.  Do not
30264         check pedantic.  Call gcc_unreachable for C++.
30265         * c-common.def (C_MAYBE_CONST_EXPR): New.
30266         * c-common.h (c_fully_fold, c_save_expr,
30267         decl_constant_value_for_optimization): New prototypes.
30268         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
30269         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
30270         EXPR_INT_CONST_OPERANDS): Define.
30271         * c-convert.c (convert): Strip nops from expression.
30272         * c-decl.c (groktypename): Take extra parameters expr and
30273         expr_const_operands.  Update call to grokdeclarator.
30274         (start_decl): Update call to grokdeclarator.  Add statement for
30275         expressions used in type of decl.
30276         (grokparm): Update call to grokdeclarator.
30277         (push_parm_decl): Update call to grokdeclarator.
30278         (build_compound_literal): Add parameter non_const and build a
30279         C_MAYBE_COSNT_EXPR if applicable.
30280         (grokdeclarator): Take extra parameters expr and
30281         expr_const_operands.  Track expressions used in declaration
30282         specifiers and declarators.  Fold array sizes and track whether
30283         they are constant expressions and whether they are integer
30284         constant expressions.
30285         (parser_xref_tag): Set expr and expr_const_operands fields in
30286         return value.
30287         (grokfield): Update call to grokdeclarator.
30288         (start_function): Update call to grokdeclarator.
30289         (build_null_declspecs): Set expr and expr_const_operands fields in
30290         return value.
30291         (declspecs_add_type): Handle expressions in typeof specifiers.
30292         * c-parser.c (c_parser_declspecs): Set expr and
30293         expr_const_operands fields for declaration specifiers.
30294         (c_parser_enum_specifier): Likewise.
30295         (c_parser_struct_or_union_specifier): Likewise.
30296         (c_parser_typeof_specifier): Likewise.  Update call to
30297         groktypename.  Fold expression as needed.  Return expressions with
30298         type instead of adding statements.
30299         (c_parser_attributes): Update calls to c_parser_expr_list.
30300         (c_parser_statement_after_labels): Fold expression before passing
30301         to objc_build_throw_stmt.
30302         (c_parser_condition): Fold expression.
30303         (c_parser_asm_operands): Fold expression.
30304         (c_parser_conditional_expression): Use c_save_expr.  Update call
30305         to build_conditional_expr.
30306         (c_parser_alignof_expression): Update call to groktypename.
30307         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
30308         original_code.  Fold expression argument of va_arg.  Create
30309         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
30310         argument to va_arg.  Update calls to groktypename.  Fold array
30311         index for offsetof.  Verify that first argument to
30312         __builtin_choose_expr has integer type.
30313         (c_parser_postfix_expression_after_paren_type): Update calls to
30314         groktypename and build_compound_literal.  Handle expressions with
30315         side effects in type name.
30316         (c_parser_postfix_expression_after_primary): Update call to
30317         c_parser_expr_list.  Set original_code for calls to
30318         __builtin_constant_p.
30319         (c_parser_expr_list): Take extra parameter fold_p.  Fold
30320         expressions if requested.
30321         (c_parser_objc_type_name): Update call to groktypename.
30322         (c_parser_objc_synchronized_statement): Fold expression.
30323         (c_parser_objc_receiver): Fold expression.
30324         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
30325         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
30326         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
30327         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
30328         (struct c_typespec): Add elements expr and expr_const_operands.
30329         (struct c_declspecs): Add elements expr and expr_const_operands.
30330         (groktypename, build_conditional_expr, build_compound_literal):
30331         Update prototypes.
30332         (in_late_binary_op): Declare.
30333         * c-typeck.c (note_integer_operands): New function.
30334         (in_late_binary_op): New variable.
30335         (decl_constant_value_for_broken_optimization): Move to c-common.c
30336         and rename to decl_constant_value_for_optimization.
30337         (default_function_array_conversion): Do not strip nops.
30338         (default_conversion): Do not call
30339         decl_constant_value_for_broken_optimization.
30340         (build_array_ref): Do not fold result.
30341         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
30342         result when operand is a VLA.
30343         (c_expr_sizeof_type): Update call to groktypename.  Handle
30344         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
30345         result when operand names a VLA type.
30346         (build_function_call): Update call to build_compound_literal.
30347         Only fold result for calls to __builtin_* functions.  Strip
30348         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
30349         the function designator.
30350         (convert_arguments): Fold arguments.  Update call to
30351         convert_for_assignment.
30352         (build_unary_op): Handle increment and decrement of
30353         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
30354         decrement earlier.  Fold operand of increment and decrement.
30355         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
30356         built for integer operand.  Wrap returns that are INTEGER_CSTs
30357         without being integer constant expressions or that have integer
30358         constant operands without being INTEGER_CSTs.
30359         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
30360         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
30361         result is an integer constant expression or can be used in
30362         unevaluated parts of one and avoid folding and wrap as
30363         appropriate.  Fold operands before possibly doing -Wsign-compare
30364         warnings.
30365         (build_compound_expr): Wrap result for C99 if operands can be used
30366         in integer constant expressions.
30367         (build_c_cast): Update call to digest_init.  Do not ignore
30368         overflow from casting floating-point constants to integers.  Wrap
30369         results that could be confused with integer constant expressions,
30370         null pointer constants or floating-point constants.
30371         (c_cast_expr): Update call to groktypename.  Handle expressions
30372         included in type name.
30373         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
30374         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
30375         Update calls to convert_for_assignment.
30376         (convert_for_assignment): Take new parameter
30377         null_pointer_constant.  Do not strip nops or call
30378         decl_constant_value_for_broken_optimization.  Set
30379         in_late_binary_op for conversions to boolean.
30380         (store_init_value): Update call to digest_init.
30381         (digest_init): Take new parameter null_pointer_constant.  Do not
30382         call decl_constant_value_for_broken_optimization.  pedwarn for
30383         initializers not constant expressions.  Update calls to
30384         convert_for_assignment.
30385         (constructor_nonconst): New.
30386         (struct constructor_stack): Add nonconst element.
30387         (really_start_incremental_init, push_init_level, pop_init_level):
30388         Handle constructor_nonconst and nonconst element.
30389         (set_init_index): Call constant_expression_warning for array
30390         designators.
30391         (output_init_element): Fold value.  Set constructor_nonconst as
30392         applicable.  pedwarn for initializers not constant expressions.
30393         Update call to digest_init.  Call constant_expression_warning
30394         where constant initializers are required.
30395         (process_init_element): Use c_save_expr.
30396         (c_finish_goto_ptr): Fold expression.
30397         (c_finish_return): Fold return value.  Update call to
30398         convert_for_assignment.
30399         (c_start_case): Fold switch expression.
30400         (c_process_expr_stmt): Fold expression.
30401         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
30402         ensure statement expression is not evaluated in constant expression.
30403         (build_binary_op): Track whether results are integer constant
30404         expressions or may occur in such, disable folding and wrap results
30405         as applicable.  Fold operands for -Wsign-compare warnings unless
30406         in_late_binary_op.
30407         (c_objc_common_truthvalue_conversion): Handle results folded to
30408         integer constants that are not integer constant expressions.
30409         * doc/extend.texi: Document when typeof operands are evaluated,
30410         that condition of __builtin_choose_expr is an integer constant
30411         expression, and more about use of __builtin_constant_p in
30412         initializers.
30413
30414 2009-03-29  Richard Guenther  <rguenther@suse.de>
30415
30416         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
30417         propagate addresses of array references.
30418
30419 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
30420
30421         * regmove.c (perhaps_ends_bb_p): Remove.
30422         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
30423         from INSN and check that the main loop stays within that basic block.
30424         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
30425         (regmove_forward_pass): Split out from regmove_optimize.  Use
30426         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
30427         (regmove_backward_pass): Split out from regmove_optimize.  Use
30428         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
30429         (regmove_optimize): Simplify.
30430
30431 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
30432
30433         PR target/39545
30434         * config/i386/i386.c (classify_argument): Ignore flexible array
30435         member in struct and warn ABI change.
30436
30437 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
30438
30439         * config/i386/i386-protos.h (ix86_agi_dependent): New.
30440
30441         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
30442         (ix86_adjust_cost): Updated.
30443
30444 2009-03-29  Jan Hubicka  <jh@suse.cz>
30445
30446         PR middle-end/28850
30447         * tree-pass.h (pass_cleanup_eh): New function.
30448         (remove_unreachable_regions): Break code handling RTL
30449         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
30450         that can not be reached by runtime.
30451         (can_be_reached_by_runtime): New function.
30452         (label_to_region_map): New function.
30453         (num_eh_regions): New function.
30454         (rtl_remove_unreachable_regions): New function.
30455         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
30456         (remove_eh_region): New function.
30457         * except.h: Include sbitmap and vecprim.
30458         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
30459         num_eh_regions): Declare.
30460         * passes.c (init_optimization_passes): Schedule cleanup_eh.
30461         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
30462         * tree-eh.c (tree_remove_unreachable_handlers): New function.
30463         (tree_empty_eh_handler_p): New function.
30464         (cleanup_empty_eh): New function.
30465         (cleanup_eh): New function.
30466         (pass_cleanup_eh): New function.
30467
30468 2009-03-29  Jan Hubicka  <jh@suse.cz>
30469
30470         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
30471         for removed regions.
30472
30473 2009-03-29  Jan Hubicka  <jh@suse.cz>
30474
30475         * except.c (dump_eh_tree): Dump all datastructures.
30476
30477 2009-03-29  Jan Hubicka  <jh@suse.cz>
30478
30479         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
30480         (duplicate_eh_regions_1): Likewise.
30481         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
30482         vector; call EH verification.
30483         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
30484         Be ready for region being removed.
30485
30486 2009-03-29  Jan Hubicka  <jh@suse.cz>
30487
30488         * bitmap.c (bitmap_last_set_bit): New function.
30489         * bitmap.h (bitmap_last_set_bit): Declare.
30490
30491 2009-03-29  David Ayers  <ayers@fsfe.org>
30492
30493         PR objc/27377
30494         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
30495         by calling objc_compare_types and surpress warnings about
30496         incompatible C pointers that are compatible ObjC pointers.
30497
30498 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
30499
30500         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
30501         call initialize_inline_failed.
30502         (initialize_inline_failed): Move it from here ...
30503         * cgraph.c (initialize_inline_failed): ... to here.
30504         (cgraph_create_edge): Call initialize_inline_failed rather than
30505         setting inline_failed directly.
30506
30507 2009-03-29  Ben Elliston  <bje@au.ibm.com>
30508
30509         PR target/32542
30510         * sysv4.opt (msdata): Improve comment.
30511         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
30512         * sysv4.h (SVR4_ASM_SPEC): Likewise.
30513
30514 2009-03-29  Ben Elliston  <bje@au.ibm.com>
30515
30516         PR target/30451
30517         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
30518         load and store attributes.
30519
30520 2009-03-29  Ben Elliston  <bje@au.ibm.com>
30521
30522         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
30523         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
30524         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
30525         * doc/extend.texi (X86 Built-in Functions): Add index entries for
30526         __builtin_infq and __builtin_huge_valq.
30527
30528 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
30529
30530         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
30531         atmega8m1 devices.
30532         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
30533         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
30534
30535 2009-03-28  Xinliang David Li  <davidxl@google.com>
30536
30537         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
30538         (do_dbg_cnt): New function.
30539
30540 2009-03-28  Jan Hubicka  <jh@suse.cz>
30541
30542         Merge from pretty-ipa:
30543
30544         2009-03-27  Jan Hubicka  <jh@suse.cz>
30545
30546         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
30547         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
30548         * passes.c (function_called_by_processed_nodes_p): New.
30549         * ipa-pure-const.c (check_call): Fix handling of operands.
30550         (analyze_function): Dump debug output for skipped bodies.
30551         (local_pure_const): Use function_called_by_processed_nodes_p.
30552         * dwarf2out.c (reference_to_unused): Use output.
30553         * passes.c (do_per_function_toporder): Likewise.
30554
30555         2008-11-12  Jan Hubicka  <jh@suse.cz>
30556
30557         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
30558         * ipa-pure-const.c (funct_state_d): Add can throw field; make
30559         state_set_in_source enum
30560         (check_decl): Ignore memory tags; do not set fake looping flags;
30561         dump diagnostics.
30562         (check_operand, check_tree, check_rhs_var, check_lhs_var,
30563         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
30564         (check_call, analyze_function): Rewrite.
30565         (check_stmt): New.
30566         (add_new_function): Update call of analyze_function.
30567         (generate_summary): Add call of analyze_function.
30568         (propagate): Propagate can_throw; handle state_set_in_source correctly.
30569         (local_pure_const): New function.
30570         (pass_local_pure_const): New pass.
30571         * ipa-inline.c (inline_transform): Set after_inlining.
30572         * tree-eh.c (stmt_can_throw_external): New.
30573         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
30574         work with aliasing built.
30575         * tree-flow.h (stmt_can_throw_external): New.
30576         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
30577         and local pure/const pass in early and late optimization queue.
30578
30579 2009-03-28  Martin Jambor  <mjambor@suse.cz>
30580
30581         * fold-const.c (get_pointer_modulus_and_residue): New parameter
30582         allow_func_align.
30583         (fold_binary): Allow function decl aligment consideration is the
30584         second argument is integer constant one.
30585         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
30586         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
30587         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
30588
30589 2009-03-28  Jan Hubicka  <jh@suse.cz>
30590
30591         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
30592         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
30593         * function.h (rtl_data): Add nothrow flag.
30594         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
30595         set DECL_NOTHROW for AVAILABLE functions.
30596
30597 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
30598
30599         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
30600         following vector keyword has expansion starting with pixel or bool
30601         keyword, expand vector to __vector and pixel or bool to __pixel or
30602         __bool.
30603
30604         PR c++/39554
30605         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
30606         warn_if_disallowed_function_p): Removed.
30607         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
30608         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
30609         warning_if_disallowed_function_p.
30610         * flags.h (warn_if_disallowed_function_p,
30611         warn_disallowed_functions): Removed.
30612         * common.opt (Wdisallowed-function-list=): Removed.
30613         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
30614
30615 2009-03-28  Richard Guenther  <rguenther@suse.de>
30616
30617         PR tree-optimization/38723
30618         * tree-ssa-pre.c (compute_avail): Add all default definitions to
30619         the entry block.
30620
30621 2009-03-28  Jan Hubicka  <jh@suse.cz>
30622
30623         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
30624         test introduced by my previous patch.
30625
30626 2009-03-28  Richard Guenther  <rguenther@suse.de>
30627
30628         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
30629         the PHIs value undefined.
30630
30631 2009-03-28  Jan Hubicka  <jh@suse.cz>
30632
30633         * tree-pass.h (pass_fixup_cfg): New pass.
30634         * ipa-inline.c (inline_transform): Set
30635         always_inline_functions_inlined/after_inlining.
30636         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
30637         (pass_fixup_cfg): New pass.
30638         * passes.c (init_optimization_passes): Add fixup_cfg.
30639
30640 2009-03-28  Richard Guenther  <rguenther@suse.de>
30641
30642         PR tree-optimization/38458
30643         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
30644         argument use the arguments copy-of value.
30645
30646 2009-03-28  Richard Guenther  <rguenther@suse.de>
30647
30648         PR tree-optimization/38180
30649         * tree-ssa-ccp.c (get_default_value): Simplify.
30650         (likely_value): Likewise.
30651         (surely_varying_stmt_p): Properly handle VOP case.
30652         (ccp_initialize): Likewise.
30653         (ccp_fold): Handle propagating through *&.
30654         (fold_const_aggregate_ref): Also handle decls.
30655
30656 2009-03-28  Jan Hubicka  <jh@suse.cz>
30657
30658         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
30659         * cgraph.h (cgraph_node): Likewise.
30660         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
30661         (cgraph_reset_node): Use process flag.
30662         (cgraph_mark_functions_to_output): Likewise.
30663         (cgraph_expand_function): Likewise.
30664         (cgraph_expand_all_functions): Likewise.
30665         (cgraph_output_in_order): Likewise.
30666         * dwarf2out.c (reference_to_unused): Likewise.
30667         * passes.c do_per_function_toporder): Likewise.
30668
30669 2009-03-28  Jan Hubicka  <jh@suse.cz>
30670
30671         Bring from lto-branch:
30672
30673         2008-09-03  Doug Kwan  <dougkwan@google.com>
30674
30675         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
30676         enums instead of reason strings.
30677         * cgraph.c (cgraph_create_edge): Same.
30678         (cgraph_inline_failed_string): New function.
30679         * cgraph.h (cgraph_inline_failed_t): New enum type.
30680         (cgraph_inline_failed_string): New prototype.
30681         (struct cgraph_edge): Change type of INLINED_FAILED from constant
30682         char pointer to cgraph_inline_failed_t.
30683         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
30684         (cgraph_default_inline_p): Ditto.
30685         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
30686         to cgraph_inline_failed_t pointer.
30687         * cif-code.def: New file.
30688         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
30689         reason string.
30690         (cgraph_check_inline_limits): Change type of REASON to pointer to
30691         cgraph_inline_failed_t.  Replace reason strings with enums.
30692         (cgraph_default_inline_p): Ditto.
30693         (cgraph_recursive_inlining_p): Ditto.
30694         (update_caller_keys): Change type of FAILED_REASON to
30695         cgraph_inline_failed_t.
30696         (cgraph_set_inline_failed): Change type of REASON to pointer to
30697         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
30698         convert enums to strings for text output.
30699         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
30700         to be of type cgraph_inline_failed_t.  Replace reason strings with
30701         enums.  Call cgraph_inline_failed_string to covert enums
30702         to strings for text output.
30703         (cgraph_decide_inlining): Replace reason strings with enums.
30704         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
30705         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
30706         for text output.
30707         * tree-inline.c (expand_call_inline): Change type of REASON
30708         to cgraph_inline_failed_t.  Replace reason strings with enums.
30709         Call cgraph_inline_failed_string for text output.
30710         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
30711         (cgraph.o): Ditto.
30712
30713 2009-03-28  Jan Hubicka  <jh@suse.cz>
30714
30715         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
30716         cgraph_clone_node): Remove master clone handling.
30717         (cgraph_is_master_clone, cgraph_master_clone): Remove.
30718         * cgraph.h (master_clone): Remove.
30719         (cgraph_is_master_clone, cgraph_master_clone): Remove.
30720         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
30721         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
30722
30723 2009-03-28  Jan Hubicka  <jh@suse.cz>
30724
30725         * cgraph.c (cgraph_function_body_availability): Functions declared
30726         inline are always safe to assume that it is not going to be replaced.
30727
30728 2009-03-28  Richard Guenther  <rguenther@suse.de>
30729
30730         PR tree-optimization/38513
30731         * tree-ssa-pre.c (eliminate): Remove redundant stores.
30732         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
30733         EXC_PTR_EXPR and FILTER_EXPR.
30734         (get_ref_from_reference_ops): Likewise.
30735
30736 2009-03-28  Richard Guenther  <rguenther@suse.de>
30737
30738         PR tree-optimization/38968
30739         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
30740         Use FLOOR_MOD_EXPR to compute misalignment.
30741
30742 2009-03-28  Richard Guenther  <rguenther@suse.de>
30743
30744         PR tree-optimization/37795
30745         * tree.h (combine_comparisons): Declare.
30746         * fold-const.c (combine_comparisons): Export.
30747         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
30748         comparisons.
30749         (ifcombine_iforif): Use combine_comparisons.
30750
30751 2009-03-28  Jan Hubicka  <jh@suse.cz>
30752
30753         * tree-eh.c (inlinable_call_p): New function.
30754         (make_eh_edges): Use it.
30755         (verify_eh_edges): Use it.
30756         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
30757         * except.c (reachable_next_level): Add inlinable_function argument
30758         (sjlj_find_directly_reachable_regions): Update.
30759         (add_reachable_handler): Do not set saw_any_handlers.
30760         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
30761         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
30762         Add new inlinable call parameter.
30763         (can_throw_internal, can_throw_external): Update.
30764         * except.h (can_throw_internal_1, can_throw_external_1,
30765         foreach_reachable_handler): Update declaration.
30766
30767 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
30768
30769         * config/arm/t-arm-coff, config/h8300/coff.h,
30770         config/i386/i386-aout.h, config/i386/i386-coff.h,
30771         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
30772         config/pdp11/2bsd.h, config/rs6000/aix41.h,
30773         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
30774         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
30775         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
30776         sys-types.h: Remove.
30777         * Makefile.in: Remove protoize and fixproto support and references
30778         in comments.
30779         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
30780         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
30781         Remove.
30782         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
30783         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
30784         unprotoize$(exeext).
30785         (rest.encap): Don't depend on $(STMP_FIXPROTO)
30786         (.PHONY): Don't depend on proto.
30787         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
30788         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
30789         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
30790         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
30791         build/gen-protos.o, build/scan.o, xsys-protos.h,
30792         build/fix-header$(build_exeext), build/fix-header.o,
30793         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
30794         stmp-install-fixproto): Remove.
30795         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
30796         SYSCALLS.c or fixproto files.
30797         (install-common): Don't install protoize.
30798         (install-headers-tar, install-headers-cpio, install-headers-cp):
30799         Don't depend on $(STMP_FIXPROTO).
30800         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
30801         install fixproto files or write out fixproto settings.
30802         (uninstall): Don't uninstall protoize.
30803         * config.gcc (use_fixproto): Remove.
30804         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
30805         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
30806         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
30807         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
30808         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
30809         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
30810         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
30811         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
30812         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
30813         * config/t-vxworks (STMP_FIXPROTO): Remove.
30814         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
30815         STMP_FIXPROTO): Remove.
30816         * config.in, configure: Regenerate.
30817         * crtstuff.c (gid_t, uid_t): Don't undefine.
30818         * doc/install.texi: Change m68k-coff to m68k-elf in example.
30819         (arm-*-coff, arm-*-aout: Remove target entries.
30820         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
30821         Remove mention of AIX 4.1.
30822         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
30823         * doc/invoke.texi (Running Protoize): Remove.
30824         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
30825         (Protoize Caveats): Remove.
30826         * tsystem.h: Update comments on headers assumed to exist.
30827
30828 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
30829
30830         * genautomata.c: Add a new year to the copyright.  Add a new
30831         reference.
30832         (struct insn_reserv_decl): Add comments for member bypass_list.
30833         (find_bypass): Remove.
30834         (insert_bypass): New.
30835         (process_decls): Use insert_bypass.
30836         (output_internal_insn_latency_func): Output all bypasses with the
30837         same input insn in one switch case.
30838
30839         * rtl.def (define_bypass): Describe bypass choice.
30840         * doc/md.texi (define_bypass): Ditto.
30841
30842 2009-03-27  Richard Guenther  <rguenther@suse.de>
30843
30844         * gimplify.c (mark_addressable): Export.
30845         * tree-flow.h (mark_addressable): Declare.
30846         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
30847         * tree-ssa.c (verify_phi_args): Verify that address taken
30848         variables have TREE_ADDRESSABLE set.
30849
30850 2009-03-27  Richard Guenther  <rguenther@suse.de>
30851
30852         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
30853         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
30854         Do not mark decls TREE_ADDRESSABLE.
30855         (build_fold_addr_expr): Adjust.
30856         (fold_addr_expr): Remove.
30857         (fold_unary): Use build_fold_addr_expr.
30858         (fold_comparison): Likewise.
30859         (split_address_to_core_and_offset): Likewise.
30860         * coverage.c (tree_coverage_counter_addr): Mark the array decl
30861         TREE_ADDRESSABLE.
30862         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
30863         (gimplify_modify_expr_to_memcpy): Mark source and destination
30864         addressable.
30865         * omp-low.c (create_omp_child_function): Mark the object decl
30866         TREE_ADDRESSABLE.
30867         (lower_rec_input_clauses): Mark the var we take the address of
30868         TREE_ADDRESSABLE.
30869         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
30870
30871 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
30872
30873         PR middle-end/39315
30874         * cfgexpand.c (expand_one_stack_var_at): Change alignment
30875         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
30876
30877 2009-03-27  Richard Guenther  <rguenther@suse.de>
30878
30879         PR tree-optimization/39120
30880         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
30881         constraints.
30882         (handle_lhs_call): Process return constraints.  Add escape
30883         constraints if necessary.
30884         (handle_const_call): Fill out return constraints.  Make nested
30885         case more precise.  Avoid consttmp if possible.
30886         (handle_pure_call): Fill out return constraints.  Avoid
30887         callused if possible.
30888         (find_func_aliases): Simplify call handling.
30889
30890 2009-03-27  Richard Guenther  <rguenther@suse.de>
30891
30892         PR tree-optimization/39120
30893         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
30894         as a representative.
30895         (solve_graph): Do propagate CALLUSED.
30896         (handle_pure_call): Use a scalar constraint from CALLUSED for
30897         the return value.
30898         (find_what_p_points_to): CALLUSED shall not appear in poins-to
30899         solutions.
30900
30901 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
30902
30903         PR c/39323
30904         * c-common.c (handle_aligned_attribute): Properly check alignment
30905         overflow.  Use (1U << i) instead of (1 << i).
30906
30907         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
30908
30909         * expr.h (get_mem_align_offset): Updated.
30910
30911         * tree.h (tree_decl_common): Change align to "unsigned int" and
30912         move it before pointer_alias_set.
30913
30914 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
30915             Jakub Jelinek  <jakub@redhat.com>
30916
30917         PR target/38034
30918         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
30919         gr_register_operand with gr_reg_or_0_operand.
30920         (cmpxchg_rel_di): Likewise.
30921         (sync_lock_test_and_set<mode>): Likewise.
30922
30923 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
30924
30925         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
30926         (true_regnum): Likewise.
30927
30928         * rtlanal.c (subreg_info): Moved to ...
30929         * rtl.h (subreg_info): Here.  New.
30930         (subreg_get_info): New.
30931
30932         * rtlanal.c (subreg_get_info): Make it extern.
30933
30934 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
30935
30936         PR target/39472
30937         * config/i386/i386.c (ix86_abi): New.
30938         (override_options): Handle -mabi=.
30939         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
30940         (ix86_call_abi_override): Likewise.
30941         (init_cumulative_args): Likewise.
30942         (function_arg_advance): Likewise.
30943         (function_arg_64): Likewise.
30944         (function_arg): Likewise.
30945         (ix86_pass_by_reference): Likewise.
30946         (ix86_function_value_regno_p): Likewise.
30947         (ix86_build_builtin_va_list_abi): Likewise.
30948         (setup_incoming_varargs_64): Likewise.
30949         (is_va_list_char_pointer): Likewise.
30950         (ix86_init_machine_status): Likewise.
30951         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
30952         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
30953         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
30954         (ix86_function_abi): Make it static and return enum calling_abi.
30955         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
30956         with ix86_abi.
30957         (ix86_fn_abi_va_list): Updated.
30958
30959         * config/i386/i386.h (ix86_abi): New.
30960         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
30961         (CONDITIONAL_REGISTER_USAGE): Likewise.
30962         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
30963         (machine_function): Likewise.
30964
30965         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
30966         with ix86_abi.
30967         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
30968         (STACK_BOUNDARY): Likewise.
30969         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
30970
30971         * config/i386/i386.opt (mabi=): New.
30972
30973         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
30974         return enum calling_abi.
30975         (ix86_function_type_abi): Likewise.
30976         (ix86_function_abi): Removed.
30977
30978         * doc/invoke.texi: Document -mabi= option for x86.
30979
30980 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
30981
30982         * builtins.c (real_dconstp): Delete.
30983         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
30984
30985 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
30986             Jakub Jelinek  <jakub@redhat.com>
30987
30988         PR debug/37959
30989         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
30990         (gen_subprogram_die): When a function is explicit, generate the
30991         DW_AT_explicit attribute.
30992         * langhooks.h (struct lang_hooks_for_decls): Add
30993         function_decl_explicit_p langhook.
30994         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
30995         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
30996
30997 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
30998
30999         * builtins.c (fold_builtin_memory_op): Optimize memmove
31000         into memcpy if we can prove source and destination don't overlap.
31001
31002         * tree-inline.c: Include gt-tree-inline.h.
31003         (clone_fn_id_num): New variable.
31004         (clone_function_name): New function.
31005         (tree_function_versioning): Use it.
31006         * Makefile.in (GTFILES): Add tree-inline.c.
31007
31008 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
31009
31010         * BASE-VER: Change to 4.5.0.
31011
31012 2009-03-27  Xinliang David Li  <davidxl@google.com>
31013
31014         PR tree-optimization/39557
31015         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
31016
31017 2009-03-27  Xinliang David Li  <davidxl@google.com>
31018
31019         PR tree-optimization/39548
31020         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
31021         candidate check.
31022
31023 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
31024
31025         * c-common.c (pointer_int_sum): Use %wd on return from
31026         tree_low_cst.
31027
31028 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
31029
31030         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
31031         on return from tree_low_cst.
31032
31033 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
31034
31035         PR c++/36799
31036         * ginclude/stdarg.h (va_copy): Define also for
31037         __GXX_EXPERIMENTAL_CXX0X__.
31038
31039 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
31040
31041         PR c++/35652
31042         * builtins.h (c_strlen): Do not warn here.
31043         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
31044         * c-common.c (pointer_int_sum): Take an explicit location.
31045         Warn about offsets out of bounds.
31046         * c-common.h (pointer_int_sum): Adjust declaration.
31047
31048 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31049
31050         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
31051         markup glitch.
31052
31053 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
31054
31055         PR c++/39554
31056         * opts.c (warn_if_disallowed_function_p): Don't assume
31057         get_callee_fndecl must return non-NULL.
31058
31059 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
31060
31061         PR rtl-optimization/39522
31062         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
31063         when reg_reloaded_valid is set.
31064
31065 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31066
31067         * config/spu/divv2df3.c: New file.
31068         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
31069         (DPBIT_FUNCS): Filter out _div_df.
31070
31071 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
31072
31073         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
31074         a jump insn, count that jump in the distance to the loop start.
31075
31076 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
31077
31078         PR target/39523
31079         * config/sh/sh.c (calc_live_regs): Fix condition for global
31080         registers except PIC_OFFSET_TABLE_REGNUM.
31081
31082 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
31083
31084         PR/39518
31085         * doc/invoke.texi (-mconsole): New.
31086         (-mcygwin): New.
31087         (-mno-cygwin): New.
31088         (-mdll): New.
31089         (-mnop-fun-dllimport): New.
31090         (-mthread): New.
31091         (-mwin32): New.
31092         (-mwindows): New.
31093         (sub section "i386 and x86-64 Windows Options"): New.
31094
31095 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
31096
31097         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
31098         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
31099
31100 2009-03-25  Richard Guenther  <rguenther@suse.de>
31101
31102         PR middle-end/39497
31103         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
31104         of -Wno-error.
31105
31106 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
31107
31108         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
31109         neither of haifa/selective schedulers are working.
31110
31111 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31112
31113         * doc/invoke.texi (Debugging Options): Fix description of
31114         -fno-merge-debug-strings.
31115
31116 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
31117
31118         * config/cris/libgcc.ver: New version-script.
31119         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
31120
31121         * configure.ac <GAS features, nop mnemonic>: Add pattern
31122         crisv32-*-* for "nop".
31123         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
31124         * configure: Regenerate.
31125
31126 2009-03-24  Ira Rosen  <irar@il.ibm.com>
31127
31128         PR tree-optimization/39529
31129         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
31130         mark_sym_for_renaming for the tag copied to the new vector
31131         pointer.
31132
31133 2009-03-24  Arthur Loiret  <aloiret@debian.org>
31134
31135         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
31136         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
31137         EXTRA_SPEC_FUNCTIONS.
31138         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
31139         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
31140         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
31141         -march and -mtune options.
31142
31143 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
31144
31145         * config/m68k/t-rtems: Add m5329 multilib.
31146
31147 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
31148             Jakub Jelinek  <jakub@redhat.com>
31149
31150         PR debug/39524
31151         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
31152         nodes.
31153
31154 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
31155
31156         PR c/39495
31157         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
31158         instead of c_parser_expression_conv, if original_code isn't one of the
31159         4 allowed comparison codes, fail.
31160
31161 2009-03-23  Richard Guenther  <rguenther@suse.de>
31162
31163         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
31164         * tree.h (struct tree_type): Likewise.
31165         * reload.h (struct insn_chain): Likewise.
31166         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
31167         * function.h (struct function): Likewise.
31168         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
31169
31170 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
31171
31172         PR tree-optimization/39516
31173         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
31174
31175 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
31176
31177         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
31178         should be set true if BITS_PER_WORD of target is bigger than 32
31179
31180 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
31181
31182         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
31183         Translate -B-options to -rpath-link.  Correct existing
31184         rpath-link and conditionalize on !nostdlib.
31185
31186 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31187
31188         * doc/extend.texi (Function Attributes, Variable Attributes):
31189         Fix typos.
31190         * doc/invoke.texi (Debugging Options, Optimize Options)
31191         (i386 and x86-64 Options, MCore Options): Likewise.
31192
31193 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
31194
31195         PR debug/37890
31196         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
31197         it for block local namespace aliases.
31198         (gen_decl_die): Pass context_die to gen_namespace_die.
31199
31200 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
31201
31202         PR c/39495
31203         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
31204         minimum or maximum value.
31205
31206 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
31207
31208         * reginfo.c (globalize_reg): Recompute derived reg sets.
31209
31210 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
31211
31212         PR target/39063
31213         * libgcc2.c (mprotect): Do not use signed arguments for
31214         VirtualProtect, use DWORD arguments.  Also fix the 'may
31215         be used uninitialized' warning for the np variable.
31216
31217 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
31218
31219         PR target/39496
31220         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
31221         functions using regparm calling conventions when not optimizing.
31222         (ix86_function_sseregparm): Similarly for sseregparm calling
31223         conventions.
31224
31225 2009-03-19  Li Feng  <nemokingdom@gmail.com>
31226
31227         PR middle-end/39500
31228         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
31229         dependence if the first conflict is after niter iterations.
31230
31231 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
31232
31233         PR middle-end/38609
31234         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
31235         functions with dynamic stack-pointer adjustments.
31236
31237 2009-03-19  Ben Elliston  <bje@au.ibm.com>
31238
31239         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
31240         option; change to -msdata=data.
31241
31242 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31243
31244         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
31245         and -fopenmp.
31246
31247 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
31248
31249         PR target/35180
31250         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
31251
31252 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
31253
31254         * doc/invoke.texi (Code Gen Options): Expand discussion of
31255         -fno-common.
31256
31257 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
31258
31259         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
31260         * matrix-reorg.c (struct matrix_info): Likewise.
31261         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
31262         * rtl.h (struct mem_attrs): Likewise.
31263         * df.h (struct df): Likewise.
31264         * tree-data-ref.h (struct data_dependence_relation): Likewise.
31265         * ira-int.h (struct ira_allocno): Likewise.
31266         * df-scan.c (struct df_collection_rec): Likewise.
31267         * ira.c (struct equivalence): Likewise.
31268         * function.c (struct temp_slot): Likewise.
31269         * cfgloop.h (struct loop): Likewise.
31270
31271         PR debug/39485
31272         * function.c (use_register_for_decl): When not optimizing, disregard
31273         register keyword for variables with types containing methods.
31274
31275 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
31276
31277         PR middle-end/39447
31278         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
31279         (is_simple_operand): Call contains_component_ref_p before calling data
31280         reference analysis that would fail on COMPONENT_REFs.
31281
31282         * tree-vrp.c (search_for_addr_array): Fix formatting.
31283
31284 2009-03-18  Richard Guenther  <rguenther@suse.de>
31285
31286         * tree-vect-transform.c (vect_loop_versioning): Fold the
31287         generated comparisons.
31288         * tree-vectorizer.c (set_prologue_iterations): Likewise.
31289         (slpeel_tree_peel_loop_to_edge): Likewise.
31290
31291 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31292
31293         PR middle-end/37805
31294         * opts.c (print_specific_help): In addition to `undocumented',
31295         accept `separate' and `joined' flags if passed alone.  Describe
31296         output by the first matched one of those.
31297         (common_handle_option): Skip over empty strings.
31298         * gcc.c (display_help): Fix help string for `--help='.
31299         * doc/invoke.texi (Option Summary, Overall Options): With
31300         `--help=', classes and qualifiers can both be repeated, but
31301         only the latter can be negated.  One should not pass only
31302         negated qualifiers.  Fix markup and examples.
31303
31304         Revert
31305         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
31306         PR middle-end/37805
31307         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
31308         and -fhelp=separate.
31309
31310 2009-03-17  Jing Yu  <jingyu@google.com>
31311
31312         PR middle-end/39378
31313         * function.h (struct rtl_data): Move is_thunk from here...
31314         (struct function): ...to here.
31315         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
31316         * varasm.c (assemble_start_function): Change is_thunk from crtl to
31317         cfun.
31318         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
31319         cfun.
31320         (alpha_does_function_need_gp, alpha_start_function): Likewise.
31321         (alpha_output_function_end_prologue): Likewise.
31322         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
31323         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
31324         (rs6000_output_function_epilogue): Likewise.
31325         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
31326
31327 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
31328
31329         PR target/39482
31330         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
31331         from different units in a single alternative.
31332         (*truncdfsf_i387): Ditto.
31333         (*truncxfsf2_mixed): Ditto.
31334         (*truncxfdf2_mixed): Ditto.
31335
31336 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
31337
31338         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
31339         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
31340
31341         PR debug/39474
31342         * tree-ssa-live.c (remove_unused_locals): Don't remove local
31343         unused non-artificial variables when not optimizing.
31344
31345         PR debug/39471
31346         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
31347         DW_TAG_imported_module even if decl is IMPORTED_DECL with
31348         NAMESPACE_DECL in its DECL_INITIAL.
31349
31350         PR middle-end/39443
31351         * optabs.c (set_user_assembler_libfunc): New function.
31352         * expr.h (set_user_assembler_libfunc): New prototype.
31353         * c-common.c: Include libfuncs.h.
31354         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
31355         for memcmp, memset, memcpy, memmove and abort.
31356         * Makefile.in (c-common.o): Depend on libfuncs.h.
31357
31358         PR debug/39412
31359         * dwarf2out.c (gen_inlined_enumeration_type_die,
31360         gen_inlined_structure_type_die, gen_inlined_union_type_die,
31361         gen_tagged_type_instantiation_die): Removed.
31362         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
31363         do nothing.
31364
31365 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
31366
31367         PR testsuite/38526
31368         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
31369         its use.
31370         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
31371         (check-parallel-%): Ditto.
31372         (check-consistency): Ditto.
31373
31374 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
31375
31376         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
31377         local variable rhs by NULL_TREE.
31378
31379 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
31380
31381         PR target/39477
31382         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
31383
31384 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
31385
31386         PR target/39476
31387         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
31388
31389 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
31390
31391         PR target/39473
31392         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
31393         for ms->sysv ABI calls only in 64bit mode.
31394
31395         * config/i386/i386.md (untyped_call): Support 32bit.
31396
31397 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
31398
31399         * doc/extend.texi: Replace x86_65 with x86_64.
31400
31401 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
31402
31403         PR tree-optimization/39455
31404         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
31405         mismatches for POINTER_TYPE_P (type).
31406         (number_of_iterations_le): Likewise.
31407
31408 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
31409
31410         * config/picochip/picochip.c: Removed profiling support.
31411         * config/picochip/picochip.md: Removed profiling instruction.
31412         * config/picochip/picochip.h: Removed profiling builtin.
31413
31414 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
31415
31416         * doc/install.texi (--with-host-libstdcxx): Document.
31417
31418 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
31419
31420         PR target/34299
31421         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
31422         generate a warning if the function name does not begin with
31423         "__vector" and the function has either the 'signal' or 'interrupt'
31424         attribute, from here to ...
31425         (avr_declare_function_name): ...here. New function.
31426         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
31427         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
31428
31429 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
31430
31431         PR bootstrap/39454
31432         * cse.c (fold_rtx): Don't modify original const_arg1 when
31433         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
31434         separate variable instead.
31435         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
31436         from out of range shift counts.
31437         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
31438
31439 2009-03-13  Catherine Moore  <clm@codesourcery.com>
31440
31441         * config/i386/x-mingw32 (host-mingw32.o): Replace
31442         diagnostic.h with $(DIAGNOSTIC_H).
31443
31444 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
31445
31446         PR target/39431
31447         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
31448         predicate.
31449         * config/i386/sync.md (sync_compare_and_swap<mode>,
31450         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
31451         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
31452         into a register.
31453         (sync_double_compare_and_swapdi_pic,
31454         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
31455         cmpxchg8b_pic_memory_operand instead of just memory_operand.
31456
31457 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
31458
31459         PR target/39445
31460         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
31461
31462 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
31463
31464         PR target/39327
31465         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
31466         (avx_addsubv4df3): Likewise.
31467         (*avx_addsubv4sf3): Likewise.
31468         (sse3_addsubv4sf3): Likewise.
31469
31470 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
31471
31472         PR target/38824
31473         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
31474
31475 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
31476
31477         PR debug/39432
31478         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
31479         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
31480         registers for allocnos created from user-defined variables.
31481
31482 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31483
31484         PR target/39181
31485         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
31486         of non-integer mode as well.
31487
31488 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
31489
31490         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
31491         for functions for which the parameter types are unknown.
31492
31493 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
31494
31495         PR target/39137
31496         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
31497         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
31498         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
31499         * config/i386/i386.c (ix86_local_alignment): For
31500         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
31501         long long variables on the stack to avoid dynamic realignment.
31502         Allow the first argument to be a decl rather than type.
31503         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
31504
31505 2009-03-11  Nick Clifton  <nickc@redhat.com>
31506
31507         PR target/5362
31508         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
31509         options.
31510         Add description to mno-lsim option.
31511         * config/mcore/mcore.h: Remove comment about deprecated m4align
31512         option.
31513         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
31514         * doc/invoke.texi: Add description of mno-lsim and
31515         mstack-increment options.
31516
31517         * config/fr30/fr30.opt: Document the -mno-lsim option.
31518         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
31519         and -mno-lsim options.
31520
31521 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31522
31523         * fold-const.c (fold_comparison): Only call fold_inf_compare
31524         if the mode supports infinities.
31525
31526 2009-03-11  Jason Merrill  <jason@redhat.com>
31527
31528         PR debug/39086
31529         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
31530         end already did.  Notice GIMPLE_CALL modifications of the result.
31531         Don't copy debug information from an ignored decl or a decl from
31532         another function.
31533
31534 2009-03-10  Richard Guenther  <rguenther@suse.de>
31535             Nathan Froyd  <froydnj@codesourcery.com>
31536
31537         PR middle-end/37850
31538         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
31539         (__divMODE3): Likewise.
31540
31541 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
31542
31543         PR tree-optimization/39394
31544         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
31545         DECL_SIZE_UNIT of variable length FIELD_DECLs.
31546
31547 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31548
31549         * recog.c (verfiy_changes): Disallow renaming of hard regs in
31550         inline asms for register asm ("") declarations.
31551
31552 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
31553
31554         * fold-const.c (fold_unary): Fix comment.
31555
31556 2009-03-07  Jan Hubicka  <jh@suse.cz>
31557
31558         PR target/39361
31559         * tree-inline.c (setup_one_parameter): Do replacement of const
31560         argument by constant in SSA form.
31561
31562 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31563
31564         PR middle-end/38028
31565         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
31566         determine alignment passed to assign_stack_local.
31567         (assign_parms_unsplit_complex): Likewise.
31568         * except.c (sjlj_build_landing_pads): Likewise.
31569
31570 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
31571
31572         PR middle-end/39360
31573         * tree-flow.h (add_referenced_var): Return bool instead of void.
31574         * tree-dfa.c (add_referenced_var): Return result of
31575         referenced_var_check_and_insert call.
31576         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
31577         of referenced_var_check_and_insert.
31578
31579         PR debug/39372
31580         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
31581         (gen_variable_die): Emit DW_AT_location on abstract static variable's
31582         DIE, don't emit it if abstract origin already has it.
31583         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
31584         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
31585
31586 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
31587
31588         * genpreds.c (needs_variable): Fix parentheses at variable name
31589         detection.
31590         (write_tm_constrs_h): Indent generated code.
31591
31592 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31593
31594         * doc/extend.texi (Function Attributes): Add documentation
31595         for isr attributes.
31596
31597 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
31598
31599         PR debug/39387
31600         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
31601         take locus from its DECL_SOURCE_LOCATION instead of input_location.
31602
31603 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
31604
31605         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
31606         the loop as bad.
31607
31608 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
31609
31610         PR debug/39379
31611         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
31612         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
31613
31614 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
31615
31616         * config/i386/i386.md (R8_REG, R9_REG): New constants.
31617         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
31618         constants instead of magic numbers.
31619         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
31620         (QI_REG_P): Ditto.
31621         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
31622         (x86_64_ms_abi_int_parameter_registers): Ditto.
31623         (x86_64_int_return_registers): Ditto.
31624         (ix86_maybe_switch_abi): Ditto.
31625         (ix86_expand_call): Ditto for clobbered_registers array.
31626         (ix86_hard_regno_mode_ok): Ditto.
31627         (x86_extended_QIreg_mentioned_p): Ditto.
31628
31629 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
31630
31631         PR tree-optimization/39349
31632         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
31633
31634         * combine.c (gen_lowpart_for_combine): Use omode when generating
31635         clobber.
31636
31637 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
31638
31639         PR rtl-optimization/39235
31640         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
31641
31642 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
31643
31644         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
31645
31646 2009-03-04  Richard Guenther  <rguenther@suse.de>
31647
31648         PR tree-optimization/39362
31649         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
31650         that occur in abnormal PHIs should be varying.
31651
31652 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
31653
31654         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
31655         Extend comments.
31656         (simple_iv):  Take loop as an argument instead of statement.
31657         * tree-scalar-evolution.h (simple_iv): Declaration changed.
31658         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
31659         to simple_iv.
31660         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
31661         Ditto.
31662         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
31663         * matrix-reorg.c (analyze_transpose): Ditto.
31664         * tree-data-ref.c (dr_analyze_innermost): Ditto.
31665         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
31666         * tree-predcom.c (ref_at_iteration): Ditto.
31667         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
31668
31669 2009-03-04  Richard Guenther  <rguenther@suse.de>
31670
31671         PR tree-optimization/39358
31672         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
31673         escaped_id and callused_id.
31674         (solve_graph): Likewise.
31675
31676 2009-03-04  Richard Guenther  <rguenther@suse.de>
31677
31678         PR tree-optimization/39339
31679         * tree-sra.c (try_instantiate_multiple_fields): Make it
31680         no longer ICE on the above.
31681
31682 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
31683
31684         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
31685         that fits within Pmode.
31686
31687 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
31688
31689         PR middle-end/10109
31690         * tm.texi (LIBCALL_VALUE): Update description.
31691
31692 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
31693
31694         PR middle-end/34443
31695         * doc/extend.texi (section): Update description.
31696
31697 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
31698
31699         PR middle-end/39345
31700         * tree-inline.c (remapped_type): New.
31701         (can_be_nonlocal): Call remapped_type instead of remap_type.
31702
31703 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
31704
31705         PR fortran/39354
31706         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
31707         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
31708
31709 2009-03-03  Richard Guenther  <rguenther@suse.de>
31710
31711         PR middle-end/39272
31712         * tree.c (tree_nonartificial_location): New function.
31713         * tree.h (tree_nonartificial_location): Declare.
31714         * builtins.c (expand_builtin_memory_chk): Provide location
31715         of the call location for artificial function pieces.
31716         (maybe_emit_chk_warning): Likewise.
31717         (maybe_emit_sprintf_chk_warning): Likewise.
31718         (maybe_emit_free_warning): Likewise.
31719         * expr.c (expand_expr_real_1): Likewise.
31720
31721 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
31722
31723         PR tree-optimization/39343
31724         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
31725         COMPONENT_REF t has ARRAY_TYPE.
31726
31727 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
31728
31729         PR middle-end/39335
31730         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
31731         when the type precision of the induction variable should be
31732         larger than the type precision of nit.
31733         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
31734         * graphite.c (graphite_loop_normal_form): Same.
31735         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
31736
31737 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
31738
31739         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
31740         (*call_1_rex64_ms_sysv): Use named constants instead of magic
31741         numbers to describe clobbered registers.
31742         (*call_value_0_rex64_ms_sysv): Ditto.
31743         * config/i386/mmx.md (mmx_emms): Ditto.
31744         (mmx_femms): Ditto.
31745
31746 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
31747
31748         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
31749         of ABI_64.
31750
31751 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31752
31753         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
31754         (spu_section_type_flags): New function.
31755
31756 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
31757
31758         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
31759         reg_class_contents of FLOAT_REGS into a temporary.
31760
31761 2009-03-02  Richard Guenther  <rguenther@suse.de>
31762             Ira Rosen  <irar@il.ibm.com>
31763
31764         PR tree-optimization/39318
31765         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
31766         information to the vectorized statement.
31767
31768 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
31769
31770         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
31771         variable.  Use defined names instead of magic constants for REX SSE
31772         registers.
31773
31774 2009-03-01  Richard Guenther  <rguenther@suse.de>
31775
31776         PR tree-optimization/39331
31777         * omp-low.c (lower_send_shared_vars): Do not receive new
31778         values for the reference of DECL_BY_REFERENCE parms or results.
31779
31780 2009-03-01  Jan Hubicka  <jh@suse.cz>
31781
31782         PR debug/39267
31783         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
31784         BLOCK_NONLOCALIZED_VAR): New macros.
31785         (tree_block): Add nonlocalized_vars.
31786         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
31787         gen_decl_die): Add origin argument.  Allow generation of die with
31788         origin at hand only.
31789         (gen_member_die, gen_type_die_with_usage, force_decl_die,
31790         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
31791         of gen_*.
31792         (gen_block_die): Fix checking for unused blocks.
31793         (process_scope_var): Break out from .... ; work with origins only.
31794         (decls_for_scope) ... here; process nonlocalized list.
31795         (dwarf2out_ignore_block): Look for nonlocalized vars.
31796         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
31797         vars.
31798         (dump_scope_block): Dump them.
31799         * tree-inline.c (remap_decls): Handle nonlocalized vars.
31800         (remap_block): Likewise.
31801         (can_be_nonlocal): New predicate.
31802         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
31803
31804 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31805
31806         * configure: Regenerate.
31807
31808 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
31809
31810         * optc-gen.awk: No need to duplicate option flags twice.
31811         Reuse help texts for duplicate options which do not have any.
31812
31813         * gcc.c (display_help): Document --version.
31814
31815         * gcc.c (main): If print_help_list and verbose_flag, ensure
31816         driver output comes before subprocess output.
31817
31818         * optc-gen.awk: Assign all remaining fields to help string,
31819         space-separated, for multi-line help in *.opt.
31820
31821         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
31822         -Wno-pedantic-ms-format is for MinGW targets only.
31823
31824         * doc/options.texi (Option file format): Fix bad indentation,
31825         restoring dropped sentence.
31826
31827 2009-02-28  Jan Hubicka  <jh@suse.cz>
31828
31829         * tree-inline.c (tree_function_versioning): Output debug info.
31830
31831 2009-02-28  Jan Hubicka  <jh@suse.cz>
31832
31833         PR debug/39267
31834         * tree-inline.c (setup_one_parameter): Do not copy propagate
31835         arguments when not optimizing.
31836
31837 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
31838
31839         PR target/39327
31840         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
31841         (avx_addsubv4df3): Likewise.
31842         (*avx_addsubv4sf3): Likewise.
31843         (sse3_addsubv4sf3): Likewise.
31844         (*avx_addsubv2df3): Likewise.
31845         (sse3_addsubv2df3): Likewise.
31846         (avx_unpckhps256): Correct item selectors.
31847         (avx_unpcklps256): Likewise.
31848         (avx_unpckhpd256): Likewise.
31849         (avx_unpcklpd256): Likewise.
31850
31851 2009-02-28  Jan Hubicka  <jh@suse.cz>
31852
31853         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
31854         static vars.
31855         (copy_arguments_for_versioning): If var is declared don't declare it.
31856         (tree_function_versioning): First setup substitutions and then copy
31857         args.
31858
31859 2009-02-27  Jan Hubicka  <jh@suse.cz>
31860
31861         PR debug/39267
31862         * cgraph.h (varpool_output_debug_info): Remove.
31863         * cgraphunit.c (varpool_output_debug_info): Remove.
31864         * dwarf2out.c (deferred_locations_struct): New struct
31865         (deferred_locations): New type.
31866         (deferred_locations_list): New static var.
31867         (deffer_location): New function.
31868         (gen_variable_die): Use it.
31869         (decls_for_scope): Output info on local static vars.
31870         (dwarf2out_finish): Process deferred locations.
31871         * varpool.c (varpool_output_debug_info): Remove.
31872
31873 2009-02-27  Jan Hubicka  <jh@suse.cz>
31874
31875         PR debug/39267
31876         * tree.h (TREE_PROTECTED): Fix comment.
31877         (BLOCK_HANDLER_BLOCK): Remove.
31878         (struct tree_block): Remove handler_block add body_block.
31879         (inlined_function_outer_scope_p): New.
31880         (is_body_block): Remove.
31881         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
31882         * dwarf2out.c (is_inlined_entry_point): Remove.
31883         (add_high_low_attributes): Use inlined_function_outer_scope_p.
31884         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
31885         code.
31886         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
31887         * gimplify.c (gimplify_expr): Gimplify body blocks.
31888         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
31889         block with multiple subblocks.
31890         (dump_scope_block): Prettier output; dump more flags and info.
31891         (dump_scope_blocks): New.
31892         (remove_unused_locals): Use dump_scope_blocks.
31893         * tree-flow.h (dump_scope_blocks): Declare.
31894         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
31895         * stmt.c (is_body_block): Remove.
31896         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
31897         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
31898
31899 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
31900
31901         PR middle-end/39308
31902         * graphite.c (graphite_loop_normal_form): Do not call
31903         number_of_iterations_exit from a gcc_assert.
31904
31905 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31906
31907         * config/s390/s390.c (s390_swap_cmp): Look for conditional
31908         jumps if COND is NULL.
31909         (find_cond_jump): New function.
31910         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
31911         * config/s390/s390.md: Remove z10_cobra attribute value.
31912
31913 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
31914
31915         * config/alpha/alpha.h (alpha_expand_mov): Return false if
31916         force_const_mem returns NULL_RTX.
31917
31918 2009-02-26  Jan Hubicka  <jh@suse.cz>
31919
31920         PR debug/39267
31921         * cgraph.h (varpool_output_debug_info): Remove.
31922         * cgraphunit.c (varpool_output_debug_info): Remove.
31923         * dwarf2out.c (deferred_locations_struct): New struct
31924         (deferred_locations): New type.
31925         (deferred_locations_list): New static var.
31926         (deffer_location): New function.
31927         (gen_variable_die): Use it.
31928         (decls_for_scope): Output info on local static vars.
31929         (dwarf2out_finish): Process deferred locations.
31930         * varpool.c (varpool_output_debug_info): Remove.
31931
31932 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
31933
31934         PR rtl-optimization/39241
31935         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
31936         to subreg_offset_representable_p.
31937
31938 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
31939
31940         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
31941         execute function prototype.  Get f and nregs from max_reg_num
31942         and get_insns.  Remove the first backward pass as it's dead,
31943         guard the forward pass by flag_expensive_optimizations.
31944         (rest_of_handle_regmove): Delete.
31945         (pass_regmove): Replace it with regmove_optimize.
31946
31947 2009-02-25  Martin Jambor  <mjambor@suse.cz>
31948
31949         PR tree-optimization/39259
31950         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
31951         calls_alloca function flags.
31952         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
31953         calls are detected.
31954
31955 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
31956
31957         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
31958         flags_set_1_rtx, flags_set_1_set): Delete.
31959         (regmove_optimize): Do not call mark_flags_life_zones.
31960
31961 2009-02-24  Julian Brown  <julian@codesourcery.com>
31962
31963         PR target/35965
31964         * config/arm/arm.c (require_pic_register): Only set
31965         cfun->machine->pic_reg once per function.
31966
31967 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
31968
31969         * doc/invoke.texi (Link Options): Document an easier way to pass
31970         options that take arguments to the GNU linker using -Xlinker and -Wl.
31971
31972 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
31973
31974         PR target/33785
31975         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
31976
31977 2009-02-24  Richard Guenther  <rguenther@suse.de>
31978
31979         PR debug/39285
31980         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
31981
31982 2009-02-24  Richard Guenther  <rguenther@suse.de>
31983             Zdenek Dvorak  <ook@ucw.cz>
31984
31985         PR tree-optimization/39233
31986         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
31987         from converting them to a generic type.
31988
31989 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
31990
31991         PR tree-optimization/39260
31992         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
31993         contains a condition with a real type.
31994         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
31995
31996 2009-02-23  Jason Merrill  <jason@redhat.com>
31997
31998         PR c++/38880
31999         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
32000         narrowing_initializer_constant_valid_p.
32001         (narrowing_initializer_constant_valid_p): Don't return
32002         null_pointer_node for adding a pointer to itself.
32003
32004 2009-02-23  Jan Hubicka  <jh@suse.cz>
32005
32006         PR c/12245
32007         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
32008         resizing.
32009
32010 2009-02-23  Jan Hubicka  <jh@suse.cz>
32011
32012         PR tree-optimization/37709
32013         * tree.c (block_ultimate_origin): Move here from dwarf2out.
32014         * tree.h (block_ultimate_origin): Declare.
32015         * dwarf2out.c (block_ultimate_origin): Move to tree.c
32016         * tree-ssa-live.c (remove_unused_scope_block_p):
32017         Eliminate blocks containig no instructions nor live variables nor
32018         nested blocks.
32019         (dump_scope_block): New function.
32020         (remove_unused_locals): Enable removal of dead blocks by default;
32021         enable dumping at TDF_DETAILS.
32022
32023 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
32024
32025         * config/i386/i386.c (classify_argument): Don't allow COImode
32026         and OImode.
32027         (function_arg_advance_32): Don't allow OImode.
32028         (function_arg_32): Likewise.
32029         (function_value_32): Likewise.
32030         (return_in_memory_32): Likewise.
32031         (function_arg_64): Remove OImode comment.
32032
32033 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
32034
32035         PR target/39261
32036         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
32037         ix86_expand_vector_set for V4DImode in 64bit mode only.
32038         (ix86_expand_vector_init_one_var): Likewise.
32039
32040 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
32041
32042         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
32043
32044 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
32045
32046         PR bootstrap/39257
32047         * loop-iv.c: Revert last change.
32048         * emit-rtl.c: Likewise.
32049
32050 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
32051
32052         PR target/39256
32053         * config/i386/i386.c (type_natural_mode): Remove an extra
32054         space in the warning message.
32055         (function_value_32): Handle 32-byte vector modes.
32056         (return_in_memory_32): Likewise.
32057
32058 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
32059
32060         * loop-iv.c (truncate_value): New function.
32061         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
32062         of lowpart_subreg.
32063         (lowpart_subreg): Move to...
32064         * emit-rtl.c: ...here.
32065
32066 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
32067
32068         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
32069         accidental and undocumented change at revision 140860.
32070
32071 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
32072
32073         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
32074         take gimple_seq * arguments.
32075         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
32076         types_compatible_p langhook.
32077
32078 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
32079             Joseph Myers  <joseph@codesourcery.com>
32080
32081         * config/arm/arm.c (arm_builtin_va_list): New function.
32082         (arm_expand_builtin_va_start): Likewise.
32083         (arm_gimplify_va_arg_expr): Likewise.
32084         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
32085         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
32086         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
32087         (va_list_type): New variable.
32088         (arm_mangle_type): Mangle va_list_type appropriately.
32089
32090 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
32091
32092         PR middle-end/39157
32093         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
32094         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
32095         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
32096         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
32097         parameter to 1000 for -O1 by default.
32098         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
32099         parameter.
32100         * loop-invariant.c: Include params.h.
32101         (move_loop_invariants): Don't call move_single_loop_invariants on
32102         very large loops.
32103
32104 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
32105
32106         * calls.c (emit_library_call_value_1): Use slot_offset instead of
32107         offset when calculating bounds for indexing stack_usage_map.  Fixes
32108         a buffer overflow with certain target setups.
32109
32110 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
32111
32112         PR target/39240
32113         * calls.c (expand_call): Clear try_tail_call if caller and callee
32114         disagree in promotion of function return value.
32115
32116 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
32117
32118         PR target/39175
32119         * c-common.c (c_determine_visibility): If visibility changed and
32120         DECL_RTL has been already set, call make_decl_rtl to update symbol
32121         flags.
32122
32123 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
32124
32125         PR c++/39188
32126         * varasm.c (assemble_variable): Don't check DECL_NAME when
32127         globalizing a variable.
32128
32129 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
32130
32131         PR c/38483
32132         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
32133         expression before any __builtin_trap call.
32134         * c-typeck.c (build_function_call): Convert and check function
32135         arguments before generating a call to a trap.  Evaluate the
32136         function arguments before the trap.
32137
32138 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
32139
32140         PR target/39228
32141         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
32142         (UNSPEC_FXAM_MEM): New unspec.
32143         (fxam<mode>2_i387_with_temp): New insn and split pattern.
32144         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
32145         memory using fxam<mode>2_i387_with_temp to remove excess precision.
32146
32147 2009-02-19  Richard Guenther  <rguenther@suse.de>
32148
32149         PR tree-optimization/39207
32150         PR tree-optimization/39074
32151         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
32152         storedanything_tree): New.
32153         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
32154         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
32155         (build_succ_graph): Add edges from STOREDANYTHING to all
32156         non-direct nodes.
32157         (init_base_vars): Initialize STOREDANYTHING.
32158         (compute_points_to_sets): Free substitution info after
32159         building the succ graph.
32160         (ipa_pta_execute): Likewise.
32161
32162         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
32163         field.
32164         (do_ds_constraint): Do not add to special var or non-pointer
32165         field solutions.
32166         (type_could_have_pointers): Split out from ...
32167         (could_have_pointers): ... here.  For arrays use the element type.
32168         (create_variable_info_for): Initialize may_have_pointers.
32169         (new_var_info): Likewise.
32170         (handle_lhs_call): Make the HEAP variable unknown-sized.
32171         (intra_create_variable_infos): Use a type with pointers for
32172         PARM_NOALIAS, make it unknown-sized.
32173
32174 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
32175
32176         PR target/39224
32177         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
32178
32179 2009-02-18  Jason Merrill  <jason@redhat.com>
32180
32181         PR target/39179
32182         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
32183         value if DECL_EXTERNAL.
32184         * tree-sra.c (sra_walk_gimple_assign): Likewise.
32185         * target.h (gcc_target::binds_local_p): Clarify "module".
32186         * tree.h (TREE_PUBLIC): Clarify "module".
32187
32188 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
32189
32190         PR target/38891
32191         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
32192         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
32193
32194 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
32195
32196         PR target/39082
32197         * c.opt (Wabi): Support C and ObjC.
32198         (Wpsabi): New.
32199
32200         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
32201
32202         * config/i386/i386.c (classify_argument): Warn once about the ABI
32203         change when passing union with long double.
32204
32205         * doc/invoke.texi: Update -Wabi for warning psABI changes.
32206
32207 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
32208
32209         PR c/35447
32210         * c-parser.c (c_parser_compound_statement): Always enter and leave
32211         a scope.
32212
32213 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32214
32215         PR target/34587
32216         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
32217
32218 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
32219
32220         PR tree-optimization/36922
32221         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
32222         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
32223         Likewise.
32224
32225 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
32226
32227         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
32228         to 0 for EABI64.
32229
32230 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
32231
32232         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
32233
32234 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
32235
32236         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
32237         tree sharing.
32238
32239 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
32240             Richard Sandiford  <rdsandiford@googlemail.com>
32241
32242         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
32243         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
32244         (loongson_biadd): ...this.
32245
32246 2009-02-17  Richard Guenther  <rguenther@suse.de>
32247
32248         PR tree-optimization/39202
32249         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
32250         a var make sure to follow existing collapses.
32251
32252 2009-02-17  Richard Guenther  <rguenther@suse.de>
32253
32254         PR middle-end/39214
32255         * langhooks.c (lhd_print_error_function): Check for NULL block.
32256
32257 2009-02-17  Richard Guenther  <rguenther@suse.de>
32258
32259         PR tree-optimization/39204
32260         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
32261         of the PHI arg.
32262
32263 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
32264
32265         * config/soft-fp/double.h: Update from glibc CVS.
32266
32267 2009-02-17  Richard Guenther  <rguenther@suse.de>
32268
32269         PR tree-optimization/39207
32270         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
32271         strict-aliasing warnings for pointers pointing to NULL.
32272
32273 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
32274
32275         PR c/35446
32276         * c-parser.c (c_parser_braced_init): Call pop_init_level when
32277         skipping until next close brace.
32278
32279 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
32280
32281         PR target/37049
32282         * config/i386/i386.c (ix86_expand_push): Set memory alignment
32283         to function argument boundary.
32284
32285 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
32286
32287         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
32288         in the lea_add. Reload eventually constraints it properly.
32289         * config/picochip/constraints.md: Remove the target constraint
32290         "b", since it is not needed anymore.
32291
32292 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
32293
32294         * gthr-dce.h: Uglify function parameter and local variable names.
32295         * gthr-gnat.h: Likewise.
32296         * gthr-mipssde.h: Likewise.
32297         * gthr-nks.h: Likewise.
32298         * gthr-posix95.h: Likewise.
32299         * gthr-posix.h: Likewise.
32300         * gthr-rtems.h: Likewise.
32301         * gthr-single.h: Likewise.
32302         * gthr-solaris.h: Likewise.
32303         * gthr-tpf.h: Likewise.
32304         * gthr-vxworks.h: Likewise.
32305         * gthr-win32.h: Likewise.
32306
32307 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
32308
32309         PR target/39196
32310         * config/i386/i386.md: Restrict the new peephole2 to move
32311         between MMX/SSE registers.
32312
32313 2009-02-15  Richard Guenther  <rguenther@suse.de>
32314
32315         Revert
32316         2009-02-13  Richard Guenther  <rguenther@suse.de>
32317
32318         * configure.ac: Enable LFS.
32319         * configure: Re-generate.
32320         * config.in: Likewise.
32321
32322 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32323
32324         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
32325         spu_srqwbyte, spu_srqwbytebc): Define.
32326         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
32327         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
32328         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
32329         "shrqby_<mode>"): New insn-and-split patterns.
32330         * config/spu/spu.c (expand_builtin_args): Determine and return
32331         number of operands using spu_builtin_description data.
32332         (spu_expand_builtin_1): Use it.
32333
32334 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
32335
32336         PR target/38056
32337         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
32338         TARGET_CONST_GP.
32339
32340 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
32341
32342         PR target/39149
32343         * config/i386/i386.c (override_options): Correct warning
32344         messages for -malign-loops, -malign-jumps and -malign-functions.
32345
32346 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
32347
32348         PR target/39152
32349         * config/i386/i386.md: Restrict the new peephole2 to move
32350         between the general purpose registers.
32351
32352 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
32353
32354         PR target/39162
32355         * config/i386/i386.c (type_natural_mode): Add a new argument.
32356         Return the original mode and warn ABI change if vector size is 32byte.
32357         (function_arg_advance): Updated.
32358         (function_arg): Likewise.
32359         (ix86_function_value): Likewise.
32360         (ix86_return_in_memory): Likewise.
32361         (ix86_sol10_return_in_memory): Likewise.
32362         (ix86_gimplify_va_arg): Likewise.
32363         (function_arg_32): Don't warn ABX ABI change here.
32364         (function_arg_64): Likewise.
32365
32366 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
32367
32368         * loop-iv.c (implies_p): In the final case, test that operands 0
32369         of the two comparisons match.
32370
32371         * config/bfin/bfin.c (find_prev_insn_start): New function.
32372         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
32373         (find_next_insn_start): Move.
32374
32375 2009-02-13  Richard Guenther  <rguenther@suse.de>
32376
32377         * configure.ac: Enable LFS.
32378         * configure: Re-generate.
32379         * config.in: Likewise.
32380
32381 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
32382
32383         PR c/35444
32384         * c-parser.c (c_parser_parms_list_declarator): Discard pending
32385         sizes on syntax error after some arguments have been parsed.
32386
32387 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
32388
32389         * doc/invoke.texi (-fira): Remove.
32390
32391 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
32392
32393         * caller-save.c: Replace regclass.c with reginfo.c in comments.
32394         * recog.c: Likewise.
32395         * rtl.h: Likewise.
32396
32397 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
32398
32399         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
32400         (umul_ppmm): Likewise.
32401         (count_leading_zeros): Likewise.
32402         (count_trailing_zeros): Likewise.
32403         (UMUL_TIME): Likewise.
32404
32405 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
32406
32407         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
32408         soft-fp/t-softfp to tmake_file.
32409
32410         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
32411         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
32412         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
32413         IA64_BUILTIN_INFQ]: New.
32414         (ia64_init_builtins): Initialize __builtin_infq,
32415         __builtin_fabsq and __builtin_copysignq if not HPUX.
32416         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
32417         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
32418
32419         * config/ia64/lib1funcs.asm (__divtf3): Define only if
32420         SHARED is defined.
32421         (__fixtfti): Likewise.
32422         (__fixunstfti): Likewise.
32423         (__floattitf): Likewise.
32424
32425         * config/ia64/libgcc-glibc.ver: New.
32426         * config/ia64/t-fprules-softfp: Likewise.
32427         * config/ia64/sfp-machine.h: Likewise.
32428
32429         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
32430         (LIBGCC2_TF_CEXT): Likewise.
32431         (TF_SIZE): Likewise.
32432         (TARGET_INIT_LIBFUNCS): Likewise.
32433
32434         * config/ia64/t-glibc (SHLINB_MAPFILES):
32435         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
32436
32437 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
32438
32439         * config/i386/i386.c (construct_container): Rewrite processing
32440         BLKmode with X86_64_SSE_CLASS.
32441
32442 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
32443
32444         PR target/39152
32445         * config/i386/i386.md: Replace simplify_replace_rtx with
32446         replace_rtx in the new peephole2.
32447
32448 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
32449
32450         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
32451         loop unrolling do not happen at -O2.
32452
32453 2009-02-12  Michael Matz  <matz@suse.de>
32454
32455         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
32456
32457 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
32458
32459         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
32460         for -g3.
32461
32462 2009-02-12  Ben Elliston  <bje@au.ibm.com>
32463
32464         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
32465         patterns when updating the back chain.  Missed in the 2009-02-10
32466         change.
32467
32468 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
32469
32470         * doc/extend.texi (Decimal Floating Types): Update identifier of
32471         draft TR and list of missing support.
32472
32473 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
32474
32475         PR middle-end/39154
32476         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
32477         bit to variable length decl's flags, add it also to its
32478         pointer replacement variable.
32479
32480 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
32481             Jakub Jelinek  <jakub@redhat.com>
32482
32483         PR target/39118
32484         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
32485         (memory_blockage): New expander.
32486         (*memory_blockage): New insn pattern.
32487         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
32488         instead of general blockage at the end of function prologue when
32489         frame pointer is used to access red zone area.  Do not emit blockage
32490         when profiling, it is emitted in generic code.
32491         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
32492         function epilogue when frame pointer is used to access red zone area.
32493
32494 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
32495
32496         PR target/38824
32497         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
32498         by arithmetic with memory operands.
32499         * config/i386/predicates.md (commutative_operator): New.
32500
32501 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
32502
32503         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
32504         bulleted lists.
32505
32506 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
32507
32508         * alias.h (record_alias_subset): Declare.
32509         * alias.c (record_alias_subset): Make global.
32510
32511 2009-02-10  Nick Clifton  <nickc@redhat.com>
32512
32513         * tree-parloops.c: Change license to GPLv3.
32514         * ipa-struct-reorg.c: Change license to GPLv3.
32515         * ipa-struct-reorg.h: Change license to GPLv3.
32516
32517 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
32518
32519         PR c/39084
32520         * c-decl.c (start_struct): Return NULL on error.
32521
32522 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
32523
32524         PR middle-end/39124
32525         * cfgloopmanip.c (remove_path): Call remove_bbs after
32526         cancel_loop_tree, not before it.
32527
32528         PR target/39139
32529         * function.h (struct function): Add has_local_explicit_reg_vars bit.
32530         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
32531         VAR_DECLs were seen.
32532         * tree-ssa-live.c (remove_unused_locals): Recompute
32533         cfun->has_local_explicit_reg_vars.
32534         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
32535         copies or clearings if cfun->has_local_explicit_reg_vars.
32536
32537 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
32538
32539         PR target/39118
32540         * config/i386/i386.c (expand_prologue): Emit blockage at the end
32541         of function prologue when frame pointer is used to access
32542         red zone area.
32543
32544 2009-02-10  Richard Guenther  <rguenther@suse.de>
32545
32546         PR middle-end/39127
32547         * gimplify.c (gimple_regimplify_operands): Always look if
32548         we need to create a temporary.
32549
32550 2009-02-10  Richard Guenther  <rguenther@suse.de>
32551
32552         PR tree-optimization/39132
32553         * tree-loop-distribution.c (todo): New global var.
32554         (generate_memset_zero): Trigger TODO_rebuild_alias.
32555         (tree_loop_distribution): Return todo.
32556
32557 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
32558
32559         PR target/39119
32560         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
32561         (x86_64_reg_class_name): Removed.
32562         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
32563         first one isn't X86_64_SSE_CLASS or any other ones aren't
32564         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
32565         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
32566         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
32567         and 3 X86_64_SSEUP_CLASS.
32568         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
32569         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
32570
32571 2009-02-10  Ben Elliston  <bje@au.ibm.com>
32572
32573         * config/rs6000/rs6000.md (allocate_stack): Always use an update
32574         form instruction to update the stack back chain word, even if the
32575         user has disabled the generation of update instructions.
32576         (movdi_<mode>_update_stack): New.
32577         (movsi_update_stack): Likewise.
32578         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
32579         always use an update form instruction to update the stack back
32580         chain word.
32581
32582 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
32583
32584         PR middle-end/38953
32585         * graphite.c (if_region_set_false_region): After moving a region in
32586         the false branch of a condition, remove the empty dummy basic block.
32587         (gloog): Remove wrong fix for PR38953.
32588
32589 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32590
32591         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
32592         generation due to implicit sign extension.
32593
32594 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
32595
32596         PR middle-end/38981
32597         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
32598         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
32599
32600 2009-02-09  Richard Guenther  <rguenther@suse.de>
32601
32602         PR middle-end/35202
32603         * convert.c (convert_to_real): Disable (float)fn((double)x)
32604         to fnf(x) conversion if errno differences may occur and
32605         -fmath-errno is set.
32606
32607 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
32608
32609         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
32610         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
32611         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
32612
32613 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
32614
32615         PR c/35434
32616         * c-common.c (handle_alias_attribute): Disallow attribute for
32617         anything not a FUNCTION_DECL or VAR_DECL.
32618
32619 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
32620
32621         PR c/39035
32622         * real.c (do_compare): Special-case compare of zero against
32623         decimal float value.
32624
32625 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
32626
32627         PR c/36432
32628         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
32629         as indicating flexible array members unless the field itself is
32630         being declarared as the incomplete array.
32631
32632 2009-02-06  Jan Hubicka  <jh@suse.cz>
32633
32634         PR tree-optimization/38844
32635         * ipa-inline.c (try_inline): Stop inlining recursion when edge
32636         is already inlined.
32637
32638 2009-02-06  Richard Guenther  <rguenther@suse.de>
32639
32640         PR middle-end/38977
32641         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
32642         fork because we may expand it as __gcov_fork.
32643
32644 2009-02-06  Nick Clifton  <nickc@redhat.com>
32645
32646         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
32647
32648 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
32649
32650         PR tree-optimization/35659
32651         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
32652         vn_phi_eq): Shortcut if hashcode does not match.
32653         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
32654         NULL operands.
32655         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
32656         and avoid iterative_hash_expr.
32657         (FOR_EACH_VALUE_ID_IN_SET): New.
32658         (value_id_compare): Remove.
32659         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
32660         sort expressions by value id.
32661
32662 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
32663
32664         PR target/38991
32665         * config/sh/predicates.md (general_movsrc_operand): Don't check
32666         the subreg of system registers here.
32667
32668 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
32669
32670         PR c++/39106
32671         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
32672         on the copied decl.
32673
32674 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
32675
32676         PR rtl-optimization/39110
32677         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
32678         addresses, not aligned ones.
32679
32680 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
32681             Richard Guenther  <rguenther@suse.de>
32682
32683         PR tree-optimization/39100
32684         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
32685         comment says and add edges.
32686
32687 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
32688
32689         PR c/35435
32690         * c-common.c (handle_tls_model_attribute): Ignore attribute for
32691         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
32692
32693 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
32694
32695         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
32696         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
32697         register_bb_in_sese, new_sese, free_sese): Moved.
32698         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
32699         outermost_loop_in_scop, build_scop_iteration_domain,
32700         expand_scalar_variables_ssa_name, get_vdef_before_scop,
32701         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
32702         Use loop_in_sese_p instead of loop_in_scop_p.
32703         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
32704         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
32705         (scopdet_basic_block_info): Fix bug in scop detection.
32706         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
32707         eq_loop_to_cloog_loop): Remove.
32708         (nb_loops_around_loop_in_scop, nb_loop
32709         ref_nb_loops): Moved here...
32710         * graphite.h (ref_nb_loops): ... from here.
32711         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
32712         (loop_domain_dim, loop_iteration_vector_dim): Remove.
32713         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
32714
32715 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
32716             Hans-Peter Nilsson  <hp@axis.com>
32717
32718         PR rtl-optimization/37889
32719         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
32720         Move offset handling from PLUS to before the switch.  Use new
32721         arguments when considering SYMBOL_REFs too.
32722         (rtx_addr_can_trap_p): Pass dummy offset and size.
32723         (enum may_trap_p_flags): Remove.
32724         (may_trap_p_1): Pass size from MEM_SIZE.
32725
32726         PR rtl-optimization/38921
32727         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
32728         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
32729         * rtlanal.c (may_trap_after_code_motion_p): Delete.
32730         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
32731
32732 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
32733
32734         AVX Programming Reference (January, 2009)
32735         * config/i386/sse.md (*vpclmulqdq): New.
32736
32737 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
32738
32739         PR tree-optimization/38977
32740         PR gcov-profile/38292
32741         * calls.c (special_function_p): Disregard __builtin_ prefix.
32742
32743 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
32744
32745         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
32746         non-indexable addresses even before reload.
32747
32748 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
32749
32750         PR c/29129
32751         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
32752         as having variable size.  Do not give an error for unnamed
32753         parameters with [*] declarators.  Give a warning for type names
32754         with [*] declarators and mark them as variable size.
32755         * c-parser.c (c_parser_sizeof_expression): Do not give an error
32756         for sizeof applied to [*] type names.
32757
32758 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
32759
32760         PR C++/36607
32761         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
32762
32763 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
32764
32765         * gcc.c (process_command): Update copyright notice dates.
32766         * gcov.c (print_version): Likewise.
32767         * gcov-dump.c (print_version): Likewise.
32768         * mips-tfile.c (main): Likewise.
32769         * mips-tdump.c (main): Likewise.
32770
32771 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
32772
32773         PR c/35433
32774         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
32775         for composite type involving a zero-length array type.
32776
32777 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
32778
32779         PR target/35318
32780         * function.c (match_asm_constraints_1): Skip over
32781         initial optional % in the constraint.
32782
32783         PR inline-asm/39059
32784         * c-parser.c (c_parser_postfix_expression): If fixed point is not
32785         supported, don't accept FIXED_CSTs.
32786         * c-decl.c (finish_declspecs): Error if fixed point is not supported
32787         and _Sat is used without _Fract/_Accum.  Set specs->type to
32788         integer_type_node for cts_fract/cts_accum if fixed point is not
32789         supported.
32790
32791 2009-02-02  Catherine Moore  <clm@codesourcery.com>
32792
32793         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
32794
32795 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
32796
32797         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
32798         (ABI_HAS_64BIT_SYMBOLS): Use it.
32799         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
32800
32801 2009-02-02  Paul Brook  <paul@codesourcery.com>
32802
32803         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
32804
32805 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
32806
32807         PR inline-asm/39058
32808         * recog.h (asm_operand_ok): Add constraints argument.
32809         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
32810         recurse on matching constraint.
32811         (check_asm_operands): Pass constraints as 3rd argument to
32812         asm_operand_ok.  Don't look up matching constraint here.
32813         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
32814         to asm_operand_ok.
32815
32816 2009-02-02  Ben Elliston  <bje@au.ibm.com>
32817
32818         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
32819         TARGET_NARROW_VOLATILE_BITFIELD macro names.
32820
32821 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
32822
32823         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
32824         information.  Remove some obsolete information.  Reorganize.
32825
32826         * config/pa/fptr.c: Revert license to GPL 2.
32827         * config/pa/milli64.S: Likewise.
32828
32829 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
32830
32831         PR target/38904
32832         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
32833         LIBRARY name in, instead of hard-coding it.
32834         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
32835         extra target make frag to tmake_files according to EH model.
32836         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
32837         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
32838         frags that define makefile variable EH_MODEL appropriately.
32839         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
32840         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
32841         to "-sjlj" according to type of EH configured.
32842         (LIBGCC_SONAME):  Concatenate it to shared library base name.
32843         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
32844         to "_sjlj" according to type of EH configured.
32845         (LIBGCC_SONAME):  Concatenate it to shared library base name.
32846         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
32847         (SHLIB_LINK):  Add missing semicolon to if-else construct.
32848         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
32849         string value of "pe_dll" command-line option.
32850         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
32851         (SHLIB_SONAME):  Use it when overriding t-cygming default.
32852         (SHLIB_IMPLIB):  Override t-cygming default.
32853         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
32854         string value of "pe_dll" command-line option.
32855
32856 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
32857
32858         PR target/38952
32859         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
32860         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
32861
32862 2009-01-31  Richard Guenther  <rguenther@suse.de>
32863
32864         PR tree-optimization/38937
32865         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
32866         computing the transitive closure.
32867
32868 2009-01-30  Richard Guenther  <rguenther@suse.de>
32869
32870         PR tree-optimization/39041
32871         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
32872         Propagate variable indices only if the types match for this stmt.
32873
32874 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
32875
32876         PR target/39013
32877         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
32878         inline but never defined.
32879
32880 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
32881
32882         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
32883         (*insv_h_di_reg_extimm): New insn.
32884         (*insv_l<mode>_reg_extimm): New insn.
32885
32886 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32887
32888         * config/picochip/picochip.c (flag_conserve_stack): set
32889         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
32890         fconserve-stack. Reduce call-overhead used by inliner.
32891
32892 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
32893
32894         PR/38157
32895         * common.opt (flag_conserve_stack): Initialised to zero.
32896
32897 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
32898
32899         PR/39002
32900         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
32901         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
32902         method.
32903
32904 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
32905
32906         * ira-color.c (allocno_reload_assign): Update comments.
32907         * regmove.c (regmove_optimize): Likewise.
32908
32909         * ra.h: Removed.
32910
32911 2009-01-29  Robert Millan  <rmh@aybabtu.com>
32912
32913         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
32914         * config/i386/kopensolaris-gnu.h: New file.  Undefine
32915         `MD_UNWIND_SUPPORT'.
32916         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
32917
32918 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
32919
32920         PR tree-optimization/39007
32921         * tree-loop-distribution.c (generate_builtin): Use
32922         recompute_dominator to compute the immediate dominator of the
32923         basic block just after the loop.
32924
32925 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32926
32927         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
32928         (ASM_OUTPUT_DWARF_PCREL): Define.
32929
32930 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
32931
32932         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
32933         * doc/passes.texi: Remove entries about regclass, local-alloc, and
32934         global.  Modify entries about regmove and IRA.
32935
32936         * ra-conflict.c: Remove the file.
32937
32938         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
32939
32940         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
32941         (pass_regclass_init): Rename to pass_reginfo_init.
32942
32943         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
32944
32945         * toplev.h (flag_ira): Remove.
32946
32947         * caller-save.c (setup_save_areas): Remove flag_ira.
32948
32949         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
32950
32951         * global.c: Remove the file.
32952
32953         * opts.c (decode_options): Remove flag_ira.
32954
32955         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
32956
32957         * regmove.c: Modify file description.
32958         (find_use_as_address, try_auto_increment): Define them only if
32959         AUTO_INC_DEC is defined.
32960         (replacement_quality, replace_in_call_usage, fixup_match_1,
32961         stable_and_no_regs_but_for_p): Remove.
32962         (reg_set_in_bb): Make it static.
32963         (regmove_optimize): Remove flag_ira and code which worked for
32964         !flag_ira.
32965
32966         * local-alloc.c: Remove the file.
32967
32968         * common.opt (fira): Remove.
32969
32970         * ira.c: Include except.h.
32971         (eliminable_regset): Move from global.c.
32972         (mark_elimination): Ditto.  Remove flag_ira.
32973         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
32974         equiv_mem_modified, validate_equiv_mem_from_store,
32975         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
32976         contains_replace_regs, memref_referenced_p, memref_used_between_p,
32977         no_equiv, recorded_label_ref): Move from local-alloc.c.
32978         (update_equiv_regs): Ditto.  Make it static.
32979         (print_insn_chain, print_insn_chains): Move it from global.c.
32980         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
32981         (build_insn_chain): Ditto.  Make it static.
32982         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
32983         Rename to init_live_subregs.
32984         (gate_ira): Remove flag_ira.
32985
32986         * regclass.c: Rename reginfo.c.  Change file description.
32987         (FORBIDDEN_INC_DEC_CLASSES): Remove.
32988         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
32989         (init_reg_sets_1): Remove code for evaluation of
32990         reg_class_superclasses and losing_caller_save_reg_set.
32991         (init_regs): Remove init_reg_autoinc.
32992         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
32993         ok_for_base_p_nonstrict): Remove.
32994         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
32995         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
32996         corresponding entries.
32997         (dump_regclass, record_operand_costs, scan_one_insn,
32998         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
32999         record_address_regs, auto_inc_dec_reg_p): Remove.
33000         (gt-regclass.h): Rename to gt-reginfo.h.
33001
33002         * rtl.h (dump_global_regs, retry_global_alloc,
33003         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
33004
33005         * Makefile.in (RA_H): Remove.
33006         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
33007         Rename regclass.o to reginfo.o.
33008         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
33009         gt-reginfo.h.
33010         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
33011         (GTFILES): Rename regclass.c to reginfo.c.
33012
33013         * passes.c (init_optimization_passes): Remove pass_local_alloc and
33014         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
33015
33016         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
33017         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
33018         Remove flag_ira.
33019         (finish_spills): Ditto.  Remove code for !flag_ira.
33020
33021 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
33022
33023         PR middle-end/35854
33024         * doc/invoke.texi (rtl debug options): Complete rewrite.
33025         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
33026         to auto_inc_dec".
33027         * mode-switching.c (pass_mode_switching): Rename pass from
33028         "mode-sw" to "mode_sw".
33029         * except.c (pass_convert_to_eh_ranges): Rename pass from
33030         "eh-ranges" to "eh_ranges".
33031         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
33032         to "subreg1".
33033
33034
33035 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
33036             Alexander Monakov  <amonakov@ispras.ru>
33037
33038         PR middle-end/38857
33039         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
33040         register.
33041         (move_exprs_to_boundary): Change return type and pass through
33042         should_move from move_op.  Relax assert.  Update usage ...
33043         (schedule_expr_on_boundary): ... here.  Use should_move instead of
33044         cant_move.
33045         (move_op_orig_expr_found): Indicate that insn was disconnected from
33046         stream.
33047         (code_motion_process_successors): Do not call after_merge_succs
33048         callback if original expression was not found when traversing any of
33049         the branches.
33050         (code_motion_path_driver): Change return type.  Update prototype.
33051         (move_op): Update comment.  Add a new parameter (should_move).  Update
33052         prototype.  Set *should_move based on indication provided by
33053         move_op_orig_expr_found.
33054
33055 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
33056
33057         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
33058         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
33059         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
33060         * config/rs6000/rs6000.c (rs6000_override_options): Default
33061         avoid-indexed-addresses on for Power6, off for everything else.
33062         (avoiding_indexed_address_p): New function.
33063         (rs6000_legitimize_address): Use it.
33064         (rs6000_legitimate_address): Likewise.
33065         * config/rs6000/rs6000.md (movXX_updateX): Likewise
33066
33067 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
33068
33069         PR tree-optimization/38997
33070         * tree-loop-distribution.c (generate_memset_zero): Use
33071         POINTER_PLUS_EXPR for a pointer addition.
33072
33073 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
33074
33075         * config/s390/s390.md (bswap<mode>2): New pattern added.
33076
33077 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
33078
33079         * config/s390/s390.md (*tls_load_31): Added type attribute.
33080
33081 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
33082
33083         * config/s390/s390.md: Fix a few comments.
33084
33085 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
33086
33087         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
33088         (*tm<mode>_full): Fixed z10prop attribute.
33089         (*tst<mode>_extimm): Fixed z10prop attribute.
33090         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
33091         (*tstqiCCT_cconly): Fixed z10prop attribute.
33092         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
33093         (*movsi_larl): Fixed z10prop attribute.
33094         (*movsi_zarch): Fixed z10prop attribute.
33095         (*movsi_eas): Fixed z10prop attribute.
33096         (*movhi): Fixed z10prop attribute.
33097         (*movqi): Fixed z10prop attribute.
33098         (*movstrictqi): Fixed z10prop attribute.
33099         (*mov<mode>): Fixed z10prop attribute.
33100         (*movcc): Fixed z10prop attribute.
33101         (*sethighpartdi_64): Fixed z10prop attribute.
33102         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
33103         (*negdi2_sign_cc): Fixed z10prop attribute.
33104         (*negdi2_sign): Fixed z10prop attribute.
33105         (*absdi2_sign_cc): Fixed z10prop attribute.
33106         (*absdi2_sign): Fixed z10prop attribute.
33107         (*negabsdi2_sign_cc): Fixed z10prop attribute.
33108         (*negabsdi2_sign): Fixed z10prop attribute.
33109         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
33110         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
33111         (doloop_si64): Fixed z10prop attribute.
33112         (doloop_si31): Fixed z10prop attribute.
33113         (doloop_long): Fixed z10prop attribute.
33114         (indirect_jump): Fixed z10prop attribute.
33115         (nop): Fixed z10prop attribute.
33116         (main_base_64): Fixed z10prop attribute.
33117         (reload_base_64): Fixed z10prop attribute.
33118
33119 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
33120
33121         PR rtl-optimization/38740
33122         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
33123         if !optimize.
33124         * config/mips/mips.c (mips_reorg): Likewise.
33125
33126 2009-01-28  Richard Guenther  <rguenther@suse.de>
33127
33128         PR tree-optimization/38926
33129         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
33130         with the correct value id to a value.
33131         (do_regular_insertion): Use the value number of edoubleprime
33132         for the value number of the expr.
33133
33134         Revert
33135         2008-08-21  Richard Guenther  <rguenther@suse.de>
33136
33137         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
33138         a PHI ask VN if it is already available.
33139         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
33140         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
33141
33142 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
33143
33144         PR middle-end/38934
33145         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
33146         set to varying whenever max has TREE_OVERFLOW set, similarly
33147         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
33148
33149 2009-01-28  Richard Guenther  <rguenther@suse.de>
33150
33151         PR middle-end/38908
33152         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
33153         uninitialized aggregate uses in call arguments.
33154
33155 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
33156
33157         PR tree-optimization/38984
33158         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
33159         the nothing_id variable if -fno-delete-null-pointer-checks.
33160
33161 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
33162
33163         PR target/38988
33164         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
33165         (set_got_offset_rex64): Ditto.
33166
33167 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
33168
33169         PR target/38941
33170         * doc/extend.texi: Improve local variable with asm reg.
33171
33172 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
33173
33174         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
33175         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
33176         was not supplied then set warn_packed_bitfield_compat to the
33177         default value of 1.
33178         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
33179         against 1.
33180
33181 2009-01-27  Richard Guenther  <rguenther@suse.de>
33182
33183         PR tree-optimization/38503
33184         * cfgexpand.c (expand_gimple_basic_block): Ignore
33185         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
33186         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
33187         variables that cannot have TBAA applied.
33188         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
33189         statements.
33190
33191 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
33192
33193         PR middle-end/38969
33194         * calls.c (initialize_argument_information): Do not wrap complex
33195         arguments in SAVE_EXPR.
33196
33197 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
33198
33199         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
33200         (INSTALL_LIBGCC): Revert typo commit.
33201
33202 2009-01-26  Richard Guenther  <rguenther@suse.de>
33203
33204         PR tree-optimization/38745
33205         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
33206         from special handling.
33207
33208 2009-01-26  Richard Guenther  <rguenther@suse.de>
33209
33210         PR tree-optimization/38745
33211         * tree-ssa.c (execute_update_addresses_taken): Do not include
33212         variables that cannot possibly be a register in not_reg_needs.
33213         Do not clear TREE_ADDRESSABLE on vars that may not become
33214         registers.
33215         * tree-ssa.c (update_alias_info_1): Include those in the set
33216         of addressable vars.
33217
33218 2009-01-26  Richard Guenther  <rguenther@suse.de>
33219
33220         PR middle-end/38851
33221         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
33222         * tree-ssa-dse.c: Include langhooks.h
33223         (execute_simple_dse): Remove stores with zero size.
33224
33225 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
33226
33227         PR c/38957
33228         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
33229         as PLUS_EXPR.
33230
33231 2009-01-24  Julian Brown  <julian@codesourcery.com>
33232
33233         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
33234         config/arm/linux-atomic.c.
33235         * config/arm/linux-atomic.c: New.
33236
33237 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
33238
33239         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
33240         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
33241         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
33242
33243 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
33244
33245         PR c/38938
33246         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
33247         properly.
33248
33249 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
33250
33251         PR tree-optimization/38953
33252         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
33253         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
33254         (gloog): Split the exit of the scop when the scop exit is a loop exit.
33255         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
33256         changed the CFG.
33257
33258 2009-01-24  Paul Brook  <paul@codesourcery.com>
33259
33260         * config/arm/neon.md (neon_type): Move to arm.md.
33261         (neon_mov<VSTRUCT>): Add neon_type attribute.
33262         * config/arm/arm.md (neon_type): Move to here.
33263         (conds): Add "unconditioal" and use as default for NEON insns.
33264
33265 2009-01-24  Ben Elliston  <bje@au.ibm.com>
33266
33267         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
33268         void *' warning from -Wc++-compat.
33269         * Makefile.in (dominance.o-warn): Remove.
33270
33271 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
33272
33273         PR tree-optimization/38932
33274         * fold-const.c (fold_unary_ignore_overflow): New.
33275         * tree.h (fold_unary_ignore_overflow): Declare.
33276         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
33277         * tree-ssa-sccvn.c (visit_reference_op_load,
33278         simplify_unary_expression): Likewise.
33279
33280 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
33281
33282         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
33283         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
33284         regardless of their type.
33285         * c-common.c (handle_packed_attribute): Don't ignore packed on
33286         bitfields.
33287         * c.opt (Wpacked-bitfield-compat): New warning option.
33288         * stor-layout.c (place_field): Warn if offset of a field changed.
33289         * doc/extend.texi (packed): Mention the ABI change.
33290         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
33291         (Warning Options): Add it to the list.
33292
33293 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
33294
33295         * c-opts.c (c_common_post_options): Fix a typo in comments.
33296
33297 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
33298
33299         PR middle-end/38615
33300         * gimplify.c (gimplify_init_constructor): Fix promotion of const
33301         variables to static.
33302         * doc/invoke.texi (-fmerge-all-constants): Update description.
33303
33304 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
33305
33306         PR target/38931
33307         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
33308         (*movdi_1_rex64): Use type "mmx" for alternative 5.
33309
33310 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
33311
33312         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
33313         a word boundary.
33314         (LOCAL_ALIGNMENT): Similarly.
33315
33316 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
33317             Joseph Myers  <joseph@codesourcery.com>
33318
33319         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
33320         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
33321         * config/arm/arm-tune.md: Regenerate.
33322         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
33323         -march=iwmmxt2.
33324
33325 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
33326
33327         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
33328         version number to five.
33329
33330 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
33331
33332         PR c++/38930
33333         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
33334         * c-common.c (set_underlying_type): Likewise.
33335         (is_typedef_decl ): Likewise
33336         * tree.h: Likewise
33337         (set_underlying_type): Likewise.
33338         (is_typedef_type): Likewise.
33339
33340 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
33341
33342         PR middle-end/38587
33343         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
33344         crossing setjmps.
33345
33346 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
33347
33348         PR bootstrap/37660
33349         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
33350         (LIBGCC_SPEC):  Don't define.
33351         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
33352
33353 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
33354
33355         PR rtl-optimization/38879
33356         * alias.c (base_alias_check): Unaligned access via AND address can
33357         alias all surrounding object types except those with sizes equal
33358         or wider than the size of unaligned access.
33359
33360 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
33361
33362         PR c++/26693
33363         * c-decl.c (clone_underlying_type): Move this ...
33364         * c-common.c (set_underlying_type): ... here.
33365         Also, make sure the function properly sets TYPE_STUB_DECL() on
33366         the newly created typedef variant type.
33367         (is_typedef_decl ): New entry point.
33368         * tree.h: Added a new member member_types_needing_access_check to
33369         struct tree_decl_non_common.
33370         (set_underlying_type): New entry point.
33371         (is_typedef_type): Likewise.
33372
33373 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
33374
33375         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
33376         Check whether two instructions have memory references that
33377         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
33378         are helper functions for traversing.
33379         * alias.h (insn_alias_sets_confilict_p): New prototypes.
33380         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
33381         not to draw dependency edge for instructions with non-conflicting
33382         alias sets.
33383
33384 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
33385
33386         PR other/38758
33387         * longlong.h: Update copyright years.  Use soft-fp license notice.
33388         Sync __clz_tab declaration with glibc.
33389
33390 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
33391
33392         PR target/30687
33393         * doc/extend.texi (syscall_linkage): New.
33394         (version_id): Modify.
33395
33396 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
33397             Richard Guenther  <rguenther@suse.de>
33398
33399         PR tree-optimization/38747
33400         PR tree-optimization/38748
33401         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
33402         conversion if the base address is an indirect reference and the
33403         aliasing sets could cause issues.
33404
33405 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
33406
33407         * common.opt (fgraphite, fgraphite-identity): Add comment for
33408         explaining why these options are not documented.
33409
33410 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
33411
33412         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
33413         gimple_call_lhs is NULL.
33414
33415 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
33416
33417         PR target/38868
33418         * emit-rtl.c (adjust_address_1): Make sure memref is never
33419         overwritten.
33420
33421 2009-01-20  Ben Elliston  <bje@au.ibm.com>
33422
33423         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
33424         const qualifier from arg parameter. Remove unnecessary cast to char *.
33425         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
33426         const qualifier from arg 2.
33427
33428 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
33429
33430         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
33431
33432 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
33433
33434         PR c/38869
33435         * rtl.h (reinit_regs): New prototype.
33436         * regclass.c: Include ira.h.
33437         (reinit_regs): New.
33438         * Makefile.in (regclass.o): Add ira.h.
33439         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
33440
33441 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
33442
33443         PR target/38736
33444         * c-common.c (handle_aligned_attribute): Use
33445         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
33446         default alignment value.
33447
33448         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
33449
33450         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
33451         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
33452
33453         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
33454         __BIGGEST_ALIGNMENT__.
33455
33456         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
33457
33458 2009-01-18  Richard Guenther  <rguenther@suse.de>
33459
33460         PR tree-optimization/38819
33461         * tree-flow.h (operation_could_trap_helper_p): Declare.
33462         * tree-eh.c (operation_could_trap_helper_p): Export.
33463         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
33464         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
33465         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
33466         are about to insert a possibly trapping instruction and fail
33467         in this case.
33468
33469 2009-01-18  Andreas Schwab  <schwab@suse.de>
33470
33471         * doc/install.texi (Configuration): Remove obsolete paragraph
33472         about use of --with-gnu-ld with --with-gnu-as.
33473
33474 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
33475
33476         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
33477         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
33478         Follow spelling conventions.
33479
33480 2009-01-18  Ben Elliston  <bje@au.ibm.com>
33481
33482         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
33483         C++ warning about implicit conversion from void * to struct
33484         bitmap_head_def *.
33485         (bitmap_obstack_free): Likewise for bitmap_element *.
33486         * Makefile.in (bitmap.o-warn): Remove.
33487
33488 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
33489
33490         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
33491
33492 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
33493             Tobias Grosser  <tobi.grosser@amd.com>
33494
33495         * graphite.c (graphite_trans_scop_block): Do not block single
33496         nested loops.
33497
33498 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
33499
33500         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
33501         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
33502         test with assertion.
33503
33504 2009-01-16  Richard Guenther  <rguenther@suse.de>
33505
33506         PR tree-optimization/38835
33507         PR middle-end/36227
33508         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
33509         and INT + PTR -> (INT)(PTR p+ INT) folding.
33510         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
33511
33512 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
33513
33514         PR target/38554
33515         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
33516         the subreg from a lowpart subreg if it is also casting the value.
33517
33518 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
33519             Tobias Grosser  <tobi.grosser@amd.com>
33520
33521         * graphite.c (compare_prefix_loops): New.
33522         (build_scop_canonical_schedules): Rewritten.
33523         (graphite_transform_loops): Move build_scop_canonical_schedules
33524         after build_scop_iteration_domain.
33525
33526 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
33527             Tobias Grosser  <tobi.grosser@amd.com>
33528
33529         * graphite.c (add_conditions_to_domain): Add the loops to
33530         the dimension of the iteration domain.  Do copy the domain
33531         only when it exists.
33532         (build_scop_conditions_1): Do not call add_conditions_to_domain.
33533         (add_conditions_to_constraints): New.
33534         (can_generate_code_stmt, can_generate_code): Removed.
33535         (gloog): Do not call can_generate_code.
33536         (graphite_transform_loops): Call add_conditions_to_constraints
33537         after building the iteration domain.
33538
33539 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
33540
33541         PR tree-optimization/38789
33542         * tree-ssa-threadedge.c
33543         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
33544         __builtin_constant_p.
33545
33546 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
33547
33548         * dce.c (delete_unmarked_insns): Reversed the order that insns are
33549         examined before deleting them.
33550
33551 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
33552
33553         * function.c (aggregate_value_p): Correctly extract the function
33554         type from CALL_EXPR_FN lookup.
33555
33556 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
33557
33558         * config/picochip/picochip.c (picochip_override_options): Revert
33559         CFI asm flag disable commited previously.
33560
33561 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
33562             Tobias Grosser  <tobi.grosser@amd.com>
33563             Jan Sjodin  <jan.sjodin@amd.com>
33564
33565         * graphite.c (scan_tree_for_params): On substractions negate
33566         all the coefficients of the term.
33567         (clast_to_gcc_expression_red): New.  Handle reduction expressions
33568         of more than two operands.
33569         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
33570         (get_vdef_before_scop): Handle also the case of default definitions.
33571
33572 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
33573
33574         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
33575         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
33576         Also use them when walking CALL_INSN_FUNCTION_USAGE.
33577
33578 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
33579             Joey Ye  <joey.ye@intel.com>
33580
33581         PR middle-end/37843
33582         * cfgexpand.c (expand_stack_alignment): Don't update stack
33583         boundary nor check incoming stack boundary here.
33584         (gimple_expand_cfg): Update stack boundary and check incoming
33585         stack boundary here.
33586
33587 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
33588
33589         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
33590
33591 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
33592
33593         PR rtl-optimization/38245
33594         * calls.c (expand_call): Add stack arguments to
33595         CALL_INSN_FUNCTION_USAGE even for pure calls (when
33596         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
33597         in regs and partially in memory or BLKmode arguments.
33598         (emit_library_call_value_1): Add stack arguments to
33599         CALL_INSN_FUNCTION_USAGE even for pure calls (when
33600         ACCUMULATE_OUTGOING_ARGS).
33601         * dce.c: Include tm_p.h.
33602         (find_call_stack_args): New function.
33603         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
33604         argument.
33605         (mark_insn): Call find_call_stack_args for CALL_Ps.
33606         (prescan_insns_for_dce): Walk insns backwards in bb rather than
33607         forwards.  Allocate and free arg_stores bitmap if needed, pass it
33608         down to deletable_insn_p, don't mark stores set in arg_stores
33609         bitmap, clear the bitmap at the beginning of each bb.
33610         * Makefile.in (dce.o): Depend on $(TM_P_H).
33611
33612 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
33613
33614         PR target/22599
33615         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
33616         to make sure the insn is a conditional test (bug 22599).  Reformat a
33617         few long lines.
33618
33619 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
33620
33621         PR middle-end/38431
33622         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
33623         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
33624         (gloog): Do not call cleanup_tree_cfg.
33625         (graphite_transform_loops): Call cleanup_tree_cfg after all
33626         scops have been code generated.
33627
33628 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
33629         * doc/gty.texi (Invoking the garbage collector): Added new node
33630         and section documenting ggc_collect.
33631
33632 2009-01-14  Richard Guenther  <rguenther@suse.de>
33633
33634         PR tree-optimization/38826
33635         PR middle-end/38477
33636         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
33637         initialization notes only if we actually emitted a warning.
33638         (intra_create_variable_infos): Add constraints for a result decl
33639         that is passed by hidden reference.
33640         (build_pred_graph): Mark all related variables non-direct on
33641         address-taking.
33642
33643 2009-01-14  Nick Clifton  <nickc@redhat.com>
33644
33645         * ira-conflicts.c: Include addresses.h for the definition of
33646         base_reg_class.
33647         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
33648         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
33649
33650 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
33651
33652         PR target/38811
33653         * Makefile.in (ira-lives.o): Add except.h.
33654
33655         * ira-lives.c: Include except.h.
33656         (process_bb_node_lives): Process can_throw_internal.
33657
33658 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
33659
33660         PR rtl-optimization/38774
33661         * combine.c (simplify_set): When undoing cc_use change, don't do
33662         PUT_CODE on the newly created comparison, but instead put back the
33663         old comparison.
33664
33665 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
33666
33667         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
33668         values.  Remove duplicate arm8 entry.
33669
33670 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
33671
33672         PR tree-optimization/38786
33673         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
33674         the SSA_NAME case of expand_scalar_variables_expr.
33675         Set the type of an expression to the type of its assign statement.
33676         (expand_scalar_variables_expr): Also gather the scalar computation
33677         used to index the memory access.  Do not pass loop_p.
33678         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
33679         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
33680         the gimple_stmt_iterator where it inserts new code.
33681         Do not pass loop_p.
33682         (copy_bb_and_scalar_dependences): Do not pass loop_p.
33683         (translate_clast): Update call to copy_bb_and_scalar_dependences.
33684
33685 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
33686
33687         * graphite.h (debug_value): Removed.
33688         * graphite.c (debug_value): Removed.
33689
33690 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
33691
33692         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
33693         ldrd/strd with two 32-bit instructions.
33694
33695 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
33696
33697         * config/arm/arm.c (struct processors): Pass for speed down into
33698         cost helper functions.
33699         (const_ok_for_op): Handle COMPARE and inequality nodes.
33700         (arm_rtx_costs_1): Rewrite.
33701         (arm_size_rtx_costs): Update prototype.
33702         (arm_rtx_costs): Pass speed down to helper functions.
33703         (arm_slowmul_rtx_costs): Rework cost calculations.
33704         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
33705         (arm_9e_rtx_costs): Likewise.
33706
33707 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
33708
33709         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
33710         relocations of local symbols wider than UNITS_PER_WORD are not valid.
33711         (alpha_legitimize_address): Do not split local symbols wider than
33712         UNITS_PER_WORD into HIGH/LO_SUM parts.
33713
33714 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
33715
33716         PR bootstrap/38580
33717         * gcc.c (process_command): Replace call to execvp with calls
33718         to pex_one and exit.
33719
33720 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
33721
33722         PR target/29141
33723         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
33724         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
33725         variant for devices with 3-byte PC.
33726         (__tablejump_elpm__): New.
33727
33728 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
33729
33730         PR c/32041
33731         * c-parser.c (c_parser_postfix_expression): Allow `->' in
33732         offsetof member-designator, handle it as `[0].'.
33733
33734 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33735
33736         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
33737         function when not using named sections on targets with named sections
33738         if branch distance is less than 262132.
33739
33740 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
33741
33742         * combine.c (combine_instructions):  Recompute
33743         optimize_this_for_speed_p  for each BB in the main combine loop.
33744
33745 2009-01-12  Tomas Bily  <tbily@suse.cz>
33746
33747         PR middlend/38385
33748         * tree-loop-distribution.c (prop_phis): New function.
33749         (generate_builtin): Call prop_phis.
33750
33751 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
33752
33753         PR tree-optimization/38807
33754         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
33755         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
33756
33757 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
33758
33759         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
33760         subreg of op0 to the original op0.
33761
33762 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
33763
33764         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
33765
33766 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
33767
33768         PR debug/7055
33769         * mips-tfile.c (parse_def): Fix parsing of def strings
33770         starting with digits.
33771
33772 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
33773
33774         PR target/38695
33775         * config/arm/arm.c (arm_is_long_call_p): Don't call
33776         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
33777
33778 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
33779
33780         * regrename.c (regrename_optimize): Fix dumping.
33781         (find_oldest_value_reg): Preserve REG_POINTER.
33782         (copy_hardreg_forward_1): Likewise.
33783
33784 2009-01-09  Diego Novillo  <dnovillo@google.com>
33785
33786         * gimple.h (struct gimple_statement_base) <uid>: Document
33787         the restrictions on its use.
33788         (gimple_uid): Tidy.
33789         (gimple_set_uid): Tidy.
33790
33791 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
33792
33793         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
33794         zero guard even if align_bytes != 0 and count is smaller than
33795         size_needed.
33796
33797 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
33798
33799         PR rtl-optimization/38495
33800         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
33801         (add_range_and_copies_from_move_list): Print all added ranges.
33802         Add ranges to memory optimized destination.
33803
33804 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
33805
33806         PR target/38686
33807         PR target/38708
33808         * config/i386/i386.c (override_options): Reject
33809         -mstringop-strategy=rep_8byte with -m32.
33810         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
33811         to 1.  Do count comparison against epilogue_size_needed at compile
33812         time even when count_exp was constant forced into register.  For
33813         size_needed don't jump to epilogue, instead just avoid aligning
33814         and invoke the body algorithm.  If need_zero_guard, add zero guard
33815         even if count is non-zero, but smaller than size_needed + number of
33816         bytes that could be stored for alignment.
33817         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
33818         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
33819         but smaller than size_needed + number of bytes that could be stored
33820         for alignment.  Compare size_needed with epilogue_size_needed instead
33821         of desired_align - align, don't adjust size_needed, pass
33822         epilogue_size_needed to the epilogue expanders.
33823
33824         PR c/35742
33825         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
33826
33827 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
33828
33829         * pa.c (last_address): Change to unsigned.
33830         (update_total_code_bytes): Change argument to unsigned.  Don't
33831         check if insn addresses are set.
33832         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
33833         addresses are not set.
33834         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
33835
33836 2009-01-09  Nick Clifton  <nickc@redhat.com>
33837
33838         * config/sh/symbian.c: Replace uses of DECL_INLINE with
33839         DECL_DECLARED_INLINE_P.
33840
33841 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
33842
33843         PR middle-end/38347
33844         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
33845         GET_MODE (op0) in operand_subword_force calls.
33846
33847         PR middle-end/38771
33848         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
33849         fold_convert arg0 operands to TREE_TYPE (op0) first.
33850
33851 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
33852
33853         * params.def (ira-max-conflict-table-size): Decrease default value
33854         to 1000.
33855
33856 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
33857
33858         PR tree-optimization/37031
33859         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
33860         on parameter_set.
33861         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
33862         allocate it using gc instead of heap, use VEC_quick_push instead of
33863         VEC_safe_push.
33864         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
33865         instead of heap, use VEC_quick_push instead of VEC_safe_push.
33866         * tree-data-ref.h (struct access_matrix): Change matrix to gc
33867         allocated vector from heap allocated.
33868         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
33869         * tree-loop-linear.c (linear_transform_loops): Allocate nest
33870         vector only after perfect_loop_nest_depth call.
33871
33872 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
33873             Jan Sjodin  <jan.sjodin@amd.com>
33874
33875         PR tree-optimization/38559
33876         * graphite.c (debug_value, copy_constraint,
33877         swap_constraint_variables, scale_constraint_variable, ): New.
33878         (get_lower_bound, get_upper_bound): Removed.
33879         (graphite_trans_bb_strip_mine): Clean up this code that works
33880         only for constant number of iterations.  Fully copy upper and
33881         lower bound constraints, not only the constant part of them.
33882         * graphite.h (debug_value): Declared.
33883
33884 2009-01-08  Ira Rosen  <irar@il.ibm.com>
33885
33886         PR tree-optimization/37194
33887         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
33888         Don't add the cost of cost model guard in prologue to scalar
33889         outside cost in case of known number of iterations.
33890
33891 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
33892             Alan Modra  <amodra@bigpond.net.au>
33893
33894         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
33895         non-word-aligned REG+CONST addressing.
33896
33897 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
33898
33899         PR target/38706
33900         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
33901         free_after_compilation when outputting a thunk.
33902         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
33903         Do not call free_after_compilation here.
33904
33905 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
33906
33907         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
33908         (ix86_valid_target_attribute_inner_p): Ditto.
33909
33910 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
33911
33912         PR tree-optimization/38492
33913         PR tree-optimization/38498
33914         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
33915         * tree-chrec.h (scev_is_linear_expression): Declared.
33916         * graphite.c (graphite_cannot_represent_loop_niter): New.
33917         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
33918         (graphite_loop_normal_form): Use gcc_assert.
33919         (scan_tree_for_params): Use CASE_CONVERT.
33920         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
33921         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
33922         Use gcc_assert.  Discard scops that contain unhandled cases.
33923         (build_scop_conditions): Return a boolean status for unhandled cases.
33924         (strip_mine_profitable_p): Print the loop number, not its depth.
33925         (is_interchange_valid): Pass the depth of the loop nest, don't
33926         recompute it wrongly.
33927         (graphite_trans_bb_block): Same.
33928         (graphite_trans_bb_block): Print tentative of loop blocking.
33929         (graphite_trans_scop_block): Do not print that the loop has been
33930         blocked.
33931         (graphite_transform_loops): Do not handle scops that contain condition
33932         scalar phi nodes.
33933
33934 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
33935
33936         AVX Programming Reference (December, 2008)
33937         * config/i386/avxintrin.h (_mm256_stream_si256): New.
33938         (_mm256_stream_pd): Likewise.
33939         (_mm256_stream_ps): Likewise.
33940
33941         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
33942         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
33943         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
33944         (bdesc_special_args): Add __builtin_ia32_movntdq256,
33945         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
33946         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
33947         (ix86_expand_special_args_builtin): Likewise.
33948
33949         * config/i386/sse.md (AVXMODEDI): New.
33950         (avx_movnt<mode>): Likewise.
33951         (avx_movnt<mode>): Likewise.
33952         (<sse>_movnt<mode>): Remove AVX support.
33953         (sse2_movntv2di): Likewise.
33954
33955 2009-01-07  Richard Guenther  <rguenther@suse.de>
33956
33957         PR middle-end/38751
33958         * fold-const.c (extract_muldiv): Remove obsolete comment.
33959         (fold_plusminus_mult_expr): Undo MINUS_EXPR
33960         to PLUS_EXPR canonicalization for the canonicalization.
33961
33962 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
33963
33964         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
33965         hosted cross-compilers generating less efficient code.
33966
33967 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
33968
33969         * function.h (rtl_data): Add a dbr_scheduled_p field.
33970         * reorg.c (dbr_schedule): Set it.
33971         (gate_handle_delay_slots): Check it.
33972         * config/mips/mips.c (mips_base_delayed_branch): Delete.
33973         (mips_reorg): Check flag_delayed_branch instead of
33974         mips_base_delayed_branch.
33975         (mips_override_options): Don't set mips_base_delayed_branch
33976         or flag_delayed_branch.
33977
33978 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
33979
33980         PR rtl-optimization/38426.
33981         * ira.c (ira): Set current_function_is_leaf earlier.
33982
33983 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
33984
33985         PR rtl-optimization/38722
33986         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
33987         too early, only set a flag and modify after last possible
33988         undo_all point.
33989
33990 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
33991
33992         PR c/34252
33993         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
33994         * real.c (decimal_single_format): Correct values of emin and emax.
33995         (decimal_double_format): Ditto.
33996         (decimal_quad_format): Ditto.
33997         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
33998         computation of DECnn_MIN and DECnn_MAX for corrected values of
33999         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
34000         __DECnn_MIN__, and adjust its computation for the corrected value
34001         of emin.
34002
34003 2009-01-06  Jan Hubicka  <jh@suse.cz>
34004
34005         PR target/38744
34006         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
34007
34008 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
34009
34010         * doc/contrib.texi (Contributors): Slightly adjust the end note.
34011         Add Robert Clark to the list of testers.
34012
34013 2009-01-06  Jan Hubicka  <jh@suse.cz>
34014             Kai Tietz  <kai.tietz@onevision.com>
34015
34016         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
34017         * config/i386/i386.c (ix86_expand_call): Add clobbers.
34018
34019 2009-01-06  Jan Hubicka  <jh@suse.cz>
34020             Kai Tietz  <kai.tietz@onevision.com>
34021
34022         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
34023         for w64 ABI.
34024         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
34025         (ix86_nsaved_regs): Count only general purpose regs.
34026         (ix86_nsaved_sseregs): New.
34027         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
34028         to 16 for w64; compute padding and size of sse reg save area.
34029         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
34030         general purpose regs.
34031         (ix86_emit_save_sse_regs_using_mov): New.
34032         (ix86_expand_prologue): Save SSE regs if needed.
34033         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
34034         (ix86_emit_restore_sse_regs_using_mov): New.
34035         (ix86_expand_epilogue): Save SSE regs if needed.
34036
34037 2009-01-06  Jan Hubicka  <jh@suse.cz>
34038             Kai Tietz  <kai.tietz@onevision.com>
34039
34040         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
34041         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
34042         functions when accumulate outgoing args is off.
34043
34044 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
34045
34046         PR bootstrap/38742
34047         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
34048         before using pseudos_have_intersected_live_ranges_p.
34049
34050         * ira-int.h (ira_assert): Always define.
34051
34052 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
34053
34054         AVX Programming Reference (December, 2008)
34055         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
34056         (_mm256_permute2_pd): Likewise.
34057         (_mm_permute2_ps): Likewise.
34058         (_mm256_permute2_ps): Likewise.
34059         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
34060         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
34061
34062         * config/i386/i386.c (ix86_builtins): Remove
34063         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
34064         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
34065         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
34066         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
34067         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
34068         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
34069         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
34070         __builtin_ia32_vpermil2ps256.
34071         (ix86_init_mmx_sse_builtins): Updated.
34072         (ix86_expand_args_builtin): Likewise.
34073
34074 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
34075
34076         * pa.c (output_call): Relocate non-jump insns in the delay slot of
34077         long absolute calls when generating PA 2.0 code.
34078
34079 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
34080
34081         PR rtl-optimization/38583
34082         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
34083
34084         * params.def (ira-max-conflict-table-size): New.
34085
34086         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
34087
34088         * ira.h (ira_conflicts_p): New external definition.
34089
34090         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
34091         table.  Report this.  Return result of building.
34092         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
34093         building conflict table.
34094
34095         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
34096         (ira_color): Use ira_conflicts_p.
34097
34098         * global.c: Include ira.h.
34099         (pseudo_for_reload_consideration_p, build_insn_chain): Use
34100         ira_conflicts_p.
34101
34102         * Makefile.in (global.o): Add ira.h.
34103
34104         * ira-build.c (mark_all_loops_for_removal,
34105         propagate_some_info_from_allocno): New.
34106         (remove_unnecessary_allocnos): Call
34107         propagate_some_info_from_allocno.
34108         (remove_low_level_allocnos): New.
34109         (remove_unnecessary_regions): Add parameter.  Call
34110         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
34111         parameter to remove_unnecessary_regions.
34112         (ira_build): Remove all regions but root if the conflict table was
34113         not built.  Update conflict hard regs for allocnos crossing calls.
34114
34115         * ira.c (ira_conflicts_p): New global.
34116         (ira): Define and use ira_conflicts_p.
34117
34118         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
34119         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
34120         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
34121
34122 2009-01-06  Ben Elliston  <bje@au.ibm.com>
34123
34124         * gengtype-lex.l (YY_NO_INPUT): Define.
34125
34126 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
34127
34128         PR c/34911
34129         * c-common.c (handle_vector_size_attribute): Also reject
34130         BOOLEAN_TYPE types.
34131
34132 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
34133
34134         PR tree-optimization/38492
34135         * graphite.c (rename_map_elt, debug_rename_elt,
34136         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
34137         rename_map_elt_info, eq_rename_map_elts,
34138         get_new_name_from_old_name, bb_in_sese_p): Moved around.
34139         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
34140         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
34141         (sese_build_livein_liveouts): New.
34142         (new_sese, free_sese): New.
34143         (new_scop): Call new_sese.
34144         (free_scop): Call free_sese.
34145         (rename_variables_from_edge, rename_phis_end_scop): Removed.
34146         (register_old_new_names): Renamed register_old_and_new_names.
34147         (register_scop_liveout_renames, add_loop_exit_phis,
34148         insert_loop_close_phis, struct igp,
34149         default_liveout_before_guard, add_guard_exit_phis,
34150         insert_guard_phis, copy_renames): New.
34151         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
34152         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
34153         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
34154         (scop_adjust_phis_for_liveouts): New.
34155         (gloog): Call scop_adjust_phis_for_liveouts.
34156
34157         * graphite.h (struct sese): Documented.  Added fields liveout,
34158         num_ver and livein.
34159         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
34160         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
34161         (struct scop): Added field liveout_renames.
34162         (SCOP_LIVEOUT_RENAMES): New.
34163
34164 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
34165
34166         PR tree-optimization/38510
34167         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
34168         (translate_clast): Call recompute_all_dominators before
34169         graphite_verify.
34170         (gloog): Call recompute_all_dominators before graphite_verify.
34171
34172 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
34173             Jan Sjodin  <jan.sjodin@amd.com>
34174
34175         PR tree-optimization/38500
34176         * graphite.c (create_sese_edges): Call fix_loop_structure after
34177         splitting blocks.
34178
34179 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
34180
34181         * config.gcc: Add m32r*-*-rtems*.
34182         * config/m32r/rtems.h: New file.
34183
34184 2009-01-05  Ben Elliston  <bje@au.ibm.com>
34185
34186         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
34187         (.po.pox): Likewise.
34188         (po/gcc.pot): Likewise.
34189
34190 2009-01-04  David S. Miller  <davem@davemloft.net>
34191
34192         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
34193         (STARTING_FRAME_OFFSET): Always set to zero.
34194
34195 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
34196
34197         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
34198         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
34199         fixed-point types, and vectors of the same.
34200
34201 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
34202
34203         * config/mips/sync.md (*mb_barrier): Rename to...
34204         (*memory_barrier): ...this.
34205
34206 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
34207
34208         * doc/extend.texi (Function Attributes): Move @cindex after @item
34209         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
34210         and put in alphabetical order. Fix 'target' name and put in order.
34211         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
34212         typos.
34213
34214 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
34215
34216         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
34217         (memory_barrier): Expand as unspec instead of unspec_volatile.
34218         Remove mem:BLK from insn operands.  Use Pmode scratch register.
34219         (*memory_barrier): Define as unspec instead of unspec_volatile.
34220         Use (match_dup 0) as input operand.
34221
34222         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
34223         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
34224         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
34225         scratch register.  Remove operand 1.
34226         (*stbar): Define as unspec instead of unspec_volatile.
34227         Use (match_dup 0) as input operand, remove (const_int 8).
34228         (*membar): Define as unspec instead of unspec_volatile.
34229         Use (match_dup 0) as input operand, remove input operand 2.
34230
34231         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
34232         (memory_barrier): Expand as unspec instead of unspec_volatile.
34233         Remove mem:BLK from insn operands.  Use Pmode scratch register.
34234         (*memory_barrier): Define as unspec instead of unspec_volatile.
34235         Use (match_dup 0) as input operand.
34236
34237         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
34238         Remove mem:BLK from insn operands.  Use Pmode scratch register.
34239         Set volatile flag on operand 0.
34240         (*memory_barrier): New insn pattern.
34241
34242         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
34243         insn operands.
34244         (*memory_barrier): Use (match_dup 0) as input operand.
34245
34246         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
34247         Remove mem:BLK from insn operands.  Use Pmode scratch register.
34248         Set volatile flag on operand 0.
34249         (*mb_internal): New insn pattern.
34250
34251         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
34252
34253 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
34254
34255         PR middle-end/38586
34256         * function.c (struct temp_slot): Move to the section of the file
34257         that deals with temp slots.  Remove field 'address'.
34258         (temp_slot_address_table): New hash table of address -> temp slot.
34259         (struct temp_slot_address_entry): New struct, items for the table.
34260         (temp_slot_address_compute_hash, temp_slot_address_hash,
34261         temp_slot_address_eq, insert_temp_slot_address): Support functions
34262         for the new table.
34263         (find_temp_slot_from_address): Rewrite to use the new hash table.
34264         (remove_unused_temp_slot_addresses): Remove addresses of temp
34265         slots that have been made available.
34266         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
34267         worker function for remove_unused_temp_slot_addresses.
34268         (assign_stack_temp_for_type): Don't clear the temp slot address list.
34269         Add the temp slot address to the address -> temp slot map.
34270         (update_temp_slot_address): Update via insert_temp_slot_address.
34271         (free_temp_slots): Call remove_unused_temp_slot_addresses.
34272         (pop_temp_slots): Likewise.
34273         (init_temp_slots): Allocate the address -> temp slot map, or empty
34274         the map if it is already allocated.
34275         (prepare_function_start): Initialize temp slot processing.
34276
34277 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
34278
34279         PR middle-end/38584
34280         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
34281         Calculate the size of all stack vars assuming no packing of stack
34282         vars will happen, replacing a quadratic algorithm with a linear one.
34283
34284 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
34285
34286         PR target/38707
34287         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
34288         can't be used.
34289
34290 2009-01-03  Diego Novillo  <dnovillo@google.com>
34291
34292         * doc/contrib.texi: Update contributions.
34293
34294 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
34295
34296         PR c++/38705
34297         * builtins.c (fold_builtin_memory_op): Give up if either operand
34298         is volatile.  Set srctype or desttype to non-qualified version
34299         of the other type.
34300
34301         PR c/38700
34302         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
34303         and FUNCTION_DECLs.
34304
34305 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
34306
34307         PR rtl-optimization/35805
34308         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
34309         problem if fast dce is able to remove any instructions.
34310         * dce.c (dce_process_block): Fix dump message.
34311
34312 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
34313
34314         PR 33649
34315         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
34316
34317 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
34318
34319         PR middle-end/38690
34320         * tree-flow.h (op_code_prio, op_prio): New prototypes.
34321         * tree-pretty-print.c (op_code_prio): New function.
34322         (op_prio): No longer static.  Use op_code_prio.
34323         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
34324         Use op_prio and op_code_prio to determine if () should be
34325         printed around operand(s) or not.
34326
34327         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
34328         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
34329         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
34330         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
34331         pp_character instead of pp_string for single letter printing.
34332
34333 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
34334
34335         * doc/extend.texi: Fix '#pragma GCC option' typo.
34336
34337 2009-01-02  Richard Guenther  <rguenther@suse.de>
34338
34339         * doc/install.texi (--enable-checking): Mention different
34340         default for stage1.
34341         (--enable-stage1-checking): Document.
34342
34343 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
34344
34345         PR middle-end/30142
34346         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
34347         case to be an error.
34348
34349 2009-01-02  Ben Elliston  <bje@au.ibm.com>
34350
34351         * config/fp-bit.h (pack_d): Constify argument.
34352         * config/fp-bit.c (makenan): Constify return type. Remove casts.
34353         (isnan): Constify argument.
34354         (isinf): Likewise.
34355         (iszero): Likewise.
34356         (pack_d): Likewise.
34357         (_fpadd_parts): Constify return type.
34358         (_fpmul_parts): Likewise.
34359         (_fpdiv_parts): Likewise.
34360
34361 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
34362
34363         PR c/36489
34364         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
34365         warn about overwriting initializer with side-effects or
34366         -Woverride-init if !IMPLICIT.
34367         (output_init_element): Likewise.  Pass IMPLICIT down to
34368         add_pending_init.
34369         (process_init_element): Add IMPLICIT argument.  Pass it down
34370         to output_init_element.
34371         (push_init_element, pop_init_level, set_designator): Adjust
34372         process_init_element callers.
34373         (set_nonincremental_init, set_nonincremental_init_from_string):
34374         Adjust add_pending_init callers.
34375         (output_pending_init_elements): Adjust output_init_element callers.
34376         * c-tree.h (process_init_element): Adjust prototype.
34377         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
34378         process_init_element callers.
34379
34380 \f
34381 Copyright (C) 2009 Free Software Foundation, Inc.
34382
34383 Copying and distribution of this file, with or without modification,
34384 are permitted in any medium without royalty provided the copyright
34385 notice and this notice are preserved.