OSDN Git Service

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