OSDN Git Service

* config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
4         constants referencing TLS symbols.
5
6 2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
7
8         * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
9         __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
10
11 2009-08-03  Richard Guenther  <rguenther@suse.de>
12
13         * tree.c (make_vector_type): Build a main variant first,
14         get the canonical one and then build the variant.
15         * tree-ssa.c (useless_type_conversion_p_1): Handle
16         fixed-point types.
17         (useless_type_conversion_p): Conversions to pointers to
18         incomplete record types are useless.
19
20 2009-08-03  Richard Guenther  <rguenther@suse.de>
21
22         * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
23         file will be created.
24         * omp-low.c (pass_diagnose_omp_blocks): Likewise.
25         * toplev.c (compile_file): Adjust comment.
26
27 2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
28
29         * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
30         * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
31         (TARGET_PROMOTE_FUNCTION_MODE): Define.
32         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
33         (sh_promote_function_mode): Fix typo.
34
35 2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
36
37         * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
38
39 2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
40
41         * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
42         declaration arguments.
43
44 2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
45
46         * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
47         of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
48         (ix86_split_ashl): Ditto.
49         (ix86_expand_vector_init_one_nonzero): Ditto.
50         (ix86_expand_vector_set): Ditto.
51         (ix86_expand_reduc_v4sf): Ditto.
52
53 2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
54
55         * explow.c (promote_function_mode): Remove assert.
56         * config/sh/sh.c (sh_promote_function_mode): Declare.
57
58 2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
59
60         * config/pa/pa.c (pa_promote_function_mode): Declare.
61         Change to static.  Fix promote_mode call.
62
63         * gthr-dce.h (CONST_CAST2): Define if not defined.
64         (__gthread_setspecific): Use CONST_CAST2 to fix warning.
65
66         * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
67
68 2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
69
70         * expr.c (store_constructor): Use promote_decl_mode.  Remove
71         now write-only variable unsignedp.
72         (expand_expr_real_1): Use promote_decl_mode.
73         * expr.h (promote_function_mode, promote_decl_mode): New.
74         (promote_mode): Remove last argument.
75         * function.c (assign_temp): Drop last argument of promote_mode.
76         (assign_parm_find_data_types): Use promote_function_mode.
77         (assign_parm_setup_reg): Likewise.
78         (expand_function_end): Use promote_function_mode.
79         * calls.c (initialize_argument_information): Use promote_function_mode.
80         (precompute_arguments): Use promote_mode instead of checking if
81         only PROMOTE_FUNCTION_MODE is defined.
82         (expand_call): When making sibcall decisions, use promote_function_mode.
83         Below, remove an if for targetm.calls.promote_function_return and
84         and use promote_function_mode.
85         (emit_library_call_value_1): Use promote_function_mode, fix bug
86         where promote_mode was passed FOR_CALL == 0 for a return value in an
87         assertion.
88         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
89         * explow.c (promote_function_mode, promote_decl_mode): New.
90         (promote_mode): Keep only the FOR_CALL == 0 case.
91         * combine.c (setup_incoming_promotion): Remove test of
92         promote_function_args.  Use promote_function_mode.
93         * stmt.c (expand_value_return): Use promote_decl_mode.
94         (expand_decl): Use promote_decl_mode.
95
96         * expr.c (store_constructor): Use promote_decl_mode.  Remove
97         now write-only variable unsignedp.
98         (expand_expr_real_1): Use promote_decl_mode.
99         * expr.h (promote_function_mode, promote_decl_mode): New.
100         (promote_mode): Remove last argument.
101         * function.c (assign_temp): Drop last argument of promote_mode.
102         (assign_parm_find_data_types): Use promote_function_mode.
103         (assign_parm_setup_reg): Likewise.
104         (expand_function_end): Use promote_function_mode.
105         * calls.c (initialize_argument_information): Use promote_function_mode.
106         (precompute_arguments): Use promote_mode instead of checking if
107         only PROMOTE_FUNCTION_MODE is defined.
108         (expand_call): When making sibcall decisions, use promote_function_mode.
109         Below, remove an if for targetm.calls.promote_function_return and
110         and use promote_function_mode.
111         (emit_library_call_value_1): Use promote_function_mode, fix bug
112         where promote_mode was passed FOR_CALL == 0 for a return value in an
113         assertion.
114         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
115         * explow.c (promote_function_mode, promote_decl_mode): New.
116         (promote_mode): Keep only the FOR_CALL == 0 case.
117         * combine.c (setup_incoming_promotion): Remove test of
118         promote_function_args.  Use promote_function_mode.
119         * stmt.c (expand_value_return): Use promote_decl_mode.
120         (expand_decl): Use promote_decl_mode.
121
122         * explow.c (promote_function_mode): Just call the target hook.
123         * targhooks.c (default_promote_function_mode,
124         default_promote_function_mode_always_promote): New.
125         * targhooks.h (default_promote_function_mode,
126         default_promote_function_mode_always_promote): Declare.
127         * target.h (promote_function_args, promote_function_return): Remove.
128         (promote_function_mode): New.
129         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
130         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
131         (TARGET_PROMOTE_FUNCTION_MODE): New.
132         (TARGET_CALLS): Adjust.
133         * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
134         TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
135
136         * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
137         * config/s390/s390.c (s390_promote_function_mode): ... here,
138         with pointer handling.
139         (TARGET_PROMOTE_FUNCTION_MODE): Define.
140         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
141
142         * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
143         * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
144         with pointer handling.
145         (TARGET_PROMOTE_FUNCTION_MODE): Define.
146         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
147         
148         * config/sh/sh-protos.h (sh_promote_function_mode): New.
149         * config/sh/sh.c (sh_promote_function_mode): New.
150         (TARGET_PROMOTE_FUNCTION_MODE): Define.
151         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
152
153         * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
154         * config/cris/cris.c (cris_promote_function_mode): ... here.
155         (TARGET_PROMOTE_FUNCTION_MODE): Define.
156         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
157
158         * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
159         * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
160         (TARGET_PROMOTE_FUNCTION_MODE): Define.
161         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
162
163         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
164         * config/arm/arm.c (arm_promote_function_mode): ... here, without
165         complex type handling.
166         (TARGET_PROMOTE_FUNCTION_MODE): Define.
167         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
168
169         * config/pa/pa.c (pa_promote_function_mode): New.
170         (TARGET_PROMOTE_FUNCTION_MODE): Define.
171         (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
172
173         * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
174         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
175         (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
176         * config/xtensa/xtensa.c: Likewise.
177         * config/stormy16/stormy16.c: Likewise.
178         * config/iq2000/iq2000.c: Likewise.
179         * config/rs6000/rs6000.c: Likewise.
180         * config/picochip/picochip.c: Likewise.
181         * config/arc/arc.c: Likewise.
182         * config/mcore/mcore.c: Likewise.
183         * config/score/score.c: Likewise.
184         * config/mips/mips.c: Likewise.
185         * config/bfin/bfin.c: Likewise.
186         * config/ia64/ia64.c: Likewise (disabled though).
187
188         * config/frv/frv.h: Remove pointless remark.
189
190         * doc/tm.texi (PROMOTE_FUNCTION_MODE,
191         TARGET_PROMOTE_FUNCTION_ARGS,
192         TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
193         (TARGET_PROMOTE_FUNCTION_MODE): ... this.
194
195 2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
196
197         * doc/invoke.texi (-fgraphite-force-parallel): Renamed
198         -floop-parallelize-all.
199         * toplev.c (process_options): Rename flag_graphite_force_parallel to
200         flag_loop_parallelize_all.
201         * tree-ssa-loop.c (gate_graphite_transforms): Same.
202         * graphite.c (graphite_transform_loops): Same.
203         * common.opt: Same.
204         * graphite-poly.c (apply_poly_transforms): Same.
205
206 2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
207
208         PR tree-optimization/40914
209         * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
210         if set, then check the delta field of the PMF record.
211         (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
212         (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
213         call is stored in the delta.
214
215 2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
216
217         * config/mips/mips.md (*clear_upper32_dext): New pattern.
218
219 2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
220
221         * config/i386/bsd.h (ASM_BYTE): New define.
222         * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
223         * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
224         .byte.  Use fputs or putc instead of fprintf where appropriate.
225         * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
226         fputs or putc instead of fprintf where appropriate.
227         * config/i386/i386elf.h: Ditto.
228         * config/i386/sysv4.h: Ditto.
229         
230         * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
231         * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
232         (*tls_global_dynamic_64): Ditto.
233
234 2009-07-31  Christian Bruel  <christian.bruel@st.com>   
235
236         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
237         
238 2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
239
240         * config/arm/arm.c (arm_arm_address_cost): Fix typo. 
241         Remove dead code for MINUS.
242
243 2009-07-31  Anthony Green  <green@moxielogic.com>
244
245         * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
246         $r12 in prologue.
247         (moxie_expand_epilogue): Ditto for epilogue.
248         (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
249         incoming arguments.
250         (moxie_function_arg): Ditto.
251         (moxie_pass_by_reference): Ditto.
252         (moxie_arg_partial_bytes): Ditto.
253         * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
254         (FUNCTION_ARG_ADVANCE) Ditto.
255         (REG_PARM_STACK_SPACE) Ditto.
256         (FUNCTION_ARG_REGNO_P) Dito.
257
258         * config.gcc: Add moxie linux config support.
259         * gcc/config/moxie/uclinux.h: New file.
260
261 2009-07-31  DJ Delorie  <dj@redhat.com>
262
263         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
264         (UNSPECV_SP_SWITCH_E): New.
265         (sp_switch_1): Change to an unspec.
266         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
267         replace $r15.
268         * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
269         reference the new stack's address
270
271 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
272
273         * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
274         graphite-clast-to-gimple.o, graphite-dependences.o,
275         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
276         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
277         (graphite-blocking.o,
278         graphite-clast-to-gimple.o, graphite-dependences.o,
279         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
280         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
281         * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
282         * cfgloop.h (struct loop): Add can_be_parallel field.
283         * common.opt (fgraphite-identity): Moved up.
284         (fgraphite-force-parallel): New flag.
285         * graphite.c: Rewrite.
286         * graphite.h: Rewrite.
287         * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
288         after Graphite.
289         * toplev.c (graphite_out_file): New file descriptor.
290         (graphite_in_file): New.
291         (process_options): flag_graphite_force_parallel cannot be used without
292         Graphite.
293         * tree-ssa-loop.c: Include toplev.h.
294         (gate_graphite_transforms): Enable flag_graphite for
295         flag_graphite_force_parallel.
296
297 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
298
299         * ChangeLog.graphite: New.
300         * graphite-blocking.c: New.
301         * graphite-clast-to-gimple.c: New.
302         * graphite-clast-to-gimple.h: New.
303         * graphite-dependences.c: New.
304         * graphite-dependences.h: New.
305         * graphite-interchange.c: New.
306         * graphite-poly.c: New.
307         * graphite-poly.h: New.
308         * graphite-ppl.c: New.
309         * graphite-ppl.h: New.
310         * graphite-scop-detection.c: New.
311         * graphite-scop-detection.h: New.
312         * graphite-sese-to-poly.c: New.
313         * graphite-sese-to-poly.h: New.
314         * sese.c: New.
315         * sese.h: New.
316
317 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
318
319         * tree-chrec.c (evolution_function_right_is_integer_cst): New.
320         * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
321
322 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
323
324         * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
325         (scev_is_linear_expression): Return false if the evolution is not
326         affine multivariate.
327
328 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
329
330         * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
331         * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
332
333 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
334
335         * tree-data-ref.c (debug_data_references): New.
336         (debug_data_reference): New.
337         * tree-data-ref.h (debug_data_references): Declared.
338         (debug_data_reference): Declared.
339
340 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
341
342         * tree-data-ref.c (stmt_simple_memref_p: Removed.
343         * tree-data-ref.h (scop_p): Removed.
344         (struct data_reference): Remove field scop.
345         (DR_SCOP): Removed.
346         (stmt_simple_memref_p): Removed.
347
348 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
349
350         * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
351         * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
352         basic block empty.
353
354 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
355
356         * doc/invoke.texi (-fgraphite-force-parallel): Documented.
357
358 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
359
360         * doc/invoke.texi (-fgraphite-identity): Documented.
361
362 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
363
364         * tree-scalar-evolution.c: Fix comment.
365         (instantiate_scev_1): Return unknow from scev instantiation if the
366         result is not above instantiate_below.
367
368 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
369
370         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
371         static anymore.  Instantiate the symbols that may have been introduced
372         by chrec_apply.
373         * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
374         Declared.
375
376 2009-07-30  DJ Delorie  <dj@redhat.com>
377
378         * config/mep/mep.c (mep_asm_init_sections): Add section flags and
379         .vliw directive to VLIW sections.
380
381 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
382
383         * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
384         New variables.
385         ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
386         (AUTOHEADER): New variable.
387         ($(srcdir)/cstamp-h.in): Use it.
388
389 2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
390             Pat Haugen  <pthaugen@us.ibm.com>
391             Revital Eres <ERES@il.ibm.com>
392
393         * config/rs6000/vector.md (VEC_F): Add VSX support.
394         (VEC_A): Ditto.
395         (VEC_N): Ditto.
396         (mov<mode>): Ditto.
397         (vector_load_<mode>): Ditto.
398         (vector_store_<mode>): Ditto.
399         (vector GPR move split): Ditto.
400         (vec_reload_and_plus_<mptrsize>): Ditto.
401         (vec_reload_and_reg_<mptrsize>): Ditto.
402         (add<mode>3): Ditto.
403         (sub<mode>3): Ditto.
404         (mul<mode>3): Ditto.
405         (neg<mode>2): Ditto.
406         (abs<mode>2): Ditto.
407         (smin<mode>3): Ditto.
408         (smax<mode>3): Ditto.
409         (vector_eq<mode>): Ditto.
410         (vector_gt<mode>): Ditto.
411         (vector_ge<mode>): Ditto.
412         (vector_gtu<mode>): Ditto.
413         (vector_select_<mode>_uns): Ditto.
414         (vector_eq_<mode>_p): Ditto.
415         (vector_gt_<mode>_p): Ditto.
416         (vector_ge_<mode>_p): Ditto.
417         (vector_gtu_<mode>_p): Ditto.
418         (cr6_test_for_zero): Ditto.
419         (cr6_test_for_zero_reverse): Ditto.
420         (cr6_test_for_lt): Ditto.
421         (cr6_test_for_lt_reverse): Ditto.
422         (xor<mode>3): Ditto.
423         (ior<mode>3): Ditto.
424         (and<mode>3): Ditto.
425         (one_cmpl<mode>2): Ditto.
426         (nor<mode>2): Ditto.
427         (andc<mode>2): Ditto.
428         (float<VEC_int<mode>2): Ditto.
429         (unsigned_float<VEC_int><mode>2): Ditto.
430         (fix_trunc<mode><VEC_int>2): Ditto.
431         (fixuns_trunc<mode><VEC_int>2): Ditto.
432         (vec_init<mode>):
433         (vec_set<mode>): Ditto.
434         (vec_extract<mode>): Ditto.
435         (vec_interleave_highv4sf): Ditto.
436         (vec_interleave_lowv4sf): Ditto.
437         (vec_realign_load_<mode>): Ditto.
438         (vec_shl_<mode>): Ditto.
439         (vec_shr_<mode>): Ditto.
440         (div<mode>3): New patterns for VSX.
441         (vec_interleave_highv2df): Ditto.
442         (vec_interleave_lowv2df): Ditto.
443         (vec_pack_trunc_v2df): Ditto.
444         (vec_pack_sfix_trunc_v2df): Ditto.
445         (vec_pack_ufix_trunc_v2df): Ditto.
446         (vec_unpacks_hi_v4sf): Ditto.
447         (vec_unpacks_lo_v4sf): Ditto.
448         (vec_unpacks_float_hi_v4si): Ditto.
449         (vec_unpacku_float_lo_v4si): Ditto.
450         (vec_unpacku_float_hi_v4si): Ditto.
451         (vec_unpacks_float_lo_v4si): Ditto.
452         (movmisalign<mode>): Ditto.
453         (vector_ceil<mode>2): New patterns for vectorizing math library.
454         (vector_floor<mode>2): Ditto.
455         (vector_btrunc<mode>2): Ditto.
456         (vector_copysign<mode>3): Ditto.
457
458         * config/rs6000/predicates.md (easy_vector_constant_msb): New
459         predicate for setting the high bit in each word, used for copysign.
460
461         * config/rs6000/ppc-asm.h (f19): Whitespace.
462         (f32-f63): Define if VSX.
463         (v0-v31): Define if Altivec.
464         (vs0-vs63): Define if VSX.
465
466         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
467
468         * config/rs6000/power7.md: New file, provide tuning parameters for
469         -mcpu=power7.
470
471         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
472         (rs6000_cpu_cpp_builtins): Ditto.
473         (altivec_overloaded_builtins): Ditto.
474         (altivec_resolve_overloaded_builtin): Ditto.
475
476         * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
477         debug switch to disable vectorizing simple math builtin
478         functions.
479
480         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
481         Vectorize simple math builtin functions.
482         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
483         hook to vectorize math builtins.
484         (rs6000_override_options): Enable -mvsx on -mcpu=power7.
485         (rs6000_builtin_conversion): Add VSX/power7 support.
486         (rs6000_builtin_vec_perm): Ditto.
487         (vsplits_constant): Add support for loading up a vector constant
488         with just the high bit set in each part.
489         (rs6000_expand_vector_init): Add VSX/power7 support.
490         (rs6000_expand_vector_set): Ditto.
491         (rs6000_expand_vector_extract): Ditto.
492         (rs6000_emit_move): Ditto.
493         (bdesc_3arg): Ditto.
494         (bdesc_2arg): Ditto.
495         (bdesc_1arg): Ditto.
496         (rs6000_expand_ternop_builtin): Ditto.
497         (altivec_expand_builtin): Ditto.
498         (rs6000_expand_unop_builtin): Ditto.
499         (rs6000_init_builtins): Ditto.
500         (altivec_init_builtins): Ditto.
501         (builtin_function_type): Ditto.
502         (rs6000_common_init_builtins): Ditto.
503         (rs6000_handle_altivec_attribute); Ditto.
504         (rs6000_mangle_type): Ditto.
505         (rs6000_vector_mode_supported_p): Ditto.
506         (rs6000_mode_dependent_address): Altivec addresses with AND -16
507         are mode dependent.
508
509         * config/rs6000/vsx.md: New file for VSX support.
510
511         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
512         identifing values with just the most significant bit set.
513         (enum rs6000_builtins): Add builtins for VSX.  Add simple math
514         vectorized builtins.
515
516         * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
517         (UNSPEC_VRFIM): Delete.
518         (splitter for loading up vector with most significant bit): New
519         splitter for vectorizing copysign.
520         (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
521         vectorizing simple math functions.
522         (altivec_vrfip): Add support for vectorizing simple math functions.
523         (altivec_vrfim): Ditto.
524         (altivec_copysign_v4sf3): New insn for Altivec copysign support.
525
526         * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
527         (power7.md, vsx.md): Include for power7 support.
528         (copysigndf3): Use VSX instructions if -mvsx.
529         (negdf2_fpr): Ditto.
530         (absdf2_fpr): Ditto.
531         (nabsdf2_fpr): Ditto.
532         (adddf3_fpr): Ditto.
533         (subdf3_fpr): Ditto.
534         (muldf3_fpr): Ditto.
535         (divdf3_fpr): Ditto.
536         (fix_truncdfdi2_fpr): Ditto.
537         (cmpdf_internal1): Ditto.
538         (fred, fred_fpr): Convert into expander/insn to add VSX support.
539         (btruncdf2, btruncdf2_fpr): Ditto.
540         (ceildf2, ceildf2_fpr): Ditto.
541         (floordf2, floordf2_fpr): Ditto.
542         (floatdidf2, floatdidf2_fpr): Ditto.
543         (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
544         (fmsubdf4_fpr): Ditto.
545         (fnmadddf4_fpr_1): Ditto.
546         (fnmadddf4_fpr_2): Ditto.
547         (fnmsubdf4_fpr_1): Ditto.
548         (fnmsubdf4_fpr_2): Ditto.
549         (fixuns_truncdfdi2): Add expander for VSX support.
550         (fix_truncdfdi2): Ditto.
551         (fix_truncdfsi2): Ditto.
552         (ftruncdf2): Ditto.
553         (btruncsf2): Whitespace.
554         (movdf_hardfloat32): Add support for VSX registers.
555         (movdf_softfloat32): Ditto.
556         (movdf_hardfloat64): Ditto.
557         (movdf_hardfloat64_mfpgpr): Ditto.
558         (movdf_softfloat64): Ditto.
559         (movti splitters): Add check for vector registers supporting
560         TImode in the future.
561         (bpermd): Add power7 bpermd instruction.
562
563         * config/rs6000/altivec.h (vec_div): Define if VSX.
564         (vec_mul): Ditto.
565         (vec_msub): Ditto.
566         (vec_nmadd): Ditto.
567         (vec_nearbyint): Ditto.
568         (vec_rint): Ditto.
569         (vec_sqrt): Ditto.
570         (all predicates): Use the generic builtin function, and not the V4SF
571         specific function so that the predicates will work with VSX's V2DF.
572         (vec_all_*): Ditto.
573         (vec_any_*): Ditto.
574
575         * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
576         Document new VSX functions and types.
577
578         * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
579         switches.
580
581         * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
582         "wa", and "j" constraints.  Modify "v" to talk about Altivec
583         instead of just vector.
584
585 2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
586
587         PR debug/26475
588         * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
589         location for phi arguments.
590         (rewrite_update_phi_arguments): Find locations for reaching defs.
591         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
592         Add location to add_phi_arg calls.
593         * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
594         * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
595         split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
596         * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
597         create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
598         * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
599         * tree-phinodes.c (make_phi_node): Initialize location.
600         (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
601         (add_phi_arg): Add location parameter.
602         (remove_phi_arg_num): Move location when moving phi argument.
603         * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 
604         location.
605         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
606         slpeel_update_phi_nodes_for_guard1,
607         slpeel_update_phi_nodes_for_guard2,
608         slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
609         vect_loop_versioning): Set locations.
610         * tree-parloops.c (create_phi_for_local_result,
611         transform_to_exit_first_loop, create_parallel_loop): Add locations.
612         * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
613         * tree-vect-loop.c (get_initial_def_for_induction,
614         vect_create_epilog_for_reduction, vect_finalize_reduction): Add
615         locations.
616         * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
617         (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
618         (gimple_phi_arg_set_location): New.  Set locus.
619         (gimple_phi_arg_has_location): New.  Check for locus.
620         (redirect_edge_var_map_location): New.  Return locus from var_map.
621         * tree-vect-data-refs.c (vect_setup_realignment): Set location.
622         * tree-ssa-phiopt.c (conditional_replacement): Set locus when
623         combining PHI arguments.
624         (cond_store_replacement): Set location.
625         * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
626         * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
627         scop_add_exit_phis_edge): Add locations.
628         * tree-cfgcleanup.c (remove_forwarder_block,
629         remove_forwarder_block_with_phi): Add locations.
630         * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
631         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
632         locations.
633         * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
634         * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
635         flush_pending_stmts): Add source location.
636         * lambda-code.c (perfect_nestify): Maintain location stack with argument
637         stack to preserve locations.
638         * tree-vect-stmts.c (vectorizable_load): Add location.
639         * tree-inline.c (copy_phis_for_bb): Copy locus.
640         (setup_one_parameter): Add call locus to inlined parameter stmts.
641         (initialize_inlined_parameters): Pass in call location as parameter
642         assignment locus.
643         (tree_function_versioning): Pass location to setup_one_parameter.
644         * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
645         * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
646         copy and edge lists.
647         (insert_partition_copy_on_edge, insert_value_copy_on_edge,
648         insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 
649         locus parameter and override the stmt default if provided.
650         (new_elim_graph, clear_elim_graph, delete_elim_graph,
651         elim_graph_add_edge, elim_graph_remove_succ_edge,
652         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
653         elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
654         eliminate_phi):  Add locus info in elimination graph for each edge and
655         value copy.
656         (insert_backedge_copies): Copy locus if present.
657         * tree-flow.h (struct _edge_var_map): Add locus field.
658         * tree-switch_conversions.c (fix_phi_nodes): Add locations.
659         * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
660         add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 
661         locations.
662         * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
663         
664 2009-07-30  Martin Jambor  <mjambor@suse.cz>
665
666         PR tree-optimization/40570
667         * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
668         use inlining loops.
669
670 2009-07-30  Razya Ladelsky <razya@il.ibm.com>
671
672         * ssa-loop-manip.c: Include langhooks.h.
673         (rewrite_phi_with_iv): New.
674         (rewrite_all_phi_nodes_with_iv): New.
675         (canonicalize_loop_ivs): Move here from tree-parloops.c.
676         Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
677         * tree-parloops.c (loop_parallel_p): Move out all conditions
678         except dependency check.
679         (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
680         (gen_parallel_loop): Call canonicalize_loop_ivs without
681         reduction_list argument.
682         (build_new_reduction): New.
683         (gather_scalar_reductions): New.
684         (try_get_loop_niter): New.
685         (try_create_reduction_list): New.
686         (parallleize_loops): Change the parallel conditions check.
687         * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
688         * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
689
690 2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
691
692         * opt-functions.awk (opt_args): Allow argument to be enclosed in
693         curly braces.
694         * doc/options.texi (Option properties):  Mention new quoting syntax.
695
696 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
697
698         * config/alpha/alpha.c (alpha_start_function):
699         Handle VMS_DEBUG_MAIN_POINTER
700         * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
701         * doc/invoke.texi: Document -mdebug-main switch.
702
703 2009-07-29  Richard Henderson  <rth@redhat.com>
704
705         * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
706         (cgraph_create_edge_including_clones): Likewise.
707         * tree-inline.c (copy_bb): Operate on the correct edges
708         when updating the callgraph.
709
710 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
711
712         * config/alpha/vms-cc.c: Deleted.
713         * config/alpha/vms-ld.c: Deleted.
714         * config/alpha/t-vms64: Moved to config/vms
715         * config/alpha/vms-crt0-64.c: Moved to config/vms
716         * config/alpha/vms-crt0.c: Moved to config/vms
717         * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
718         * config/alpha/vms-psxcrt0.c: Moved to config/vms
719         * config/alpha/xm-vms.h: Moved to config/vms
720         * config/alpha/x-vms: Moved to config/vms
721         * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
722         config/vms/t-vms.
723         * config/vms/t-vms: Moved here from config/alpha. Alpha specific
724         parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
725         (version): Set.
726         * config/vms/t-vms64: Moved here from config/alpha
727         * config/vms/vms-crt0-64.c: Moved here from config/alpha.
728         (argc,argv,envp): Enforce 32bit malloc'ing.
729         * config/vms/vms-psxcrt0-64.c: Likewise.
730         * config/vms/vms-crt0.c: Moved here from config/alpha.
731         * config/vms/vms-psxcrt0.c: Likewise.
732         * config/vms/vms-crtl-64.h: New file.
733         * config/vms/vms-crtl.h: New file.
734         * config/vms/vms.opt: New file.
735         * config/vms/xm-vms64.h: New file.
736         * config/vms/xm-vms.h: Moved here from config/alpha.
737         (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
738         Set.
739         * config/vms/x-vms: Moved here from config/alpha.
740         (version, VMS_EXTRA_PARTS): Moved to t-vms.
741         (vms-ld.o, vms-cc.o): Removed.
742         (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
743
744 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
745
746         * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
747         correct stack (obvious VMS fix).
748
749 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
750
751         * dwarf2out.c (output_file_names): Output VMS style file name, size,
752         date, version info if VMS_DEBUGGING_INFO defined.
753         * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
754         size, date calculating code moved here.
755
756 2009-07-29  Paul Brook  <paul@codesourcery.com>
757
758         * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
759         do_push/do_pop.
760
761 2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
762
763         PR target/40577
764         * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
765         to DImode when generating insq_le insn.
766
767 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
768
769         * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
770         New macro set for VMS_DEBUGGGING_INFO.
771         (AT_string_form): Use it.
772
773 2009-07-28  DJ Delorie  <dj@redhat.com>
774
775         * config/mep/mep.c (vtext_section): New.
776         (vftext_section): New.
777         (ftext_section): New.
778         (mep_select_section): Add support for functions.
779         (mep_unique_section): Likewise.
780         (mep_asm_init_sections): Likewise.
781         (mep_encode_section_info): Remove it from here.
782
783         * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
784
785 2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
786
787         * tree.h (TREE_DEPRECATED): Document it is used for types too.
788         (TYPE_VECTOR_OPAQUE): Use default_def_flag
789
790 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
791
792         * dwarf2out.c (output_file_names): Test new macro
793         DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
794         (add_comp_dir_attribute): Likewise.
795
796 2009-07-28  Kai Tietz  <kai.tietz@onevision.com>
797
798         * config/i386/mingw-w64.h (LINK_SPEC): Add
799         separating space between commands.
800
801 2009-07-28  Jan Hubicka  <jh@suse.cz>
802
803         PR tree-optimization/40759
804         * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
805         for renaming.
806
807 2009-07-27  DJ Delorie  <dj@redhat.com>
808
809         * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
810         types are dword-aligned.
811         (mep_expand_va_start): Likewise.
812
813 2009-07-27  Olivier Hainque  <hainque@adacore.com>
814             Douglas B Rupp  <rupp@gnat.com>
815
816         * convert.c (convert_to_pointer): Don't assume the target
817         pointer type is POINTER_SIZE long. Fetch its precision instead.
818
819 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
820
821         * system.h (fopen): Undefine if macro.
822
823 2009-07-27  Jakub Jelinek  <jakub@redhat.com>
824
825         * dwarf2out.c (output_cfi_p): Removed.
826         (output_cfis): New function.
827         (output_fde): New function, split from output_call_frame_info.
828         (output_call_frame_info): Use it.
829         (dwarf2out_switch_text_section): Use output_cfis.
830
831 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
832
833         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
834         TARGET_BI_ARCH is specified without enabling SJLJ.
835         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
836         if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
837
838 2009-07-26  Mikael Pettersson <mikpe@it.uu.se>
839
840         * arm.md (negdi2): Use DImode if forcing a value into a register.
841
842 2009-07-26  Ira Rosen  <irar@il.ibm.com>
843
844         PR tree-optimization/40801
845         * tree-vect-stmts.c (vectorizable_call): Get previous copy
846         of vector operand from the previous copy of vector statement.
847         Pass the correct definition type value to
848         vect_get_vec_def_for_stmt_copy().
849
850 2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
851
852         * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
853         const char ** conversion.
854
855 2009-07-25 David Daney <ddaney@caviumnetworks.com>
856
857         * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
858         fancy_abort() if !ENABLE_ASSERT_CHECKING.
859         (gcc_unreachable): Invoke __builtin_unreachable() if
860         !ENABLE_ASSERT_CHECKING.
861
862 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
863
864         PR rtl-optimization/40445
865         * emit-rtl.c (next_nonnote_insn_bb): New function.
866         * rtl.h (next_nonnote_insn_bb): Declare new function.
867         * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
868         with no successors that is the successor of the ENTRY_BLOCK.
869         Continue from the top after removing an empty fallthrough block.
870         * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
871         of next_nonnote_insn.
872
873 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
874
875         * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
876         
877 2009-07-25  Martin Jambor  <mjambor@suse.cz>
878
879         * c-common.c (c_common_attribute_table): New element for noclone.
880         (handle_noclone_attribute): New function. Forward-declare.
881         * tree-inline.c (tree_versionable_function_p): Check for noclone
882         attribute.
883         * doc/extend.texi (Labels as Values): Document need for noclone.
884         (Function Attributes): Document noclone attribute.
885
886 2009-07-25  Jakub Jelinek  <jakub@redhat.com>
887
888         PR rtl-optimization/34999
889         * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
890         and dw_fde_switched_cold_to_hot fields.
891         (output_cfi_p): New function.
892         (output_call_frame_info): If fde->dw_fde_switched_sections,
893         output 2 FDEs instead of one with corrupted header.
894         (dwarf2out_do_cfi_startproc): New function.
895         (dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
896         and fde->dw_fde_switched_cold_to_hot.
897         (dwarf2out_switch_text_section): Compute
898         fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
899         If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
900         dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
901         Otherwise, compute fde->dw_fde_switch_cfi.
902
903 2009-07-24  Cary Coutant  <ccoutant@google.com>
904
905         * tree-cfg.c (assign_discriminator): Add explicit parentheses.
906
907 2009-07-24  Cary Coutant  <ccoutant@google.com>
908
909         * cfghooks.c (split_block): Copy discriminator to new block.
910         * tree-cfg.c (assign_discriminator): Check location of last
911         instruction in block as well as first.
912
913 2009-07-24  Uros Bizjak  <ubizjak@gmail.com>
914
915         * config/i386/linux.c: Use fputs or putc instead of fprintf
916         where appropriate.
917         * config/i386/gas.h: Ditto.
918         * config/i386/x86-64.h: Ditto.
919         * config/i386/att.h: Ditto.
920
921 2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
922
923         * expmed.c (emit_store_flag): Use a recursive call to optimize the
924         xor case.
925
926 2009-07-24  Martin Jambor  <mjambor@suse.cz>
927
928         * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
929         (ipa_push_func_to_list_1): Declare.
930         (ipa_push_func_to_list): New function.
931
932         * ipa-prop.c (ipa_push_func_to_list_1): New function.
933         (ipa_init_func_list): Call ipa_push_func_to_list_1.
934         (ipa_push_func_to_list): Removed.
935         (ipa_pop_func_from_list): Clear node_enqueued flag.
936
937 2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
938         
939         * config/s390/s390.c (override_options): Default
940         max-unrolled-insns to 100 for z10 tuning.
941
942 2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>
943
944         * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
945         tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
946         tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
947         tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
948         tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
949         tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
950         lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
951
952 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
953
954         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
955         use default set in mingw32.h header.
956         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
957         64-bit /mingw/include path.
958         (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
959         path.
960
961 2009-07-23  Neil Vachharajani  <nvachhar@google.com>
962
963         PR rtl-optimization/40209
964         * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
965
966 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
967
968         * config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
969         ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
970         with the rest of string where appropriate.  Use fputs or putc
971         instead of fprintf where appropriate.
972
973 2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
974             Pat Haugen  <pthaugen@us.ibm.com>
975             Revital Eres <ERES@il.ibm.com>
976
977         * config/rs6000/vector.md: New file.  Move most of the vector
978         expander support here from altivec.md to allow for the VSX vector
979         unit in the future.  Add support for secondary_reload patterns.
980         Rewrite the patterns for vector comparison, and vector comparison
981         predicate instructions so that the RTL expresses the desired
982         behavior, instead of using unspec.
983
984         * config/rs6000/constraints.md ("f" constraint): Use
985         rs6000_constraints to hold the precalculated register class.
986         ("d" constraint): Ditto.
987         ("wd" constraint): New constraint for VSX.
988         ("wf" constraint): Ditto.
989         ("ws" constraint): Ditto.
990         ("wa" constraint): Ditto.
991         ("wZ" constraint): Ditto.
992         ("j" constraint): Ditto.
993
994         * config/rs6000/predicates.md (vsx_register_operand): New
995         predicate for VSX.
996         (vfloat_operand): New predicate for vector.md.
997         (vint_operand): Ditto.
998         (vlogical_operand): Ditto.
999         (easy_fp_constant): If VSX, 0.0 is an easy constant.
1000         (easy_vector_constant): Add VSX support.
1001         (altivec_indexed_or_indirect_operand): New predicate for
1002         recognizing Altivec style memory references with AND -16.
1003
1004         * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
1005         for vector secondary reload support.
1006         (rs6000_vector_reg_class): Delete, replacing it with
1007         rs6000_constraints.
1008         (rs6000_vsx_reg_class): Ditto.
1009         (rs6000_constraints): New array to hold the register classes of
1010         each of the register constraints that can vary at runtime.
1011         (builtin_mode_to_type): New static array for builtin function type
1012         creation.
1013         (builtin_hash_table): New static hash table for builtin function
1014         type creation.
1015         (TARGET_SECONDARY_RELOAD): Define target hook.
1016         (TARGET_IRA_COVER_CLASSES): Ditto.
1017         (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
1018         registers are 128 bits if VSX memory reference instructions are used.
1019         (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
1020         unit is being used.
1021         (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
1022         (rs6000_debug_reg_global): Move -mdebug=reg statements here.
1023         Print several of the scheduling related parameters.
1024         (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
1025         rs6000_constraints instead of rs6000_vector_reg_class.  Move
1026         -mdebug=reg code to rs6000_debug_reg_global.  Add support for
1027         -mvsx-align-128 debug switch.  Drop testing float_p if VSX or
1028         Altivec.  Add VSX support.  Setup for secondary reload support on
1029         Altivec/VSX registers.
1030         (rs6000_override_options): Make power7 set the scheduling groups
1031         like the power5.  Add support for new debug switches to override
1032         the scheduling defaults.  Temporarily disable -mcpu=power7 from
1033         setting -mvsx.  Add support for debug switches -malways-hint,
1034         -msched-groups, and -malign-branch-targets.
1035         (rs6000_buitlin_conversion): Add support for returning unsigned
1036         vector conversion functions to fix regressions due to stricter
1037         type checking.
1038         (rs6000_builtin_mul_widen_even): Ditto.
1039         (rs6000_builtin_mul_widen_odd): Ditto.
1040         (rs6000_builtin_vec_perm): Ditto.
1041         (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
1042         (rs6000_expand_vector_init): Initial VSX support for using xxlxor
1043         to zero a register.
1044         (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
1045         generated upstream.
1046         (bdesc_3arg): Add builtins for unsigned types.  Add builtins for
1047         VSX types for bit operations.  Changes to accomidate vector.md.
1048         (bdesc_2arg): Ditto.
1049         (bdesc_1arg): Ditto.
1050         (struct builtin_description_predicates): Rewrite predicate
1051         handling so that RTL describes the operation, instead of passing
1052         the instruction to be used as a string argument.
1053         (bdesc_altivec_preds): Ditto.
1054         (altivec_expand_predicate_builtin): Ditto.
1055         (altivec_expand_builtin): Ditto.
1056         (rs6000_expand_ternop_builtin): Use a switch instead of an if
1057         statement for vsldoi support.
1058         (altivec_expand_ld_builtin): Change to use new names from vector.md.
1059         (altivec_expand_st_builtin): Ditto.
1060         (paired_expand_builtin): Whitespace changes.
1061         (rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
1062         builtin_mode_to_type table for secondary reload.  Call
1063         builtin_function_type to build random builtin functions.
1064         (altivec_init_builtins): Change to use builtin_function_type to
1065         create builtin function types dynamically as we need them.
1066         (builtin_hash_function): New support for hashing the tree types
1067         for builtin function as we need it, rather than trying to build
1068         all of the trees that we need.  Add initial preliminary VSX support.
1069         (builtin_function_type): Ditto.
1070         (builtin_function_eq): Ditto.
1071         (builtin_hash_struct): Ditto.
1072         (rs6000_init_builtins): Ditto.
1073         (rs6000_common_init_builtins): Ditto.
1074         (altivec_init_builtins): Ditto.
1075         (rs6000_common_init_builtins): Ditto.
1076         (enum reload_reg_type): New enum for simplifing reg classes.
1077         (rs6000_reload_register_type): Simplify register classes into GPR,
1078         Vector, and other registers.  Altivec and VSX addresses in reload.
1079         (rs6000_secondary_reload_inner): Ditto.
1080         (rs6000_ira_cover_classes): New target hook, that returns the
1081         appropriate cover classes, based on -mvsx being used or not.
1082         (rs6000_secondary_reload_class): Add VSX support.
1083         (get_vec_cmp_insn): Delete, rewrite vector conditionals.
1084         (get_vsel_insn): Ditto.
1085         (rs6000_emit_vector_compare): Rewrite vector conditional support
1086         so that where we can, we use RTL operators, instead of blindly use
1087         UNSPEC.
1088         (rs6000_emit_vector_select): Ditto.
1089         (rs6000_emit_vector_cond_expr): Ditto.
1090         (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
1091         (create_TOC_reference): Add -mdebug=addr support.
1092         (emit_frame_save): VSX loads/stores need register indexed addressing.
1093
1094         * config/rs6000/rs6000.md: Include vector.md.
1095
1096         * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
1097
1098         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1099         support for V2DI, V2DF in logical, permute, select operations.
1100
1101         * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
1102         switch for vsx/power7.
1103         (-mvsx-scalar-memory): Ditto.
1104         (-mvsx-align-128): Ditto.
1105         (-mallow-movmisalign): Ditto.
1106         (-mallow-df-permute): Ditto.
1107         (-msched-groups): Ditto.
1108         (-malways-hint): Ditto.
1109         (-malign-branch-targets): Ditto.
1110         
1111         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
1112         hook instead.
1113         (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
1114         (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
1115         (rs6000_vector_reg_class): Delete.
1116         (rs6000_vsx_reg_class): Ditto.
1117         (enum rs6000_reg_class_enum): New enum for the constraints that
1118         vary based on target switches.
1119         (rs6000_constraints): New array to hold the register class for all
1120         of the register constraints that vary based on the switches used.
1121         (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
1122         (enum rs6000_builtins): Add unsigned varients for the builtin
1123         declarations returned by target hooks for expanding multiplies,
1124         select, and permute operations.  Add VSX builtins.
1125         (enum rs6000_builtin_type_index): Add entries for VSX.
1126         (V2DI_type_node): Ditto.
1127         (V2DF_type_node): Ditto.
1128         (unsigned_V2DI_type_node): Ditto.
1129         (bool_long_type_node): Ditto.
1130         (intDI_type_internal_node): Ditto.
1131         (uintDI_type_internal_node): Ditto.
1132         (double_type_internal_node): Ditto.
1133
1134         * config/rs6000/altivec.md (whole file): Move all expanders to
1135         vector.md from altivec.md.  Rename insn matching functions to be
1136         altivec_foo.
1137         (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
1138         (altivec_vcmp*): Ditto.
1139         (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
1140         (VM): New iterator for moves that includes the VSX types.
1141         (altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
1142         (altivec_vperm_<mode>_uns): New, for unsigned types.
1143         (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
1144         (altivec_eq<mode>): Ditto.
1145         (altivec_gt<mode>): Ditto.
1146         (altivec_gtu<mode>): Ditto.
1147         (altivec_eqv4sf): Ditto.
1148         (altivec_gev4sf): Ditto.
1149         (altivec_gtv4sf): Ditto.
1150         (altivec_vcmpbfp_p): Ditto.
1151
1152 2009-07-23  Richard Earnshaw  <rearnsha@arm.com>
1153
1154         * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to 
1155         unsigned HWI.
1156
1157 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
1158
1159         PR target/40832
1160         * config/i386/i386.c (output_387_ffreep): Rewrite to use
1161         ASM_SHORT instead of .word.
1162         * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
1163         instead of .word in asm template.
1164
1165 2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>
1166
1167         PR target/37488
1168         * ira-lives.c (bb_has_abnormal_call_pred): New function.
1169         (process_bb_node_lives): Use it.
1170
1171         * ira.c (setup_cover_and_important_classes): Don't setup
1172         ira_important_class_nums.  Add cover classes to the end of
1173         important classes.
1174         (cover_class_order, comp_reg_classes_func, reorder_important_classes):
1175         New.
1176         (find_reg_class_closure): Use reorder_important_classes.
1177
1178         * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
1179
1180         * config/i386/i386.c (i386_ira_cover_classes): New function.
1181         (TARGET_IRA_COVER_CLASSES): Redefine.
1182
1183         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
1184         importance of order of cover classes in the array.
1185         
1186 2009-07-22  Diego Novillo  <dnovillo@google.com>
1187
1188         * tree-pass.h (TDF_EH): Define.
1189         * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
1190         contains TDF_EH, print the EH region number holding GS.
1191         * tree-dump.c (dump_options): Add "eh".
1192         * doc/invoke.texi: Document it.
1193
1194 2009-07-22  Doug Kwan  <dougkwan@google.com>
1195
1196         * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
1197
1198 2009-07-22  Michael Matz  <matz@suse.de>
1199
1200         PR tree-optimization/35229
1201         PR tree-optimization/39300
1202
1203         * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
1204         (inhibit_phi_insertion): New function.
1205         (insert_into_preds_of_block): Call it for REFERENCEs.
1206         (init_pre): Initialize and finalize scalar evolutions.
1207         * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
1208
1209 2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
1210
1211         * config/i386/predicates.md (zero_extended_scalar_load_operand):
1212         Use CONST_VECTOR_NUNITS to determine number of elements.
1213
1214 2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
1215
1216         * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
1217         (U, W): Constraints are now deprecated and will be removed if we
1218         run out of letters.     
1219         * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
1220         the file.
1221         ("prefetch"): Add the stcmh instruction for prefetching.
1222         * config/s390/s390.c (s390_symref_operand_p): Function moved. No
1223         changes.
1224         (s390_short_displacement): Return always true if compiling for
1225         machines not providing the long displacement facility.
1226         (s390_mem_constraint): Support the new constraint letter Z.
1227         (s390_check_qrst_address): New function.
1228
1229 2009-07-21  DJ Delorie  <dj@redhat.com>
1230
1231         * config/mep/mep.c (mep_legitimize_arg): Leave control registers
1232         alone too.
1233
1234 2009-07-21  Jason Merrill  <jason@redhat.com>
1235
1236         * c-common.c (max_tinst_depth): Increase default to 1024.
1237
1238 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1239
1240         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
1241         (vec_unpacku_float_lo_v4si): Ditto.
1242
1243 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1244
1245         PR target/40811
1246         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
1247         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
1248         (builtin_description): Add __builtin_ia32_cvtudq2ps.
1249         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
1250
1251 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
1252
1253         PR tree-optimization/40813
1254         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
1255         it.
1256
1257 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1258
1259         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
1260         with a NOP_EXPR if needed.
1261
1262 2009-07-21  Paul Brook <paul@codesourcery.com>
1263
1264         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
1265         Terminate debug dump with newline.
1266
1267 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1268
1269         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
1270         Cast "1" to unsigned HOST_WIDE_INT.
1271         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
1272         deposit length to the maximum length - lsb.  Extend length if
1273         HOST_BITS_PER_WIDE_INT is 32.
1274
1275 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
1276
1277         * cgraph.h (constant_pool_htab): New function.
1278         (constant_descriptor_tree): Move from varasm.c.
1279         * varasm.c (constant_pool_htab): New function.
1280         (constant_descriptor_tree): Move to cgraph.h.
1281
1282 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
1283
1284         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
1285
1286 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
1287
1288         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
1289         $(VARRAY_H).
1290
1291 2009-07-20  Xinliang David Li  <davidxl@google.com>
1292
1293         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
1294
1295 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
1296
1297         * config/mips/mips.md (move_type): Add arith.
1298         (type): Handle arith.
1299         (zero_extendsidi2): Rename this into ...
1300         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
1301         (zero_extendsidi2): New expander.
1302         (*zero_extendsidi2_dext): New pattern.
1303
1304 2009-07-20  Nick Clifton  <nickc@redhat.com>
1305
1306         * config.gcc (mips64-*-*): Add definition of tm_defines in order
1307         to set MIPS_ABI_DEFAULT.
1308         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
1309
1310 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
1311
1312         * tree-object-size.c (addr_object_size): Handle unions with
1313         array in it as last field of structs in __bos (, 1) as __bos (, 0).
1314
1315         PR tree-optimization/40792
1316         * tree.c (build_function_type_skip_args): Remove bogus assert.
1317
1318 2009-07-20  Jan Hubicka  <jh@suse.cz>
1319             Martin Jambor  <mjambor@suse.cz>
1320
1321         * cgraph.h (combined_args_to_skip): New field.
1322         * cgraph.c (cgraph_create_virtual_clone): Properly handle
1323         combined_args_to_skip and args_to_skip.
1324         * tree-inline.c (update_clone_info): New function.
1325         (tree_function_versioning): Call update_clone_info.
1326         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
1327         functions.
1328         (cgraph_materialize_all_clones): More extensive dumping, working
1329         with combined_args_to_skip rather than args_to_skip.
1330
1331 2009-07-20  Ira Rosen  <irar@il.ibm.com>
1332
1333         * tree-vectorizer.h (vectorizable_condition): Add parameters.
1334         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
1335         (get_initial_def_for_reduction): Likewise.
1336         (vectorizable_reduction): Skip the check of first operand in case
1337         of COND_EXPR. Add check that it is outer loop vectorization if
1338         nested cycle was detected. Call vectorizable_condition() for 
1339         COND_EXPR. If reduction epilogue cannot be created do not fail for
1340         nested cycles (if it is not double reduction). Assert that there
1341         is only one type in the loop in case of COND_EXPR. Call
1342         vectorizable_condition() to vectorize COND_EXPR.
1343         * tree-vect-stmts.c (vectorizable_condition): Update comment.
1344         Add parameters. Allow nested cycles if called from 
1345         vectorizable_reduction(). Use reduction vector variable if provided.
1346         (vect_analyze_stmt): Call vectorizable_reduction() before
1347         vectorizable_condition().
1348         (vect_transform_stmt): Update call to vectorizable_condition().
1349
1350 2009-07-20  Christian Bruel  <christian.bruel@st.com>
1351         
1352         * config/sh/sh.opt (-mfmovd): Resurrect and document.
1353         * doc/invoke.texi (-mfmovd): Likewise.
1354         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
1355         
1356 2009-07-20  Jan Hubicka  <jh@suse.cz>
1357
1358         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
1359         when handling SSA name.
1360
1361 2009-07-19  Jan Hubicka  <jh@suse.cz>
1362
1363         PR tree-optimization/40676
1364         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
1365         virtual PHIs in empty BBs.
1366
1367 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1368
1369         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
1370         re-expanded the compound use gen_lowpart instead to convert to the
1371         desired mode.
1372
1373 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1374
1375         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
1376         OUTER_CONST arguments.
1377         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
1378         the new wider mode will be masked off.
1379         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
1380
1381 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1382
1383         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
1384         high-order bits are zero.
1385
1386 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1387
1388         * combine.c (simplify_shift_const_1): Split code to determine
1389         shift_mode into ...
1390         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
1391         new bits shifted in are identical to the old sign bit.
1392
1393 2009-07-18  Richard Guenther  <rguenther@suse.de>
1394
1395         PR c/40787
1396         * gimplify.c (gimplify_call_expr): Reject code using results from
1397         functions returning void.
1398
1399 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1400
1401         * doc/md.texi: Document the new PowerPC "es" constraint.
1402         Document that "m" can include automodified addresses on this target,
1403         and explain how %U must be used.  Extend the "Q" and "Z" documentation
1404         to suggest "es" as well as "m".
1405         * config/rs6000/constraints.md (es): New memory constraint.
1406         (Q, Z): Update strings to match new documentation.
1407
1408 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1409
1410         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
1411         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
1412         * config/rs6000/predicates.md (volatile_mem_operand): Use
1413         offsettable_nonstrict_memref_p.
1414         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
1415         (*floatunssidf2_internal): Likewise.
1416         (*fix_truncdfsi2_internal): Likewise.
1417         (*fix_trunctfsi2_internal): Likewise.
1418
1419 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
1420
1421         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
1422         atmega32u2 devices.
1423         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1424
1425 2009-07-17  Richard Guenther  <rguenther@suse.de>
1426
1427         PR c/40401
1428         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
1429         (pass_warn_unused_result): Likewise.
1430         (TODO_set_props): Remove.
1431         * omp-low.c (diagnose_omp_structured_block_errors): Change to
1432         run as a pass.
1433         (pass_diagnose_omp_blocks): Define.
1434         * c-decl.c (pop_file_scope): Do not finalize the CU here.
1435         (c_gimple_diagnostics_recursively): Remove.
1436         (finish_function): Do not call it.
1437         (c_write_global_declarations): Continue after errors.
1438         Finalize the CU here.
1439         * c-gimplify.c (c_genericize): Do not gimplify here.
1440         * c-common.c (c_warn_unused_result): Move ...
1441         * tree-cfg.c (do_warn_unused_result): ... here.
1442         (run_warn_unused_result): New function.
1443         (gate_warn_unused_result): New function.
1444         (pass_warn_unused_result): New pass.
1445         * c-common.h (c_warn_unused_result): Remove.
1446         * flags.h (flag_warn_unused_result): Declare.
1447         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
1448         * opts.c (flag_warn_unused_result): Initialize to false.
1449         * toplev.c (compile_file): Add comment.
1450         * omp-low.c (create_omp_child_function): Do not register
1451         the function with the frontend.
1452         (diagnose_omp_structured_block_errors): Prepare to be
1453         called as optimization pass.
1454         (gate_diagnose_omp_blocks): New function.
1455         (pass_diagnose_omp_blocks): New pass.
1456         * cgraph.h (cgraph_optimize): Remove.
1457         (cgraph_analyze_function): Likewise.
1458         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
1459         * cgraphunit.c (cgraph_lower_function): Lower nested functions
1460         before their parents here.
1461         (cgraph_finalize_function): Not here.
1462         (cgraph_analyze_function): Gimplify functions here.
1463         (cgraph_finalize_compilation_unit): Continue after errors.
1464         Optimize the callgraph from here.
1465         (cgraph_optimize): Make static.
1466         * langhooks.c (write_global_declarations): Finalize the CU.
1467         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
1468         (gimplify_function_tree): Assert we gimplify only once.
1469         Set PROP_gimple_any property.
1470         * tree-nested.c (gimplify_all_functions): New function.
1471         (lower_nested_functions): Gimplify all nested functions.
1472         * gimple.h (diagnose_omp_structured_block_errors): Remove.
1473         * passes.c (init_optimization_passes): Add pass_warn_unused_result
1474         and pass_diagnose_omp_blocks after gimplification.  Do not
1475         set TODO_set_props on all_lowering_passes.
1476         (execute_one_pass): Do not handle TODO_set_props.
1477         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
1478         (gimplify.o): Add tree-pass.h dependency.
1479         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
1480         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
1481         (unsave_r): Likewise.
1482         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
1483         temporary variable.
1484
1485 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
1486
1487         * doc/service.texi (Service): Restore previously removed link,
1488         which isn't broken after all.
1489
1490 2009-07-17  Richard Guenther  <rguenther@suse.de>
1491
1492         PR tree-optimization/40321
1493         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
1494         PHI nodes to the maximal set.
1495         (make_values_for_phi): Add PHI arguments to the maximal set.
1496         (execute_pre): Dump PHI_GEN and the maximal set.
1497
1498 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
1499
1500         PR c++/40780
1501         * gimplify.c (gimplify_conversion): Don't change non-conversions into
1502         VIEW_CONVERT_EXPR.
1503
1504 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1505
1506         * doc/extend.texi (Nested Functions): Replace broken link with
1507         textual reference.
1508         * doc/service.texi (Service): Remove broken link.
1509
1510 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
1511
1512         PR bootstrap/40781
1513         * builtins.c (expand_builtin_memcmp): Use loc instead of
1514         EXPR_LOCATION (exp).
1515         (expand_builtin_strncmp): Likewise.
1516
1517 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
1518             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1519
1520         PR 40435 
1521         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
1522         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
1523         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
1524         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
1525         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
1526         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
1527         tree-inline.c, c-common.c, c-common.h, gimple.c,
1528         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
1529         convert.c: Add location argument to fold_{unary,binary,ternary},
1530         fold_build[123], build_call_expr, build_size_arg,
1531         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
1532         fold_build1_initializer, fold_build2_initializer,
1533         fold_build3_initializer, fold_build_call_array,
1534         fold_build_call_array_initializer, fold_single_bit_test,
1535         omit_one_operand, omit_two_operands, invert_truthvalue,
1536         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
1537         combine_comparisons, fold_builtin_*, fold_call_expr,
1538         build_range_check, maybe_fold_offset_to_address, round_up,
1539         round_down.
1540
1541 2009-07-16  Jason Merrill  <jason@redhat.com>
1542
1543         PR libstdc++/37907
1544         * c-common.c (c_common_reswords): Add __is_standard_layout
1545         and __is_trivial.
1546         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
1547         * doc/implement-cxx.texi: New.
1548         * doc/gcc.texi: Include it.
1549
1550 2009-07-16  DJ Delorie  <dj@redhat.com>
1551
1552         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
1553         compares that may be indirectly affected by previous instructions.
1554
1555 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1556
1557         * builtins.c (do_mpc_arg2): New.
1558         (fold_builtin_2): Fold builtin cpow.
1559         * real.h (HAVE_mpc_pow): New.
1560
1561 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
1562
1563         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
1564         comparison to skip unprofitable schedule
1565
1566 2009-07-16  Simon Baldwin  <simonb@google.com>
1567
1568         * gcc.c (option_map): New flag -no-canonical-prefixes.
1569         * (display_help): Print help text for new flag.
1570         * (process_command): Move options translation and language specifics
1571         and handle new flag early.  Use it to set a function pointer to a
1572         prefix builder.  Replace make_relative_prefix calls with calls to
1573         the function pointed to.  Ignore new flag in regular options handling.
1574         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
1575
1576 2009-07-15  DJ Delorie  <dj@redhat.com>
1577
1578         * config/mep/mep.md (sibcall_internal): Change register to avoid
1579         argument registers.
1580         (sibcall_value_internal): Likewise.
1581
1582 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
1583
1584         PR rtl-optimization/40710
1585         * resource.c (mark_target_live_regs): Reset DF problem to LR.
1586
1587 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
1588
1589         * config/mips/mips.md (*extenddi_truncate<mode>,
1590         *extendsi_truncate<mode>): Change type attribute to move_type
1591         with shift_shift.  Split out code handling exts from here ...
1592         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
1593         pattern.
1594         (*extendhi_truncateqi): Change type attribute to move_type with
1595         shift_shift.  Split out code handling exts from here ...
1596         (*extendhi_truncateqi_exts): ... to this new pattern.
1597
1598 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
1599
1600         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
1601         instead of "and" with inverted sign bit mask value.  Use
1602         "nonimmediate_operand" for operand 1 and operand 2 predicate.
1603         Allocate registers only for operand 4 and operand 5.
1604
1605 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
1606
1607         PR middle-end/40747
1608         * fold-const.c (fold_cond_expr_with_comparison): When folding
1609         < and <= to MIN, make sure the MIN uses the same type as the
1610         comparison's operands.
1611
1612 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
1613
1614         * arm.md (ior_xor): New code iterator.
1615         (split for ior/xor with shift and zero-extend): New split pattern.
1616         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
1617
1618 2009-07-15  Richard Guenther  <rguenther@suse.de>
1619
1620         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
1621         offset member.
1622
1623 2009-07-15  Richard Guenther  <rguenther@suse.de>
1624
1625         PR middle-end/40753
1626         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
1627
1628 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1629
1630         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
1631         handle 2.6.30 kernel.
1632
1633 2009-07-15  DJ Delorie  <dj@redhat.com>
1634
1635         * config/mep/mep.md (sibcall_internal): Change register to allow
1636         for 24-bit addresses.
1637         (sibcall_value_internal): Likewise.
1638
1639 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1640         
1641         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
1642         that are enabled/disabled by the flags introduced by a previous patch.
1643         
1644 2009-07-14  DJ Delorie  <dj@redhat.com>
1645
1646         * config/mep/mep.md (sibcall_internal): Include non-toggling
1647         non-jmp case.
1648         (sibcall_value_internal): Likewise.
1649
1650 2009-07-14  Taras Glek  <tglek@mozilla.com>
1651             Rafael Espindola  <espindola@google.com>
1652
1653         * doc/sourcebuild.texi: Document install-plugin target.
1654         * configure.ac: Added install-plugin target to language makefiles.
1655         * configure: Regenerate.
1656         * Makefile.in: (install-plugin): Install more headers,
1657         depend on lang.install-plugin.
1658
1659 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1660
1661         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
1662         translation.
1663         
1664 2009-07-14  DJ Delorie  <dj@redhat.com>
1665
1666         * config/mep/mep.c (mep_vliw_jmp_match): New function.
1667         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
1668         * config/mep/mep.md (sibcall_internal): Change test from
1669         mep_vliw_mode_match to mep_vliw_jmp_match.
1670         (sibcall_value_internal): Likewise.
1671
1672 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
1673
1674         * config/i386/sse.md (copysign<mode>3): New expander.
1675         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
1676         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
1677         Use ix86_build_const_vector.
1678         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
1679         IX86_BUILTIN_CPYSGNPD.
1680         (builtin_description): Add __builtin_ia32_copysignps and
1681         __builtin_ia32_copysignpd.
1682         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
1683         and BUILT_IN_COPYSIGNF.
1684
1685 2009-07-13  Jason Merrill  <jason@redhat.com>
1686
1687         * builtins.c (can_trust_pointer_alignment): New fn.
1688         (get_pointer_alignment): Factor it out from here.
1689         * tree.h: Declare it.
1690
1691 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
1692
1693         * config/rs6000/predicates.md (offsettable_mem_operand): Test
1694         RTX_AUTOINC class.
1695
1696 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
1697
1698         PR debug/40705
1699         PR c++/403057
1700         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
1701
1702 2009-07-14  Richard Guenther  <rguenther@suse.de>
1703             Andrey Belevantsev <abel@ispras.ru>
1704
1705         PR middle-end/40745
1706         * cfgexpand.c (partition_stack_vars): Do not bother to update
1707         alias information when not optimizing.
1708
1709 2009-07-14  Richard Guenther  <rguenther@suse.de>
1710             Andrey Belevantsev <abel@ispras.ru>
1711
1712         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
1713         (pt_solution_set): Likewise.
1714         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
1715         * tree-ssa-structalias.c (pt_solution_set): New function.
1716         * final.c (rest_of_clean_state): Free SSA data structures.
1717         * print-rtl.c (print_decl_name): Remove.
1718         (print_mem_expr): Implement in terms of print_generic_expr.
1719         * alias.c (ao_ref_from_mem): New function.
1720         (rtx_refs_may_alias_p): Likewise.
1721         (true_dependence): Query alias-export info.
1722         (canon_true_dependence): Likewise.
1723         (write_dependence_p): Likewise.
1724         * tree-dfa.c (get_ref_base_and_extent): For void types leave
1725         size unknown.
1726         * emit-rtl.c (component_ref_for_mem_expr): Remove.
1727         (mem_expr_equal_p): Use operand_equal_p.
1728         (set_mem_attributes_minus_bitpos): Do not use
1729         component_ref_for_mem_expr.
1730         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
1731         (update_alias_info_with_stack_vars): Likewise.
1732         (partition_stack_vars): Call update_alias_info_with_stack_vars.
1733         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
1734         explicitly nor clear stmt operands.
1735         Free the decl-to-pointer map.
1736         * tree-optimize.c (execute_free_datastructures): Do not free
1737         SSA data structures here.
1738         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
1739         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
1740         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
1741         dependencies.
1742         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
1743
1744 2009-07-13  DJ Delorie  <dj@redhat.com>
1745
1746         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
1747         unrolling at the right iteration count.
1748
1749         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
1750         calculations.
1751
1752 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1753         
1754         * haifa-sched.c (rank_for_schedule): Introduced flags to
1755         enable/disable individual scheduling heuristics.
1756         * common.opt: Introduced flags to enable/disable individual
1757         heuristics in the scheduler.    
1758         * doc/invoke.texi: Introduced flags to enable/disable individual
1759         heuristics in the scheduler.
1760         
1761 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
1762
1763         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
1764         config/i386/mingw-tls.c.
1765         * config/i386/mingw-tls.c: Removed.
1766
1767 2009-07-13  Ira Rosen  <irar@il.ibm.com>
1768
1769         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
1770         checks access only relevant statements.
1771         (vectorizable_reduction): Likewise.
1772
1773 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
1774
1775         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
1776         just for 32-bit case.
1777
1778 2009-07-12  Jan Hubicka  <jh@suse.cz>
1779
1780         PR tree-optimization/40585
1781         * except.c (expand_resx_expr): When there already is resume
1782         instruction, produce linked list.
1783         (build_post_landing_pads): Assert that resume is empty.
1784         (connect_post_landing_pads): Handle resume lists.
1785         (dump_eh_tree): Dump resume list.
1786
1787 2009-07-12  Ira Rosen  <irar@il.ibm.com>
1788
1789         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1790         with additional argument.
1791         * tree-vectorizer.h (enum vect_def_type): Add
1792         vect_double_reduction_def.
1793         (vect_is_simple_reduction): Add argument.
1794         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
1795         indentation.
1796         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
1797         vect_is_simple_reduction with additional argument.
1798         (vect_analyze_loop_operations): Handle exit phi nodes in case of
1799         double reduction.
1800         (reduction_code_for_scalar_code): Handle additional codes by
1801         returning ERROR_MARK for them. Fix comment and indentation.
1802         (vect_is_simple_reduction): Fix comment, add argument to specify
1803         double reduction. Detect double reduction.
1804         (get_initial_def_for_induction): Fix indentation.
1805         (get_initial_def_for_reduction): Fix comment and indentation.
1806         Handle double reduction. Create initial definitions that do not
1807         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
1808         (vect_create_epilog_for_reduction): Fix comment, add argument to
1809         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
1810         epilogue result extraction. Create double reduction phi node and
1811         replace relevant uses.
1812         (vectorizable_reduction): Call vect_is_simple_reduction with
1813         additional argument. Fix indentation. Update epilogue code treatment
1814         according to the changes in reduction_code_for_scalar_code. Check
1815         for double reduction. Call vect_create_epilog_for_reduction with
1816         additional argument.
1817         * tree-vect-stmts.c (process_use): Handle double reduction, update
1818         documentation.
1819         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
1820         (vect_get_vec_def_for_operand): Likewise.
1821
1822 2009-07-12  Danny Smith  <dansmister@gmail.com>
1823
1824         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
1825         dllexport if !TREE_PUBLIC.
1826         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
1827
1828 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
1829
1830         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
1831         (avr_extra_arch_macro) Remove declatation.
1832         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
1833         (avr_extra_arch_macro) Declare as static.
1834         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
1835
1836 2009-07-11  Jan Hubicka  <jh@suse.cz>
1837
1838         PR middle-end/48388
1839         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
1840
1841 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
1842
1843         PR debug/40713
1844         * dwarf2out.c (dw_fde_struct): Add in_std_section and
1845         cold_in_std_section bits.
1846         (dwarf2out_begin_prologue): Initialize them.
1847         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
1848         if already covered by text_section or cold_text_section range.
1849
1850         PR rtl-optimization/40667
1851         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
1852         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
1853         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
1854         * config/i386/i386.c (ix86_minimum_alignment): New function.
1855         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
1856         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
1857         * emit-rtl.c (gen_reg_rtx): Likewise.
1858         * function.c (assign_parms): Likewise.  If nominal_type needs
1859         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
1860         rather than passed_type's alignment.
1861
1862         PR target/40668
1863         * function.c (assign_parm_setup_stack): Adjust
1864         MEM_OFFSET (data->stack_parm) if promoted_mode is different
1865         from nominal_mode on big endian.
1866
1867 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
1868
1869         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
1870
1871 2009-07-10  DJ Delorie  <dj@redhat.com>
1872
1873         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
1874
1875 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
1876
1877         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
1878         attribute.
1879         (thumb2_cbnz): Likewise.
1880
1881 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
1882
1883         PR target/39079
1884         * config.gcc (supported_defaults): Add synci.
1885         (with_synci): Add validation.
1886         (all_defaults): Add synci.
1887         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
1888         ISA_HAS_SYNCI.
1889         (synci): Same.
1890         * config/mips/mips.opt (msynci): New option.
1891         * config/mips/mips.c (mips_override_options): Warn on use of
1892         -msynci for targets that do now support it.
1893         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1894         msynci.
1895         * gcc/doc/invoke.texi (-msynci): Document the new option.
1896         * doc/install.texi (--with-synci): Document the new option.
1897
1898 2009-07-10  Richard Guenther  <rguenther@suse.de>
1899
1900         PR tree-optimization/40496
1901         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
1902         the PHI result with a compatible type.
1903
1904 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1905
1906         PR 25509
1907         PR 40614
1908         * c.opt (Wunused-result): New.
1909         * doc/invoke.texi: Document it.
1910         * c-common.c (c_warn_unused_result): Use it.
1911
1912 2009-07-09  DJ Delorie  <dj@redhat.com>
1913
1914         * targhooks.c (default_target_can_inline_p): Rename from
1915         default_target_option_can_inline_p.
1916         * targhooks.h (default_target_can_inline_p): Likewise.
1917         * target-def.h (TARGET_CAN_INLINE_P): Rename from
1918         TARGET_OPTION_CAN_INLINE_P.
1919         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
1920         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
1921         (mep_target_can_inline_p): Rename from
1922         mep_target_option_can_inline_p.
1923
1924         PR target/40626
1925         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
1926         registers used to pass vectors.
1927
1928         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
1929
1930 2009-07-09  Tom Tromey  <tromey@redhat.com>
1931
1932         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
1933         * config/mmix/mmix.c: Include dwarf2.h.
1934         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
1935         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
1936         * config/sh/sh.c: Include dwarf2.h.
1937         * config/i386/i386.c: Include dwarf2.h.
1938         * Makefile.in (DWARF2_H): Remove 'elf'.
1939         * except.c: Include dwarf2.h.
1940         * unwind-dw2.c: Include dwarf2.h.
1941         * dwarf2out.c: Include dwarf2.h.
1942         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
1943         * unwind-dw2-fde.c: Include dwarf2.h.
1944         * dwarf2asm.c: Include dwarf2.h.
1945
1946 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1947
1948         * haifa-sched.c (insn_finishes_cycle_p): New static function.
1949         (max_issue): Use it.
1950         * sched-int.h (struct sched_info: insn_finishes_block_p): New
1951         scheduler hook.
1952         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
1953         (region_sched_info): Update.
1954         * sched-ebb.c (ebb_sched_info): Update.
1955         * modulo-sched.c (sms_sched_info): Update.
1956         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
1957
1958 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1959
1960         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
1961
1962 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
1963
1964         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
1965
1966 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
1967
1968         PR middle-end/40692
1969         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
1970         arg1 with arg01 if arg1 is already INTEGER_CST.
1971
1972 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
1973
1974         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
1975         Transform (and (truncate)) into (truncate (and)).
1976
1977 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
1978
1979         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
1980         creating LHS paradoxical subregs.  Fix surrounding returns to
1981         use NULL_RTX rather than 0.
1982
1983 2009-07-08  DJ Delorie  <dj@redhat.com>
1984
1985         * config/mep/mep.c: (mep_option_can_inline_p): New.
1986         (TARGET_OPTION_CAN_INLINE_P): Define.
1987
1988 2009-07-08  Mark Wielaard  <mjw@redhat.com>
1989
1990         PR debug/40659
1991         * dwarf2out.c (add_data_member_location_attribute): When we have
1992         only a constant offset don't emit a new location description using
1993         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
1994         dwarf_version > 2.
1995
1996 2009-07-08  Richard Henderson  <rth@redhat.com>
1997
1998         PR target/38900
1999         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
2000         (enum reg_class): Add CLOBBERED_REGS.
2001         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
2002         * config/i386/i386.c (ix86_conditional_register_usage): Moved
2003         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
2004         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
2005         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
2006         force 64-bit sibcalls into R11.
2007         * config/i386/constraints.md (U): New constraint.
2008         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
2009         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
2010         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
2011
2012 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
2013
2014         * basic-block.h (dump_regset, debug_regset): Remove duplicate
2015         prototypes.
2016         * c-objc-common.h (c_initialize_diagnostics): Ditto.
2017         * ebitmap.h (dump_ebitmap): Ditto.
2018         * optabs.h (optab_libfunc): Ditto.
2019         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
2020         * tree-flow.h (vect_can_force_dr_alignment_p,
2021         get_vectype_for_scalar_type): Ditto.
2022         (vectorize_loops): Move prototype to ...
2023         * tree-vectorizer.h: ... here. Also, adjust comment.
2024         (vect_set_verbosity_level): Remove duplicate prototype.
2025         * tree-ssa-loop.c: Include tree-vectorizer.h.
2026         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
2027
2028 2009-07-08  Nick Clifton  <nickc@redhat.com>
2029
2030         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
2031         forward slash.
2032
2033 2009-07-08  DJ Delorie  <dj@redhat.com>
2034
2035         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
2036         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
2037         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
2038         written to.
2039         * config/mep/intrinsics.md: Regenerated.
2040         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
2041         registers when asm() or calls are detected.
2042
2043 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2044
2045         PR c++/31246
2046         * gimplify.c (gimplify_expr): Propagate no_warning flag when
2047         gimplifying.
2048         * gimple (gimple_build_call_from_tree): Likewise.
2049         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
2050         no_warning flag before warning.
2051
2052 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2053
2054         * tree.c (set_expr_locus): Remove.
2055         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
2056         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
2057         EXPR_LOCATION.
2058         * gimplify.c (internal_get_tmp_var): Likewise.
2059         (gimplify_call_expr): Likewise.
2060         (gimplify_one_sizepos): Likewise.
2061
2062 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2063
2064         PR debug/40666
2065         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
2066         to variables for debugging purposes.
2067
2068 2009-06-23  Mark Loeser  <mark@halcy0n.com>
2069
2070         PR build/40010
2071         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
2072
2073 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2074
2075         * pretty-print.c (pp_base_format): Remove %J.
2076         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2077         gcc_cxxdiag_char_table): Likewise.
2078         (init_dynamic_diag_info): Likewise.
2079
2080 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2081
2082         * pretty-print.c (pp_base_format): Remove %H.
2083         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2084         gcc_cxxdiag_char_table): Likewise.
2085         (init_dynamic_diag_info): Likewise.
2086         * config/mep/mep.c (mep_select_section): Likewise.
2087
2088 2009-07-07  Duncan Sands  <baldrick@free.fr>
2089
2090         * final.c (pass_clean_state): Give the pass a name.
2091         * passes.c (pass_rest_of_compilation): Likewise.
2092         * tree-optimize.c (pass_all_optimizations): Likewise.
2093
2094 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2095
2096         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
2097         an extra 'decl' for error_at.
2098
2099 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
2100
2101         PR middle-end/40669
2102         * tree-tailcall.c (adjust_return_value_with_ops,
2103         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
2104         if it has complex or vector type.
2105
2106 2009-07-07  Olivier Hainque  <hainque@adacore.com>
2107
2108         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
2109         pthread symbols.
2110
2111 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
2112
2113         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
2114
2115 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2116
2117         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
2118         * c-decl.c: Likewise.
2119         * function.c: Likewise.
2120         * varasm.c: Likewise.
2121         * tree-ssa.c: Likewise.
2122         * c-common.c: Likewise.
2123         * tree-cfg.c: Likewise.
2124         * config/spu/spu.c: Likewise.
2125         * config/ia64/ia64.c: Likewise.
2126         * config/v850/v850.c: Likewise.
2127
2128 2009-07-06  DJ Delorie  <dj@redhat.com>
2129
2130         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
2131         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
2132         unspecified accesses to control registers.
2133         * config/mep/intrinsics.md: Regenerate.
2134         * config/mep/intrinsics.h: Regenerate.
2135         * config/mep/mep-intrin.h: Regenerate.
2136
2137 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2138
2139         * c-lex.c: Replace %H by an explicit location. Update all calls.
2140         * c-common.c: Likewise.
2141         * c-decl.c: Likewise.
2142         * c-typeck.c: Likewise.
2143         * fold-const.c: Likewise.
2144         * gimplify.c: Likewise.
2145         * stmt.c: Likewise.
2146         * tree-cfg.c: Likewise.
2147         * tree-ssa-loop-niter.c: Likewise.
2148         * tree-vrp.c: Likewise.
2149         * value-prof.c: Likewise.
2150
2151 2009-07-06  Diego Novillo  <dnovillo@google.com>
2152
2153         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
2154         if it has one.  Handle cases where VAR does not have an
2155         annotation or cfun is NULL.
2156
2157 2009-07-06  Diego Novillo  <dnovillo@google.com>
2158
2159         * tree.c: Include debug.h.
2160         (initialize_tree_contains_struct): New.
2161         (init_ttree): Call it.
2162         (tree_node_structure_for_code): Factor out of ...
2163         (tree_node_structure): ... here.
2164         * treestruct.def (TS_PHI_NODE): Remove.
2165         (TS_GIMPLE_STATEMENT): Remove.
2166
2167 2009-07-06  Diego Novillo  <dnovillo@google.com>
2168
2169         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
2170         (debug_tree_chain): Handle cycles.
2171
2172 2009-07-06  Nick Clifton  <nickc@redhat.com>
2173             DJ Delorie  <dj@redhat.com>
2174
2175         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2176         __FMOVD_ENABLED__ is defined.
2177         * config/sh/sh.h
2178         (TARGET_FMOVD): Provide a default definition.
2179         (MASK_FMOVD): Likewise.
2180         (TARGET_CPU_CPP_BUILTINS): Define
2181         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2182         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2183         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
2184         (split for DF load from memory into register): Also handle
2185         MEMs which consist of REG+DISP addressing.
2186         (split for DF store from register to memory): Likewise.
2187         (movsf_ie): Always use single fp_mode.
2188         * config/sh/sh.c (sh_override_options): Do not automatically
2189         enable TARGET_MOVD for the SH2A when supporting doubles - leave
2190         that to the -mfmovd command line switch.
2191         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
2192         (fldi_ok): Always allow.
2193         * config/sh/sh.opt (mfmovd): Remove this switch.
2194         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2195
2196 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
2197             Kaz Kojima  <kkojima@gcc.gnu.org>
2198
2199         PR rtl-optimization/30807
2200         * postreload.c (reload_combine): For every new use of REG_SUM,
2201         record the use of BASE.
2202
2203 2009-07-06  Jan Hubicka  <jh@suse.cz>
2204
2205         * params.def: Revert my accidental commit at 2009-06-30.
2206
2207 2009-07-04  Ian Lance Taylor  <iant@google.com>
2208
2209         PR target/40636
2210         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
2211         EXPORTED_CONST.
2212         (mingw_format_attribute_overrides): Likewise.
2213
2214 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
2215
2216         PR debug/40596
2217         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
2218         don't check cfa.reg.  Instead of cfa.indirect use
2219         fde && fde->drap_reg != INVALID_REGNUM test.
2220
2221 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
2222
2223         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
2224
2225 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
2226
2227         PR target/40587
2228         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
2229
2230 2009-07-03  Richard Guenther  <rguenther@suse.de>
2231
2232         PR tree-optimization/40640
2233         * tree-switch-conversion.c (build_arrays): Perform arithmetic
2234         in original type.
2235
2236 2009-07-03  Jan Hubicka  <jh@suse.cz>
2237
2238         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
2239         for size, reduce amount of inlining.
2240
2241 2009-07-03  Richard Guenther  <rguenther@suse.de>
2242
2243         PR middle-end/34163
2244         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
2245         if t +- x is known to not overflow and the conversion widens the
2246         operation.
2247         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
2248
2249 2009-07-03  Jan Hubicka  <jh@suse.cz>
2250
2251         * ipa-pure-const.c (analyze): Update loop optimizer init.
2252         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
2253         try_remove_empty_loop, remove_empty_loops): Remove.
2254         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
2255         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
2256         to mark regular loops as neccesary.
2257         (degenerate_phi_p): New function.
2258         (propagate_necessity, remove_dead_phis): Use it.
2259         (forward_edge_to_pdom): Likewise.
2260         (eliminate_unnecessary_stmts): Take care to remove uses of results of
2261         virtual PHI nodes that became unreachable.
2262         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
2263         * tree-flow.h (remove_empty_loops): Remove.
2264         * passes.c (init_optimization_passes): Remove.
2265
2266 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
2267
2268         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
2269         can_create_pseudo_p.
2270         (*fix_trunc<mode>_i387_1): Ditto.
2271         (*floathi<mode>2_1): Ditto.
2272         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
2273         (*fistdi2_1): Ditto.
2274         (*fist<mode>2_1): Ditto.
2275         (frndintxf2_floor): Ditto.
2276         (*fist<mode>2_floor_1): Ditto.
2277         (frndintxf2_ceil): Ditto.
2278         (*fist<mode>2_ceil_1): Ditto.
2279         (frndintxf2_trunc): Ditto.
2280         (frndintxf2_mask_pm): Ditto.
2281         (fxam<mode>2_i387_with_temp): Ditto.
2282         * config/i386/sse.md (mulv16qi3): Ditto.
2283         (*sse2_mulv4si3): Ditto.
2284         (mulv2di3): Ditto.
2285         (sse4_2_pcmpestr): Ditto.
2286         (sse4_2_pcmpistr): Ditto.
2287
2288 2009-07-03  Jan Hubicka  <jh@suse.cz>
2289
2290         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
2291         (mark_stmt_necessary): Set it.
2292         (mark_operand_necessary): Set it.
2293         (mark_control_dependent_edges_necessary): Set it.
2294         (mark_virtual_phi_result_for_renaming): New function.
2295         (get_live_post_dom): New function.
2296         (forward_edge_to_pdom): New function.
2297         (remove_dead_stmt): Fix handling of control dependences.
2298         (tree_dce_init): Init new bitmap.
2299         (tree_dce_done): Free it.
2300
2301 2009-07-02  Richard Guenther  <rguenther@suse.de>
2302
2303         PR bootstrap/40617
2304         * tree-ssa-structalias.c (new_var_info): Initialize
2305         is_restrict_var.
2306
2307 2009-07-02  Jan Hubicka  <jh@suse.cz>
2308
2309         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
2310         local.
2311
2312 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
2313
2314         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
2315         instead of recomputing it.  Adjust calls.
2316         (emit_store_flag): Adjust recursive calls.
2317
2318 2009-07-02  Richard Guenther  <rguenther@suse.de>
2319
2320         * tree-ssa-live.c (remove_unused_locals): Do not remove
2321         heap variables.
2322         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
2323         of DECL_EXTERNAL for HEAP variables.
2324         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
2325         HEAP variables.  Do not adjust RESTRICT vars.
2326         (find_what_var_points_to): Nobody cares if something
2327         points to READONLY.
2328
2329 2009-07-02  Ben Elliston  <bje@au.ibm.com>
2330
2331         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
2332         pc_low and pc_high declarations to the top of the function.
2333
2334 2009-07-01  DJ Delorie  <dj@redhat.com>
2335
2336         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
2337         registers as fixed.
2338         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
2339         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
2340         unspecified accesses to control registers.
2341         * config/mep/intrinsics.md: Regenerate.
2342         * config/mep/intrinsics.h: Regenerate.
2343         * config/mep/mep-intrin.h: Regenerate.
2344
2345 2009-07-01  Anthony Green  <green@moxielogic.com>
2346
2347         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
2348         instruction when possible.
2349         (moxie_expand_prologue): Ditto.  Also, save an instruction and
2350         some complexity by popping off of $r12 instead of $sp.
2351         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
2352         operands.
2353
2354 2009-07-01  Richard Henderson  <rth@redhat.com>
2355
2356         PR bootstrap/40347
2357         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
2358         contained no insns, reposition note before last insn.
2359
2360 2009-07-01  Richard Henderson  <rth@redhat.com>
2361
2362         PR debug/40431
2363         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
2364         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
2365
2366 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2367
2368         PR bootstrap/40558
2369         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
2370         darwin9 for printing reg addresses with %y.
2371
2372 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2373
2374         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
2375         truncation from operands in binary operations.
2376
2377 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2378
2379         Revert:
2380         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
2381         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
2382         subreg of op0 to the original op0.
2383
2384         * expmed.c (store_bit_field_1): Use a temporary as the destination
2385         instead of a paradoxical subreg when we need to truncate the result.
2386
2387 2009-07-01  DJ Delorie  <dj@redhat.com>
2388
2389         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
2390         names to VLIW variants.
2391         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
2392         * config/mep/intrinsics.md: Regenerate.
2393         * config/mep/intrinsics.h: Regenerate.
2394         * config/mep/mep-intrin.h: Regenerate.
2395
2396 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
2397
2398         PR debug/40462
2399         * jump.c (returnjump_p): Revert last patch.
2400         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
2401
2402 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2403
2404         PR target/40575
2405         * pa.md (casesi32p): Use jump table label to determine the offset
2406         of the jump table.
2407         (casesi64p): Likewise.
2408
2409         * pa.c (forward_branch_p): Return bool type.  Use instruction
2410         addresses when available.  Assert that INSN has a jump label.
2411         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
2412         have a jump label.
2413
2414 2009-07-01  Richard Guenther  <rguenther@suse.de>
2415
2416         PR tree-optimization/19831
2417         * tree-ssa-dce.c (propagate_necessity): Calls to functions
2418         that only act as barriers do not make any previous stores necessary.
2419         * tree-ssa-structalias.c (handle_lhs_call): Delay making
2420         HEAP variables global, do not add a constraint from nonlocal.
2421         (find_func_aliases): Handle escapes through return statements.
2422         (compute_points_to_sets): Make escaped HEAP variables global.
2423
2424 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2425
2426         PR bootstrap/40597
2427         * expmed.c (emit_store_flag): Perform a conversion if necessary,
2428         after reducing a DImode cstore to SImode.
2429
2430 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2431
2432         * expr.c (expand_expr_real_1): Reinstate fallthrough to
2433         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
2434
2435 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
2436
2437         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
2438         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
2439         to 0.
2440         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
2441         and umod_optab if TARGET_BSD_DIVMOD.
2442         * config/vax/lib1funcs.asm: New file.
2443         * config/vax/t-linux: New file.
2444         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
2445
2446 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
2447
2448         PR c++/40566
2449         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
2450         to type arguments that have void type.
2451
2452         PR debug/40573
2453         * dwarf2out.c (gen_formal_parameter_die): Call
2454         equate_decl_number_to_die if node is different from origin.
2455
2456 2009-06-30  Anthony Green  <green@moxielogic.com>
2457
2458         Clean up moxie port for --enable-build-with-cxx.
2459         * config/moxie/moxie.c (moxie_function_value): First two
2460         parameters are const_tree, not tree.
2461         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
2462         (REG_CLASS_NAMES): Ditto.
2463         (REGNO_REG_CLASS): Ditto.
2464         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
2465         (moxie_function_value): Fix constyness of arguments.
2466
2467 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
2468
2469         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2470         finalize_size_functions before further processing.
2471         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
2472         (variable_size): Call self_referential_size on size expressions
2473         that contain a PLACEHOLDER_EXPR.
2474         (size_functions): New static variable.
2475         (copy_self_referential_tree_r): New static function.
2476         (self_referential_size): Likewise.
2477         (finalize_size_functions): New global function.
2478         * tree.c: Include tree-inline.h.
2479         (push_without_duplicates): New static function.
2480         (find_placeholder_in_expr): New global function.
2481         (substitute_in_expr) <tcc_declaration>: Return the replacement object
2482         on equality.
2483         <tcc_expression>: Likewise.
2484         <tcc_vl_exp>: If the replacement object is a constant, try to inline
2485         the call in the expression.
2486         * tree.h (finalize_size_functions): Declare.
2487         (find_placeholder_in_expr): Likewise.
2488         (FIND_PLACEHOLDER_IN_EXPR): New macro.
2489         (substitute_placeholder_in_expr): Update comment.
2490         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
2491         is true.
2492         (copy_tree_body_r): Likewise.
2493         (copy_tree_body): New static function.
2494         (maybe_inline_call_in_expr): New global function.
2495         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
2496         (maybe_inline_call_in_expr): Declare.
2497         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
2498         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
2499         GIMPLE_H.
2500
2501 2009-06-30  Richard Guenther  <rguenther@suse.de>
2502
2503         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
2504         continue walking.
2505         (propagate_necessity): Do not mark reaching defs of stores
2506         as necessary.
2507
2508 2009-06-30  Jan Hubicka  <jh@suse.cz>
2509
2510         * cfgloopanal.c (check_irred): Move into ...
2511         (mark_irreducible_loops): ... here; return true if ireducible
2512         loops was found.
2513         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
2514         (analyze_function): Try to prove loop finiteness.
2515         * cfgloop.h (mark_irreducible_loops): Update prototype.
2516         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
2517
2518 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
2519
2520         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
2521
2522 2009-06-30  Ira Rosen  <irar@il.ibm.com>
2523
2524         PR tree-optimization/40542
2525         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
2526         types.
2527
2528 2009-06-30  Martin Jambor  <mjambor@suse.cz>
2529
2530         PR tree-optimization/40582
2531         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
2532         than useless_type_conversion_p.
2533         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
2534         proper place.
2535
2536 2009-06-30  Martin Jambor  <mjambor@suse.cz>
2537
2538         PR middle-end/40554
2539         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
2540
2541 2009-06-30  Richard Guenther  <rguenther@suse.de>
2542
2543         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
2544         use ao_ref references.
2545         (walk_aliased_vdefs): Likewise.
2546         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
2547         * tree-ssa-dce.c (struct ref_data): Remove.
2548         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
2549         (mark_aliased_reaching_defs_necessary): Adjust.
2550         (mark_all_reaching_defs_necessary_1): Likewise.
2551
2552 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
2553
2554         PR boostrap/40597
2555         * expmed.c (emit_cstore): New name of emit_store_flag_1.
2556         (emit_store_flag_1): Extract from emit_store_flag, adjust
2557         calls to (what now is) emit_cstore.
2558         (emit_store_flag): Call emit_store_flag_1 and also use it
2559         for what used to be recursive calls.
2560
2561 2009-06-30  Wei Guozhi  <carrot@google.com>
2562
2563         PR/40416
2564         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
2565         if the target bb post dominates from bb.
2566         * config/i386/i386.c (memory_address_length): Check existence of base
2567         register before using it.
2568
2569 2009-06-30  Nick Clifton  <nickc@redhat.com>
2570             DJ Delorie  <dj@redhat.com>
2571
2572         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2573         __FMOVD_ENABLED__ is defined.
2574         * config/sh/sh.h
2575         (TARGET_FMOVD): Provide a default definition.
2576         (MASK_FMOVD): Likewise.
2577         (TARGET_CPU_CPP_BUILTINS): Define
2578         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2579         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2580         two fmov instructions depending upon whether TARGET_FMOVD is
2581         enabled.
2582         (split for DF load from memory into register): Also handle
2583         MEMs which consist of REG+DISP addressing.
2584         (split for DF store from register to memory): Likewise.
2585         * config/sh/sh.opt (mfmovd): Remove this switch.
2586         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2587         * config/sh/sh.c (sh_override_options): Do not automatically
2588         enable TARGET_MOVD for the SH2A when supporting doubles - leave
2589         that to the -mfmovd command line switch.
2590
2591         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
2592         the SH4 and SH4A.
2593         (fldi_ok): Always allow.
2594         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
2595
2596 2009-06-29  DJ Delorie  <dj@redhat.com>
2597
2598         * doc/install.texi (mep-x-elf): Correct chip's full name.
2599
2600 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
2601
2602         * doc/extend.texi: Fix typo.
2603
2604 2009-06-29  Tom Tromey  <tromey@redhat.com>
2605
2606         * dwarf2.h: Remove.
2607         * Makefile.in (DWARF2_H): New variable.
2608         (except.o): Use it.
2609         (dwarf2out.o): Likewise.
2610         (dwarf2asm.o): Likewise.
2611         * config/i386/t-i386: Use DWARF2_H.
2612         * except.c: Include elf/dwarf2.h.
2613         * unwind-dw2.c: Include elf/dwarf2.h.
2614         * dwarf2out.c: Include elf/dwarf2.h.
2615         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
2616         <dtprel>: New field.
2617         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
2618         (size_of_loc_descr): Likewise.
2619         (output_loc_operands_raw): Likewise.
2620         (output_loc_operands): Handle new dtprel field.
2621         (loc_checksum): Update.
2622         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
2623         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
2624         * unwind-dw2-fde.c: Include elf/dwarf2.h.
2625         * dwarf2asm.c: Include elf/dwarf2.h.
2626         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
2627         * config/mmix/mmix.c: Include elf/dwarf2.h.
2628         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
2629         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
2630         * config/sh/sh.c: Include elf/dwarf2.h.
2631         * config/i386/i386.c: Include elf/dwarf2.h.
2632
2633 2009-06-29  DJ Delorie  <dj@redhat.com>
2634
2635         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
2636
2637         * doc/extend.texi: Add MeP attributes and pragmas.
2638         * doc/invoke.text: Add MeP Options.
2639         * doc/contrib.texi: Add MeP contribution.
2640         * doc/md.texi: Add MeP constraints.
2641         * doc/install.texi: Add MeP target.
2642
2643 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
2644
2645         * target.h (struct gcc_target): Add frame_pointer_required field.
2646         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
2647         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
2648         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
2649         hook.
2650         * reload1.c (update_eliminables): (Ditto.).
2651         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
2652         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2653         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
2654
2655         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
2656
2657         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
2658         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2659         (arm_frame_pointer_required): New function.
2660
2661         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
2662         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2663         (avr_frame_pointer_required_p): Declare as static.
2664         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
2665
2666         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
2667         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2668         (bfin_frame_pointer_required): Make as static, change return type
2669         to bool.
2670         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
2671
2672         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
2673         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2674         (cris_frame_pointer_required): New function.
2675         
2676         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
2677
2678         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
2679         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2680         (fr30_frame_pointer_required): New function.
2681         
2682         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
2683         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2684         (frv_frame_pointer_required): Make as static, change return type
2685         to bool.
2686         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
2687
2688         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
2689         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2690         (ix86_frame_pointer_required): Make as static, change return type to
2691         bool.
2692         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
2693
2694         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
2695         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2696
2697         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
2698
2699         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
2700         
2701         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
2702
2703         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
2704         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2705         (mips_frame_pointer_required): Make as static.
2706         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
2707         
2708         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
2709         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2710         (mmix_frame_pointer_required): Mew function.
2711
2712         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
2713         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2714
2715         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
2716
2717         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
2718
2719         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
2720
2721         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
2722         (CAN_ELIMINATE): Redefine.
2723         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2724         (sparc_frame_pointer_required): New function.
2725         (sparc_can_eliminate): New function.
2726         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
2727
2728         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
2729         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2730
2731         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
2732         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2733         (xtensa_frame_pointer_required): Make as static, change return type
2734         to bool.
2735         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
2736         Remove.
2737
2738 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
2739
2740         * doc/plugins.texi: Document PLUGIN_START_UNIT.
2741         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
2742         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
2743         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
2744         (register_callback): Handle PLUGIN_START_UNIT.
2745         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
2746
2747 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
2748
2749         * tree.c (process_call_operands): Propagate TREE_READONLY from the
2750         operands.
2751         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
2752         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
2753
2754 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
2755
2756         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
2757         move cost.
2758
2759 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
2760
2761         * doc/extend.texi (Additional Floating Types): __float128 is also
2762         supported on i386 targets.
2763
2764 2009-06-29  Richard Guenther  <rguenther@suse.de>
2765
2766         PR middle-end/14187
2767         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
2768         flag.
2769         (pt_solutions_same_restrict_base): Declare.
2770         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
2771         flag.
2772         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
2773         (make_constraint_from, make_copy_constraint): Move earlier.
2774         (make_constraint_from_heapvar): New function.
2775         (make_constraint_from_restrict): Likewise.
2776         (handle_lhs_call): Use it.
2777         (find_func_aliases): Use it to track conversions to restrict
2778         qualified pointers.
2779         (struct fieldoff): Add only_restrict_pointers flag.
2780         (push_fields_onto_fieldstack): Initialize it.
2781         (create_variable_info_for): Track global restrict qualified pointers.
2782         (intra_create_variable_infos): Use make_constraint_from_heapvar.
2783         Track restrict qualified pointer arguments.
2784         (set_uids_in_ptset): Use varinfo is_global_var flag.
2785         (find_what_var_points_to): Set the vars_contains_restrict flag.
2786         Always create the points-to solution for sets including restrict tags.
2787         (pt_solutions_same_restrict_base): New function.
2788         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
2789         qualified pointers use pt_solutions_same_restrict_base as
2790         additional source for disambiguation.
2791
2792 2009-06-29  Richard Guenther  <rguenther@suse.de>
2793
2794         PR middle-end/38212
2795         * alias.c (find_base_decl): Remove.
2796         (get_deref_alias_set_1): Remove restrict handling.
2797         * c-common.c (c_apply_type_quals_to_decl): Do not set
2798         DECL_POINTER_ALIAS_SET.
2799         * gimplify.c (find_single_pointer_decl_1): Remove.
2800         (find_single_pointer_decl): Likewise.
2801         (internal_get_tmp_var): Remove restrict handling.
2802         (gimple_regimplify_operands): Likewise.
2803         * omp-low.c (expand_omp_atomic_pipeline): Do not set
2804         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
2805         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
2806         * tree.c (restrict_base_for_decl): Remove.
2807         (init_ttree): Do not allocate it.
2808         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
2809         LABEL_DECL_UID for label decls.
2810         (copy_node_stat): Do not copy restrict information.
2811         (decl_restrict_base_lookup): Remove.
2812         (decl_restrict_base_insert): Likewise.
2813         (print_restrict_base_statistics): Likewise.
2814         (dump_tree_statistics): Do not call print_restrict_base_statistics.
2815         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
2816         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
2817         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
2818         (LABEL_DECL_UID): Adjust.
2819         (DECL_BASED_ON_RESTRICT_P): Remove.
2820         (DECL_GET_RESTRICT_BASE): Likewise.
2821         (SET_DECL_RESTRICT_BASE): Likewise.
2822         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
2823
2824         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
2825         instead of DECL_POINTER_ALIAS_SET.
2826         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
2827         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
2828         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
2829
2830 2009-06-29  Richard Guenther  <rguenther@suse.de>
2831
2832         PR tree-optimization/40579
2833         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
2834         the IL to simplify has constants that overflowed.
2835
2836 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
2837
2838         PR tree-optimization/40550
2839         * tree-vect-generic.c (expand_vector_operations_1): Compute in
2840         vector_compute_type only when the size of vector_compute_type is
2841         less than the size of type.
2842
2843 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
2844
2845         * fold-const.c (contains_label_1): Fix comments.
2846         (contains_label_p): Do not walk trees multiple time.
2847
2848 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2849
2850         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
2851         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
2852         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
2853         ix86_fp_comparison_operator.
2854         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
2855         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
2856         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
2857         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
2858         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
2859         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
2860         (related splits): Change predicate to ix86_fp_comparison_operator.
2861         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
2862         instead of ix86_fp_comparison_codes.
2863         (ix86_trivial_fp_comparison_operator,
2864         ix86_fp_comparison_operator): New.
2865         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
2866         (ix86_expand_compare): Eliminate last two parameters.
2867         (ix86_fp_jump_nontrivial_p): Kill.
2868         * config/i386/i386.c (put_condition_code): Eliminate call to
2869         ix86_fp_comparison_codes and subsequent assertion.
2870         (ix86_fp_comparison_codes): Eliminate.
2871         (ix86_fp_swap_condition): New.
2872         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
2873         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
2874         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
2875         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
2876         and ix86_fp_swap_condition.
2877         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
2878         Use ix86_fp_comparison_strategy.
2879         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
2880         (ix86_fp_jump_nontrivial_p): Eliminate.
2881         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
2882         call to ix86_expand_compare.
2883         (ix86_split_fp_branch, ix86_expand_setcc,
2884         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
2885         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
2886
2887 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2888
2889         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
2890         related to jump_clobbers.
2891         * config/arm/arm.md (conds): Remove jump_clob case.
2892         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
2893         splits): Change comparison_operator to arm_comparison_operator.
2894         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
2895         Eliminate.
2896
2897 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2898
2899         * dojump.c (do_compare_rtx_and_jump): Try swapping the
2900         condition for floating point modes.
2901         * expmed.c (emit_store_flag_1): Move here a bigger part
2902         of emit_store_flag.
2903         (emit_store_flag): Try swapping the condition for floating point
2904         modes.
2905         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
2906
2907 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2908
2909         * expr.c (expand_expr_real_1): Just use do_store_flag.
2910         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
2911         emit_store_flag_force.
2912         * expmed.c (emit_store_flag_force): Copy here trick
2913         previously in expand_expr_real_1.  Try reversing the comparison.
2914         (emit_store_flag_1): Work if target is NULL.
2915         (emit_store_flag): Work if target is NULL, using the result mode
2916         from the comparison.  Use split_comparison, restructure final part
2917         to simplify conditionals.
2918
2919 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2920
2921         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
2922         * dojump.c (do_jump): Change handling of floating-point
2923         ops to use just do_compare_and_jump.
2924         (split_comparison): New.
2925         (do_compare_rtx_and_jump): Add here logic coming previously
2926         in do_jump, using split_comparison.
2927
2928 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
2929
2930         PR target/40489
2931         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
2932
2933 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2934
2935         * tree-ssa-alias.c: Fix unintentional commit.
2936
2937 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2938
2939         * passes.c (execute_one_pass): Fix unintentional commit.
2940
2941 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2942
2943         * df-problems.c (df_set_seen, df_unset_seen): Delete.
2944         (df_rd_local_compute, df_md_local_compute): Inline them.
2945
2946         (df_md_scratch): New.
2947         (df_md_alloc, df_md_free): Allocate/free it.
2948         (df_md_local_compute): Only include live registers in init.
2949         (df_md_transfer_function): Prune the in-set computed by
2950         the confluence function, and the gen-set too.
2951
2952 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2953
2954         PR rtl-optimization/26854
2955         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
2956         * df-problems.c (df_rd_add_problem): Fix comment.
2957         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
2958         df_md_simulate_artificial_defs_at_top,
2959         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
2960         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
2961         df_md_transfer_function, df_md_init, df_md_confluence_0,
2962         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
2963         problem_MD, df_md_add_problem): New.
2964         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
2965         df_md_get_bb_info): New.
2966         (DF_LAST_PROBLEM_PLUS1): Adjust.
2967
2968         * Makefile.in (fwprop.o): Include domwalk.h.
2969         * fwprop.c: Include domwalk.h.
2970         (reg_defs, reg_defs_stack): New.
2971         (bitmap_only_bit_between): Remove.
2972         (process_defs): New.
2973         (process_uses): Use reg_defs and local_md instead of
2974         bitmap_only_bit_between and local_rd.
2975         (single_def_use_enter_block): New, from build_single_def_use_links.
2976         (single_def_use_leave_block): New.
2977         (build_single_def_use_links): Remove code moved to
2978         single_def_use_enter_block, invoke domwalk.
2979         (use_killed_between): Adjust comment.
2980
2981 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2982
2983         * bitmap.h (bitmap_ior_and_into): New.
2984         * bitmap.c (bitmap_ior_and_into): New.
2985
2986 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2987
2988         * domwalk.h (struct dom_walk_data): Remove all callbacks except
2989         before_dom_children_before_stmts and after_dom_children_after_stmts.
2990         Rename the two remaining callbacks to just before_dom_children and 
2991         after_dom_children. Remove other GIMPLE statement walking bits.
2992         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
2993         * graphite.c: Do not include domwalk.h.
2994         * tree-into-ssa.c (interesting_blocks): New global.
2995         (struct mark_def_sites_global_data): Remove it and names_to_rename.
2996         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
2997         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
2998         now that they're not domwalk callbacks.
2999         (rewrite_initialize_block): Rename to...
3000         (rewrite_enter_block): ... this, place after called functions.  Test
3001         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
3002         (rewrite_finalize_block): Rename to...
3003         (rewrite_leave_block): ... this, place after called functions.
3004         (rewrite_update_init_block): Rename to...
3005         (rewrite_update_enter_block): ... this, place after called functions.
3006         Test interesting_blocks, call rewrite_update_stmt and 
3007         rewrite_update_phi_arguments.
3008         (rewrite_update_fini_block): Rename to...
3009         (rewrite_leave_block): ... this, place after called functions.
3010         (rewrite_blocks): Remove last argument, simplify initialization of
3011         walk_data.
3012         (mark_def_sites_initialize_block): Rename to...
3013         (mark_def_sites_block): ... this, call mark_def_sites.
3014         (mark_def_sites_blocks): Remove argument, simplify initialization of
3015         walk_data.
3016         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
3017         (update_ssa): Likewise.
3018         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
3019         callback.
3020         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
3021         (dom_opt_initialize_block): Rename to...
3022         (dom_opt_enter_block): ... this, place after called functions.  Walk
3023         statements here, inline propagate_to_outgoing_edges.
3024         (dom_opt_finalize_block): Rename to...
3025         (dom_opt_leave_block): ... this, place after called functions.
3026         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
3027         domwalk callback.
3028         (dse_enter_block, dse_record_phi): New.
3029         (dse_record_phis): Delete.
3030         (dse_finalize_block): Rename to...
3031         (dse_leave_block): ... this.
3032         (tree_ssa_dse): Simplify initialization of walk_data.
3033         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
3034         Adjust initialization of walk_data.
3035         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
3036         * tree-ssa-loop-phiopt.c (get_non_trapping):
3037         Adjust initialization of walk_data.
3038         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
3039         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
3040         it's not a domwalk callback.
3041         (uncprop_initialize_block): Rename to...
3042         (dse_enter_block): ... this, call uncprop_into_successor_phis.
3043         (dse_finalize_block): Rename to...
3044         (dse_leave_block): ... this.
3045         (tree_ssa_uncprop): Simplify initialization of walk_data.
3046         * Makefile.in: Adjust dependencies.
3047
3048 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
3049
3050         * arm.md (casesi): Fix test for Thumb1.
3051         (thumb1_casesi_internal_pic): Likewise.
3052         (thumb1_casesi_dispatch): Likewise.
3053
3054 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
3055
3056         * config/arm/arm-cores.def: Added core cortex-m0.
3057         * config/arm/arm-tune.md: Regenerated.
3058         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
3059
3060 2009-06-26  DJ Delorie  <dj@redhat.com>
3061
3062         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
3063
3064         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
3065         the scheduler doesn't tag jump insns.
3066
3067 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
3068
3069         * c-decl.c (merge_decls): Re-indent.
3070
3071 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
3072
3073         PR c/39902
3074         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
3075         Special-case decimal float constants.
3076
3077 2009-06-26  Richard Henderson  <rth@redhat.com>
3078
3079         * function.h (struct function): Add cannot_be_copied_reason,
3080         and cannot_be_copied_set.
3081         * tree-inline.c (has_label_address_in_static_1): Rename from
3082         inline_forbidden_p_2; don't set inline_forbidden_reason here.
3083         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
3084         don't set inline_forbidden_reason.
3085         (copy_forbidden): New function, split out of inline_forbidden_p.
3086         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
3087         (inline_forbidden_p): Use copy_forbidden.
3088         (tree_versionable_function_p): Likewise.
3089         (inlinable_function_p): Merge into tree_inlinable_function_p.
3090         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
3091         * ipa-cp.c (ipcp_versionable_function_p): New function.
3092         (ipcp_cloning_candidate_p): Use it.
3093         (ipcp_node_modifiable_p): Likewise.
3094
3095 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
3096
3097         * builtins.c (expand_builtin_alloca): Handle builtin alloca
3098         that is marked not to be inlined. Remove flag_mudflap use.
3099         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
3100         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
3101
3102 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
3103
3104         PR bootstrap/40338
3105         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
3106         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
3107
3108 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
3109
3110         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
3111         shared libgcc.
3112         (__mingwthr_remove_key_dtor): Likewise.
3113
3114 2009-06-26  Richard Guenther  <rguenther@suse.de>
3115
3116         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
3117
3118 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3119
3120         PR middle-end/40525
3121         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
3122         try the non-cond_exec path also.
3123
3124 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3125
3126         PR target/40468
3127         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
3128         (output_cbranch): Use new functions.
3129         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
3130         Likewise.
3131
3132 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3133             Pat Haugen  <pthaugen@us.ibm.com>
3134             Revital Eres <ERES@il.ibm.com>
3135
3136         * config/rs6000/rs6000.c (print_operand): Correct lossage message
3137         for %c error.  Add %x support to print VSX registers as a unified
3138         register set, instead of separate float and altivec registers.
3139         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
3140         %y case, and add support for VSX pre-modify addresses.
3141         (output_toc): Add assert for CONST containing an integer constant
3142         in the PLUS case.
3143         (rs6000_adjust_cost): Add POWER7 support.
3144         (insn_must_be_first_in_group): Ditto.
3145         (insn_must_be_last_in_group): Ditto.
3146         (rs6000_emit_popcount): Ditto.
3147         (rs6000_vector_mode_supported_p): Ditto.
3148
3149         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
3150         Change some of the functions called by macros to being called
3151         through a pointer, so debug functions can be inserted if
3152         -mdebug=addr or -mdebug=cost. 
3153         (rs6000_preferred_reload_class_ptr): Ditto.
3154         (rs6000_secondary_reload_class_ptr): Ditto.
3155         (rs6000_secondary_memory_needed_ptr): Ditto.
3156         (rs6000_cannot_change_mode_class_ptr): Ditto.
3157         (rs6000_secondary_reload_inner): Ditto.
3158         (rs6000_legitimize_reload_address): Ditto.
3159         (rs6000_legitimize_reload_address_ptr): Ditto.
3160         (rs6000_mode_dependent_address): Ditto.
3161         (rs6000_mode_dependent_address_ptr): Ditto.
3162
3163         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
3164         function to return true if the mode allows reg + integer
3165         addresses.
3166         (virtual_stack_registers_memory_p): New function to return true if
3167         the address refers to a virtual stack register.
3168         (rs6000_legitimate_offset_address_p): Move code to say whether a
3169         mode supports reg+int addressing to reg_offset_addressing_ok_p and
3170         call it.
3171         (rs6000_legitimate_address_p): Add checks for modes that only can
3172         do reg+reg addressing.  Start adding VSX support.
3173         (rs6000_legitimize_reload_address): Ditto.
3174         (rs6000_legitimize_address): Ditto.
3175         (rs6000_debug_legitimate_address_p): New debug functions for
3176         -mdebug=addr and -mdebug=cost.
3177         (rs6000_debug_rtx_costs): Ditto.
3178         (rs6000_debug_address_costs): Ditto.
3179         (rs6000_debug_adjust_cost): Ditto.
3180         (rs6000_debug_legitimize_address): Ditto.
3181         (rs6000_legitimize_reload_address_ptr): Point to call normal
3182         function or debug function.  Make functions called via pointer
3183         static.
3184         (rs6000_mode_dependent_address_ptr): Ditto.
3185         (rs6000_secondary_reload_class_ptr): Ditto.
3186         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
3187         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
3188         into a friendlier error.
3189         (rs6000_init_builtins): Add initial VSX support.
3190         (rs6000_adjust_cost): Fix some spacing issues.
3191
3192         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
3193         (REG_CLASS_NAMES): Ditto.
3194         (REG_CLASS_CONTENTS): Ditto.
3195         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
3196         pointer, to add -mdebug=addr support.
3197         (CANNOT_CHANGE_MODE_CLASS): Ditto.
3198         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
3199         -mdebug=addr support.
3200         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
3201         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
3202         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
3203
3204         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
3205         16-bit values.
3206         (bswapsi*): Set attribute types for load/store.  Add combiner
3207         patterns to eliminate zero extend on 64-bit.
3208         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
3209         stdbrx if the hardware supports those instructions.
3210
3211 2009-06-25  Ian Lance Taylor  <iant@google.com>
3212
3213         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
3214         (Link Options): Document -static-libstdc++.
3215
3216 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3217
3218         PR target/38731
3219         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
3220         DATA_ALIGNMENT instead.
3221
3222 2009-06-25  Richard Guenther  <rguenther@suse.de>
3223
3224         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
3225         indirect references against the callused/escaped solutions.
3226         (call_may_clobber_ref_p_1): Likewise.
3227
3228 2009-06-25  Martin Jambor  <mjambor@suse.cz>
3229
3230         PR tree-optimization/40493
3231         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
3232         (enum unscalarized_data_handling): New type.
3233         (handle_unscalarized_data_in_subtree): Return what has been done.
3234         (load_assign_lhs_subreplacements): Handle left flushes differently.
3235         (sra_modify_assign): Use unscalarized_data_handling, simplified
3236         condition determining whether to remove the statement.
3237
3238 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
3239
3240         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
3241         excerpt - @ should be doubled for texinfo.
3242
3243 2009-06-24  Ian Lance Taylor  <iant@google.com>
3244
3245         * config/arc/arc.c: Include "df.h".
3246         (arc_attribute_table): Make static.  Move higher in file.
3247         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
3248         (output_shift): Initialize n later to avoid warning.
3249         * config/arm/arm.c (arm_attribute_table): Make static.  Move
3250         higher in file.
3251         * config/avr/avr.c (avr_attribute_table): Make static.  Move
3252         higher in file.
3253         (reg_class_tab): Change array type from int to enum reg_class.
3254         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
3255         LABEL_REF.
3256         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
3257         (lshrhi3_out): Likewise.
3258         (class_likely_spilled_p): Change return type to bool.
3259         (avr_rtx_costs): Use local code variable with enum type.
3260         * config/avr/avr.md (movmemhi): Use add_reg_note.
3261         (andhi3, andsi3): Don't use AS2 with "and".
3262         (iorhi3, iorsi3): Don't use AS2 with "or".
3263         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
3264         * config/crx/crx.c: Include "df.h".
3265         (crx_attribute_table): Make static.
3266         * config/m32r/m32r.c: Include "df.h".
3267         (m32r_attribute_table): Make static.  Move higher in file.
3268         (pop): Use add_reg_note.
3269         (block_move_call): Change 0 to LCT_NORMAL in function call.
3270         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
3271         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
3272         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
3273         declare, not just when TREE_CODE is defined.
3274         * config/m68hc11/m68hc11.c: Include "expr.h".
3275         (m68hc11_attribute_table): Make static.  Move higher in file.
3276         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
3277         function call.
3278         (m68hc11_register_indirect_p): Likewise.
3279         (m68hc11_function_arg_padding): Change return type to enum
3280         direction.
3281         (emit_move_after_reload): Use add_reg_note.
3282         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
3283         (m68hc11_split_logical): Likewise.
3284         (m68hc11_rtx_costs): Add local code_and outer_code variables with
3285         enum type.
3286         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
3287         to VOIDmode in function call.
3288         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
3289         tree is defined.
3290         (m68hc11_split_logical): Update declaration.
3291         (m68hc11_function_arg_padding): Update declaration.
3292         * config/mcore/mcore.c (regno_reg_class): Change form array of int
3293         to array of enum reg_class.
3294         (mcore_attribute_table): Make static.  Move higher in file.
3295         (mcore_rtx_costs): Add cast to enum type.
3296         * config/mcore/mcore.h (regno_reg_class): Update declaration.
3297         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
3298         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
3299         in file.
3300         * config/sh/predicates.md (trapping_target_operand): Rename and to
3301         and_expr.
3302         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
3303         higher in file.
3304         * config/spu/spu.c (spu_attribute_table): Make static.  Move
3305         higher in file.
3306         * config/v850/v850.c (v850_attribute_table): Make static.  Move
3307         higher in file.
3308         (v850_rtx_costs): Use local code with enum type.
3309         (expand_epilogue): Add cast.
3310         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
3311
3312 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
3313
3314         PR target/40515
3315         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
3316         -m2a-single-only and -m2a-nofpu.
3317         * config/sh/sh.opt: Document m2a generates FPU code.  
3318
3319 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
3320
3321         * defaults.h (CAN_ELIMINATE): Provide default.
3322         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
3323         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
3324         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
3325         * config/spu/spu.h (CAN_ELIMINATE): Delete.
3326         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
3327         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
3328         * config/cris/cris.h (CAN_ELIMINATE): Delete.
3329         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
3330         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
3331         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
3332
3333 2009-06-24  DJ Delorie  <dj@redhat.com>
3334
3335         * mep-ext-cop.cpu: Fix copyright notice.
3336         * mep-default: Fix copyright notice.
3337         * mep-core: Fix copyright notice.
3338         * mep: Fix copyright notice.
3339         * mep-ivc2: Fix copyright notice.
3340         * mep-c5: Fix copyright notice.
3341
3342 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
3343
3344         * doc/contrib.texi (Contributors): 
3345
3346 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3347         
3348         PR middle-end/40501
3349         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
3350         src and dst operands if necessary.
3351
3352 2009-06-23  DJ Delorie  <dj@redhat.com>
3353
3354         Add MeP port.
3355         * config.gcc: Add mep support.
3356         * recog.c: Resurrect validate_replace_rtx_subexp().
3357         * recog.h: Likewise.
3358         * config/mep/: Add new port:
3359         * config/mep/constraints.md: New file.
3360         * config/mep/default.h: New file.
3361         * config/mep/intrinsics.h: New file.
3362         * config/mep/intrinsics.md: New file.
3363         * config/mep/ivc2-template.h: New file.
3364         * config/mep/mep-c5.cpu: New file.
3365         * config/mep/mep-core.cpu: New file.
3366         * config/mep/mep-default.cpu: New file.
3367         * config/mep/mep-ext-cop.cpu: New file.
3368         * config/mep/mep-intrin.h: New file.
3369         * config/mep/mep-ivc2.cpu: New file.
3370         * config/mep/mep-lib1.asm: New file.
3371         * config/mep/mep-lib2.c: New file.
3372         * config/mep/mep-pragma.c: New file.
3373         * config/mep/mep-protos.h: New file.
3374         * config/mep/mep-tramp.c: New file.
3375         * config/mep/mep.c: New file.
3376         * config/mep/mep.cpu: New file.
3377         * config/mep/mep.h: New file.
3378         * config/mep/mep.md: New file.
3379         * config/mep/mep.opt: New file.
3380         * config/mep/predicates.md: New file.
3381         * config/mep/t-mep: New file.
3382
3383 2009-06-23  Ian Lance Taylor  <iant@google.com>
3384
3385         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
3386         from loose_warn into c_loose_warn and from strict_warn into
3387         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
3388         --enable-build-with-cxx.  Set and substitute
3389         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
3390         * Makefile.in (CXXFLAGS): New variable.
3391         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
3392         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
3393         the default is the same as $(STRICT_WARN).
3394         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
3395         (CXX): New variable.
3396         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
3397         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
3398         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
3399         (HOST_LIBS): New variable.
3400         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
3401         (ALL_CXXFLAGS): New variable.
3402         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
3403         * doc/install.texi (Configuration): Document
3404         --enable-build-with-cxx, --with-stage1-ldflags,
3405         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
3406         * configure: Rebuild.
3407
3408 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3409
3410         * config/arm/arm.c (arm_override_options): Fix braces and formatting
3411         from previous commit.
3412
3413 2009-06-23  Ian Lance Taylor  <iant@google.com>
3414
3415         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
3416
3417 2009-06-23  Ian Lance Taylor  <iant@google.com>
3418
3419         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter