OSDN Git Service

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