OSDN Git Service

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