OSDN Git Service

6dc1f55a7b8d93e215881ffdce2fbd75e0b38efb
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-08-16  Douglas B Rupp  <rupp@gnat.com>
2
3         * doc/invoke.texi (Target options):
4         Add new option list for IA-64/VMS.
5         (menu): Add IA-64/VMS Options.
6         (IA-64/VMS Options): Likewise.
7
8 2009-08-16  Richard Sandiford  <rdsandiford@googlemail.com>
9
10         PR target/38599
11         * config/mips/mips.md (*lwxs): Use :P for pointer values.
12
13 2009-08-16  Richard Sandiford  <rdsandiford@googlemail.com>
14
15         * config/mips/mips-protos.h (mips_push_asm_switch): New function.
16         (mips_pop_asm_switch): Likewise.
17         * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
18         with...
19         (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
20         (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
21         (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
22         (mips_print_operand_punctuation): Use them.  Check mips_noreorder
23         instead of set_noreorder.
24         (mips_output_function_prologue): Use the new functions.
25         (mips_output_function_epilogue): Likewise.
26         (mips_need_noat_wrapper_p): New function, split out from...
27         (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
28         Use mips_push_asm_switch and mips_pop_asm_switch.
29         * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
30         and mips_pop_asm_switch.
31         (ASM_OUTPUT_REG_POP): Likewise.
32         (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
33         Use mips_pop_asm_switch.
34         (mips_asm_switch): New structure.
35         (set_noreorder, set_nomacro): Replace with...
36         (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
37         * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
38         instead of set_nomacro.
39         (fix_truncsfsi2_macro): Likewise.
40         (cprestore): Likewise.
41         (hazard): Use mips_noreorder instead of set_noreorder.
42         * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
43
44 2009-08-16  Uros Bizjak  <ubizjak@gmail.com>
45
46         * config/alpha/alpha.c (alpha_and_function): Handle NULL_RTX returned
47         from prev_active_insn.
48
49 2009-08-16  Anatoly Sokolov  <aesok@post.ru>
50
51         * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
52         * config/avr/avr.c (avr_override_options): Initialize
53         avr_current_arch variable.
54         (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
55         __AVR_HAVE_16BIT_SP__ according to the device type.
56         (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
57         TARGET_TINY_STACK.
58         (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
59         Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
60
61 2009-08-16  Dodji Seketeli  <dodji@redhat.com>
62
63         PR debug/37801
64         * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
65         generating inlined subroutine die only. We shouldn't be
66         called for anything else.
67         (gen_block_die): Don't generate inline subroutine debug info for
68         abstract blocks.
69
70 2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>
71
72         * graphite-poly.c (print_pbb): Print PBB index.
73
74 2009-08-15  Sebastian Pop  <sebastian.pop@amd.com>
75
76         PR middle-end/40981
77         * graphite-interchange.c (ppl_max_for_le): Moved...
78         * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
79         * graphite-ppl.c (ppl_max_for_le): ... here.  Correct the use of
80         ppl_Pointset_Powerset_C_Polyhedron_maximize.
81         * graphite-ppl.h (ppl_max_for_le): Declared.
82
83 2009-08-14  Olatunji Ruwase <tjruwase@google.com>
84
85         * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
86         supported on all platforms.
87         * target.h (struct gcc_target): Remove
88         handle_pragma_redefine_extname.
89         * c-cppbuiltin.c: Remove use of
90         targetm.handle_pragma_redefine_extname.
91         * c-pragma.c: Likewise.
92         * target-def.h (TARGET_INITIALIZER): Remove
93         TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
94         * config/sol2.h: Remove use of
95         TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
96
97 2009-08-14  Douglas B Rupp  <rupp@gnat.com>
98
99         * config/ia64/fde-vms.c: New file.
100         * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
101         * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
102         (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
103         (uw_frame_state_for): Only register a personality routine if it is
104         known to be compatible with our expectations.
105         (_Unwind_FindEnclosingFunction, uw_frame_state_for):
106         Declare unw_table_entry stack variable and
107         mod all calls to _Unwind_FindTableEntry to add arg.
108         * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
109         (_Unwind_FindTableEntry): Add arg to prototype.
110
111 2009-08-14  Eric Botcazou  <ebotcazou@adacore.com>
112
113         * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
114         field 'signal_pfs_loc'.
115         (uw_frame_state_for): Remove duplicate code dealing with leaf
116         procedures without unwind info.
117         If in the frame after unwinding through a signal handler, restore
118         the AR.PFS register instead of the CFM if AR.PFS has not been saved.
119         * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
120         'pfs_loc' to the AR.PFS location in the signal context; instead
121         set 'signal_pfs_loc'.
122         Manually generate the unwind info for the AR.PFS register.
123         (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
124         ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
125         (ia64_handle_unwabi): Test 'fs->unwabi' against them.
126         Do not set 'pfs_loc' to the AR.PFS location in the signal context;
127         instead set 'signal_pfs_loc'.
128         Remove code preventing the AR.PFS register from being restored
129         from the signal context.
130
131 2009-08-14  Douglas B Rupp  <rupp@gnat.com>
132             Tristan Gingold  <gingold@adacore.com>
133
134         * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
135         * config/ia64/t-vms: New file.
136         * config/ia64/vms64.h: New file.
137         * config/ia64/vms.h: New file.
138         * config/ia64/vms-crtinit.asm: New file.
139         * config/ia64/vms_symvec_libgcc_s.opt: New file.
140         * config/ia64/vms-unwind.h: New file.
141
142 2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
143
144         * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
145         TFmode compares.
146
147 2009-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
148
149         PR middle-end/30789
150         * builtins.c (do_mpc_arg2): Make extern, define for any MPC
151         version.  Move declaration...
152         * real.h (do_mpc_arg2): ... here.
153         * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
154         and RDIV_EXPR.
155
156 2009-08-14  Rafael Avila de Espindola  <espindola@google.com>
157
158         * final.c (add_debug_prefix_map): Don't use GC memory for
159         old_prefix and new_prefix.
160
161 2009-08-14  Richard Guenther  <rguenther@suse.de>
162
163         * ipa-prop.c (compute_complex_pass_through): If we cannot
164         compute a non-varying offset for IPA_JF_ANCESTOR punt.
165
166 2009-08-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
167
168         * c-lex.c (c_lex_with_flags): Increase size of local variable
169         to avoid memory clobber.
170
171 2009-08-14  Paolo Bonzini  <bonzini@gnu.org>
172
173         PR target/40934
174         * config/i386/i386.c (ix86_fp_comparison_strategy):
175         Only enable/disable sahf at function granularity.
176
177 2009-08-14  Hans-Peter Nilsson  <hp@axis.com>
178
179         PR rtl-optimization/41064
180         * reload1.c (reload_as_needed): Don't call extract_insn
181         for known invalid replacements after calling
182         validate_replace_rtx_group and verify_changes.
183
184 2009-08-14  Uros Bizjak  <ubizjak@gmail.com>
185
186         PR target/41019
187         * config/i386/sse.md (SSEMODE124C8): New mode iterator.
188         (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
189         ix86_expand_fp_vcond.
190         (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
191         Assert that operation is supported by ix86_expand_int_vcond.
192         (vcondu<SSEMODE124C8:mode>): Ditto.
193
194 2009-08-13  DJ Delorie  <dj@redhat.com>
195
196         * config/i386/djgpp-stdint.h: New.
197         * config.gcc (djgpp): Use it.
198
199 2009-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
200
201         * config/sh/sh.c (sh_override_options): When flag_exceptions or
202         flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
203
204 2009-08-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
205
206         * tree-ssa-loop-prefetch.c
207         (prune_ref_by_group_reuse): Enhance probabilistic analysis
208         for long-stride pruning.
209         (compute_miss_rate): New function to compute the probability
210         that two memory references access different cache lines.
211
212 2009-08-13  Dave Korn  <dave.korn.cygwin@gmail.com>
213
214         * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
215
216 2009-08-13  Richard Guenther  <rguenther@suse.de>
217
218         PR middle-end/41047
219         * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
220         use the constant pointer type.
221         * gimplify.c (canonicalize_addr_expr): Canonicalize independent
222         of CV qualifiers on the target pointer type.
223         * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
224         conversion check before restrict check.
225
226 2009-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
227
228         PR target/41029
229         * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
230
231 2009-08-12  Kaz Kojima  <kkojima@gcc.gnu.org>
232
233         * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
234
235 2009-08-12  Richard Guenther  <rguenther@suse.de>
236
237         PR tree-optimization/41011
238         * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
239         and reference constructing.
240
241 2009-08-12  Xinliang David Li  <davidxl@google.com>
242
243         PR tree-optimization/41012
244         * tree-flow.h : New external interface.
245         * gimple-low.c (check_call_arg): Change to public function.
246         Remove argument mismatch check in lowering.
247         * tree-inline.h (tree_can_inline_p): Interface change.
248         * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
249         into this function.
250         * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
251         Call change to tree_can_inline_p function.
252         (cgraph_decide_inlining_incrementally): Ditto.
253
254 2009-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
255
256         PR tree-optimization/41031
257         * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
258         on the partition variable rather than promote_mode on the source
259         type.  Assert that the partition variable's type has the same
260         mode as the source value's.
261
262 2009-08-12  Paolo Bonzini  <bonzini@gnu.org>
263
264         * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
265         for for_return == 2.
266         * function.c (assign_parm_setup_reg): Use for_return == 2, improve
267         comments.
268         * calls.c (expand_call): Fix typo.
269         * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
270         and PARM_DECL.
271         * stmt.c (expand_value_return): Use promote_function_mode to copy out
272         of pseudo.
273         * targhooks.c (default_promote_function_mode): Handle for_return == 2.
274         * config/cris/cris.c (cris_promote_function_mode): Likewise.
275         * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
276         * config/pa/pa.c (pa_promote_function_mode): Likewise.
277
278 2009-08-11  Andrew Haley  <aph@redhat.com>
279
280         * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
281
282 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
283
284         PR bootstrap/40103
285         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
286
287 2009-08-12  Richard Guenther  <rguenther@suse.de>
288
289         * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
290         * gimplify.c (gimplify_modify_expr): Do not use
291         lang_hooks.types_compatible_p.
292         * tree-ssa.c (useless_type_conversion_p): For aggregates
293         just return false if the canonical types differ.
294
295 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
296
297         PR middle-end/40980
298         * sese.c (convert_for_phi_arg): New.
299         (add_guard_exit_phis): Use convert_for_phi_arg.
300
301 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
302
303         * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
304         unknown subscript upper bounds.
305
306 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
307             Pranav Garg  <pranav.garg2107@gmail.com>
308
309         * graphite-interchange.c (gather_access_strides): Removed.
310         (ppl_max_for_le): New.
311         (build_linearized_memory_access): New.
312         (memory_stride_in_loop): New.
313         (pbb_interchange_profitable_p): Reimplemented.
314         * graphite-ppl.h (ppl_new_id_map): New.
315         (ppl_interchange): New.
316
317 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
318
319         * graphite-interchange.c (compute_subscript): Removed.
320         (compute_array_size_cstr): Removed.
321         (compute_array_size_poly): Removed.
322         (compute_array_size): Removed.
323         (gather_access_strides_poly): Removed.
324         (gather_access_strides): Empty.
325
326 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
327
328         * graphite-dependences.c (dependence_polyhedron_1): Replace
329         pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
330         (graphite_legal_transform_dr): Same.
331         (graphite_carried_dependence_level_k): Same.
332         * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
333         Initialize PDR_NB_SUBSCRIPTS.
334         (print_pdr_access_layout): Replace pdr_nb_subscripts with
335         PDR_NB_SUBSCRIPTS.
336         * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
337         (PDR_NB_SUBSCRIPTS): New.
338         (pdr_nb_subscripts): Removed.
339         (pdr_dim): Simplified.
340         * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
341         with PDR_NB_SUBSCRIPTS.
342
343 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
344
345         * graphite-interchange.c (compute_array_size): Remove use of
346         PDR_DATA_CONTAINER.
347         * graphite-poly.c (new_poly_dr): Remove argument data_container.
348         Do not initialize PDR_DATA_CONTAINER.
349         (print_pdr): Do not print PDR_DATA_CONTAINER.
350         * graphite-poly.h (struct poly_dr): Remove data_container field.
351         (PDR_DATA_CONTAINER): Removed.
352         * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
353         PDR_DATA_CONTAINER.
354         (build_poly_dr): Same.
355
356 2009-08-12  Konrad Trifunovic  <konrad.trifunovic@gmail.com>
357             Sebastian Pop  <sebastian.pop@amd.com>
358
359         * graphite-dependences.c (graphite_legal_transform_dr): Work on a
360         copy of the dependence polyhedron.  Free the temporary objects.
361         (graphite_carried_dependence_level_k): Free unused objects before
362         returning.
363
364         * testsuite/gcc.dg/graphite/interchange-1.c: XFAILed.
365         * testsuite/gcc.dg/graphite/interchange-2.c: XFAILed.
366         * testsuite/gcc.dg/graphite/interchange-3.c: XFAILed.
367         * testsuite/gcc.dg/graphite/interchange-4.c: XFAILed.
368         * testsuite/gcc.dg/graphite/interchange-7.c: XFAILed.
369
370 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
371
372         * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
373         Early return without analyzing the data dependences if no
374         transform has been done.  Call restore_scattering if the transform
375         is not legal.
376         (graphite-interchange.c): Same.
377         * graphite-poly.c (print_scattering_function): Test for
378         PBB_TRANSFORMED.
379         (graphite_read_transforms): Initialize PBB_TRANSFORMED.
380         (apply_poly_transforms): Do not gcc_assert that
381         the transform is legal.
382         (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
383         Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
384         PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
385         (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
386         * graphite-poly.h (struct poly_scattering): New.
387         (struct poly_bb): Add original, transformed, and saved fields.
388         Remove transformed_scattering, original_scattering,
389         nb_local_variables and nb_scattering_transform fields.
390         (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
391         (poly_scattering_new): New.
392         (poly_scattering_free): New.
393         (poly_scattering_copy): New.
394         (store_scattering_pbb): New.
395         (store_scattering): New.
396         (restore_scattering_pbb): New.
397         (restore_scattering): New.
398         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
399         Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
400
401 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
402
403         * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
404         (print_scop): Same.
405
406 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
407
408         * Makefile.in (graphite.o): Depends on PREDICT_H.
409         * graphite.c: Include predict.h.
410         (graphite_finalize): Call tree_estimate_probability.
411         * predict.c (predict_loops): Do not call scev_initialize and
412         scev_finalize.
413         (tree_estimate_probability_bb): New.
414         (tree_estimate_probability): Do not initialize loops: move that
415         code to the driver.  Call tree_estimate_probability_bb.
416         (tree_estimate_probability_driver): New.
417         (pass_profile): Use tree_estimate_probability_driver.
418         * predict.h (tree_estimate_probability): Declared.
419
420 2009-08-12  Sebastian Pop  <sebastian.pop@amd.com>
421
422         * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
423         * graphite-dependences.c (graphite_legal_transform): Add time to
424         TV_GRAPHITE_DATA_DEPS.
425         (dependency_between_pbbs_p): Same.
426         * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
427
428 2009-08-12  Andrey Belevantsev  <abel@ispras.ru>
429
430         PR rtl-optimization/41033
431         * alias.c (nonoverlapping_component_refs_p): Punt when strict
432         aliasing is disabled.
433
434 2009-08-11  Adam Nemet  <anemet@caviumnetworks.com>
435
436         * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
437         si_mask_operand, and_load_operand, low_bitmask_operand,
438         and_reg_operand, and_operand): New predicates.
439         * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
440         * config/mips/mips.c (and_operands_ok): New function.
441         * config/mips/mips-protos.h (and_operands_ok): Declare it.
442         * config/mips/mips.md (move_type): Add ext_ins and logical.
443         (type): Handle them.
444         (and<mode>3): Use and_reg_operand as the second operand's predicate.
445         (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
446         shift_shift.  Remove commutative constraint modifier.
447         (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
448         shift_shift.
449         (*clear_upper32_dext): Remove define_insn_and_split.
450         (*clear_upper32): Turn this define_insn_and_split ...
451         (splitter for ANDing register with 0xffff_ffff): .. into this.
452
453 2009-08-11  Adam Nemet  <anemet@caviumnetworks.com>
454
455         * combine.c (try_widen_shift_mode): Factor out code to check if an
456         integer constant is a low-order bitmask from here ...
457         * rtlanal.c (low_bitmask_len): ... to here.
458         * rtl.h (low_bitmask_len): Declare.
459
460 2009-08-11  Uros Bizjak  <ubizjak@gmail.com>
461
462         PR target/8603
463         * config/alpha/alpha.md (addsi3): Remove expander.
464         (addsi3): Rename from *addsi3_internal insn pattern.
465         (subsi3): Remove expander.
466         (subsi3): Rename from *subsi3_internal insn pattern.
467
468 2009-08-11  Douglas B Rupp  <rupp@gnat.com>
469
470         * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
471         FWRITE_UNLOCKED.
472
473 2009-08-11  Vasiliy Fofanov  <fofanov@adacore.com>
474             Eric Botcazou  <botcazou@adacore.com>
475             Douglas B Rupp  <rupp@gnat.com>
476
477         * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
478         that records that fit in 64 bits are returned by immediate value,
479         as required by OpenVMS Calling Standard.
480         (function_value): Adjust for above modification.
481         (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
482         virtual_incoming_args_rtx as base object, not next_arg.
483         * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
484
485 2009-08-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
486
487         * reload.c (find_reloads_subreg_address): Check the original
488         req_equiv_mem address to detect the case where an address is
489         not valid in the outer mode.
490
491 2009-08-11  Richard Guenther  <rguenther@suse.de>
492
493         PR bootstrap/40788
494         * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
495
496 2009-08-10  Douglas B Rupp  <rupp@gnat.com>
497
498         * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
499         (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
500
501 2009-08-10  Olivier Hainque  <hainqueu@adacore.com>
502             Douglas B Rupp  <rupp@gnat.com>
503
504         * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
505         PT_STACK when frame_pointer_needed on OpenVMS.
506         (alpha_pv_save_size, alpha_using_fp): Remove.
507         (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
508         with proper processing for PT_NULL.
509         (alpha_vms_initial_elimination_offset): New function. Support for
510         INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
511         (alpha_sa_size): Force procedure type to PT_STACK when
512         frame_pointer_needed on OpenVMS.
513         * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
514         (alpha_using_fp): Likewise.
515         (alpha_vms_can_eliminate): Add prototype.
516         (alpha_vms_initial_elimination_offset): Likewise.
517         * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
518         Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
519
520 2009-08-10  Eric Botcazou  <botcazou@adacore.com>
521             Douglas B Rupp  <rupp@gnat.com>
522
523         * config/alpha/alpha.c (common_object_handler): New function.
524         (vms_attribute_table): Declare a single attribute "common_object".
525         (vms_output_aligned_decl_common): New global function.
526         (SECTION_VMS_OVERLAY): Delete.
527         (SECTION_VMS_GLOBAL): Likewise.
528         (SECTION_VMS_INITIALIZE): Likewise.
529         (vms_asm_named_section): Remove support for above flags.
530         (vms_section_type_flags): Delete.
531         (TARGET_SECTION_TYPE_FLAGS): Likewise.
532         * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
533         * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
534         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
535
536 2009-08-10  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
537
538         PR target/41015
539         * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
540         (sub_ddmmss): Likewise.
541
542 2009-08-10  Andreas Tobler  <a.tobler@schweiz.org>
543
544         PR bootstrap/41018
545         * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
546         year.
547
548 2009-08-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
549
550         PR target/37053
551         * reload1.c (reload_as_needed): Use cancel_changes to completely
552         undo a failed replacement attempt.
553
554 2009-08-10  Richard Guenther  <rguenther@suse.de>
555
556         PR middle-end/41006
557         * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
558         (useless_type_conversion_p): ... here.  Require pointer targets
559         to be compatible.
560
561 2009-08-10  Dodji Seketeli  <dodji@redhat.com>
562
563         PR c++/40866
564         * tree-inline.c (copy_statement_list): The resulting copy shouldn't
565         loose the original type of the statement list.
566
567 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
568
569         * config/alpha/alpha.c: Include libfuncs.h
570         (avms_asm_output_extern): New function.
571         (alpha_init_libfuncs): Init some decc libfuncs.
572         * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
573         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
574         (DO_CRTL_NAMES): Define.
575         (LIB_SPEC): Remove.
576         * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
577         (LONG_TYPE_SIZE): Define.
578         (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
579         (SUBTARGET_SWITCHES): Define malloc64 switch.
580         (TARGET_DEFAULT): Default MASK_MALLOC64 set.
581         (MASK_RETURN_ADDR): Define.
582         doc/invoke.texi (mmalloc64): Document switch.
583
584 2009-08-09  Olivier Hainque  <hainque@adacore.com>
585             Douglas B Rupp  <rupp@gnat.com>
586
587         * config/alpha/alpha.c (struct machine_function): New flag for VMS,
588         uses_condition_handler.
589         (alpha_expand_builtin_establish_vms_condition_handler): New expander.
590         (alpha_expand_builtin_revert_vms_condition_handler): New expander.
591         (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
592         and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
593         (code_for_builtin): New insn codes for the new alpha_builtins.
594         (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
595         (alpha_sa_size): Account for uses_condition_handler.
596         (alpha_expand_prologue): Likewise.
597         (alpha_start_function): Likewise.
598         (alpha_expand_epilogue): Likewise.
599         * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
600         establish/revert expanders.
601         * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
602         * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
603         New expander, resorting to the alpha.c associated function.
604         (builtin_revert_vms_condition_handler): Likewise.
605         * config/alpha/vms-gcc_shell_handler.c: New file. Implements
606         __gcc_shell_handler, the static VMS condition handler used as
607         an indirection wrapper to the current dynamically established
608         handler.
609         * config/alpha/vms-unwind.h: Complete rewrite.
610         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
611         * config/alpha/vms.h (MD_UNWIND_SUPPORT):
612
613 2009-08-09  Eric Botcazou  <botcazou@adacore.com>
614             Douglas B Rupp  <rupp@gnat.com>
615
616         * config/alpha/alpha.c (alpha_links): Add 'target' field.
617         (alpha_need_linkage): Handle aliases.  Return function symbol.
618         (alpha_use_linkage): Rename 'linkage' argument to 'func'.
619         Use ultimate alias target for the linkage name.
620         * config/alpha/alpha.md (movmemdi): Use the symbol returned
621         by alpha_need_linkage for the function symbol.
622         (setmemdi): Likewise.
623
624 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
625
626         * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
627         * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
628         (ASM_WEAKEN_LABEL): Define.
629         (CRT_CALL_STATIC_FUNCTION): Define.
630         (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
631         (ENDFILE_SPEC): Define.
632         (INIT_SECTION_ASM_OP): Define.
633         * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
634         * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
635         crtend.o crtendS.o.
636         (MULTILIB_OSDIRNAMES): Define.
637         (shlib_version): Define.
638         (SHLIB_EXT): Define.
639         (SHLIB_OBJS): Define.
640         (SHLIB_NAME): Define.
641         (SHLIB_MULTILIB): Define.
642         (SHLIB_INSTALL): Define.
643         (SHLIB_SYMVEC): Define.
644         (SHLIB_SYMVECX2): Define.
645         (SHLIB_LINK): Define.
646
647 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
648
649         * config/alpha/alpha.c (alpha_initialize_trampoline):
650         Initialize VMS trampoline IAW ABI for bounded procedure calls.
651         (alpha_start_function): Emit transfer address on nested functions
652         for VMS trampoline call.
653         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
654         since no longer used.
655         * config/alpha/vms-tramp.asm: Remove.
656         * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
657         since now only data initialized at runtime.
658
659 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
660
661         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
662         (LINK_GCC_C_SEQUENCE_SPEC): Define.
663         (MD_EXEC_PREFIX): Remove, no longer used.
664         (MD_STARTFILE_PREFIX): Likewise.
665         (INCLUDE_DEFAULTS): Likewise.
666         * config/alpha/t-vms:
667         (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
668
669 2009-08-09  Richard Guenther  <rguenther@suse.de>
670
671         PR tree-optimization/41016
672         * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
673         (operand_precision): Remove.
674         (integral_operand_p): Likewise.
675         (recognize_single_bit_test): Adjust.
676
677 2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
678
679         * c-common.c (c_fully_fold_internal): Issue a warning if a binary
680         operation overflows.  Likewise non-cast unary arithmetic.
681         If one arm of a conditional expression is always taken,
682         inhibit evaluation warnings for the other arm.  Likewise inhibit
683         evaluation warnings for the second && or || operand if the first
684         operand is enough to determine the result.
685         * c-typeck.c (build_conditional_expr): Apply the same inhibition
686         rules here.
687         (build_binary_op): Prevent duplicate evaluation warnings.
688
689 2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
690
691         * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
692         and destination have different modes, Use promote_mode to
693         determine the signedness of the conversion.  Assert that the
694         promoted source mode matches the destination mode.  Don't pass
695         the destination and destination mode to expand_expr if the source
696         mode is different.  Simplify conversion logic.
697
698 2009-08-09  Ira Rosen  <irar@il.ibm.com>
699
700         PR tree-optimization/41008
701         * tree-vect-loop.c (vect_is_simple_reduction): Get operands
702         from condition only in case it's a comparison. Adjust checks.
703
704 2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
705
706         * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
707         * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
708         * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
709         (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
710         (dump_cand): Handle them.
711         (struct iv_cand): New members COST_STEP and AINC_USE.
712         (stmt_after_increment): Likewise.
713         (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
714         callers changed.  Use gimple_uid comparison instead of scanning.
715         (add_candidate_1): When looking for identical candidates, take
716         AINC_USE into account.  Set it for new candidates.
717         (force_expr_to_var_cost): Cast target_spill_cost to int.
718         (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
719         All callers changed.  Check for availability of autoinc addressing
720         modes, both in general for a given mode, and in the specific use case.
721         (get_computation_cost_at): New argument CAN_AUTOINC.  All callers
722         changed.
723         (get_computation_cost): Likewise.
724         (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
725         add_autoinc_candidates): New static functions.
726         (add_candidate): Call add_autoinc_candidates for candidates based on
727         a USE_ADDRESS use.
728         (find_iv_candidates): Call set_autoinc_for_original_candidates.
729         (determine_use_iv_cost_address): If we have an autoinc candidate at
730         the matching use, verify autoinc is possible and subtract the cost
731         of the candidate's step from the cost.
732         (determine_iv_cost): Record the cost of the increment in the COST_STEP
733         member of the candidate.
734         (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
735         determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.
736
737 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
738
739         * config.build (ia64-hp-*vms*): New target.
740         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
741         with ia64-hp-*vms*.
742         * config.gcc (ia64-hp-*vms*): New target.
743         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
744         with ia64-hp-*vms*.
745         * config.host (ia64-hp-*vms*): New target.
746         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
747         with ia64-hp-*vms*.
748
749 2009-08-08  Richard Guenther  <rguenther@suse.de>
750
751         PR tree-optimization/40991
752         * tree-ssa-pre.c (eliminate): Delay purging EH edges.
753
754 2009-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
755
756         * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
757         mode check.  Do truncations in an integer mode.
758         (force_to_mode): Handle subregs for all mode types.  Only do
759         arithmetic simplifications on integer modes.
760
761 2009-08-07  Richard Guenther  <rguenther@suse.de>
762
763         PR tree-optimization/40999
764         * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
765         (maybe_fold_reference): Lookup constant initializers.
766         (fold_gimple_assign): Likewise.
767
768 2009-08-07  Richard Guenther  <rguenther@suse.de>
769
770         * tree-ssa.c (useless_type_conversion_p_1): Only for types
771         that require structural equality defer to the langhook.
772
773 2009-08-07  Martin Jambor  <mjambor@suse.cz>
774
775         * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
776         comments.
777         (struct ipa_pass_through_data): New type.
778         (struct ipa_ancestor_jf_data): New type.
779         (union jump_func_value): Removed field formal_id, added fields
780         pass_through and ancestor.
781         (struct ipa_param_call_note): Changed type of formal_id to int from
782         unsigned.
783         * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
784         operations jump functions and ancestor jump functions.
785         (compute_complex_pass_through): New function.
786         (compute_scalar_jump_functions): Call compute_complex_pass_through,
787         reflect changes in the jump function strucutre.
788         (update_jump_functions_after_inlining): Ignore complex pass-through
789         and ancestor jump functions.
790         * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
791         polynomial pass-through with operation jump functions.
792
793 2009-08-07  Jakub Jelinek  <jakub@redhat.com>
794
795         * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
796         fde->dw_fde_begin as begin label instead of hot/cold label.
797         Use LLSDAC label instead of LLSDA for second section lsda.
798         (dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
799         label instead of LLSDA if it is true.
800         (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
801         callers.
802         * except.c (add_call_site, dw2_size_of_call_site_table): Add
803         SECTION argument.  Use it as index into crtl->eh.call_site_record
804         array.
805         (dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
806         use it to determine how to print table entries instead of using
807         #ifdef HAVE_AS_LEB128.  For SECTION > 0 use hot resp. cold
808         label instead of normal begin label as base.
809         (sjlj_assign_call_site_values): Adjust add_call_site caller.
810         (convert_to_eh_region_ranges): When doing hot/cold partitioning,
811         ensure no EH range spans between sections and that landing pads
812         are always in the corresponding section.
813         (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
814         for crtl->eh.call_site_record being an array rather than scalar.
815         (output_one_function_exception_table): New function, copied
816         from output_function_exception_table.  Adjust
817         dw2_size_of_call_site_table, dw2_output_call_site_table
818         callers.  For SECOND section use *C suffixed labels.
819         (output_function_exception_table): Call
820         output_one_function_exception_table and, when doing hot/cold
821         partitioning, also another time for the second section.
822         * opts.c: Include except.h.
823         (decode_options): Allow -freorder-blocks-and-partition with
824         exceptions, unless SJLJ or TARGET_UNWIND_INFO.
825         * Makefile.in (opts.o): Depend on $(EXCEPT_H).
826         * function.h (struct rtl_eh): Change call_site_record from
827         scalar into array of 2 elements.
828
829 2009-08-07  Martin Jambor  <mjambor@suse.cz>
830
831         * ipa-prop.c (count_formal_params_1): New function.
832         (ipa_get_vector_of_formal_parms): New function.
833         (get_vector_of_formal_parm_types): New function.
834         (ipa_modify_formal_parameters): New function.
835         (ipa_modify_call_arguments): New function.
836         (index_in_adjustments_multiple_times_p): New function.
837         (ipa_combine_adjustments): New function.
838         (ipa_dump_param_adjustments): New function.
839         * ipa-prop.h (struct ipa_parm_adjustment): New type.
840         (ipa_get_vector_of_formal_parms): Declare.
841         (ipa_modify_formal_parameters): Declare.
842         (ipa_modify_call_arguments): Declare.
843         (ipa_combine_adjustments): Declare.
844         (ipa_dump_param_adjustments): Declare.
845         (build_ref_for_offset): Declare.
846         * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
847         * tree-sra.c: Include ipa-prop.c.
848         (build_ref_for_offset): Make public.
849
850 2009-08-06  Neil Vachharajani  <nvachhar@gmail.com>
851
852         * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
853
854 2009-08-06  Thomas Schwinge  <tschwinge@gnu.org>
855
856         * gcc/doc/extend.texi (__builtin_extract_return_address)
857         (__builtin_frob_return_address): Document.
858
859 2009-08-06  Paul Brook  <paul@codesourcery.com>
860
861         * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
862         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
863         implementation on ARMv6-M.
864
865 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
866
867         * doc/extend.texi (pcs): Document new attribute for ARM.
868
869 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
870
871         * arm.c (pcs_attribute_args): Comment out unsupported attribute
872         variants.
873
874 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
875
876         * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
877         warning ().
878
879 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
880
881         * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
882
883 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
884
885         Merge ARM/hard_vfp_branch to trunk.
886
887         2009-08-04  Richard Earnshaw  <rearnsha@arm.com>
888
889         * arm.c (libcall_eq): New function.
890         (libcall_hash): New function.
891         (add_libcall): New function.
892         (arm_libcall_uses_aapcs_base): New function.
893         (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
894         libcalls using the base PCS.
895         (arm_init_cumulative_args): Likewise.
896
897         2009-07-20  Joseph Myers  <joseph@codesourcery.com>
898
899         * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
900         Use base ABI for conversion libfuncs between HFmode and SFmode.
901
902         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
903
904         * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
905         V4SImode as representatives of all 64-bit and 128-bit vector
906         types.  Allow vector types without vector modes.
907         (aapcs_vfp_is_call_or_return_candidate): Handle vector types
908         without vector modes like BLKmode.
909         (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
910         BLKmode.  Avoid unsupported vector modes or TImode moves for
911         non-TARGET_NEON.
912         (aapcs_vfp_allocate_return_reg): Likewise.
913         (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
914         V8QImode if TARGET_NEON || TARGET_IWMMXT.
915
916         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
917
918         * config/arm/arm.c (arm_handle_pcs_attribute): New.
919         (arm_get_pcs_model): Pass attribute arguments to
920         arm_pcs_from_attribute.
921         (arm_init_cumulative_args): Use base AAPCS for conversions from
922         floating-point types to DImode.
923         (arm_attribute_table): Add pcs attribute.
924         (arm_handle_pcs_attribute): New.
925         * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
926         conversions from floating-point types to DImode, also declare them
927         to use base AAPCS and declare functions they call to use base
928         AAPCS and their RTABI names.
929
930         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
931
932         * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
933         -mfloat-abi=hard not being supported for VFP.
934
935         2009-05-11  Kazu Hirata  <kazu@codesourcery.com>
936
937         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
938         SYMBOL_REF to hard_libcall_value.
939
940         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
941             Richard Earnshaw  <rearnsha@arm.com>
942
943         * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
944         has been put on the stack, all remaining co-processory arguments for
945         that co-processor also go on the stack.
946
947         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
948
949         * config/arm/arm.c (arm_return_in_memory): Handle returning
950         vectors of suitable size in registers also for AAPCS case.
951
952         2009-01-13  Richard Earnshaw <rearnsha@arm.com>
953
954         * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
955
956         2008-12-09  Richard Earnshaw <rearnsha@arm.com>
957
958         ARM Hard-VFP calling convention
959         * target-def.h (TARGET_LIBCALL_VALUE): New hook.
960         * target.h (gcc_target): Add libcall_value to table of call hooks.
961         * targhooks.h (default_libcall_value): Default implementation.
962         * targhooks.c (default_libcall_value): Likewise.
963         * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
964         * optabs.c (expand_unop): Use it.
965         * expr.h (hard_libcall_value): Pass the function RTX through.
966         * calls.c (emit_library_call_value_1): Update call to
967         hard_libcall_value.
968         * explow.c (hard_libcall_value): Use new target hook.
969         * testsuite/lib/target-supports.exp
970         (check_effective_target_arm_hard_vfp_ok): New hook.
971         (check_effective_target_arm_neon_ok): Improve test for neon
972         availability.
973         * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
974         * config/arm/arm.c: Include cgraph.h
975         (TARGET_FUNCTION_VALUE): Override default hook.
976         (arm_pcs_default): New variable.
977         (arm_override_options): Don't fault hard calling convention with VFP.
978         Add support for AAPCS variants.
979         (arm_function_value): Make static.  Handle AAPCS variants.
980         (arm_libcall_value): New function.
981         (arm_apply_result_size): Handle VFP registers in results.
982         (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
983         conventions.
984         (pcs_attribute_args): New variable.
985         (arm_pcs_from_attribute): New function.
986         (arm_get_pcs_model): New function.
987         (aapcs_vfp_cum_init): New function.
988         (aapcs_vfp_sub_candidate): New function.
989         (aapcs_vfp_is_return_candidate): New function.
990         (aapcs_vfp_is_call_candidate): New function.
991         (aapcs_vfp_allocate): New function.
992         (aapcs_vfp_allocate_return_reg): New function.
993         (aapcs_vfp_advance): New function.
994         (aapcs_cp_arg_layout): New variable.
995         (aapcs_select_call_coproc): New function.
996         (aapcs_select_return_coproc): New function.
997         (aapcs_allocate_return_reg): New function.
998         (aapcs_libcall_value): New function.
999         (aapcs_layout_arg): New function.
1000         (arm_init_cumulative_args): Initialize AAPCS args data.
1001         (arm_function_arg): Handle AAPCS variants using new interface.
1002         (arm_arg_parital_bytes): Likewise.
1003         (arm_function_arg_advance): New function.
1004         (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
1005         calling conventions.
1006         (arm_setup_incoming_varargs): Handle new AAPCS args data.
1007         * arm.h (NUM_VFP_ARG_REGS): Define.
1008         (LIBCALL_VALUE): Update.
1009         (FUNCTION_VALUE): Delete.
1010         (FUNCTION_VALUE_REGNO_P): Add VFP regs.
1011         (arm_pcs): New enum.
1012         (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
1013         (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
1014         (FUNCTION_ARG_REGNO_P): Add VFP regs.
1015         * arm-protos.h (arm_function_arg_advance): Add.
1016         (aapcs_libcall_value): Add.
1017         (arm_function_value): Delete.
1018
1019 2009-08-06  Uros Bizjak  <ubizjak@gmail.com>
1020             H.J. Lu  <hongjiu.lu@intel.com>
1021
1022         PR target/40957
1023         * config/i386/i386.c (standard_sse_mode_p): Remove.
1024         (standard_sse_constant_p): Return 2 for integer mode
1025         vector_all_ones_operand when SSE2 is enabled.
1026         (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
1027         (ix86_expand_vector_move): Do not check for negative values from
1028         standard_sse_constant_p.
1029
1030 2009-08-06  Richard Guenther  <rguenther@suse.de>
1031
1032         * tree-ssa.c (useless_type_conversion_p_1): Make function and
1033         array type comparisons frontend independent.
1034         * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
1035         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
1036         out array reference lower bound and element size operands.
1037         (ao_ref_init_from_vn_reference): Properly compute the offset
1038         for ARRAY_RANGE_REF.
1039         (vn_reference_fold_indirect): Fill out array reference lower
1040         bound and element size operands.
1041         * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
1042         a non gimple valued reference operand which can happen for
1043         array reference lower bound or element size.
1044         (create_component_ref_by_pieces_1): Properly generate the
1045         element size operand for array references.
1046
1047 2009-08-06  Richard Guenther  <rguenther@suse.de>
1048
1049         PR tree-optimization/40964
1050         * tree.c (iterative_hash_host_wide_int): Export.
1051         * tree.h (iterative_hash_host_wide_int): Declare.
1052         * tree-ssa-structalias.c (heapvar_map): New struct.
1053         (heapvar_map_eq): New function.
1054         (heapvar_map_hash): Likewise.
1055         (heapvar_lookup): Adjust.
1056         (heapvar_insert): Likewise.
1057         (make_constraint_from_heapvar): Allow multiple heap variables
1058         per decl at different offsets.
1059         (init_alias_heapvars): Adjust.
1060
1061 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
1062
1063         * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
1064         * mips_output_sync_loop (mips_output_sync_loop): Only emit
1065         trailing sync if TARGET_SYNC_AFTER_SC.
1066
1067 2009-08-05  David Daney  <ddaney@caviumnetworks.com>
1068
1069         * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
1070         compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
1071         sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
1072         sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
1073         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
1074         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
1075         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
1076         sync_new_nand<mode>, sync_lock_test_and_set<mode>,
1077         test_and_set_12): Rewrite calls to mips_output_sync_loop.
1078         * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
1079         the prototype declaration match the definition.
1080         * gcc/config/mips/mips.c (mips_output_sync_loop):  Emit sync
1081         instructions explicitly.  Add barrier_before and operands
1082         parameters.
1083         * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
1084         MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
1085         MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
1086         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
1087         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
1088         MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
1089
1090 2009-08-05  Andrew Pinski  <pinskia@gmail.com>
1091
1092         * tree-ssa-alias.c: Fix intervals to use [) syntax.
1093
1094 2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
1095             Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
1096
1097         PR target/40906
1098         * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
1099         source operand.
1100
1101 2009-08-05  Jakub Jelinek  <jakub@redhat.com>
1102
1103         PR rtl-optimization/40924
1104         * dse.c (canon_address): Before calling cselib_expand_value_rtx
1105         make sure canon_rtx (mem_address) isn't simpler than
1106         canon_rtx (expanded_mem_address).
1107
1108 2009-08-05  Li Feng  <nemokingdom@gmail.com>
1109
1110         * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
1111         for each poly_bb_p.
1112         (build_scop_drs): Build alias set for each SCoP.
1113
1114 2009-08-04  Sandra Loosemore  <sandra@codesourcery.com>
1115
1116         * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
1117         * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
1118         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
1119         (MIPS_ARCH_FLOAT_SPEC): Likewise.
1120         (BASE_DRIVER_SELF_SPECS): Likewise.
1121
1122 2009-08-04  Andrew Pinski  <pinskia@gmail.com>
1123
1124         * tree-ssa-alias.c: Fix some comment typos.
1125
1126 2009-08-04  Kaz Kojima  <kkojima@gcc.gnu.org>
1127
1128         * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
1129         ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
1130
1131 2009-08-03  Janis Johnson  <janis187@us.ibm.com>
1132
1133         PR c/39902
1134         * simplify-rtx.c (simplify_binary_operation_1): Disable
1135         simplifications for decimal float operations.
1136
1137 2009-08-03  Jakub Jelinek  <jakub@redhat.com>
1138
1139         PR middle-end/40943
1140         * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
1141         operand of INDIRECT_REF.
1142
1143 2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
1144
1145         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
1146         constants referencing TLS symbols.
1147
1148 2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
1149
1150         * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
1151         __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
1152
1153 2009-08-03  Richard Guenther  <rguenther@suse.de>
1154
1155         * tree.c (make_vector_type): Build a main variant first,
1156         get the canonical one and then build the variant.
1157         * tree-ssa.c (useless_type_conversion_p_1): Handle
1158         fixed-point types.
1159         (useless_type_conversion_p): Conversions to pointers to
1160         incomplete record types are useless.
1161
1162 2009-08-03  Richard Guenther  <rguenther@suse.de>
1163
1164         * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
1165         file will be created.
1166         * omp-low.c (pass_diagnose_omp_blocks): Likewise.
1167         * toplev.c (compile_file): Adjust comment.
1168
1169 2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1170
1171         * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
1172         * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
1173         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1174         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
1175         (sh_promote_function_mode): Fix typo.
1176
1177 2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
1178
1179         * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
1180
1181 2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1182
1183         * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
1184         declaration arguments.
1185
1186 2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
1187
1188         * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
1189         of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
1190         (ix86_split_ashl): Ditto.
1191         (ix86_expand_vector_init_one_nonzero): Ditto.
1192         (ix86_expand_vector_set): Ditto.
1193         (ix86_expand_reduc_v4sf): Ditto.
1194
1195 2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
1196
1197         * explow.c (promote_function_mode): Remove assert.
1198         * config/sh/sh.c (sh_promote_function_mode): Declare.
1199
1200 2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1201
1202         * config/pa/pa.c (pa_promote_function_mode): Declare.
1203         Change to static.  Fix promote_mode call.
1204
1205         * gthr-dce.h (CONST_CAST2): Define if not defined.
1206         (__gthread_setspecific): Use CONST_CAST2 to fix warning.
1207
1208         * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
1209
1210 2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
1211
1212         * expr.c (store_constructor): Use promote_decl_mode.  Remove
1213         now write-only variable unsignedp.
1214         (expand_expr_real_1): Use promote_decl_mode.
1215         * expr.h (promote_function_mode, promote_decl_mode): New.
1216         (promote_mode): Remove last argument.
1217         * function.c (assign_temp): Drop last argument of promote_mode.
1218         (assign_parm_find_data_types): Use promote_function_mode.
1219         (assign_parm_setup_reg): Likewise.
1220         (expand_function_end): Use promote_function_mode.
1221         * calls.c (initialize_argument_information): Use promote_function_mode.
1222         (precompute_arguments): Use promote_mode instead of checking if
1223         only PROMOTE_FUNCTION_MODE is defined.
1224         (expand_call): When making sibcall decisions, use promote_function_mode.
1225         Below, remove an if for targetm.calls.promote_function_return and
1226         and use promote_function_mode.
1227         (emit_library_call_value_1): Use promote_function_mode, fix bug
1228         where promote_mode was passed FOR_CALL == 0 for a return value in an
1229         assertion.
1230         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
1231         * explow.c (promote_function_mode, promote_decl_mode): New.
1232         (promote_mode): Keep only the FOR_CALL == 0 case.
1233         * combine.c (setup_incoming_promotion): Remove test of
1234         promote_function_args.  Use promote_function_mode.
1235         * stmt.c (expand_value_return): Use promote_decl_mode.
1236         (expand_decl): Use promote_decl_mode.
1237
1238         * expr.c (store_constructor): Use promote_decl_mode.  Remove
1239         now write-only variable unsignedp.
1240         (expand_expr_real_1): Use promote_decl_mode.
1241         * expr.h (promote_function_mode, promote_decl_mode): New.
1242         (promote_mode): Remove last argument.
1243         * function.c (assign_temp): Drop last argument of promote_mode.
1244         (assign_parm_find_data_types): Use promote_function_mode.
1245         (assign_parm_setup_reg): Likewise.
1246         (expand_function_end): Use promote_function_mode.
1247         * calls.c (initialize_argument_information): Use promote_function_mode.
1248         (precompute_arguments): Use promote_mode instead of checking if
1249         only PROMOTE_FUNCTION_MODE is defined.
1250         (expand_call): When making sibcall decisions, use promote_function_mode.
1251         Below, remove an if for targetm.calls.promote_function_return and
1252         and use promote_function_mode.
1253         (emit_library_call_value_1): Use promote_function_mode, fix bug
1254         where promote_mode was passed FOR_CALL == 0 for a return value in an
1255         assertion.
1256         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
1257         * explow.c (promote_function_mode, promote_decl_mode): New.
1258         (promote_mode): Keep only the FOR_CALL == 0 case.
1259         * combine.c (setup_incoming_promotion): Remove test of
1260         promote_function_args.  Use promote_function_mode.
1261         * stmt.c (expand_value_return): Use promote_decl_mode.
1262         (expand_decl): Use promote_decl_mode.
1263
1264         * explow.c (promote_function_mode): Just call the target hook.
1265         * targhooks.c (default_promote_function_mode,
1266         default_promote_function_mode_always_promote): New.
1267         * targhooks.h (default_promote_function_mode,
1268         default_promote_function_mode_always_promote): Declare.
1269         * target.h (promote_function_args, promote_function_return): Remove.
1270         (promote_function_mode): New.
1271         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
1272         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1273         (TARGET_PROMOTE_FUNCTION_MODE): New.
1274         (TARGET_CALLS): Adjust.
1275         * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
1276         TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
1277
1278         * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
1279         * config/s390/s390.c (s390_promote_function_mode): ... here,
1280         with pointer handling.
1281         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1282         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1283
1284         * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
1285         * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
1286         with pointer handling.
1287         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1288         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1289
1290         * config/sh/sh-protos.h (sh_promote_function_mode): New.
1291         * config/sh/sh.c (sh_promote_function_mode): New.
1292         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1293         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1294
1295         * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
1296         * config/cris/cris.c (cris_promote_function_mode): ... here.
1297         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1298         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
1299
1300         * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
1301         * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
1302         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1303         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
1304
1305         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
1306         * config/arm/arm.c (arm_promote_function_mode): ... here, without
1307         complex type handling.
1308         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1309         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1310
1311         * config/pa/pa.c (pa_promote_function_mode): New.
1312         (TARGET_PROMOTE_FUNCTION_MODE): Define.
1313         (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1314
1315         * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
1316         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
1317         (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
1318         * config/xtensa/xtensa.c: Likewise.
1319         * config/stormy16/stormy16.c: Likewise.
1320         * config/iq2000/iq2000.c: Likewise.
1321         * config/rs6000/rs6000.c: Likewise.
1322         * config/picochip/picochip.c: Likewise.
1323         * config/arc/arc.c: Likewise.
1324         * config/mcore/mcore.c: Likewise.
1325         * config/score/score.c: Likewise.
1326         * config/mips/mips.c: Likewise.
1327         * config/bfin/bfin.c: Likewise.
1328         * config/ia64/ia64.c: Likewise (disabled though).
1329
1330         * config/frv/frv.h: Remove pointless remark.
1331
1332         * doc/tm.texi (PROMOTE_FUNCTION_MODE,
1333         TARGET_PROMOTE_FUNCTION_ARGS,
1334         TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
1335         (TARGET_PROMOTE_FUNCTION_MODE): ... this.
1336
1337 2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
1338
1339         * doc/invoke.texi (-fgraphite-force-parallel): Renamed
1340         -floop-parallelize-all.
1341         * toplev.c (process_options): Rename flag_graphite_force_parallel to
1342         flag_loop_parallelize_all.
1343         * tree-ssa-loop.c (gate_graphite_transforms): Same.
1344         * graphite.c (graphite_transform_loops): Same.
1345         * common.opt: Same.
1346         * graphite-poly.c (apply_poly_transforms): Same.
1347
1348 2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
1349
1350         PR tree-optimization/40914
1351         * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
1352         if set, then check the delta field of the PMF record.
1353         (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
1354         (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
1355         call is stored in the delta.
1356
1357 2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
1358
1359         * config/mips/mips.md (*clear_upper32_dext): New pattern.
1360
1361 2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
1362
1363         * config/i386/bsd.h (ASM_BYTE): New define.
1364         * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
1365         * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
1366         .byte.  Use fputs or putc instead of fprintf where appropriate.
1367         * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
1368         fputs or putc instead of fprintf where appropriate.
1369         * config/i386/i386elf.h: Ditto.
1370         * config/i386/sysv4.h: Ditto.
1371
1372         * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
1373         * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
1374         (*tls_global_dynamic_64): Ditto.
1375
1376 2009-07-31  Christian Bruel  <christian.bruel@st.com>
1377
1378         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
1379
1380 2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1381
1382         * config/arm/arm.c (arm_arm_address_cost): Fix typo.
1383         Remove dead code for MINUS.
1384
1385 2009-07-31  Anthony Green  <green@moxielogic.com>
1386
1387         * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
1388         $r12 in prologue.
1389         (moxie_expand_epilogue): Ditto for epilogue.
1390         (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
1391         incoming arguments.
1392         (moxie_function_arg): Ditto.
1393         (moxie_pass_by_reference): Ditto.
1394         (moxie_arg_partial_bytes): Ditto.
1395         * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
1396         (FUNCTION_ARG_ADVANCE) Ditto.
1397         (REG_PARM_STACK_SPACE) Ditto.
1398         (FUNCTION_ARG_REGNO_P) Dito.
1399
1400         * config.gcc: Add moxie linux config support.
1401         * gcc/config/moxie/uclinux.h: New file.
1402
1403 2009-07-31  DJ Delorie  <dj@redhat.com>
1404
1405         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
1406         (UNSPECV_SP_SWITCH_E): New.
1407         (sp_switch_1): Change to an unspec.
1408         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
1409         replace $r15.
1410         * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
1411         reference the new stack's address
1412
1413 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1414
1415         * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
1416         graphite-clast-to-gimple.o, graphite-dependences.o,
1417         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
1418         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
1419         (graphite-blocking.o,
1420         graphite-clast-to-gimple.o, graphite-dependences.o,
1421         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
1422         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
1423         * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
1424         * cfgloop.h (struct loop): Add can_be_parallel field.
1425         * common.opt (fgraphite-identity): Moved up.
1426         (fgraphite-force-parallel): New flag.
1427         * graphite.c: Rewrite.
1428         * graphite.h: Rewrite.
1429         * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
1430         after Graphite.
1431         * toplev.c (graphite_out_file): New file descriptor.
1432         (graphite_in_file): New.
1433         (process_options): flag_graphite_force_parallel cannot be used without
1434         Graphite.
1435         * tree-ssa-loop.c: Include toplev.h.
1436         (gate_graphite_transforms): Enable flag_graphite for
1437         flag_graphite_force_parallel.
1438
1439 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1440
1441         * ChangeLog.graphite: New.
1442         * graphite-blocking.c: New.
1443         * graphite-clast-to-gimple.c: New.
1444         * graphite-clast-to-gimple.h: New.
1445         * graphite-dependences.c: New.
1446         * graphite-dependences.h: New.
1447         * graphite-interchange.c: New.
1448         * graphite-poly.c: New.
1449         * graphite-poly.h: New.
1450         * graphite-ppl.c: New.
1451         * graphite-ppl.h: New.
1452         * graphite-scop-detection.c: New.
1453         * graphite-scop-detection.h: New.
1454         * graphite-sese-to-poly.c: New.
1455         * graphite-sese-to-poly.h: New.
1456         * sese.c: New.
1457         * sese.h: New.
1458
1459 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1460
1461         * tree-chrec.c (evolution_function_right_is_integer_cst): New.
1462         * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
1463
1464 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1465
1466         * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
1467         (scev_is_linear_expression): Return false if the evolution is not
1468         affine multivariate.
1469
1470 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1471
1472         * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
1473         * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
1474
1475 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1476
1477         * tree-data-ref.c (debug_data_references): New.
1478         (debug_data_reference): New.
1479         * tree-data-ref.h (debug_data_references): Declared.
1480         (debug_data_reference): Declared.
1481
1482 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1483
1484         * tree-data-ref.c (stmt_simple_memref_p: Removed.
1485         * tree-data-ref.h (scop_p): Removed.
1486         (struct data_reference): Remove field scop.
1487         (DR_SCOP): Removed.
1488         (stmt_simple_memref_p): Removed.
1489
1490 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1491
1492         * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
1493         * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
1494         basic block empty.
1495
1496 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1497
1498         * doc/invoke.texi (-fgraphite-force-parallel): Documented.
1499
1500 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1501
1502         * doc/invoke.texi (-fgraphite-identity): Documented.
1503
1504 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1505
1506         * tree-scalar-evolution.c: Fix comment.
1507         (instantiate_scev_1): Return unknow from scev instantiation if the
1508         result is not above instantiate_below.
1509
1510 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
1511
1512         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
1513         static anymore.  Instantiate the symbols that may have been introduced
1514         by chrec_apply.
1515         * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
1516         Declared.
1517
1518 2009-07-30  DJ Delorie  <dj@redhat.com>
1519
1520         * config/mep/mep.c (mep_asm_init_sections): Add section flags and
1521         .vliw directive to VLIW sections.
1522
1523 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1524
1525         * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
1526         New variables.
1527         ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
1528         (AUTOHEADER): New variable.
1529         ($(srcdir)/cstamp-h.in): Use it.
1530
1531 2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
1532             Pat Haugen  <pthaugen@us.ibm.com>
1533             Revital Eres <ERES@il.ibm.com>
1534
1535         * config/rs6000/vector.md (VEC_F): Add VSX support.
1536         (VEC_A): Ditto.
1537         (VEC_N): Ditto.
1538         (mov<mode>): Ditto.
1539         (vector_load_<mode>): Ditto.
1540         (vector_store_<mode>): Ditto.
1541         (vector GPR move split): Ditto.
1542         (vec_reload_and_plus_<mptrsize>): Ditto.
1543         (vec_reload_and_reg_<mptrsize>): Ditto.
1544         (add<mode>3): Ditto.
1545         (sub<mode>3): Ditto.
1546         (mul<mode>3): Ditto.
1547         (neg<mode>2): Ditto.
1548         (abs<mode>2): Ditto.
1549         (smin<mode>3): Ditto.
1550         (smax<mode>3): Ditto.
1551         (vector_eq<mode>): Ditto.
1552         (vector_gt<mode>): Ditto.
1553         (vector_ge<mode>): Ditto.
1554         (vector_gtu<mode>): Ditto.
1555         (vector_select_<mode>_uns): Ditto.
1556         (vector_eq_<mode>_p): Ditto.
1557         (vector_gt_<mode>_p): Ditto.
1558         (vector_ge_<mode>_p): Ditto.
1559         (vector_gtu_<mode>_p): Ditto.
1560         (cr6_test_for_zero): Ditto.
1561         (cr6_test_for_zero_reverse): Ditto.
1562         (cr6_test_for_lt): Ditto.
1563         (cr6_test_for_lt_reverse): Ditto.
1564         (xor<mode>3): Ditto.
1565         (ior<mode>3): Ditto.
1566         (and<mode>3): Ditto.
1567         (one_cmpl<mode>2): Ditto.
1568         (nor<mode>2): Ditto.
1569         (andc<mode>2): Ditto.
1570         (float<VEC_int<mode>2): Ditto.
1571         (unsigned_float<VEC_int><mode>2): Ditto.
1572         (fix_trunc<mode><VEC_int>2): Ditto.
1573         (fixuns_trunc<mode><VEC_int>2): Ditto.
1574         (vec_init<mode>):
1575         (vec_set<mode>): Ditto.
1576         (vec_extract<mode>): Ditto.
1577         (vec_interleave_highv4sf): Ditto.
1578         (vec_interleave_lowv4sf): Ditto.
1579         (vec_realign_load_<mode>): Ditto.
1580         (vec_shl_<mode>): Ditto.
1581         (vec_shr_<mode>): Ditto.
1582         (div<mode>3): New patterns for VSX.
1583         (vec_interleave_highv2df): Ditto.
1584         (vec_interleave_lowv2df): Ditto.
1585         (vec_pack_trunc_v2df): Ditto.
1586         (vec_pack_sfix_trunc_v2df): Ditto.
1587         (vec_pack_ufix_trunc_v2df): Ditto.
1588         (vec_unpacks_hi_v4sf): Ditto.
1589         (vec_unpacks_lo_v4sf): Ditto.
1590         (vec_unpacks_float_hi_v4si): Ditto.
1591         (vec_unpacks_float_lo_v4si): Ditto.
1592         (vec_unpacku_float_hi_v4si): Ditto.
1593         (vec_unpacku_float_lo_v4si): Ditto.
1594         (movmisalign<mode>): Ditto.
1595         (vector_ceil<mode>2): New patterns for vectorizing math library.
1596         (vector_floor<mode>2): Ditto.
1597         (vector_btrunc<mode>2): Ditto.
1598         (vector_copysign<mode>3): Ditto.
1599
1600         * config/rs6000/predicates.md (easy_vector_constant_msb): New
1601         predicate for setting the high bit in each word, used for copysign.
1602
1603         * config/rs6000/ppc-asm.h (f19): Whitespace.
1604         (f32-f63): Define if VSX.
1605         (v0-v31): Define if Altivec.
1606         (vs0-vs63): Define if VSX.
1607
1608         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
1609
1610         * config/rs6000/power7.md: New file, provide tuning parameters for
1611         -mcpu=power7.
1612
1613         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
1614         (rs6000_cpu_cpp_builtins): Ditto.
1615         (altivec_overloaded_builtins): Ditto.
1616         (altivec_resolve_overloaded_builtin): Ditto.
1617
1618         * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
1619         debug switch to disable vectorizing simple math builtin
1620         functions.
1621
1622         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1623         Vectorize simple math builtin functions.
1624         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1625         hook to vectorize math builtins.
1626         (rs6000_override_options): Enable -mvsx on -mcpu=power7.
1627         (rs6000_builtin_conversion): Add VSX/power7 support.
1628         (rs6000_builtin_vec_perm): Ditto.
1629         (vsplits_constant): Add support for loading up a vector constant
1630         with just the high bit set in each part.
1631         (rs6000_expand_vector_init): Add VSX/power7 support.
1632         (rs6000_expand_vector_set): Ditto.
1633         (rs6000_expand_vector_extract): Ditto.
1634         (rs6000_emit_move): Ditto.
1635         (bdesc_3arg): Ditto.
1636         (bdesc_2arg): Ditto.
1637         (bdesc_1arg): Ditto.
1638         (rs6000_expand_ternop_builtin): Ditto.
1639         (altivec_expand_builtin): Ditto.
1640         (rs6000_expand_unop_builtin): Ditto.
1641         (rs6000_init_builtins): Ditto.
1642         (altivec_init_builtins): Ditto.
1643         (builtin_function_type): Ditto.
1644         (rs6000_common_init_builtins): Ditto.
1645         (rs6000_handle_altivec_attribute); Ditto.
1646         (rs6000_mangle_type): Ditto.
1647         (rs6000_vector_mode_supported_p): Ditto.
1648         (rs6000_mode_dependent_address): Altivec addresses with AND -16
1649         are mode dependent.
1650
1651         * config/rs6000/vsx.md: New file for VSX support.
1652
1653         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
1654         identifing values with just the most significant bit set.
1655         (enum rs6000_builtins): Add builtins for VSX.  Add simple math
1656         vectorized builtins.
1657
1658         * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
1659         (UNSPEC_VRFIM): Delete.
1660         (splitter for loading up vector with most significant bit): New
1661         splitter for vectorizing copysign.
1662         (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
1663         vectorizing simple math functions.
1664         (altivec_vrfip): Add support for vectorizing simple math functions.
1665         (altivec_vrfim): Ditto.
1666         (altivec_copysign_v4sf3): New insn for Altivec copysign support.
1667
1668         * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
1669         (power7.md, vsx.md): Include for power7 support.
1670         (copysigndf3): Use VSX instructions if -mvsx.
1671         (negdf2_fpr): Ditto.
1672         (absdf2_fpr): Ditto.
1673         (nabsdf2_fpr): Ditto.
1674         (adddf3_fpr): Ditto.
1675         (subdf3_fpr): Ditto.
1676         (muldf3_fpr): Ditto.
1677         (divdf3_fpr): Ditto.
1678         (fix_truncdfdi2_fpr): Ditto.
1679         (cmpdf_internal1): Ditto.
1680         (fred, fred_fpr): Convert into expander/insn to add VSX support.
1681         (btruncdf2, btruncdf2_fpr): Ditto.
1682         (ceildf2, ceildf2_fpr): Ditto.
1683         (floordf2, floordf2_fpr): Ditto.
1684         (floatdidf2, floatdidf2_fpr): Ditto.
1685         (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
1686         (fmsubdf4_fpr): Ditto.
1687         (fnmadddf4_fpr_1): Ditto.
1688         (fnmadddf4_fpr_2): Ditto.
1689         (fnmsubdf4_fpr_1): Ditto.
1690         (fnmsubdf4_fpr_2): Ditto.
1691         (fixuns_truncdfdi2): Add expander for VSX support.
1692         (fix_truncdfdi2): Ditto.
1693         (fix_truncdfsi2): Ditto.
1694         (ftruncdf2): Ditto.
1695         (btruncsf2): Whitespace.
1696         (movdf_hardfloat32): Add support for VSX registers.
1697         (movdf_softfloat32): Ditto.
1698         (movdf_hardfloat64): Ditto.
1699         (movdf_hardfloat64_mfpgpr): Ditto.
1700         (movdf_softfloat64): Ditto.
1701         (movti splitters): Add check for vector registers supporting
1702         TImode in the future.
1703         (bpermd): Add power7 bpermd instruction.
1704
1705         * config/rs6000/altivec.h (vec_div): Define if VSX.
1706         (vec_mul): Ditto.
1707         (vec_msub): Ditto.
1708         (vec_nmadd): Ditto.
1709         (vec_nearbyint): Ditto.
1710         (vec_rint): Ditto.
1711         (vec_sqrt): Ditto.
1712         (all predicates): Use the generic builtin function, and not the V4SF
1713         specific function so that the predicates will work with VSX's V2DF.
1714         (vec_all_*): Ditto.
1715         (vec_any_*): Ditto.
1716
1717         * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
1718         Document new VSX functions and types.
1719
1720         * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
1721         switches.
1722
1723         * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
1724         "wa", and "j" constraints.  Modify "v" to talk about Altivec
1725         instead of just vector.
1726
1727 2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
1728
1729         PR debug/26475
1730         * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
1731         location for phi arguments.
1732         (rewrite_update_phi_arguments): Find locations for reaching defs.
1733         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1734         Add location to add_phi_arg calls.
1735         * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
1736         * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
1737         split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
1738         * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
1739         create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
1740         * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
1741         * tree-phinodes.c (make_phi_node): Initialize location.
1742         (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
1743         (add_phi_arg): Add location parameter.
1744         (remove_phi_arg_num): Move location when moving phi argument.
1745         * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
1746         location.
1747         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
1748         slpeel_update_phi_nodes_for_guard1,
1749         slpeel_update_phi_nodes_for_guard2,
1750         slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
1751         vect_loop_versioning): Set locations.
1752         * tree-parloops.c (create_phi_for_local_result,
1753         transform_to_exit_first_loop, create_parallel_loop): Add locations.
1754         * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
1755         * tree-vect-loop.c (get_initial_def_for_induction,
1756         vect_create_epilog_for_reduction, vect_finalize_reduction): Add
1757         locations.
1758         * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
1759         (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
1760         (gimple_phi_arg_set_location): New.  Set locus.
1761         (gimple_phi_arg_has_location): New.  Check for locus.
1762         (redirect_edge_var_map_location): New.  Return locus from var_map.
1763         * tree-vect-data-refs.c (vect_setup_realignment): Set location.
1764         * tree-ssa-phiopt.c (conditional_replacement): Set locus when
1765         combining PHI arguments.
1766         (cond_store_replacement): Set location.
1767         * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
1768         * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
1769         scop_add_exit_phis_edge): Add locations.
1770         * tree-cfgcleanup.c (remove_forwarder_block,
1771         remove_forwarder_block_with_phi): Add locations.
1772         * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
1773         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
1774         locations.
1775         * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
1776         * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
1777         flush_pending_stmts): Add source location.
1778         * lambda-code.c (perfect_nestify): Maintain location stack with argument
1779         stack to preserve locations.
1780         * tree-vect-stmts.c (vectorizable_load): Add location.
1781         * tree-inline.c (copy_phis_for_bb): Copy locus.
1782         (setup_one_parameter): Add call locus to inlined parameter stmts.
1783         (initialize_inlined_parameters): Pass in call location as parameter
1784         assignment locus.
1785         (tree_function_versioning): Pass location to setup_one_parameter.
1786         * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
1787         * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
1788         copy and edge lists.
1789         (insert_partition_copy_on_edge, insert_value_copy_on_edge,
1790         insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
1791         locus parameter and override the stmt default if provided.
1792         (new_elim_graph, clear_elim_graph, delete_elim_graph,
1793         elim_graph_add_edge, elim_graph_remove_succ_edge,
1794         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
1795         elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
1796         eliminate_phi):  Add locus info in elimination graph for each edge and
1797         value copy.
1798         (insert_backedge_copies): Copy locus if present.
1799         * tree-flow.h (struct _edge_var_map): Add locus field.
1800         * tree-switch_conversions.c (fix_phi_nodes): Add locations.
1801         * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
1802         add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
1803         locations.
1804         * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
1805
1806 2009-07-30  Martin Jambor  <mjambor@suse.cz>
1807
1808         PR tree-optimization/40570
1809         * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
1810         use inlining loops.
1811
1812 2009-07-30  Razya Ladelsky <razya@il.ibm.com>
1813
1814         * ssa-loop-manip.c: Include langhooks.h.
1815         (rewrite_phi_with_iv): New.
1816         (rewrite_all_phi_nodes_with_iv): New.
1817         (canonicalize_loop_ivs): Move here from tree-parloops.c.
1818         Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
1819         * tree-parloops.c (loop_parallel_p): Move out all conditions
1820         except dependency check.
1821         (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
1822         (gen_parallel_loop): Call canonicalize_loop_ivs without
1823         reduction_list argument.
1824         (build_new_reduction): New.
1825         (gather_scalar_reductions): New.
1826         (try_get_loop_niter): New.
1827         (try_create_reduction_list): New.
1828         (parallleize_loops): Change the parallel conditions check.
1829         * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
1830         * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
1831
1832 2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1833
1834         * opt-functions.awk (opt_args): Allow argument to be enclosed in
1835         curly braces.
1836         * doc/options.texi (Option properties):  Mention new quoting syntax.
1837
1838 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1839
1840         * config/alpha/alpha.c (alpha_start_function):
1841         Handle VMS_DEBUG_MAIN_POINTER
1842         * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
1843         * doc/invoke.texi: Document -mdebug-main switch.
1844
1845 2009-07-29  Richard Henderson  <rth@redhat.com>
1846
1847         * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
1848         (cgraph_create_edge_including_clones): Likewise.
1849         * tree-inline.c (copy_bb): Operate on the correct edges
1850         when updating the callgraph.
1851
1852 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1853
1854         * config/alpha/vms-cc.c: Deleted.
1855         * config/alpha/vms-ld.c: Deleted.
1856         * config/alpha/t-vms64: Moved to config/vms
1857         * config/alpha/vms-crt0-64.c: Moved to config/vms
1858         * config/alpha/vms-crt0.c: Moved to config/vms
1859         * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
1860         * config/alpha/vms-psxcrt0.c: Moved to config/vms
1861         * config/alpha/xm-vms.h: Moved to config/vms
1862         * config/alpha/x-vms: Moved to config/vms
1863         * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
1864         config/vms/t-vms.
1865         * config/vms/t-vms: Moved here from config/alpha. Alpha specific
1866         parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
1867         (version): Set.
1868         * config/vms/t-vms64: Moved here from config/alpha
1869         * config/vms/vms-crt0-64.c: Moved here from config/alpha.
1870         (argc,argv,envp): Enforce 32bit malloc'ing.
1871         * config/vms/vms-psxcrt0-64.c: Likewise.
1872         * config/vms/vms-crt0.c: Moved here from config/alpha.
1873         * config/vms/vms-psxcrt0.c: Likewise.
1874         * config/vms/vms-crtl-64.h: New file.
1875         * config/vms/vms-crtl.h: New file.
1876         * config/vms/vms.opt: New file.
1877         * config/vms/xm-vms64.h: New file.
1878         * config/vms/xm-vms.h: Moved here from config/alpha.
1879         (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
1880         Set.
1881         * config/vms/x-vms: Moved here from config/alpha.
1882         (version, VMS_EXTRA_PARTS): Moved to t-vms.
1883         (vms-ld.o, vms-cc.o): Removed.
1884         (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
1885
1886 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1887
1888         * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
1889         correct stack (obvious VMS fix).
1890
1891 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1892
1893         * dwarf2out.c (output_file_names): Output VMS style file name, size,
1894         date, version info if VMS_DEBUGGING_INFO defined.
1895         * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
1896         size, date calculating code moved here.
1897
1898 2009-07-29  Paul Brook  <paul@codesourcery.com>
1899
1900         * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
1901         do_push/do_pop.
1902
1903 2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
1904
1905         PR target/40577
1906         * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
1907         to DImode when generating insq_le insn.
1908
1909 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
1910
1911         * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
1912         New macro set for VMS_DEBUGGGING_INFO.
1913         (AT_string_form): Use it.
1914
1915 2009-07-28  DJ Delorie  <dj@redhat.com>
1916
1917         * config/mep/mep.c (vtext_section): New.
1918         (vftext_section): New.
1919         (ftext_section): New.
1920         (mep_select_section): Add support for functions.
1921         (mep_unique_section): Likewise.
1922         (mep_asm_init_sections): Likewise.
1923         (mep_encode_section_info): Remove it from here.
1924
1925         * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
1926
1927 2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
1928
1929         * tree.h (TREE_DEPRECATED): Document it is used for types too.
1930         (TYPE_VECTOR_OPAQUE): Use default_def_flag
1931
1932 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
1933
1934         * dwarf2out.c (output_file_names): Test new macro
1935         DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
1936         (add_comp_dir_attribute): Likewise.
1937
1938 2009-07-28  Kai Tietz  <kai.tietz@onevision.com>
1939
1940         * config/i386/mingw-w64.h (LINK_SPEC): Add
1941         separating space between commands.
1942
1943 2009-07-28  Jan Hubicka  <jh@suse.cz>
1944
1945         PR tree-optimization/40759
1946         * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
1947         for renaming.
1948
1949 2009-07-27  DJ Delorie  <dj@redhat.com>
1950
1951         * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
1952         types are dword-aligned.
1953         (mep_expand_va_start): Likewise.
1954
1955 2009-07-27  Olivier Hainque  <hainque@adacore.com>
1956             Douglas B Rupp  <rupp@gnat.com>
1957
1958         * convert.c (convert_to_pointer): Don't assume the target
1959         pointer type is POINTER_SIZE long. Fetch its precision instead.
1960
1961 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
1962
1963         * system.h (fopen): Undefine if macro.
1964
1965 2009-07-27  Jakub Jelinek  <jakub@redhat.com>
1966
1967         * dwarf2out.c (output_cfi_p): Removed.
1968         (output_cfis): New function.
1969         (output_fde): New function, split from output_call_frame_info.
1970         (output_call_frame_info): Use it.
1971         (dwarf2out_switch_text_section): Use output_cfis.
1972
1973 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
1974
1975         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
1976         TARGET_BI_ARCH is specified without enabling SJLJ.
1977         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
1978         if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
1979
1980 2009-07-26  Mikael Pettersson <mikpe@it.uu.se>
1981
1982         * arm.md (negdi2): Use DImode if forcing a value into a register.
1983
1984 2009-07-26  Ira Rosen  <irar@il.ibm.com>
1985
1986         PR tree-optimization/40801
1987         * tree-vect-stmts.c (vectorizable_call): Get previous copy
1988         of vector operand from the previous copy of vector statement.
1989         Pass the correct definition type value to
1990         vect_get_vec_def_for_stmt_copy().
1991
1992 2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1993
1994         * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
1995         const char ** conversion.
1996
1997 2009-07-25 David Daney <ddaney@caviumnetworks.com>
1998
1999         * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
2000         fancy_abort() if !ENABLE_ASSERT_CHECKING.
2001         (gcc_unreachable): Invoke __builtin_unreachable() if
2002         !ENABLE_ASSERT_CHECKING.
2003
2004 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
2005
2006         PR rtl-optimization/40445
2007         * emit-rtl.c (next_nonnote_insn_bb): New function.
2008         * rtl.h (next_nonnote_insn_bb): Declare new function.
2009         * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
2010         with no successors that is the successor of the ENTRY_BLOCK.
2011         Continue from the top after removing an empty fallthrough block.
2012         * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
2013         of next_nonnote_insn.
2014
2015 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
2016
2017         * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
2018
2019 2009-07-25  Martin Jambor  <mjambor@suse.cz>
2020
2021         * c-common.c (c_common_attribute_table): New element for noclone.
2022         (handle_noclone_attribute): New function. Forward-declare.
2023         * tree-inline.c (tree_versionable_function_p): Check for noclone
2024         attribute.
2025         * doc/extend.texi (Labels as Values): Document need for noclone.
2026         (Function Attributes): Document noclone attribute.
2027
2028 2009-07-25  Jakub Jelinek  <jakub@redhat.com>
2029
2030         PR rtl-optimization/34999
2031         * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
2032         and dw_fde_switched_cold_to_hot fields.
2033         (output_cfi_p): New function.
2034         (output_call_frame_info): If fde->dw_fde_switched_sections,
2035         output 2 FDEs instead of one with corrupted header.
2036         (dwarf2out_do_cfi_startproc): New function.
2037         (dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
2038         and fde->dw_fde_switched_cold_to_hot.
2039         (dwarf2out_switch_text_section): Compute
2040         fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
2041         If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
2042         dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
2043         Otherwise, compute fde->dw_fde_switch_cfi.
2044
2045 2009-07-24  Cary Coutant  <ccoutant@google.com>
2046
2047         * tree-cfg.c (assign_discriminator): Add explicit parentheses.
2048
2049 2009-07-24  Cary Coutant  <ccoutant@google.com>
2050
2051         * cfghooks.c (split_block): Copy discriminator to new block.
2052         * tree-cfg.c (assign_discriminator): Check location of last
2053         instruction in block as well as first.
2054
2055 2009-07-24  Uros Bizjak  <ubizjak@gmail.com>
2056
2057         * config/i386/linux.c: Use fputs or putc instead of fprintf
2058         where appropriate.
2059         * config/i386/gas.h: Ditto.
2060         * config/i386/x86-64.h: Ditto.
2061         * config/i386/att.h: Ditto.
2062
2063 2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2064
2065         * expmed.c (emit_store_flag): Use a recursive call to optimize the
2066         xor case.
2067
2068 2009-07-24  Martin Jambor  <mjambor@suse.cz>
2069
2070         * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
2071         (ipa_push_func_to_list_1): Declare.
2072         (ipa_push_func_to_list): New function.
2073
2074         * ipa-prop.c (ipa_push_func_to_list_1): New function.
2075         (ipa_init_func_list): Call ipa_push_func_to_list_1.
2076         (ipa_push_func_to_list): Removed.
2077         (ipa_pop_func_from_list): Clear node_enqueued flag.
2078
2079 2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
2080
2081         * config/s390/s390.c (override_options): Default
2082         max-unrolled-insns to 100 for z10 tuning.
2083
2084 2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>
2085
2086         * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
2087         tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
2088         tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
2089         tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
2090         tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
2091         tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
2092         lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
2093
2094 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
2095
2096         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
2097         use default set in mingw32.h header.
2098         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
2099         64-bit /mingw/include path.
2100         (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
2101         path.
2102
2103 2009-07-23  Neil Vachharajani  <nvachhar@google.com>
2104
2105         PR rtl-optimization/40209
2106         * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
2107
2108 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
2109
2110         * config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
2111         ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
2112         with the rest of string where appropriate.  Use fputs or putc
2113         instead of fprintf where appropriate.
2114
2115 2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
2116             Pat Haugen  <pthaugen@us.ibm.com>
2117             Revital Eres <ERES@il.ibm.com>
2118
2119         * config/rs6000/vector.md: New file.  Move most of the vector
2120         expander support here from altivec.md to allow for the VSX vector
2121         unit in the future.  Add support for secondary_reload patterns.
2122         Rewrite the patterns for vector comparison, and vector comparison
2123         predicate instructions so that the RTL expresses the desired
2124         behavior, instead of using unspec.
2125
2126         * config/rs6000/constraints.md ("f" constraint): Use
2127         rs6000_constraints to hold the precalculated register class.
2128         ("d" constraint): Ditto.
2129         ("wd" constraint): New constraint for VSX.
2130         ("wf" constraint): Ditto.
2131         ("ws" constraint): Ditto.
2132         ("wa" constraint): Ditto.
2133         ("wZ" constraint): Ditto.
2134         ("j" constraint): Ditto.
2135
2136         * config/rs6000/predicates.md (vsx_register_operand): New
2137         predicate for VSX.
2138         (vfloat_operand): New predicate for vector.md.
2139         (vint_operand): Ditto.
2140         (vlogical_operand): Ditto.
2141         (easy_fp_constant): If VSX, 0.0 is an easy constant.
2142         (easy_vector_constant): Add VSX support.
2143         (altivec_indexed_or_indirect_operand): New predicate for
2144         recognizing Altivec style memory references with AND -16.
2145
2146         * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
2147         for vector secondary reload support.
2148         (rs6000_vector_reg_class): Delete, replacing it with
2149         rs6000_constraints.
2150         (rs6000_vsx_reg_class): Ditto.
2151         (rs6000_constraints): New array to hold the register classes of
2152         each of the register constraints that can vary at runtime.
2153         (builtin_mode_to_type): New static array for builtin function type
2154         creation.
2155         (builtin_hash_table): New static hash table for builtin function
2156         type creation.
2157         (TARGET_SECONDARY_RELOAD): Define target hook.
2158         (TARGET_IRA_COVER_CLASSES): Ditto.
2159         (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
2160         registers are 128 bits if VSX memory reference instructions are used.
2161         (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
2162         unit is being used.
2163         (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
2164         (rs6000_debug_reg_global): Move -mdebug=reg statements here.
2165         Print several of the scheduling related parameters.
2166         (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
2167         rs6000_constraints instead of rs6000_vector_reg_class.  Move
2168         -mdebug=reg code to rs6000_debug_reg_global.  Add support for
2169         -mvsx-align-128 debug switch.  Drop testing float_p if VSX or
2170         Altivec.  Add VSX support.  Setup for secondary reload support on
2171         Altivec/VSX registers.
2172         (rs6000_override_options): Make power7 set the scheduling groups
2173         like the power5.  Add support for new debug switches to override
2174         the scheduling defaults.  Temporarily disable -mcpu=power7 from
2175         setting -mvsx.  Add support for debug switches -malways-hint,
2176         -msched-groups, and -malign-branch-targets.
2177         (rs6000_buitlin_conversion): Add support for returning unsigned
2178         vector conversion functions to fix regressions due to stricter
2179         type checking.
2180         (rs6000_builtin_mul_widen_even): Ditto.
2181         (rs6000_builtin_mul_widen_odd): Ditto.
2182         (rs6000_builtin_vec_perm): Ditto.
2183         (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
2184         (rs6000_expand_vector_init): Initial VSX support for using xxlxor
2185         to zero a register.
2186         (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
2187         generated upstream.
2188         (bdesc_3arg): Add builtins for unsigned types.  Add builtins for
2189         VSX types for bit operations.  Changes to accomidate vector.md.
2190         (bdesc_2arg): Ditto.
2191         (bdesc_1arg): Ditto.
2192         (struct builtin_description_predicates): Rewrite predicate
2193         handling so that RTL describes the operation, instead of passing
2194         the instruction to be used as a string argument.
2195         (bdesc_altivec_preds): Ditto.
2196         (altivec_expand_predicate_builtin): Ditto.
2197         (altivec_expand_builtin): Ditto.
2198         (rs6000_expand_ternop_builtin): Use a switch instead of an if
2199         statement for vsldoi support.
2200         (altivec_expand_ld_builtin): Change to use new names from vector.md.
2201         (altivec_expand_st_builtin): Ditto.
2202         (paired_expand_builtin): Whitespace changes.
2203         (rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
2204         builtin_mode_to_type table for secondary reload.  Call
2205         builtin_function_type to build random builtin functions.
2206         (altivec_init_builtins): Change to use builtin_function_type to
2207         create builtin function types dynamically as we need them.
2208         (builtin_hash_function): New support for hashing the tree types
2209         for builtin function as we need it, rather than trying to build
2210         all of the trees that we need.  Add initial preliminary VSX support.
2211         (builtin_function_type): Ditto.
2212         (builtin_function_eq): Ditto.
2213         (builtin_hash_struct): Ditto.
2214         (rs6000_init_builtins): Ditto.
2215         (rs6000_common_init_builtins): Ditto.
2216         (altivec_init_builtins): Ditto.
2217         (rs6000_common_init_builtins): Ditto.
2218         (enum reload_reg_type): New enum for simplifing reg classes.
2219         (rs6000_reload_register_type): Simplify register classes into GPR,
2220         Vector, and other registers.  Altivec and VSX addresses in reload.
2221         (rs6000_secondary_reload_inner): Ditto.
2222         (rs6000_ira_cover_classes): New target hook, that returns the
2223         appropriate cover classes, based on -mvsx being used or not.
2224         (rs6000_secondary_reload_class): Add VSX support.
2225         (get_vec_cmp_insn): Delete, rewrite vector conditionals.
2226         (get_vsel_insn): Ditto.
2227         (rs6000_emit_vector_compare): Rewrite vector conditional support
2228         so that where we can, we use RTL operators, instead of blindly use
2229         UNSPEC.
2230         (rs6000_emit_vector_select): Ditto.
2231         (rs6000_emit_vector_cond_expr): Ditto.
2232         (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
2233         (create_TOC_reference): Add -mdebug=addr support.
2234         (emit_frame_save): VSX loads/stores need register indexed addressing.
2235
2236         * config/rs6000/rs6000.md: Include vector.md.
2237
2238         * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
2239
2240         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2241         support for V2DI, V2DF in logical, permute, select operations.
2242
2243         * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
2244         switch for vsx/power7.
2245         (-mvsx-scalar-memory): Ditto.
2246         (-mvsx-align-128): Ditto.
2247         (-mallow-movmisalign): Ditto.
2248         (-mallow-df-permute): Ditto.
2249         (-msched-groups): Ditto.
2250         (-malways-hint): Ditto.
2251         (-malign-branch-targets): Ditto.
2252
2253         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
2254         hook instead.
2255         (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
2256         (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
2257         (rs6000_vector_reg_class): Delete.
2258         (rs6000_vsx_reg_class): Ditto.
2259         (enum rs6000_reg_class_enum): New enum for the constraints that
2260         vary based on target switches.
2261         (rs6000_constraints): New array to hold the register class for all
2262         of the register constraints that vary based on the switches used.
2263         (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
2264         (enum rs6000_builtins): Add unsigned varients for the builtin
2265         declarations returned by target hooks for expanding multiplies,
2266         select, and permute operations.  Add VSX builtins.
2267         (enum rs6000_builtin_type_index): Add entries for VSX.
2268         (V2DI_type_node): Ditto.
2269         (V2DF_type_node): Ditto.
2270         (unsigned_V2DI_type_node): Ditto.
2271         (bool_long_type_node): Ditto.
2272         (intDI_type_internal_node): Ditto.
2273         (uintDI_type_internal_node): Ditto.
2274         (double_type_internal_node): Ditto.
2275
2276         * config/rs6000/altivec.md (whole file): Move all expanders to
2277         vector.md from altivec.md.  Rename insn matching functions to be
2278         altivec_foo.
2279         (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
2280         (altivec_vcmp*): Ditto.
2281         (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
2282         (VM): New iterator for moves that includes the VSX types.
2283         (altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
2284         (altivec_vperm_<mode>_uns): New, for unsigned types.
2285         (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
2286         (altivec_eq<mode>): Ditto.
2287         (altivec_gt<mode>): Ditto.
2288         (altivec_gtu<mode>): Ditto.
2289         (altivec_eqv4sf): Ditto.
2290         (altivec_gev4sf): Ditto.
2291         (altivec_gtv4sf): Ditto.
2292         (altivec_vcmpbfp_p): Ditto.
2293
2294 2009-07-23  Richard Earnshaw  <rearnsha@arm.com>
2295
2296         * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
2297         unsigned HWI.
2298
2299 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
2300
2301         PR target/40832
2302         * config/i386/i386.c (output_387_ffreep): Rewrite to use
2303         ASM_SHORT instead of .word.
2304         * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
2305         instead of .word in asm template.
2306
2307 2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>
2308
2309         PR target/37488
2310         * ira-lives.c (bb_has_abnormal_call_pred): New function.
2311         (process_bb_node_lives): Use it.
2312
2313         * ira.c (setup_cover_and_important_classes): Don't setup
2314         ira_important_class_nums.  Add cover classes to the end of
2315         important classes.
2316         (cover_class_order, comp_reg_classes_func, reorder_important_classes):
2317         New.
2318         (find_reg_class_closure): Use reorder_important_classes.
2319
2320         * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
2321
2322         * config/i386/i386.c (i386_ira_cover_classes): New function.
2323         (TARGET_IRA_COVER_CLASSES): Redefine.
2324
2325         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
2326         importance of order of cover classes in the array.
2327
2328 2009-07-22  Diego Novillo  <dnovillo@google.com>
2329
2330         * tree-pass.h (TDF_EH): Define.
2331         * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
2332         contains TDF_EH, print the EH region number holding GS.
2333         * tree-dump.c (dump_options): Add "eh".
2334         * doc/invoke.texi: Document it.
2335
2336 2009-07-22  Doug Kwan  <dougkwan@google.com>
2337
2338         * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
2339
2340 2009-07-22  Michael Matz  <matz@suse.de>
2341
2342         PR tree-optimization/35229
2343         PR tree-optimization/39300
2344
2345         * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
2346         (inhibit_phi_insertion): New function.
2347         (insert_into_preds_of_block): Call it for REFERENCEs.
2348         (init_pre): Initialize and finalize scalar evolutions.
2349         * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
2350
2351 2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
2352
2353         * config/i386/predicates.md (zero_extended_scalar_load_operand):
2354         Use CONST_VECTOR_NUNITS to determine number of elements.
2355
2356 2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
2357
2358         * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
2359         (U, W): Constraints are now deprecated and will be removed if we
2360         run out of letters.
2361         * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
2362         the file.
2363         ("prefetch"): Add the stcmh instruction for prefetching.
2364         * config/s390/s390.c (s390_symref_operand_p): Function moved. No
2365         changes.
2366         (s390_short_displacement): Return always true if compiling for
2367         machines not providing the long displacement facility.
2368         (s390_mem_constraint): Support the new constraint letter Z.
2369         (s390_check_qrst_address): New function.
2370
2371 2009-07-21  DJ Delorie  <dj@redhat.com>
2372
2373         * config/mep/mep.c (mep_legitimize_arg): Leave control registers
2374         alone too.
2375
2376 2009-07-21  Jason Merrill  <jason@redhat.com>
2377
2378         * c-common.c (max_tinst_depth): Increase default to 1024.
2379
2380 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
2381
2382         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
2383         (vec_unpacku_float_lo_v4si): Ditto.
2384
2385 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
2386
2387         PR target/40811
2388         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
2389         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
2390         (builtin_description): Add __builtin_ia32_cvtudq2ps.
2391         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
2392
2393 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
2394
2395         PR tree-optimization/40813
2396         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
2397         it.
2398
2399 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
2400
2401         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
2402         with a NOP_EXPR if needed.
2403
2404 2009-07-21  Paul Brook <paul@codesourcery.com>
2405
2406         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
2407         Terminate debug dump with newline.
2408
2409 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2410
2411         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
2412         Cast "1" to unsigned HOST_WIDE_INT.
2413         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
2414         deposit length to the maximum length - lsb.  Extend length if
2415         HOST_BITS_PER_WIDE_INT is 32.
2416
2417 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
2418
2419         * cgraph.h (constant_pool_htab): New function.
2420         (constant_descriptor_tree): Move from varasm.c.
2421         * varasm.c (constant_pool_htab): New function.
2422         (constant_descriptor_tree): Move to cgraph.h.
2423
2424 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
2425
2426         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
2427
2428 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
2429
2430         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
2431         $(VARRAY_H).
2432
2433 2009-07-20  Xinliang David Li  <davidxl@google.com>
2434
2435         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
2436
2437 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
2438
2439         * config/mips/mips.md (move_type): Add arith.
2440         (type): Handle arith.
2441         (zero_extendsidi2): Rename this into ...
2442         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
2443         (zero_extendsidi2): New expander.
2444         (*zero_extendsidi2_dext): New pattern.
2445
2446 2009-07-20  Nick Clifton  <nickc@redhat.com>
2447
2448         * config.gcc (mips64-*-*): Add definition of tm_defines in order
2449         to set MIPS_ABI_DEFAULT.
2450         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
2451
2452 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
2453
2454         * tree-object-size.c (addr_object_size): Handle unions with
2455         array in it as last field of structs in __bos (, 1) as __bos (, 0).
2456
2457         PR tree-optimization/40792
2458         * tree.c (build_function_type_skip_args): Remove bogus assert.
2459
2460 2009-07-20  Jan Hubicka  <jh@suse.cz>
2461             Martin Jambor  <mjambor@suse.cz>
2462
2463         * cgraph.h (combined_args_to_skip): New field.
2464         * cgraph.c (cgraph_create_virtual_clone): Properly handle
2465         combined_args_to_skip and args_to_skip.
2466         * tree-inline.c (update_clone_info): New function.
2467         (tree_function_versioning): Call update_clone_info.
2468         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
2469         functions.
2470         (cgraph_materialize_all_clones): More extensive dumping, working
2471         with combined_args_to_skip rather than args_to_skip.
2472
2473 2009-07-20  Ira Rosen  <irar@il.ibm.com>
2474
2475         * tree-vectorizer.h (vectorizable_condition): Add parameters.
2476         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
2477         (get_initial_def_for_reduction): Likewise.
2478         (vectorizable_reduction): Skip the check of first operand in case
2479         of COND_EXPR. Add check that it is outer loop vectorization if
2480         nested cycle was detected. Call vectorizable_condition() for
2481         COND_EXPR. If reduction epilogue cannot be created do not fail for
2482         nested cycles (if it is not double reduction). Assert that there
2483         is only one type in the loop in case of COND_EXPR. Call
2484         vectorizable_condition() to vectorize COND_EXPR.
2485         * tree-vect-stmts.c (vectorizable_condition): Update comment.
2486         Add parameters. Allow nested cycles if called from
2487         vectorizable_reduction(). Use reduction vector variable if provided.
2488         (vect_analyze_stmt): Call vectorizable_reduction() before
2489         vectorizable_condition().
2490         (vect_transform_stmt): Update call to vectorizable_condition().
2491
2492 2009-07-20  Christian Bruel  <christian.bruel@st.com>
2493
2494         * config/sh/sh.opt (-mfmovd): Resurrect and document.
2495         * doc/invoke.texi (-mfmovd): Likewise.
2496         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
2497
2498 2009-07-20  Jan Hubicka  <jh@suse.cz>
2499
2500         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
2501         when handling SSA name.
2502
2503 2009-07-19  Jan Hubicka  <jh@suse.cz>
2504
2505         PR tree-optimization/40676
2506         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
2507         virtual PHIs in empty BBs.
2508
2509 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
2510
2511         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
2512         re-expanded the compound use gen_lowpart instead to convert to the
2513         desired mode.
2514
2515 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
2516
2517         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
2518         OUTER_CONST arguments.
2519         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
2520         the new wider mode will be masked off.
2521         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
2522
2523 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
2524
2525         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
2526         high-order bits are zero.
2527
2528 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
2529
2530         * combine.c (simplify_shift_const_1): Split code to determine
2531         shift_mode into ...
2532         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
2533         new bits shifted in are identical to the old sign bit.
2534
2535 2009-07-18  Richard Guenther  <rguenther@suse.de>
2536
2537         PR c/40787
2538         * gimplify.c (gimplify_call_expr): Reject code using results from
2539         functions returning void.
2540
2541 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
2542
2543         * doc/md.texi: Document the new PowerPC "es" constraint.
2544         Document that "m" can include automodified addresses on this target,
2545         and explain how %U must be used.  Extend the "Q" and "Z" documentation
2546         to suggest "es" as well as "m".
2547         * config/rs6000/constraints.md (es): New memory constraint.
2548         (Q, Z): Update strings to match new documentation.
2549
2550 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
2551
2552         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
2553         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
2554         * config/rs6000/predicates.md (volatile_mem_operand): Use
2555         offsettable_nonstrict_memref_p.
2556         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
2557         (*floatunssidf2_internal): Likewise.
2558         (*fix_truncdfsi2_internal): Likewise.
2559         (*fix_trunctfsi2_internal): Likewise.
2560
2561 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
2562
2563         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
2564         atmega32u2 devices.
2565         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2566
2567 2009-07-17  Richard Guenther  <rguenther@suse.de>
2568
2569         PR c/40401
2570         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
2571         (pass_warn_unused_result): Likewise.
2572         (TODO_set_props): Remove.
2573         * omp-low.c (diagnose_omp_structured_block_errors): Change to
2574         run as a pass.
2575         (pass_diagnose_omp_blocks): Define.
2576         * c-decl.c (pop_file_scope): Do not finalize the CU here.
2577         (c_gimple_diagnostics_recursively): Remove.
2578         (finish_function): Do not call it.
2579         (c_write_global_declarations): Continue after errors.
2580         Finalize the CU here.
2581         * c-gimplify.c (c_genericize): Do not gimplify here.
2582         * c-common.c (c_warn_unused_result): Move ...
2583         * tree-cfg.c (do_warn_unused_result): ... here.
2584         (run_warn_unused_result): New function.
2585         (gate_warn_unused_result): New function.
2586         (pass_warn_unused_result): New pass.
2587         * c-common.h (c_warn_unused_result): Remove.
2588         * flags.h (flag_warn_unused_result): Declare.
2589         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
2590         * opts.c (flag_warn_unused_result): Initialize to false.
2591         * toplev.c (compile_file): Add comment.
2592         * omp-low.c (create_omp_child_function): Do not register
2593         the function with the frontend.
2594         (diagnose_omp_structured_block_errors): Prepare to be
2595         called as optimization pass.
2596         (gate_diagnose_omp_blocks): New function.
2597         (pass_diagnose_omp_blocks): New pass.
2598         * cgraph.h (cgraph_optimize): Remove.
2599         (cgraph_analyze_function): Likewise.
2600         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
2601         * cgraphunit.c (cgraph_lower_function): Lower nested functions
2602         before their parents here.
2603         (cgraph_finalize_function): Not here.
2604         (cgraph_analyze_function): Gimplify functions here.
2605         (cgraph_finalize_compilation_unit): Continue after errors.
2606         Optimize the callgraph from here.
2607         (cgraph_optimize): Make static.
2608         * langhooks.c (write_global_declarations): Finalize the CU.
2609         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
2610         (gimplify_function_tree): Assert we gimplify only once.
2611         Set PROP_gimple_any property.
2612         * tree-nested.c (gimplify_all_functions): New function.
2613         (lower_nested_functions): Gimplify all nested functions.
2614         * gimple.h (diagnose_omp_structured_block_errors): Remove.
2615         * passes.c (init_optimization_passes): Add pass_warn_unused_result
2616         and pass_diagnose_omp_blocks after gimplification.  Do not
2617         set TODO_set_props on all_lowering_passes.
2618         (execute_one_pass): Do not handle TODO_set_props.
2619         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
2620         (gimplify.o): Add tree-pass.h dependency.
2621         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
2622         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
2623         (unsave_r): Likewise.
2624         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
2625         temporary variable.
2626
2627 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
2628
2629         * doc/service.texi (Service): Restore previously removed link,
2630         which isn't broken after all.
2631
2632 2009-07-17  Richard Guenther  <rguenther@suse.de>
2633
2634         PR tree-optimization/40321
2635         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
2636         PHI nodes to the maximal set.
2637         (make_values_for_phi): Add PHI arguments to the maximal set.
2638         (execute_pre): Dump PHI_GEN and the maximal set.
2639
2640 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
2641
2642         PR c++/40780
2643         * gimplify.c (gimplify_conversion): Don't change non-conversions into
2644         VIEW_CONVERT_EXPR.
2645
2646 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2647
2648         * doc/extend.texi (Nested Functions): Replace broken link with
2649         textual reference.
2650         * doc/service.texi (Service): Remove broken link.
2651
2652 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
2653
2654         PR bootstrap/40781
2655         * builtins.c (expand_builtin_memcmp): Use loc instead of
2656         EXPR_LOCATION (exp).
2657         (expand_builtin_strncmp): Likewise.
2658
2659 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
2660             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2661
2662         PR 40435
2663         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
2664         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
2665         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
2666         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
2667         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
2668         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
2669         tree-inline.c, c-common.c, c-common.h, gimple.c,
2670         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
2671         convert.c: Add location argument to fold_{unary,binary,ternary},
2672         fold_build[123], build_call_expr, build_size_arg,
2673         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
2674         fold_build1_initializer, fold_build2_initializer,
2675         fold_build3_initializer, fold_build_call_array,
2676         fold_build_call_array_initializer, fold_single_bit_test,
2677         omit_one_operand, omit_two_operands, invert_truthvalue,
2678         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
2679         combine_comparisons, fold_builtin_*, fold_call_expr,
2680         build_range_check, maybe_fold_offset_to_address, round_up,
2681         round_down.
2682
2683 2009-07-16  Jason Merrill  <jason@redhat.com>
2684
2685         PR libstdc++/37907
2686         * c-common.c (c_common_reswords): Add __is_standard_layout
2687         and __is_trivial.
2688         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
2689         * doc/implement-cxx.texi: New.
2690         * doc/gcc.texi: Include it.
2691
2692 2009-07-16  DJ Delorie  <dj@redhat.com>
2693
2694         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
2695         compares that may be indirectly affected by previous instructions.
2696
2697 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2698
2699         * builtins.c (do_mpc_arg2): New.
2700         (fold_builtin_2): Fold builtin cpow.
2701         * real.h (HAVE_mpc_pow): New.
2702
2703 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
2704
2705         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
2706         comparison to skip unprofitable schedule
2707
2708 2009-07-16  Simon Baldwin  <simonb@google.com>
2709
2710         * gcc.c (option_map): New flag -no-canonical-prefixes.
2711         * (display_help): Print help text for new flag.
2712         * (process_command): Move options translation and language specifics
2713         and handle new flag early.  Use it to set a function pointer to a
2714         prefix builder.  Replace make_relative_prefix calls with calls to
2715         the function pointed to.  Ignore new flag in regular options handling.
2716         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
2717
2718 2009-07-15  DJ Delorie  <dj@redhat.com>
2719
2720         * config/mep/mep.md (sibcall_internal): Change register to avoid
2721         argument registers.
2722         (sibcall_value_internal): Likewise.
2723
2724 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2725
2726         PR rtl-optimization/40710
2727         * resource.c (mark_target_live_regs): Reset DF problem to LR.
2728
2729 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
2730
2731         * config/mips/mips.md (*extenddi_truncate<mode>,
2732         *extendsi_truncate<mode>): Change type attribute to move_type
2733         with shift_shift.  Split out code handling exts from here ...
2734         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
2735         pattern.
2736         (*extendhi_truncateqi): Change type attribute to move_type with
2737         shift_shift.  Split out code handling exts from here ...
2738         (*extendhi_truncateqi_exts): ... to this new pattern.
2739
2740 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
2741
2742         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
2743         instead of "and" with inverted sign bit mask value.  Use
2744         "nonimmediate_operand" for operand 1 and operand 2 predicate.
2745         Allocate registers only for operand 4 and operand 5.
2746
2747 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
2748
2749         PR middle-end/40747
2750         * fold-const.c (fold_cond_expr_with_comparison): When folding
2751         < and <= to MIN, make sure the MIN uses the same type as the
2752         comparison's operands.
2753
2754 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
2755
2756         * arm.md (ior_xor): New code iterator.
2757         (split for ior/xor with shift and zero-extend): New split pattern.
2758         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
2759
2760 2009-07-15  Richard Guenther  <rguenther@suse.de>
2761
2762         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
2763         offset member.
2764
2765 2009-07-15  Richard Guenther  <rguenther@suse.de>
2766
2767         PR middle-end/40753
2768         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
2769
2770 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2771
2772         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
2773         handle 2.6.30 kernel.
2774
2775 2009-07-15  DJ Delorie  <dj@redhat.com>
2776
2777         * config/mep/mep.md (sibcall_internal): Change register to allow
2778         for 24-bit addresses.
2779         (sibcall_value_internal): Likewise.
2780
2781 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2782
2783         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
2784         that are enabled/disabled by the flags introduced by a previous patch.
2785
2786 2009-07-14  DJ Delorie  <dj@redhat.com>
2787
2788         * config/mep/mep.md (sibcall_internal): Include non-toggling
2789         non-jmp case.
2790         (sibcall_value_internal): Likewise.
2791
2792 2009-07-14  Taras Glek  <tglek@mozilla.com>
2793             Rafael Espindola  <espindola@google.com>
2794
2795         * doc/sourcebuild.texi: Document install-plugin target.
2796         * configure.ac: Added install-plugin target to language makefiles.
2797         * configure: Regenerate.
2798         * Makefile.in: (install-plugin): Install more headers,
2799         depend on lang.install-plugin.
2800
2801 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2802
2803         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
2804         translation.
2805
2806 2009-07-14  DJ Delorie  <dj@redhat.com>
2807
2808         * config/mep/mep.c (mep_vliw_jmp_match): New function.
2809         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
2810         * config/mep/mep.md (sibcall_internal): Change test from
2811         mep_vliw_mode_match to mep_vliw_jmp_match.
2812         (sibcall_value_internal): Likewise.
2813
2814 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
2815
2816         * config/i386/sse.md (copysign<mode>3): New expander.
2817         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
2818         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
2819         Use ix86_build_const_vector.
2820         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
2821         IX86_BUILTIN_CPYSGNPD.
2822         (builtin_description): Add __builtin_ia32_copysignps and
2823         __builtin_ia32_copysignpd.
2824         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
2825         and BUILT_IN_COPYSIGNF.
2826
2827 2009-07-13  Jason Merrill  <jason@redhat.com>
2828
2829         * builtins.c (can_trust_pointer_alignment): New fn.
2830         (get_pointer_alignment): Factor it out from here.
2831         * tree.h: Declare it.
2832
2833 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
2834
2835         * config/rs6000/predicates.md (offsettable_mem_operand): Test
2836         RTX_AUTOINC class.
2837
2838 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
2839
2840         PR debug/40705
2841         PR c++/403057
2842         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
2843
2844 2009-07-14  Richard Guenther  <rguenther@suse.de>
2845             Andrey Belevantsev <abel@ispras.ru>
2846
2847         PR middle-end/40745
2848         * cfgexpand.c (partition_stack_vars): Do not bother to update
2849         alias information when not optimizing.
2850
2851 2009-07-14  Richard Guenther  <rguenther@suse.de>
2852             Andrey Belevantsev <abel@ispras.ru>
2853
2854         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
2855         (pt_solution_set): Likewise.
2856         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
2857         * tree-ssa-structalias.c (pt_solution_set): New function.
2858         * final.c (rest_of_clean_state): Free SSA data structures.
2859         * print-rtl.c (print_decl_name): Remove.
2860         (print_mem_expr): Implement in terms of print_generic_expr.
2861         * alias.c (ao_ref_from_mem): New function.
2862         (rtx_refs_may_alias_p): Likewise.
2863         (true_dependence): Query alias-export info.
2864         (canon_true_dependence): Likewise.
2865         (write_dependence_p): Likewise.
2866         * tree-dfa.c (get_ref_base_and_extent): For void types leave
2867         size unknown.
2868         * emit-rtl.c (component_ref_for_mem_expr): Remove.
2869         (mem_expr_equal_p): Use operand_equal_p.
2870         (set_mem_attributes_minus_bitpos): Do not use
2871         component_ref_for_mem_expr.
2872         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
2873         (update_alias_info_with_stack_vars): Likewise.
2874         (partition_stack_vars): Call update_alias_info_with_stack_vars.
2875         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
2876         explicitly nor clear stmt operands.
2877         Free the decl-to-pointer map.
2878         * tree-optimize.c (execute_free_datastructures): Do not free
2879         SSA data structures here.
2880         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
2881         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
2882         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
2883         dependencies.
2884         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
2885
2886 2009-07-13  DJ Delorie  <dj@redhat.com>
2887
2888         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
2889         unrolling at the right iteration count.
2890
2891         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
2892         calculations.
2893
2894 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2895
2896         * haifa-sched.c (rank_for_schedule): Introduced flags to
2897         enable/disable individual scheduling heuristics.
2898         * common.opt: Introduced flags to enable/disable individual
2899         heuristics in the scheduler.
2900         * doc/invoke.texi: Introduced flags to enable/disable individual
2901         heuristics in the scheduler.
2902
2903 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
2904
2905         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
2906         config/i386/mingw-tls.c.
2907         * config/i386/mingw-tls.c: Removed.
2908
2909 2009-07-13  Ira Rosen  <irar@il.ibm.com>
2910
2911         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
2912         checks access only relevant statements.
2913         (vectorizable_reduction): Likewise.
2914
2915 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
2916
2917         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
2918         just for 32-bit case.
2919
2920 2009-07-12  Jan Hubicka  <jh@suse.cz>
2921
2922         PR tree-optimization/40585
2923         * except.c (expand_resx_expr): When there already is resume
2924         instruction, produce linked list.
2925         (build_post_landing_pads): Assert that resume is empty.
2926         (connect_post_landing_pads): Handle resume lists.
2927         (dump_eh_tree): Dump resume list.
2928
2929 2009-07-12  Ira Rosen  <irar@il.ibm.com>
2930
2931         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
2932         with additional argument.
2933         * tree-vectorizer.h (enum vect_def_type): Add
2934         vect_double_reduction_def.
2935         (vect_is_simple_reduction): Add argument.
2936         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
2937         indentation.
2938         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
2939         vect_is_simple_reduction with additional argument.
2940         (vect_analyze_loop_operations): Handle exit phi nodes in case of
2941         double reduction.
2942         (reduction_code_for_scalar_code): Handle additional codes by
2943         returning ERROR_MARK for them. Fix comment and indentation.
2944         (vect_is_simple_reduction): Fix comment, add argument to specify
2945         double reduction. Detect double reduction.
2946         (get_initial_def_for_induction): Fix indentation.
2947         (get_initial_def_for_reduction): Fix comment and indentation.
2948         Handle double reduction. Create initial definitions that do not
2949         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
2950         (vect_create_epilog_for_reduction): Fix comment, add argument to
2951         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
2952         epilogue result extraction. Create double reduction phi node and
2953         replace relevant uses.
2954         (vectorizable_reduction): Call vect_is_simple_reduction with
2955         additional argument. Fix indentation. Update epilogue code treatment
2956         according to the changes in reduction_code_for_scalar_code. Check
2957         for double reduction. Call vect_create_epilog_for_reduction with
2958         additional argument.
2959         * tree-vect-stmts.c (process_use): Handle double reduction, update
2960         documentation.
2961         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
2962         (vect_get_vec_def_for_operand): Likewise.
2963
2964 2009-07-12  Danny Smith  <dansmister@gmail.com>
2965
2966         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
2967         dllexport if !TREE_PUBLIC.
2968         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
2969
2970 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
2971
2972         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
2973         (avr_extra_arch_macro) Remove declatation.
2974         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
2975         (avr_extra_arch_macro) Declare as static.
2976         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
2977
2978 2009-07-11  Jan Hubicka  <jh@suse.cz>
2979
2980         PR middle-end/48388
2981         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
2982
2983 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
2984
2985         PR debug/40713
2986         * dwarf2out.c (dw_fde_struct): Add in_std_section and
2987         cold_in_std_section bits.
2988         (dwarf2out_begin_prologue): Initialize them.
2989         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
2990         if already covered by text_section or cold_text_section range.
2991
2992         PR rtl-optimization/40667
2993         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
2994         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
2995         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
2996         * config/i386/i386.c (ix86_minimum_alignment): New function.
2997         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
2998         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
2999         * emit-rtl.c (gen_reg_rtx): Likewise.
3000         * function.c (assign_parms): Likewise.  If nominal_type needs
3001         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
3002         rather than passed_type's alignment.
3003
3004         PR target/40668
3005         * function.c (assign_parm_setup_stack): Adjust
3006         MEM_OFFSET (data->stack_parm) if promoted_mode is different
3007         from nominal_mode on big endian.
3008
3009 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
3010
3011         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
3012
3013 2009-07-10  DJ Delorie  <dj@redhat.com>
3014
3015         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
3016
3017 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
3018
3019         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
3020         attribute.
3021         (thumb2_cbnz): Likewise.
3022
3023 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
3024
3025         PR target/39079
3026         * config.gcc (supported_defaults): Add synci.
3027         (with_synci): Add validation.
3028         (all_defaults): Add synci.
3029         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
3030         ISA_HAS_SYNCI.
3031         (synci): Same.
3032         * config/mips/mips.opt (msynci): New option.
3033         * config/mips/mips.c (mips_override_options): Warn on use of
3034         -msynci for targets that do now support it.
3035         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
3036         msynci.
3037         * gcc/doc/invoke.texi (-msynci): Document the new option.
3038         * doc/install.texi (--with-synci): Document the new option.
3039
3040 2009-07-10  Richard Guenther  <rguenther@suse.de>
3041
3042         PR tree-optimization/40496
3043         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
3044         the PHI result with a compatible type.
3045
3046 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3047
3048         PR 25509
3049         PR 40614
3050         * c.opt (Wunused-result): New.
3051         * doc/invoke.texi: Document it.
3052         * c-common.c (c_warn_unused_result): Use it.
3053
3054 2009-07-09  DJ Delorie  <dj@redhat.com>
3055
3056         * targhooks.c (default_target_can_inline_p): Rename from
3057         default_target_option_can_inline_p.
3058         * targhooks.h (default_target_can_inline_p): Likewise.
3059         * target-def.h (TARGET_CAN_INLINE_P): Rename from
3060         TARGET_OPTION_CAN_INLINE_P.
3061         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
3062         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
3063         (mep_target_can_inline_p): Rename from
3064         mep_target_option_can_inline_p.
3065
3066         PR target/40626
3067         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
3068         registers used to pass vectors.
3069
3070         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
3071
3072 2009-07-09  Tom Tromey  <tromey@redhat.com>
3073
3074         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
3075         * config/mmix/mmix.c: Include dwarf2.h.
3076         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
3077         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
3078         * config/sh/sh.c: Include dwarf2.h.
3079         * config/i386/i386.c: Include dwarf2.h.
3080         * Makefile.in (DWARF2_H): Remove 'elf'.
3081         * except.c: Include dwarf2.h.
3082         * unwind-dw2.c: Include dwarf2.h.
3083         * dwarf2out.c: Include dwarf2.h.
3084         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
3085         * unwind-dw2-fde.c: Include dwarf2.h.
3086         * dwarf2asm.c: Include dwarf2.h.
3087
3088 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3089
3090         * haifa-sched.c (insn_finishes_cycle_p): New static function.
3091         (max_issue): Use it.
3092         * sched-int.h (struct sched_info: insn_finishes_block_p): New
3093         scheduler hook.
3094         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
3095         (region_sched_info): Update.
3096         * sched-ebb.c (ebb_sched_info): Update.
3097         * modulo-sched.c (sms_sched_info): Update.
3098         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
3099
3100 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
3101
3102         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
3103
3104 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
3105
3106         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
3107
3108 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
3109
3110         PR middle-end/40692
3111         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
3112         arg1 with arg01 if arg1 is already INTEGER_CST.
3113
3114 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
3115
3116         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
3117         Transform (and (truncate)) into (truncate (and)).
3118
3119 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
3120
3121         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
3122         creating LHS paradoxical subregs.  Fix surrounding returns to
3123         use NULL_RTX rather than 0.
3124
3125 2009-07-08  DJ Delorie  <dj@redhat.com>
3126
3127         * config/mep/mep.c: (mep_option_can_inline_p): New.
3128         (TARGET_OPTION_CAN_INLINE_P): Define.
3129
3130 2009-07-08  Mark Wielaard  <mjw@redhat.com>
3131
3132         PR debug/40659
3133         * dwarf2out.c (add_data_member_location_attribute): When we have
3134         only a constant offset don't emit a new location description using
3135         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
3136         dwarf_version > 2.
3137
3138 2009-07-08  Richard Henderson  <rth@redhat.com>
3139
3140         PR target/38900
3141         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
3142         (enum reg_class): Add CLOBBERED_REGS.
3143         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
3144         * config/i386/i386.c (ix86_conditional_register_usage): Moved
3145         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
3146         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
3147         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
3148         force 64-bit sibcalls into R11.
3149         * config/i386/constraints.md (U): New constraint.
3150         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
3151         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
3152         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
3153
3154 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
3155
3156         * basic-block.h (dump_regset, debug_regset): Remove duplicate
3157         prototypes.
3158         * c-objc-common.h (c_initialize_diagnostics): Ditto.
3159         * ebitmap.h (dump_ebitmap): Ditto.
3160         * optabs.h (optab_libfunc): Ditto.
3161         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
3162         * tree-flow.h (vect_can_force_dr_alignment_p,
3163         get_vectype_for_scalar_type): Ditto.
3164         (vectorize_loops): Move prototype to ...
3165         * tree-vectorizer.h: ... here. Also, adjust comment.
3166         (vect_set_verbosity_level): Remove duplicate prototype.
3167         * tree-ssa-loop.c: Include tree-vectorizer.h.
3168         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
3169
3170 2009-07-08  Nick Clifton  <nickc@redhat.com>
3171
3172         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
3173         forward slash.
3174
3175 2009-07-08  DJ Delorie  <dj@redhat.com>
3176
3177         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
3178         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
3179         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
3180         written to.
3181         * config/mep/intrinsics.md: Regenerated.
3182         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
3183         registers when asm() or calls are detected.
3184
3185 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3186
3187         PR c++/31246
3188         * gimplify.c (gimplify_expr): Propagate no_warning flag when
3189         gimplifying.
3190         * gimple (gimple_build_call_from_tree): Likewise.
3191         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
3192         no_warning flag before warning.
3193
3194 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3195
3196         * tree.c (set_expr_locus): Remove.
3197         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
3198         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
3199         EXPR_LOCATION.
3200         * gimplify.c (internal_get_tmp_var): Likewise.
3201         (gimplify_call_expr): Likewise.
3202         (gimplify_one_sizepos): Likewise.
3203
3204 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3205
3206         PR debug/40666
3207         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
3208         to variables for debugging purposes.
3209
3210 2009-06-23  Mark Loeser  <mark@halcy0n.com>
3211
3212         PR build/40010
3213         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
3214
3215 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3216
3217         * pretty-print.c (pp_base_format): Remove %J.
3218         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
3219         gcc_cxxdiag_char_table): Likewise.
3220         (init_dynamic_diag_info): Likewise.
3221
3222 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3223
3224         * pretty-print.c (pp_base_format): Remove %H.
3225         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
3226         gcc_cxxdiag_char_table): Likewise.
3227         (init_dynamic_diag_info): Likewise.
3228         * config/mep/mep.c (mep_select_section): Likewise.
3229
3230 2009-07-07  Duncan Sands  <baldrick@free.fr>
3231
3232         * final.c (pass_clean_state): Give the pass a name.
3233         * passes.c (pass_rest_of_compilation): Likewise.
3234         * tree-optimize.c (pass_all_optimizations): Likewise.
3235
3236 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
3237
3238         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
3239         an extra 'decl' for error_at.
3240
3241 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
3242
3243         PR middle-end/40669
3244         * tree-tailcall.c (adjust_return_value_with_ops,
3245         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
3246         if it has complex or vector type.
3247
3248 2009-07-07  Olivier Hainque  <hainque@adacore.com>
3249
3250         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
3251         pthread symbols.
3252
3253 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
3254
3255         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
3256
3257 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3258
3259         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
3260         * c-decl.c: Likewise.
3261         * function.c: Likewise.
3262         * varasm.c: Likewise.
3263         * tree-ssa.c: Likewise.
3264         * c-common.c: Likewise.
3265         * tree-cfg.c: Likewise.
3266         * config/spu/spu.c: Likewise.
3267         * config/ia64/ia64.c: Likewise.
3268         * config/v850/v850.c: Likewise.
3269
3270 2009-07-06  DJ Delorie  <dj@redhat.com>
3271
3272         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
3273         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
3274         unspecified accesses to control registers.
3275         * config/mep/intrinsics.md: Regenerate.
3276         * config/mep/intrinsics.h: Regenerate.
3277         * config/mep/mep-intrin.h: Regenerate.
3278
3279 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3280
3281         * c-lex.c: Replace %H by an explicit location. Update all calls.
3282         * c-common.c: Likewise.
3283         * c-decl.c: Likewise.
3284         * c-typeck.c: Likewise.
3285         * fold-const.c: Likewise.
3286         * gimplify.c: Likewise.
3287         * stmt.c: Likewise.
3288         * tree-cfg.c: Likewise.
3289         * tree-ssa-loop-niter.c: Likewise.
3290         * tree-vrp.c: Likewise.
3291         * value-prof.c: Likewise.
3292
3293 2009-07-06  Diego Novillo  <dnovillo@google.com>
3294
3295         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
3296         if it has one.  Handle cases where VAR does not have an
3297         annotation or cfun is NULL.
3298
3299 2009-07-06  Diego Novillo  <dnovillo@google.com>
3300
3301         * tree.c: Include debug.h.
3302         (initialize_tree_contains_struct): New.
3303         (init_ttree): Call it.
3304         (tree_node_structure_for_code): Factor out of ...
3305         (tree_node_structure): ... here.
3306         * treestruct.def (TS_PHI_NODE): Remove.
3307         (TS_GIMPLE_STATEMENT): Remove.
3308
3309 2009-07-06  Diego Novillo  <dnovillo@google.com>
3310
3311         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
3312         (debug_tree_chain): Handle cycles.
3313
3314 2009-07-06  Nick Clifton  <nickc@redhat.com>
3315             DJ Delorie  <dj@redhat.com>
3316
3317         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3318         __FMOVD_ENABLED__ is defined.
3319         * config/sh/sh.h
3320         (TARGET_FMOVD): Provide a default definition.
3321         (MASK_FMOVD): Likewise.
3322         (TARGET_CPU_CPP_BUILTINS): Define
3323         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3324         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3325         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
3326         (split for DF load from memory into register): Also handle
3327         MEMs which consist of REG+DISP addressing.
3328         (split for DF store from register to memory): Likewise.
3329         (movsf_ie): Always use single fp_mode.
3330         * config/sh/sh.c (sh_override_options): Do not automatically
3331         enable TARGET_MOVD for the SH2A when supporting doubles - leave
3332         that to the -mfmovd command line switch.
3333         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
3334         (fldi_ok): Always allow.
3335         * config/sh/sh.opt (mfmovd): Remove this switch.
3336         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3337
3338 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
3339             Kaz Kojima  <kkojima@gcc.gnu.org>
3340
3341         PR rtl-optimization/30807
3342         * postreload.c (reload_combine): For every new use of REG_SUM,
3343         record the use of BASE.
3344
3345 2009-07-06  Jan Hubicka  <jh@suse.cz>
3346
3347         * params.def: Revert my accidental commit at 2009-06-30.
3348
3349 2009-07-04  Ian Lance Taylor  <iant@google.com>
3350
3351         PR target/40636
3352         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
3353         EXPORTED_CONST.
3354         (mingw_format_attribute_overrides): Likewise.
3355
3356 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
3357
3358         PR debug/40596
3359         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
3360         don't check cfa.reg.  Instead of cfa.indirect use
3361         fde && fde->drap_reg != INVALID_REGNUM test.
3362
3363 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3364
3365         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
3366
3367 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
3368
3369         PR target/40587
3370         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
3371
3372 2009-07-03  Richard Guenther  <rguenther@suse.de>
3373
3374         PR tree-optimization/40640
3375         * tree-switch-conversion.c (build_arrays): Perform arithmetic
3376         in original type.
3377
3378 2009-07-03  Jan Hubicka  <jh@suse.cz>
3379
3380         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
3381         for size, reduce amount of inlining.
3382
3383 2009-07-03  Richard Guenther  <rguenther@suse.de>
3384
3385         PR middle-end/34163
3386         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
3387         if t +- x is known to not overflow and the conversion widens the
3388         operation.
3389         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
3390
3391 2009-07-03  Jan Hubicka  <jh@suse.cz>
3392
3393         * ipa-pure-const.c (analyze): Update loop optimizer init.
3394         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
3395         try_remove_empty_loop, remove_empty_loops): Remove.
3396         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
3397         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
3398         to mark regular loops as neccesary.
3399         (degenerate_phi_p): New function.
3400         (propagate_necessity, remove_dead_phis): Use it.
3401         (forward_edge_to_pdom): Likewise.
3402         (eliminate_unnecessary_stmts): Take care to remove uses of results of
3403         virtual PHI nodes that became unreachable.
3404         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
3405         * tree-flow.h (remove_empty_loops): Remove.
3406         * passes.c (init_optimization_passes): Remove.
3407
3408 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
3409
3410         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
3411         can_create_pseudo_p.
3412         (*fix_trunc<mode>_i387_1): Ditto.
3413         (*floathi<mode>2_1): Ditto.
3414         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
3415         (*fistdi2_1): Ditto.
3416         (*fist<mode>2_1): Ditto.
3417         (frndintxf2_floor): Ditto.
3418         (*fist<mode>2_floor_1): Ditto.
3419         (frndintxf2_ceil): Ditto.
3420         (*fist<mode>2_ceil_1): Ditto.
3421         (frndintxf2_trunc): Ditto.
3422         (frndintxf2_mask_pm): Ditto.
3423         (fxam<mode>2_i387_with_temp): Ditto.
3424         * config/i386/sse.md (mulv16qi3): Ditto.
3425         (*sse2_mulv4si3): Ditto.
3426         (mulv2di3): Ditto.
3427         (sse4_2_pcmpestr): Ditto.
3428         (sse4_2_pcmpistr): Ditto.
3429
3430 2009-07-03  Jan Hubicka  <jh@suse.cz>
3431
3432         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
3433         (mark_stmt_necessary): Set it.
3434         (mark_operand_necessary): Set it.
3435         (mark_control_dependent_edges_necessary): Set it.
3436         (mark_virtual_phi_result_for_renaming): New function.
3437         (get_live_post_dom): New function.
3438         (forward_edge_to_pdom): New function.
3439         (remove_dead_stmt): Fix handling of control dependences.
3440         (tree_dce_init): Init new bitmap.
3441         (tree_dce_done): Free it.
3442
3443 2009-07-02  Richard Guenther  <rguenther@suse.de>
3444
3445         PR bootstrap/40617
3446         * tree-ssa-structalias.c (new_var_info): Initialize
3447         is_restrict_var.
3448
3449 2009-07-02  Jan Hubicka  <jh@suse.cz>
3450
3451         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
3452         local.
3453
3454 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
3455
3456         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
3457         instead of recomputing it.  Adjust calls.
3458         (emit_store_flag): Adjust recursive calls.
3459
3460 2009-07-02  Richard Guenther  <rguenther@suse.de>
3461
3462         * tree-ssa-live.c (remove_unused_locals): Do not remove
3463         heap variables.
3464         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
3465         of DECL_EXTERNAL for HEAP variables.
3466         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
3467         HEAP variables.  Do not adjust RESTRICT vars.
3468         (find_what_var_points_to): Nobody cares if something
3469         points to READONLY.
3470
3471 2009-07-02  Ben Elliston  <bje@au.ibm.com>
3472
3473         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
3474         pc_low and pc_high declarations to the top of the function.
3475
3476 2009-07-01  DJ Delorie  <dj@redhat.com>
3477
3478         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
3479         registers as fixed.
3480         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
3481         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
3482         unspecified accesses to control registers.
3483         * config/mep/intrinsics.md: Regenerate.
3484         * config/mep/intrinsics.h: Regenerate.
3485         * config/mep/mep-intrin.h: Regenerate.
3486
3487 2009-07-01  Anthony Green  <green@moxielogic.com>
3488
3489         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
3490         instruction when possible.
3491         (moxie_expand_prologue): Ditto.  Also, save an instruction and
3492         some complexity by popping off of $r12 instead of $sp.
3493         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
3494         operands.
3495
3496 2009-07-01  Richard Henderson  <rth@redhat.com>
3497
3498         PR bootstrap/40347
3499         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
3500         contained no insns, reposition note before last insn.
3501
3502 2009-07-01  Richard Henderson  <rth@redhat.com>
3503
3504         PR debug/40431
3505         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
3506         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
3507
3508 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3509
3510         PR bootstrap/40558
3511         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
3512         darwin9 for printing reg addresses with %y.
3513
3514 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
3515
3516         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
3517         truncation from operands in binary operations.
3518
3519 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
3520
3521         Revert:
3522         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
3523         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
3524         subreg of op0 to the original op0.
3525
3526         * expmed.c (store_bit_field_1): Use a temporary as the destination
3527         instead of a paradoxical subreg when we need to truncate the result.
3528
3529 2009-07-01  DJ Delorie  <dj@redhat.com>
3530
3531         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
3532         names to VLIW variants.
3533         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
3534         * config/mep/intrinsics.md: Regenerate.
3535         * config/mep/intrinsics.h: Regenerate.
3536         * config/mep/mep-intrin.h: Regenerate.
3537
3538 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
3539
3540         PR debug/40462
3541         * jump.c (returnjump_p): Revert last patch.
3542         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
3543
3544 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3545
3546         PR target/40575
3547         * pa.md (casesi32p): Use jump table label to determine the offset
3548         of the jump table.
3549         (casesi64p): Likewise.
3550
3551         * pa.c (forward_branch_p): Return bool type.  Use instruction
3552         addresses when available.  Assert that INSN has a jump label.
3553         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
3554         have a jump label.
3555
3556 2009-07-01  Richard Guenther  <rguenther@suse.de>
3557
3558         PR tree-optimization/19831
3559         * tree-ssa-dce.c (propagate_necessity): Calls to functions
3560         that only act as barriers do not make any previous stores necessary.
3561         * tree-ssa-structalias.c (handle_lhs_call): Delay making
3562         HEAP variables global, do not add a constraint from nonlocal.
3563         (find_func_aliases): Handle escapes through return statements.
3564         (compute_points_to_sets): Make escaped HEAP variables global.
3565
3566 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
3567
3568         PR bootstrap/40597
3569         * expmed.c (emit_store_flag): Perform a conversion if necessary,
3570         after reducing a DImode cstore to SImode.
3571
3572 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
3573
3574         * expr.c (expand_expr_real_1): Reinstate fallthrough to
3575         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
3576
3577 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
3578
3579         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
3580         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
3581         to 0.
3582         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
3583         and umod_optab if TARGET_BSD_DIVMOD.
3584         * config/vax/lib1funcs.asm: New file.
3585         * config/vax/t-linux: New file.
3586         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
3587
3588 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
3589
3590         PR c++/40566
3591         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
3592         to type arguments that have void type.
3593
3594         PR debug/40573
3595         * dwarf2out.c (gen_formal_parameter_die): Call
3596         equate_decl_number_to_die if node is different from origin.
3597
3598 2009-06-30  Anthony Green  <green@moxielogic.com>
3599
3600         Clean up moxie port for --enable-build-with-cxx.
3601         * config/moxie/moxie.c (moxie_function_value): First two
3602         parameters are const_tree, not tree.
3603         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
3604         (REG_CLASS_NAMES): Ditto.
3605         (REGNO_REG_CLASS): Ditto.
3606         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
3607         (moxie_function_value): Fix constyness of arguments.
3608
3609 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3610
3611         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
3612         finalize_size_functions before further processing.
3613         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
3614         (variable_size): Call self_referential_size on size expressions
3615         that contain a PLACEHOLDER_EXPR.
3616         (size_functions): New static variable.
3617         (copy_self_referential_tree_r): New static function.
3618         (self_referential_size): Likewise.
3619         (finalize_size_functions): New global function.
3620         * tree.c: Include tree-inline.h.
3621         (push_without_duplicates): New static function.
3622         (find_placeholder_in_expr): New global function.
3623         (substitute_in_expr) <tcc_declaration>: Return the replacement object
3624         on equality.
3625         <tcc_expression>: Likewise.
3626         <tcc_vl_exp>: If the replacement object is a constant, try to inline
3627         the call in the expression.
3628         * tree.h (finalize_size_functions): Declare.
3629         (find_placeholder_in_expr): Likewise.
3630         (FIND_PLACEHOLDER_IN_EXPR): New macro.
3631         (substitute_placeholder_in_expr): Update comment.
3632         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
3633         is true.
3634         (copy_tree_body_r): Likewise.
3635         (copy_tree_body): New static function.
3636         (maybe_inline_call_in_expr): New global function.
3637         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
3638         (maybe_inline_call_in_expr): Declare.
3639         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
3640         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
3641         GIMPLE_H.
3642
3643 2009-06-30  Richard Guenther  <rguenther@suse.de>
3644
3645         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
3646         continue walking.
3647         (propagate_necessity): Do not mark reaching defs of stores
3648         as necessary.
3649
3650 2009-06-30  Jan Hubicka  <jh@suse.cz>
3651
3652         * cfgloopanal.c (check_irred): Move into ...
3653         (mark_irreducible_loops): ... here; return true if ireducible
3654         loops was found.
3655         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
3656         (analyze_function): Try to prove loop finiteness.
3657         * cfgloop.h (mark_irreducible_loops): Update prototype.
3658         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
3659
3660 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
3661
3662         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
3663
3664 2009-06-30  Ira Rosen  <irar@il.ibm.com>
3665
3666         PR tree-optimization/40542
3667         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
3668         types.
3669
3670 2009-06-30  Martin Jambor  <mjambor@suse.cz>
3671
3672         PR tree-optimization/40582
3673         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
3674         than useless_type_conversion_p.
3675         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
3676         proper place.
3677
3678 2009-06-30  Martin Jambor  <mjambor@suse.cz>
3679
3680         PR middle-end/40554
3681         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
3682
3683 2009-06-30  Richard Guenther  <rguenther@suse.de>
3684
3685         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
3686         use ao_ref references.
3687         (walk_aliased_vdefs): Likewise.
3688         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
3689         * tree-ssa-dce.c (struct ref_data): Remove.
3690         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
3691         (mark_aliased_reaching_defs_necessary): Adjust.
3692         (mark_all_reaching_defs_necessary_1): Likewise.
3693
3694 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
3695
3696         PR boostrap/40597
3697         * expmed.c (emit_cstore): New name of emit_store_flag_1.
3698         (emit_store_flag_1): Extract from emit_store_flag, adjust
3699         calls to (what now is) emit_cstore.
3700         (emit_store_flag): Call emit_store_flag_1 and also use it
3701         for what used to be recursive calls.
3702
3703 2009-06-30  Wei Guozhi  <carrot@google.com>
3704
3705         PR/40416
3706         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
3707         if the target bb post dominates from bb.
3708         * config/i386/i386.c (memory_address_length): Check existence of base
3709         register before using it.
3710
3711 2009-06-30  Nick Clifton  <nickc@redhat.com>
3712             DJ Delorie  <dj@redhat.com>
3713
3714         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3715         __FMOVD_ENABLED__ is defined.
3716         * config/sh/sh.h
3717         (TARGET_FMOVD): Provide a default definition.
3718         (MASK_FMOVD): Likewise.
3719         (TARGET_CPU_CPP_BUILTINS): Define
3720         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3721         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3722         two fmov instructions depending upon whether TARGET_FMOVD is
3723         enabled.
3724         (split for DF load from memory into register): Also handle
3725         MEMs which consist of REG+DISP addressing.
3726         (split for DF store from register to memory): Likewise.
3727         * config/sh/sh.opt (mfmovd): Remove this switch.
3728         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3729         * config/sh/sh.c (sh_override_options): Do not automatically
3730         enable TARGET_MOVD for the SH2A when supporting doubles - leave
3731         that to the -mfmovd command line switch.
3732
3733         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
3734         the SH4 and SH4A.
3735         (fldi_ok): Always allow.
3736         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
3737
3738 2009-06-29  DJ Delorie  <dj@redhat.com>
3739
3740         * doc/install.texi (mep-x-elf): Correct chip's full name.
3741
3742 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3743
3744         * doc/extend.texi: Fix typo.
3745
3746 2009-06-29  Tom Tromey  <tromey@redhat.com>
3747
3748         * dwarf2.h: Remove.
3749         * Makefile.in (DWARF2_H): New variable.
3750         (except.o): Use it.
3751         (dwarf2out.o): Likewise.
3752         (dwarf2asm.o): Likewise.
3753         * config/i386/t-i386: Use DWARF2_H.
3754         * except.c: Include elf/dwarf2.h.
3755         * unwind-dw2.c: Include elf/dwarf2.h.
3756         * dwarf2out.c: Include elf/dwarf2.h.
3757         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
3758         <dtprel>: New field.
3759         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
3760         (size_of_loc_descr): Likewise.
3761         (output_loc_operands_raw): Likewise.
3762         (output_loc_operands): Handle new dtprel field.
3763         (loc_checksum): Update.
3764         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
3765         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
3766         * unwind-dw2-fde.c: Include elf/dwarf2.h.
3767         * dwarf2asm.c: Include elf/dwarf2.h.
3768         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
3769         * config/mmix/mmix.c: Include elf/dwarf2.h.
3770         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
3771         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
3772         * config/sh/sh.c: Include elf/dwarf2.h.
3773         * config/i386/i386.c: Include elf/dwarf2.h.
3774
3775 2009-06-29  DJ Delorie  <dj@redhat.com>
3776
3777         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
3778
3779         * doc/extend.texi: Add MeP attributes and pragmas.
3780         * doc/invoke.text: Add MeP Options.
3781         * doc/contrib.texi: Add MeP contribution.
3782         * doc/md.texi: Add MeP constraints.
3783         * doc/install.texi: Add MeP target.
3784
3785 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
3786
3787         * target.h (struct gcc_target): Add frame_pointer_required field.
3788         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
3789         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
3790         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
3791         hook.
3792         * reload1.c (update_eliminables): (Ditto.).
3793         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
3794         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3795         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
3796
3797         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
3798
3799         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
3800         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3801         (arm_frame_pointer_required): New function.
3802
3803         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
3804         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3805         (avr_frame_pointer_required_p): Declare as static.
3806         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
3807
3808         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
3809         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3810         (bfin_frame_pointer_required): Make as static, change return type
3811         to bool.
3812         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
3813
3814         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
3815         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3816         (cris_frame_pointer_required): New function.
3817
3818         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
3819
3820         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
3821         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3822         (fr30_frame_pointer_required): New function.
3823
3824         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
3825         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3826         (frv_frame_pointer_required): Make as static, change return type
3827         to bool.
3828         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
3829
3830         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
3831         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3832         (ix86_frame_pointer_required): Make as static, change return type to
3833         bool.
3834         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
3835
3836         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
3837         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3838
3839         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
3840
3841         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
3842
3843         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
3844
3845         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
3846         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3847         (mips_frame_pointer_required): Make as static.
3848         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
3849
3850         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
3851         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3852         (mmix_frame_pointer_required): Mew function.
3853
3854         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
3855         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3856
3857         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
3858
3859         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
3860
3861         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
3862
3863         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
3864         (CAN_ELIMINATE): Redefine.
3865         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3866         (sparc_frame_pointer_required): New function.
3867         (sparc_can_eliminate): New function.
3868         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
3869
3870         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
3871         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3872
3873         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
3874         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3875         (xtensa_frame_pointer_required): Make as static, change return type
3876         to bool.
3877         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
3878         Remove.
3879
3880 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
3881
3882         * doc/plugins.texi: Document PLUGIN_START_UNIT.
3883         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
3884         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
3885         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
3886         (register_callback): Handle PLUGIN_START_UNIT.
3887         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
3888
3889 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3890
3891         * tree.c (process_call_operands): Propagate TREE_READONLY from the
3892         operands.
3893         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
3894         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
3895
3896 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
3897
3898         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
3899         move cost.
3900
3901 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
3902
3903         * doc/extend.texi (Additional Floating Types): __float128 is also
3904         supported on i386 targets.
3905
3906 2009-06-29  Richard Guenther  <rguenther@suse.de>
3907
3908         PR middle-end/14187
3909         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
3910         flag.
3911         (pt_solutions_same_restrict_base): Declare.
3912         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
3913         flag.
3914         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
3915         (make_constraint_from, make_copy_constraint): Move earlier.
3916         (make_constraint_from_heapvar): New function.
3917         (make_constraint_from_restrict): Likewise.
3918         (handle_lhs_call): Use it.
3919         (find_func_aliases): Use it to track conversions to restrict
3920         qualified pointers.
3921         (struct fieldoff): Add only_restrict_pointers flag.
3922         (push_fields_onto_fieldstack): Initialize it.
3923         (create_variable_info_for): Track global restrict qualified pointers.
3924         (intra_create_variable_infos): Use make_constraint_from_heapvar.
3925         Track restrict qualified pointer arguments.
3926         (set_uids_in_ptset): Use varinfo is_global_var flag.
3927         (find_what_var_points_to): Set the vars_contains_restrict flag.
3928         Always create the points-to solution for sets including restrict tags.
3929         (pt_solutions_same_restrict_base): New function.
3930         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
3931         qualified pointers use pt_solutions_same_restrict_base as
3932         additional source for disambiguation.
3933
3934 2009-06-29  Richard Guenther  <rguenther@suse.de>
3935
3936         PR middle-end/38212
3937         * alias.c (find_base_decl): Remove.
3938         (get_deref_alias_set_1): Remove restrict handling.
3939         * c-common.c (c_apply_type_quals_to_decl): Do not set
3940         DECL_POINTER_ALIAS_SET.
3941         * gimplify.c (find_single_pointer_decl_1): Remove.
3942         (find_single_pointer_decl): Likewise.
3943         (internal_get_tmp_var): Remove restrict handling.
3944         (gimple_regimplify_operands): Likewise.
3945         * omp-low.c (expand_omp_atomic_pipeline): Do not set
3946         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
3947         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
3948         * tree.c (restrict_base_for_decl): Remove.
3949         (init_ttree): Do not allocate it.
3950         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
3951         LABEL_DECL_UID for label decls.
3952         (copy_node_stat): Do not copy restrict information.
3953         (decl_restrict_base_lookup): Remove.
3954         (decl_restrict_base_insert): Likewise.
3955         (print_restrict_base_statistics): Likewise.
3956         (dump_tree_statistics): Do not call print_restrict_base_statistics.
3957         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
3958         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
3959         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
3960         (LABEL_DECL_UID): Adjust.
3961         (DECL_BASED_ON_RESTRICT_P): Remove.
3962         (DECL_GET_RESTRICT_BASE): Likewise.
3963         (SET_DECL_RESTRICT_BASE): Likewise.
3964         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
3965
3966         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
3967         instead of DECL_POINTER_ALIAS_SET.
3968         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3969         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
3970         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
3971
3972 2009-06-29  Richard Guenther  <rguenther@suse.de>
3973
3974         PR tree-optimization/40579
3975         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
3976         the IL to simplify has constants that overflowed.
3977
3978 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
3979
3980         PR tree-optimization/40550
3981         * tree-vect-generic.c (expand_vector_operations_1): Compute in
3982         vector_compute_type only when the size of vector_compute_type is
3983         less than the size of type.
3984
3985 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3986
3987         * fold-const.c (contains_label_1): Fix comments.
3988         (contains_label_p): Do not walk trees multiple time.
3989
3990 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
3991
3992         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
3993         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
3994         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
3995         ix86_fp_comparison_operator.
3996         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
3997         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
3998         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
3999         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
4000         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
4001         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
4002         (related splits): Change predicate to ix86_fp_comparison_operator.
4003         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
4004         instead of ix86_fp_comparison_codes.
4005         (ix86_trivial_fp_comparison_operator,
4006         ix86_fp_comparison_operator): New.
4007         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
4008         (ix86_expand_compare): Eliminate last two parameters.
4009         (ix86_fp_jump_nontrivial_p):&nbs