OSDN Git Service

2009-08-03 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-08-03  Richard Guenther  <rguenther@suse.de>
2
3         * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
4         file will be created.
5         * omp-low.c (pass_diagnose_omp_blocks): Likewise.
6         * toplev.c (compile_file): Adjust comment.
7
8 2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
9
10         * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
11         * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
12         (TARGET_PROMOTE_FUNCTION_MODE): Define.
13         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
14         (sh_promote_function_mode): Fix typo.
15
16 2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
17
18         * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as
19           possibly unused.
20
21 2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22
23         * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
24         declaration arguments.
25
26 2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
27
28         * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
29         of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
30         (ix86_split_ashl): Ditto.
31         (ix86_expand_vector_init_one_nonzero): Ditto.
32         (ix86_expand_vector_set): Ditto.
33         (ix86_expand_reduc_v4sf): Ditto.
34
35 2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
36
37         * explow.c (promote_function_mode): Remove assert.
38         * config/sh/sh.c (sh_promote_function_mode): Declare.
39
40 2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
41
42         * config/pa/pa.c (pa_promote_function_mode): Declare.
43         Change to static.  Fix promote_mode call.
44
45         * gthr-dce.h (CONST_CAST2): Define if not defined.
46         (__gthread_setspecific): Use CONST_CAST2 to fix warning.
47
48         * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
49
50 2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
51
52         * expr.c (store_constructor): Use promote_decl_mode.  Remove
53         now write-only variable unsignedp.
54         (expand_expr_real_1): Use promote_decl_mode.
55         * expr.h (promote_function_mode, promote_decl_mode): New.
56         (promote_mode): Remove last argument.
57         * function.c (assign_temp): Drop last argument of promote_mode.
58         (assign_parm_find_data_types): Use promote_function_mode.
59         (assign_parm_setup_reg): Likewise.
60         (expand_function_end): Use promote_function_mode.
61         * calls.c (initialize_argument_information): Use promote_function_mode.
62         (precompute_arguments): Use promote_mode instead of checking if
63         only PROMOTE_FUNCTION_MODE is defined.
64         (expand_call): When making sibcall decisions, use promote_function_mode.
65         Below, remove an if for targetm.calls.promote_function_return and
66         and use promote_function_mode.
67         (emit_library_call_value_1): Use promote_function_mode, fix bug
68         where promote_mode was passed FOR_CALL == 0 for a return value in an
69         assertion.
70         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
71         * explow.c (promote_function_mode, promote_decl_mode): New.
72         (promote_mode): Keep only the FOR_CALL == 0 case.
73         * combine.c (setup_incoming_promotion): Remove test of
74         promote_function_args.  Use promote_function_mode.
75         * stmt.c (expand_value_return): Use promote_decl_mode.
76         (expand_decl): Use promote_decl_mode.
77
78         * expr.c (store_constructor): Use promote_decl_mode.  Remove
79         now write-only variable unsignedp.
80         (expand_expr_real_1): Use promote_decl_mode.
81         * expr.h (promote_function_mode, promote_decl_mode): New.
82         (promote_mode): Remove last argument.
83         * function.c (assign_temp): Drop last argument of promote_mode.
84         (assign_parm_find_data_types): Use promote_function_mode.
85         (assign_parm_setup_reg): Likewise.
86         (expand_function_end): Use promote_function_mode.
87         * calls.c (initialize_argument_information): Use promote_function_mode.
88         (precompute_arguments): Use promote_mode instead of checking if
89         only PROMOTE_FUNCTION_MODE is defined.
90         (expand_call): When making sibcall decisions, use promote_function_mode.
91         Below, remove an if for targetm.calls.promote_function_return and
92         and use promote_function_mode.
93         (emit_library_call_value_1): Use promote_function_mode, fix bug
94         where promote_mode was passed FOR_CALL == 0 for a return value in an
95         assertion.
96         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
97         * explow.c (promote_function_mode, promote_decl_mode): New.
98         (promote_mode): Keep only the FOR_CALL == 0 case.
99         * combine.c (setup_incoming_promotion): Remove test of
100         promote_function_args.  Use promote_function_mode.
101         * stmt.c (expand_value_return): Use promote_decl_mode.
102         (expand_decl): Use promote_decl_mode.
103
104         * explow.c (promote_function_mode): Just call the target hook.
105         * targhooks.c (default_promote_function_mode,
106         default_promote_function_mode_always_promote): New.
107         * targhooks.h (default_promote_function_mode,
108         default_promote_function_mode_always_promote): Declare.
109         * target.h (promote_function_args, promote_function_return): Remove.
110         (promote_function_mode): New.
111         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
112         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
113         (TARGET_PROMOTE_FUNCTION_MODE): New.
114         (TARGET_CALLS): Adjust.
115         * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
116         TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
117
118         * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
119         * config/s390/s390.c (s390_promote_function_mode): ... here,
120         with pointer handling.
121         (TARGET_PROMOTE_FUNCTION_MODE): Define.
122         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
123
124         * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
125         * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
126         with pointer handling.
127         (TARGET_PROMOTE_FUNCTION_MODE): Define.
128         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
129         
130         * config/sh/sh-protos.h (sh_promote_function_mode): New.
131         * config/sh/sh.c (sh_promote_function_mode): New.
132         (TARGET_PROMOTE_FUNCTION_MODE): Define.
133         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
134
135         * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
136         * config/cris/cris.c (cris_promote_function_mode): ... here.
137         (TARGET_PROMOTE_FUNCTION_MODE): Define.
138         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
139
140         * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
141         * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
142         (TARGET_PROMOTE_FUNCTION_MODE): Define.
143         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
144
145         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
146         * config/arm/arm.c (arm_promote_function_mode): ... here, without
147         complex type handling.
148         (TARGET_PROMOTE_FUNCTION_MODE): Define.
149         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
150
151         * config/pa/pa.c (pa_promote_function_mode): New.
152         (TARGET_PROMOTE_FUNCTION_MODE): Define.
153         (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
154
155         * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
156         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
157         (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
158         * config/xtensa/xtensa.c: Likewise.
159         * config/stormy16/stormy16.c: Likewise.
160         * config/iq2000/iq2000.c: Likewise.
161         * config/rs6000/rs6000.c: Likewise.
162         * config/picochip/picochip.c: Likewise.
163         * config/arc/arc.c: Likewise.
164         * config/mcore/mcore.c: Likewise.
165         * config/score/score.c: Likewise.
166         * config/mips/mips.c: Likewise.
167         * config/bfin/bfin.c: Likewise.
168         * config/ia64/ia64.c: Likewise (disabled though).
169
170         * config/frv/frv.h: Remove pointless remark.
171
172         * doc/tm.texi (PROMOTE_FUNCTION_MODE,
173         TARGET_PROMOTE_FUNCTION_ARGS,
174         TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
175         (TARGET_PROMOTE_FUNCTION_MODE): ... this.
176
177 2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
178
179         * doc/invoke.texi (-fgraphite-force-parallel): Renamed
180         -floop-parallelize-all.
181         * toplev.c (process_options): Rename flag_graphite_force_parallel to
182         flag_loop_parallelize_all.
183         * tree-ssa-loop.c (gate_graphite_transforms): Same.
184         * graphite.c (graphite_transform_loops): Same.
185         * common.opt: Same.
186         * graphite-poly.c (apply_poly_transforms): Same.
187
188 2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
189
190         PR tree-optimization/40914
191         * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
192         if set, then check the delta field of the PMF record.
193         (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
194         (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
195         call is stored in the delta.
196
197 2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
198
199         * config/mips/mips.md (*clear_upper32_dext): New pattern.
200
201 2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
202
203         * config/i386/bsd.h (ASM_BYTE): New define.
204         * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
205         * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
206         .byte.  Use fputs or putc instead of fprintf where appropriate.
207         * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
208         fputs or putc instead of fprintf where appropriate.
209         * config/i386/i386elf.h: Ditto.
210         * config/i386/sysv4.h: Ditto.
211         
212         * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
213         * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
214         (*tls_global_dynamic_64): Ditto.
215
216 2009-07-31  Christian Bruel  <christian.bruel@st.com>   
217
218         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
219         
220 2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
221
222         * config/arm/arm.c (arm_arm_address_cost): Fix typo. 
223         Remove dead code for MINUS.
224
225 2009-07-31  Anthony Green  <green@moxielogic.com>
226
227         * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
228         $r12 in prologue.
229         (moxie_expand_epilogue): Ditto for epilogue.
230         (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
231         incoming arguments.
232         (moxie_function_arg): Ditto.
233         (moxie_pass_by_reference): Ditto.
234         (moxie_arg_partial_bytes): Ditto.
235         * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
236         (FUNCTION_ARG_ADVANCE) Ditto.
237         (REG_PARM_STACK_SPACE) Ditto.
238         (FUNCTION_ARG_REGNO_P) Dito.
239
240         * config.gcc: Add moxie linux config support.
241         * gcc/config/moxie/uclinux.h: New file.
242
243 2009-07-31  DJ Delorie  <dj@redhat.com>
244
245         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
246         (UNSPECV_SP_SWITCH_E): New.
247         (sp_switch_1): Change to an unspec.
248         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
249         replace $r15.
250         * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
251         reference the new stack's address
252
253 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
254
255         * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
256         graphite-clast-to-gimple.o, graphite-dependences.o,
257         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
258         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
259         (graphite-blocking.o,
260         graphite-clast-to-gimple.o, graphite-dependences.o,
261         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
262         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
263         * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
264         * cfgloop.h (struct loop): Add can_be_parallel field.
265         * common.opt (fgraphite-identity): Moved up.
266         (fgraphite-force-parallel): New flag.
267         * graphite.c: Rewrite.
268         * graphite.h: Rewrite.
269         * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
270         after Graphite.
271         * toplev.c (graphite_out_file): New file descriptor.
272         (graphite_in_file): New.
273         (process_options): flag_graphite_force_parallel cannot be used without
274         Graphite.
275         * tree-ssa-loop.c: Include toplev.h.
276         (gate_graphite_transforms): Enable flag_graphite for
277         flag_graphite_force_parallel.
278
279 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
280
281         * ChangeLog.graphite: New.
282         * graphite-blocking.c: New.
283         * graphite-clast-to-gimple.c: New.
284         * graphite-clast-to-gimple.h: New.
285         * graphite-dependences.c: New.
286         * graphite-dependences.h: New.
287         * graphite-interchange.c: New.
288         * graphite-poly.c: New.
289         * graphite-poly.h: New.
290         * graphite-ppl.c: New.
291         * graphite-ppl.h: New.
292         * graphite-scop-detection.c: New.
293         * graphite-scop-detection.h: New.
294         * graphite-sese-to-poly.c: New.
295         * graphite-sese-to-poly.h: New.
296         * sese.c: New.
297         * sese.h: New.
298
299 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
300
301         * tree-chrec.c (evolution_function_right_is_integer_cst): New.
302         * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
303
304 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
305
306         * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
307         (scev_is_linear_expression): Return false if the evolution is not
308         affine multivariate.
309
310 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
311
312         * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
313         * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
314
315 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
316
317         * tree-data-ref.c (debug_data_references): New.
318         (debug_data_reference): New.
319         * tree-data-ref.h (debug_data_references): Declared.
320         (debug_data_reference): Declared.
321
322 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
323
324         * tree-data-ref.c (stmt_simple_memref_p: Removed.
325         * tree-data-ref.h (scop_p): Removed.
326         (struct data_reference): Remove field scop.
327         (DR_SCOP): Removed.
328         (stmt_simple_memref_p): Removed.
329
330 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
331
332         * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
333         * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
334         basic block empty.
335
336 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
337
338         * doc/invoke.texi (-fgraphite-force-parallel): Documented.
339
340 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
341
342         * doc/invoke.texi (-fgraphite-identity): Documented.
343
344 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
345
346         * tree-scalar-evolution.c: Fix comment.
347         (instantiate_scev_1): Return unknow from scev instantiation if the
348         result is not above instantiate_below.
349
350 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
351
352         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
353         static anymore.  Instantiate the symbols that may have been introduced
354         by chrec_apply.
355         * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
356         Declared.
357
358 2009-07-30  DJ Delorie  <dj@redhat.com>
359
360         * config/mep/mep.c (mep_asm_init_sections): Add section flags and
361         .vliw directive to VLIW sections.
362
363 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
364
365         * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
366         New variables.
367         ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
368         (AUTOHEADER): New variable.
369         ($(srcdir)/cstamp-h.in): Use it.
370
371 2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
372             Pat Haugen  <pthaugen@us.ibm.com>
373             Revital Eres <ERES@il.ibm.com>
374
375         * config/rs6000/vector.md (VEC_F): Add VSX support.
376         (VEC_A): Ditto.
377         (VEC_N): Ditto.
378         (mov<mode>): Ditto.
379         (vector_load_<mode>): Ditto.
380         (vector_store_<mode>): Ditto.
381         (vector GPR move split): Ditto.
382         (vec_reload_and_plus_<mptrsize>): Ditto.
383         (vec_reload_and_reg_<mptrsize>): Ditto.
384         (add<mode>3): Ditto.
385         (sub<mode>3): Ditto.
386         (mul<mode>3): Ditto.
387         (neg<mode>2): Ditto.
388         (abs<mode>2): Ditto.
389         (smin<mode>3): Ditto.
390         (smax<mode>3): Ditto.
391         (vector_eq<mode>): Ditto.
392         (vector_gt<mode>): Ditto.
393         (vector_ge<mode>): Ditto.
394         (vector_gtu<mode>): Ditto.
395         (vector_select_<mode>_uns): Ditto.
396         (vector_eq_<mode>_p): Ditto.
397         (vector_gt_<mode>_p): Ditto.
398         (vector_ge_<mode>_p): Ditto.
399         (vector_gtu_<mode>_p): Ditto.
400         (cr6_test_for_zero): Ditto.
401         (cr6_test_for_zero_reverse): Ditto.
402         (cr6_test_for_lt): Ditto.
403         (cr6_test_for_lt_reverse): Ditto.
404         (xor<mode>3): Ditto.
405         (ior<mode>3): Ditto.
406         (and<mode>3): Ditto.
407         (one_cmpl<mode>2): Ditto.
408         (nor<mode>2): Ditto.
409         (andc<mode>2): Ditto.
410         (float<VEC_int<mode>2): Ditto.
411         (unsigned_float<VEC_int><mode>2): Ditto.
412         (fix_trunc<mode><VEC_int>2): Ditto.
413         (fixuns_trunc<mode><VEC_int>2): Ditto.
414         (vec_init<mode>):
415         (vec_set<mode>): Ditto.
416         (vec_extract<mode>): Ditto.
417         (vec_interleave_highv4sf): Ditto.
418         (vec_interleave_lowv4sf): Ditto.
419         (vec_realign_load_<mode>): Ditto.
420         (vec_shl_<mode>): Ditto.
421         (vec_shr_<mode>): Ditto.
422         (div<mode>3): New patterns for VSX.
423         (vec_interleave_highv2df): Ditto.
424         (vec_interleave_lowv2df): Ditto.
425         (vec_pack_trunc_v2df): Ditto.
426         (vec_pack_sfix_trunc_v2df): Ditto.
427         (vec_pack_ufix_trunc_v2df): Ditto.
428         (vec_unpacks_hi_v4sf): Ditto.
429         (vec_unpacks_lo_v4sf): Ditto.
430         (vec_unpacks_float_hi_v4si): Ditto.
431         (vec_unpacku_float_lo_v4si): Ditto.
432         (vec_unpacku_float_hi_v4si): Ditto.
433         (vec_unpacks_float_lo_v4si): Ditto.
434         (movmisalign<mode>): Ditto.
435         (vector_ceil<mode>2): New patterns for vectorizing math library.
436         (vector_floor<mode>2): Ditto.
437         (vector_btrunc<mode>2): Ditto.
438         (vector_copysign<mode>3): Ditto.
439
440         * config/rs6000/predicates.md (easy_vector_constant_msb): New
441         predicate for setting the high bit in each word, used for copysign.
442
443         * config/rs6000/ppc-asm.h (f19): Whitespace.
444         (f32-f63): Define if VSX.
445         (v0-v31): Define if Altivec.
446         (vs0-vs63): Define if VSX.
447
448         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
449
450         * config/rs6000/power7.md: New file, provide tuning parameters for
451         -mcpu=power7.
452
453         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
454         (rs6000_cpu_cpp_builtins): Ditto.
455         (altivec_overloaded_builtins): Ditto.
456         (altivec_resolve_overloaded_builtin): Ditto.
457
458         * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
459         debug switch to disable vectorizing simple math builtin
460         functions.
461
462         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
463         Vectorize simple math builtin functions.
464         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
465         hook to vectorize math builtins.
466         (rs6000_override_options): Enable -mvsx on -mcpu=power7.
467         (rs6000_builtin_conversion): Add VSX/power7 support.
468         (rs6000_builtin_vec_perm): Ditto.
469         (vsplits_constant): Add support for loading up a vector constant
470         with just the high bit set in each part.
471         (rs6000_expand_vector_init): Add VSX/power7 support.
472         (rs6000_expand_vector_set): Ditto.
473         (rs6000_expand_vector_extract): Ditto.
474         (rs6000_emit_move): Ditto.
475         (bdesc_3arg): Ditto.
476         (bdesc_2arg): Ditto.
477         (bdesc_1arg): Ditto.
478         (rs6000_expand_ternop_builtin): Ditto.
479         (altivec_expand_builtin): Ditto.
480         (rs6000_expand_unop_builtin): Ditto.
481         (rs6000_init_builtins): Ditto.
482         (altivec_init_builtins): Ditto.
483         (builtin_function_type): Ditto.
484         (rs6000_common_init_builtins): Ditto.
485         (rs6000_handle_altivec_attribute); Ditto.
486         (rs6000_mangle_type): Ditto.
487         (rs6000_vector_mode_supported_p): Ditto.
488         (rs6000_mode_dependent_address): Altivec addresses with AND -16
489         are mode dependent.
490
491         * config/rs6000/vsx.md: New file for VSX support.
492
493         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
494         identifing values with just the most significant bit set.
495         (enum rs6000_builtins): Add builtins for VSX.  Add simple math
496         vectorized builtins.
497
498         * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
499         (UNSPEC_VRFIM): Delete.
500         (splitter for loading up vector with most significant bit): New
501         splitter for vectorizing copysign.
502         (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
503         vectorizing simple math functions.
504         (altivec_vrfip): Add support for vectorizing simple math functions.
505         (altivec_vrfim): Ditto.
506         (altivec_copysign_v4sf3): New insn for Altivec copysign support.
507
508         * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
509         (power7.md, vsx.md): Include for power7 support.
510         (copysigndf3): Use VSX instructions if -mvsx.
511         (negdf2_fpr): Ditto.
512         (absdf2_fpr): Ditto.
513         (nabsdf2_fpr): Ditto.
514         (adddf3_fpr): Ditto.
515         (subdf3_fpr): Ditto.
516         (muldf3_fpr): Ditto.
517         (divdf3_fpr): Ditto.
518         (fix_truncdfdi2_fpr): Ditto.
519         (cmpdf_internal1): Ditto.
520         (fred, fred_fpr): Convert into expander/insn to add VSX support.
521         (btruncdf2, btruncdf2_fpr): Ditto.
522         (ceildf2, ceildf2_fpr): Ditto.
523         (floordf2, floordf2_fpr): Ditto.
524         (floatdidf2, floatdidf2_fpr): Ditto.
525         (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
526         (fmsubdf4_fpr): Ditto.
527         (fnmadddf4_fpr_1): Ditto.
528         (fnmadddf4_fpr_2): Ditto.
529         (fnmsubdf4_fpr_1): Ditto.
530         (fnmsubdf4_fpr_2): Ditto.
531         (fixuns_truncdfdi2): Add expander for VSX support.
532         (fix_truncdfdi2): Ditto.
533         (fix_truncdfsi2): Ditto.
534         (ftruncdf2): Ditto.
535         (btruncsf2): Whitespace.
536         (movdf_hardfloat32): Add support for VSX registers.
537         (movdf_softfloat32): Ditto.
538         (movdf_hardfloat64): Ditto.
539         (movdf_hardfloat64_mfpgpr): Ditto.
540         (movdf_softfloat64): Ditto.
541         (movti splitters): Add check for vector registers supporting
542         TImode in the future.
543         (bpermd): Add power7 bpermd instruction.
544
545         * config/rs6000/altivec.h (vec_div): Define if VSX.
546         (vec_mul): Ditto.
547         (vec_msub): Ditto.
548         (vec_nmadd): Ditto.
549         (vec_nearbyint): Ditto.
550         (vec_rint): Ditto.
551         (vec_sqrt): Ditto.
552         (all predicates): Use the generic builtin function, and not the V4SF
553         specific function so that the predicates will work with VSX's V2DF.
554         (vec_all_*): Ditto.
555         (vec_any_*): Ditto.
556
557         * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
558         Document new VSX functions and types.
559
560         * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
561         switches.
562
563         * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
564         "wa", and "j" constraints.  Modify "v" to talk about Altivec
565         instead of just vector.
566
567 2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
568
569         PR debug/26475
570         * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
571         location for phi arguments.
572         (rewrite_update_phi_arguments): Find locations for reaching defs.
573         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
574         Add location to add_phi_arg calls.
575         * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
576         * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
577         split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
578         * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
579         create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
580         * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
581         * tree-phinodes.c (make_phi_node): Initialize location.
582         (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
583         (add_phi_arg): Add location parameter.
584         (remove_phi_arg_num): Move location when moving phi argument.
585         * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 
586         location.
587         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
588         slpeel_update_phi_nodes_for_guard1,
589         slpeel_update_phi_nodes_for_guard2,
590         slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
591         vect_loop_versioning): Set locations.
592         * tree-parloops.c (create_phi_for_local_result,
593         transform_to_exit_first_loop, create_parallel_loop): Add locations.
594         * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
595         * tree-vect-loop.c (get_initial_def_for_induction,
596         vect_create_epilog_for_reduction, vect_finalize_reduction): Add
597         locations.
598         * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
599         (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
600         (gimple_phi_arg_set_location): New.  Set locus.
601         (gimple_phi_arg_has_location): New.  Check for locus.
602         (redirect_edge_var_map_location): New.  Return locus from var_map.
603         * tree-vect-data-refs.c (vect_setup_realignment): Set location.
604         * tree-ssa-phiopt.c (conditional_replacement): Set locus when
605         combining PHI arguments.
606         (cond_store_replacement): Set location.
607         * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
608         * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
609         scop_add_exit_phis_edge): Add locations.
610         * tree-cfgcleanup.c (remove_forwarder_block,
611         remove_forwarder_block_with_phi): Add locations.
612         * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
613         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
614         locations.
615         * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
616         * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
617         flush_pending_stmts): Add source location.
618         * lambda-code.c (perfect_nestify): Maintain location stack with argument
619         stack to preserve locations.
620         * tree-vect-stmts.c (vectorizable_load): Add location.
621         * tree-inline.c (copy_phis_for_bb): Copy locus.
622         (setup_one_parameter): Add call locus to inlined parameter stmts.
623         (initialize_inlined_parameters): Pass in call location as parameter
624         assignment locus.
625         (tree_function_versioning): Pass location to setup_one_parameter.
626         * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
627         * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
628         copy and edge lists.
629         (insert_partition_copy_on_edge, insert_value_copy_on_edge,
630         insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 
631         locus parameter and override the stmt default if provided.
632         (new_elim_graph, clear_elim_graph, delete_elim_graph,
633         elim_graph_add_edge, elim_graph_remove_succ_edge,
634         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
635         elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
636         eliminate_phi):  Add locus info in elimination graph for each edge and
637         value copy.
638         (insert_backedge_copies): Copy locus if present.
639         * tree-flow.h (struct _edge_var_map): Add locus field.
640         * tree-switch_conversions.c (fix_phi_nodes): Add locations.
641         * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
642         add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 
643         locations.
644         * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
645         
646 2009-07-30  Martin Jambor  <mjambor@suse.cz>
647
648         PR tree-optimization/40570
649         * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
650         use inlining loops.
651
652 2009-07-30  Razya Ladelsky <razya@il.ibm.com>
653
654         * ssa-loop-manip.c: Include langhooks.h.
655         (rewrite_phi_with_iv): New.
656         (rewrite_all_phi_nodes_with_iv): New.
657         (canonicalize_loop_ivs): Move here from tree-parloops.c.
658         Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
659         * tree-parloops.c (loop_parallel_p): Move out all conditions
660         except dependency check.
661         (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
662         (gen_parallel_loop): Call canonicalize_loop_ivs without
663         reduction_list argument.
664         (build_new_reduction): New.
665         (gather_scalar_reductions): New.
666         (try_get_loop_niter): New.
667         (try_create_reduction_list): New.
668         (parallleize_loops): Change the parallel conditions check.
669         * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
670         * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
671
672 2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
673
674         * opt-functions.awk (opt_args): Allow argument to be enclosed in
675         curly braces.
676         * doc/options.texi (Option properties):  Mention new quoting syntax.
677
678 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
679
680         * config/alpha/alpha.c (alpha_start_function):
681         Handle VMS_DEBUG_MAIN_POINTER
682         * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
683         * doc/invoke.texi: Document -mdebug-main switch.
684
685 2009-07-29  Richard Henderson  <rth@redhat.com>
686
687         * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
688         (cgraph_create_edge_including_clones): Likewise.
689         * tree-inline.c (copy_bb): Operate on the correct edges
690         when updating the callgraph.
691
692 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
693
694         * config/alpha/vms-cc.c: Deleted.
695         * config/alpha/vms-ld.c: Deleted.
696         * config/alpha/t-vms64: Moved to config/vms
697         * config/alpha/vms-crt0-64.c: Moved to config/vms
698         * config/alpha/vms-crt0.c: Moved to config/vms
699         * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
700         * config/alpha/vms-psxcrt0.c: Moved to config/vms
701         * config/alpha/xm-vms.h: Moved to config/vms
702         * config/alpha/x-vms: Moved to config/vms
703         * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
704         config/vms/t-vms.
705         * config/vms/t-vms: Moved here from config/alpha. Alpha specific
706         parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
707         (version): Set.
708         * config/vms/t-vms64: Moved here from config/alpha
709         * config/vms/vms-crt0-64.c: Moved here from config/alpha.
710         (argc,argv,envp): Enforce 32bit malloc'ing.
711         * config/vms/vms-psxcrt0-64.c: Likewise.
712         * config/vms/vms-crt0.c: Moved here from config/alpha.
713         * config/vms/vms-psxcrt0.c: Likewise.
714         * config/vms/vms-crtl-64.h: New file.
715         * config/vms/vms-crtl.h: New file.
716         * config/vms/vms.opt: New file.
717         * config/vms/xm-vms64.h: New file.
718         * config/vms/xm-vms.h: Moved here from config/alpha.
719         (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
720         Set.
721         * config/vms/x-vms: Moved here from config/alpha.
722         (version, VMS_EXTRA_PARTS): Moved to t-vms.
723         (vms-ld.o, vms-cc.o): Removed.
724         (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
725
726 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
727
728         * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
729         correct stack (obvious VMS fix).
730
731 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
732
733         * dwarf2out.c (output_file_names): Output VMS style file name, size,
734         date, version info if VMS_DEBUGGING_INFO defined.
735         * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
736         size, date calculating code moved here.
737
738 2009-07-29  Paul Brook  <paul@codesourcery.com>
739
740         * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
741         do_push/do_pop.
742
743 2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
744
745         PR target/40577
746         * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
747         to DImode when generating insq_le insn.
748
749 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
750
751         * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
752         New macro set for VMS_DEBUGGGING_INFO.
753         (AT_string_form): Use it.
754
755 2009-07-28  DJ Delorie  <dj@redhat.com>
756
757         * config/mep/mep.c (vtext_section): New.
758         (vftext_section): New.
759         (ftext_section): New.
760         (mep_select_section): Add support for functions.
761         (mep_unique_section): Likewise.
762         (mep_asm_init_sections): Likewise.
763         (mep_encode_section_info): Remove it from here.
764
765         * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
766
767 2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
768
769         * tree.h (TREE_DEPRECATED): Document it is used for types too.
770         (TYPE_VECTOR_OPAQUE): Use default_def_flag
771
772 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
773
774         * dwarf2out.c (output_file_names): Test new macro
775         DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
776         (add_comp_dir_attribute): Likewise.
777
778 2009-07-28  Kai Tietz  <kai.tietz@onevision.com>
779
780         * config/i386/mingw-w64.h (LINK_SPEC): Add
781         separating space between commands.
782
783 2009-07-28  Jan Hubicka  <jh@suse.cz>
784
785         PR tree-optimization/40759
786         * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
787         for renaming.
788
789 2009-07-27  DJ Delorie  <dj@redhat.com>
790
791         * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
792         types are dword-aligned.
793         (mep_expand_va_start): Likewise.
794
795 2009-07-27  Olivier Hainque  <hainque@adacore.com>
796             Douglas B Rupp  <rupp@gnat.com>
797
798         * convert.c (convert_to_pointer): Don't assume the target
799         pointer type is POINTER_SIZE long. Fetch its precision instead.
800
801 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
802
803         * system.h (fopen): Undefine if macro.
804
805 2009-07-27  Jakub Jelinek  <jakub@redhat.com>
806
807         * dwarf2out.c (output_cfi_p): Removed.
808         (output_cfis): New function.
809         (output_fde): New function, split from output_call_frame_info.
810         (output_call_frame_info): Use it.
811         (dwarf2out_switch_text_section): Use output_cfis.
812
813 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
814
815         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
816         TARGET_BI_ARCH is specified without enabling SJLJ.
817         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
818         if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
819
820 2009-07-26  Mikael Pettersson <mikpe@it.uu.se>
821
822         * arm.md (negdi2): Use DImode if forcing a value into a register.
823
824 2009-07-26  Ira Rosen  <irar@il.ibm.com>
825
826         PR tree-optimization/40801
827         * tree-vect-stmts.c (vectorizable_call): Get previous copy
828         of vector operand from the previous copy of vector statement.
829         Pass the correct definition type value to
830         vect_get_vec_def_for_stmt_copy().
831
832 2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
833
834         * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
835         const char ** conversion.
836
837 2009-07-25 David Daney <ddaney@caviumnetworks.com>
838
839         * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
840         fancy_abort() if !ENABLE_ASSERT_CHECKING.
841         (gcc_unreachable): Invoke __builtin_unreachable() if
842         !ENABLE_ASSERT_CHECKING.
843
844 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
845
846         PR rtl-optimization/40445
847         * emit-rtl.c (next_nonnote_insn_bb): New function.
848         * rtl.h (next_nonnote_insn_bb): Declare new function.
849         * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
850         with no successors that is the successor of the ENTRY_BLOCK.
851         Continue from the top after removing an empty fallthrough block.
852         * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
853         of next_nonnote_insn.
854
855 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
856
857         * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
858         
859 2009-07-25  Martin Jambor  <mjambor@suse.cz>
860
861         * c-common.c (c_common_attribute_table): New element for noclone.
862         (handle_noclone_attribute): New function. Forward-declare.
863         * tree-inline.c (tree_versionable_function_p): Check for noclone
864         attribute.
865         * doc/extend.texi (Labels as Values): Document need for noclone.
866         (Function Attributes): Document noclone attribute.
867
868 2009-07-25  Jakub Jelinek  <jakub@redhat.com>
869
870         PR rtl-optimization/34999
871         * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
872         and dw_fde_switched_cold_to_hot fields.
873         (output_cfi_p): New function.
874         (output_call_frame_info): If fde->dw_fde_switched_sections,
875         output 2 FDEs instead of one with corrupted header.
876         (dwarf2out_do_cfi_startproc): New function.
877         (dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
878         and fde->dw_fde_switched_cold_to_hot.
879         (dwarf2out_switch_text_section): Compute
880         fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
881         If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
882         dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
883         Otherwise, compute fde->dw_fde_switch_cfi.
884
885 2009-07-24  Cary Coutant  <ccoutant@google.com>
886
887         * tree-cfg.c (assign_discriminator): Add explicit parentheses.
888
889 2009-07-24  Cary Coutant  <ccoutant@google.com>
890
891         * cfghooks.c (split_block): Copy discriminator to new block.
892         * tree-cfg.c (assign_discriminator): Check location of last
893         instruction in block as well as first.
894
895 2009-07-24  Uros Bizjak  <ubizjak@gmail.com>
896
897         * config/i386/linux.c: Use fputs or putc instead of fprintf
898         where appropriate.
899         * config/i386/gas.h: Ditto.
900         * config/i386/x86-64.h: Ditto.
901         * config/i386/att.h: Ditto.
902
903 2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
904
905         * expmed.c (emit_store_flag): Use a recursive call to optimize the
906         xor case.
907
908 2009-07-24  Martin Jambor  <mjambor@suse.cz>
909
910         * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
911         (ipa_push_func_to_list_1): Declare.
912         (ipa_push_func_to_list): New function.
913
914         * ipa-prop.c (ipa_push_func_to_list_1): New function.
915         (ipa_init_func_list): Call ipa_push_func_to_list_1.
916         (ipa_push_func_to_list): Removed.
917         (ipa_pop_func_from_list): Clear node_enqueued flag.
918
919 2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
920         
921         * config/s390/s390.c (override_options): Default
922         max-unrolled-insns to 100 for z10 tuning.
923
924 2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>
925
926         * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
927         tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
928         tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
929         tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
930         tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
931         tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
932         lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
933
934 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
935
936         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
937         use default set in mingw32.h header.
938         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
939         64-bit /mingw/include path.
940         (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
941         path.
942
943 2009-07-23  Neil Vachharajani  <nvachhar@google.com>
944
945         PR rtl-optimization/40209
946         * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
947
948 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
949
950         * config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
951         ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
952         with the rest of string where appropriate.  Use fputs or putc
953         instead of fprintf where appropriate.
954
955 2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
956             Pat Haugen  <pthaugen@us.ibm.com>
957             Revital Eres <ERES@il.ibm.com>
958
959         * config/rs6000/vector.md: New file.  Move most of the vector
960         expander support here from altivec.md to allow for the VSX vector
961         unit in the future.  Add support for secondary_reload patterns.
962         Rewrite the patterns for vector comparison, and vector comparison
963         predicate instructions so that the RTL expresses the desired
964         behavior, instead of using unspec.
965
966         * config/rs6000/constraints.md ("f" constraint): Use
967         rs6000_constraints to hold the precalculated register class.
968         ("d" constraint): Ditto.
969         ("wd" constraint): New constraint for VSX.
970         ("wf" constraint): Ditto.
971         ("ws" constraint): Ditto.
972         ("wa" constraint): Ditto.
973         ("wZ" constraint): Ditto.
974         ("j" constraint): Ditto.
975
976         * config/rs6000/predicates.md (vsx_register_operand): New
977         predicate for VSX.
978         (vfloat_operand): New predicate for vector.md.
979         (vint_operand): Ditto.
980         (vlogical_operand): Ditto.
981         (easy_fp_constant): If VSX, 0.0 is an easy constant.
982         (easy_vector_constant): Add VSX support.
983         (altivec_indexed_or_indirect_operand): New predicate for
984         recognizing Altivec style memory references with AND -16.
985
986         * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
987         for vector secondary reload support.
988         (rs6000_vector_reg_class): Delete, replacing it with
989         rs6000_constraints.
990         (rs6000_vsx_reg_class): Ditto.
991         (rs6000_constraints): New array to hold the register classes of
992         each of the register constraints that can vary at runtime.
993         (builtin_mode_to_type): New static array for builtin function type
994         creation.
995         (builtin_hash_table): New static hash table for builtin function
996         type creation.
997         (TARGET_SECONDARY_RELOAD): Define target hook.
998         (TARGET_IRA_COVER_CLASSES): Ditto.
999         (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
1000         registers are 128 bits if VSX memory reference instructions are used.
1001         (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
1002         unit is being used.
1003         (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
1004         (rs6000_debug_reg_global): Move -mdebug=reg statements here.
1005         Print several of the scheduling related parameters.
1006         (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
1007         rs6000_constraints instead of rs6000_vector_reg_class.  Move
1008         -mdebug=reg code to rs6000_debug_reg_global.  Add support for
1009         -mvsx-align-128 debug switch.  Drop testing float_p if VSX or
1010         Altivec.  Add VSX support.  Setup for secondary reload support on
1011         Altivec/VSX registers.
1012         (rs6000_override_options): Make power7 set the scheduling groups
1013         like the power5.  Add support for new debug switches to override
1014         the scheduling defaults.  Temporarily disable -mcpu=power7 from
1015         setting -mvsx.  Add support for debug switches -malways-hint,
1016         -msched-groups, and -malign-branch-targets.
1017         (rs6000_buitlin_conversion): Add support for returning unsigned
1018         vector conversion functions to fix regressions due to stricter
1019         type checking.
1020         (rs6000_builtin_mul_widen_even): Ditto.
1021         (rs6000_builtin_mul_widen_odd): Ditto.
1022         (rs6000_builtin_vec_perm): Ditto.
1023         (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
1024         (rs6000_expand_vector_init): Initial VSX support for using xxlxor
1025         to zero a register.
1026         (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
1027         generated upstream.
1028         (bdesc_3arg): Add builtins for unsigned types.  Add builtins for
1029         VSX types for bit operations.  Changes to accomidate vector.md.
1030         (bdesc_2arg): Ditto.
1031         (bdesc_1arg): Ditto.
1032         (struct builtin_description_predicates): Rewrite predicate
1033         handling so that RTL describes the operation, instead of passing
1034         the instruction to be used as a string argument.
1035         (bdesc_altivec_preds): Ditto.
1036         (altivec_expand_predicate_builtin): Ditto.
1037         (altivec_expand_builtin): Ditto.
1038         (rs6000_expand_ternop_builtin): Use a switch instead of an if
1039         statement for vsldoi support.
1040         (altivec_expand_ld_builtin): Change to use new names from vector.md.
1041         (altivec_expand_st_builtin): Ditto.
1042         (paired_expand_builtin): Whitespace changes.
1043         (rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
1044         builtin_mode_to_type table for secondary reload.  Call
1045         builtin_function_type to build random builtin functions.
1046         (altivec_init_builtins): Change to use builtin_function_type to
1047         create builtin function types dynamically as we need them.
1048         (builtin_hash_function): New support for hashing the tree types
1049         for builtin function as we need it, rather than trying to build
1050         all of the trees that we need.  Add initial preliminary VSX support.
1051         (builtin_function_type): Ditto.
1052         (builtin_function_eq): Ditto.
1053         (builtin_hash_struct): Ditto.
1054         (rs6000_init_builtins): Ditto.
1055         (rs6000_common_init_builtins): Ditto.
1056         (altivec_init_builtins): Ditto.
1057         (rs6000_common_init_builtins): Ditto.
1058         (enum reload_reg_type): New enum for simplifing reg classes.
1059         (rs6000_reload_register_type): Simplify register classes into GPR,
1060         Vector, and other registers.  Altivec and VSX addresses in reload.
1061         (rs6000_secondary_reload_inner): Ditto.
1062         (rs6000_ira_cover_classes): New target hook, that returns the
1063         appropriate cover classes, based on -mvsx being used or not.
1064         (rs6000_secondary_reload_class): Add VSX support.
1065         (get_vec_cmp_insn): Delete, rewrite vector conditionals.
1066         (get_vsel_insn): Ditto.
1067         (rs6000_emit_vector_compare): Rewrite vector conditional support
1068         so that where we can, we use RTL operators, instead of blindly use
1069         UNSPEC.
1070         (rs6000_emit_vector_select): Ditto.
1071         (rs6000_emit_vector_cond_expr): Ditto.
1072         (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
1073         (create_TOC_reference): Add -mdebug=addr support.
1074         (emit_frame_save): VSX loads/stores need register indexed addressing.
1075
1076         * config/rs6000/rs6000.md: Include vector.md.
1077
1078         * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
1079
1080         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1081         support for V2DI, V2DF in logical, permute, select operations.
1082
1083         * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
1084         switch for vsx/power7.
1085         (-mvsx-scalar-memory): Ditto.
1086         (-mvsx-align-128): Ditto.
1087         (-mallow-movmisalign): Ditto.
1088         (-mallow-df-permute): Ditto.
1089         (-msched-groups): Ditto.
1090         (-malways-hint): Ditto.
1091         (-malign-branch-targets): Ditto.
1092         
1093         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
1094         hook instead.
1095         (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
1096         (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
1097         (rs6000_vector_reg_class): Delete.
1098         (rs6000_vsx_reg_class): Ditto.
1099         (enum rs6000_reg_class_enum): New enum for the constraints that
1100         vary based on target switches.
1101         (rs6000_constraints): New array to hold the register class for all
1102         of the register constraints that vary based on the switches used.
1103         (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
1104         (enum rs6000_builtins): Add unsigned varients for the builtin
1105         declarations returned by target hooks for expanding multiplies,
1106         select, and permute operations.  Add VSX builtins.
1107         (enum rs6000_builtin_type_index): Add entries for VSX.
1108         (V2DI_type_node): Ditto.
1109         (V2DF_type_node): Ditto.
1110         (unsigned_V2DI_type_node): Ditto.
1111         (bool_long_type_node): Ditto.
1112         (intDI_type_internal_node): Ditto.
1113         (uintDI_type_internal_node): Ditto.
1114         (double_type_internal_node): Ditto.
1115
1116         * config/rs6000/altivec.md (whole file): Move all expanders to
1117         vector.md from altivec.md.  Rename insn matching functions to be
1118         altivec_foo.
1119         (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
1120         (altivec_vcmp*): Ditto.
1121         (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
1122         (VM): New iterator for moves that includes the VSX types.
1123         (altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
1124         (altivec_vperm_<mode>_uns): New, for unsigned types.
1125         (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
1126         (altivec_eq<mode>): Ditto.
1127         (altivec_gt<mode>): Ditto.
1128         (altivec_gtu<mode>): Ditto.
1129         (altivec_eqv4sf): Ditto.
1130         (altivec_gev4sf): Ditto.
1131         (altivec_gtv4sf): Ditto.
1132         (altivec_vcmpbfp_p): Ditto.
1133
1134 2009-07-23  Richard Earnshaw  <rearnsha@arm.com>
1135
1136         * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to 
1137         unsigned HWI.
1138
1139 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
1140
1141         PR target/40832
1142         * config/i386/i386.c (output_387_ffreep): Rewrite to use
1143         ASM_SHORT instead of .word.
1144         * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
1145         instead of .word in asm template.
1146
1147 2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>
1148
1149         PR target/37488
1150         * ira-lives.c (bb_has_abnormal_call_pred): New function.
1151         (process_bb_node_lives): Use it.
1152
1153         * ira.c (setup_cover_and_important_classes): Don't setup
1154         ira_important_class_nums.  Add cover classes to the end of
1155         important classes.
1156         (cover_class_order, comp_reg_classes_func, reorder_important_classes):
1157         New.
1158         (find_reg_class_closure): Use reorder_important_classes.
1159
1160         * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
1161
1162         * config/i386/i386.c (i386_ira_cover_classes): New function.
1163         (TARGET_IRA_COVER_CLASSES): Redefine.
1164
1165         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
1166         importance of order of cover classes in the array.
1167         
1168 2009-07-22  Diego Novillo  <dnovillo@google.com>
1169
1170         * tree-pass.h (TDF_EH): Define.
1171         * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
1172         contains TDF_EH, print the EH region number holding GS.
1173         * tree-dump.c (dump_options): Add "eh".
1174         * doc/invoke.texi: Document it.
1175
1176 2009-07-22  Doug Kwan  <dougkwan@google.com>
1177
1178         * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
1179
1180 2009-07-22  Michael Matz  <matz@suse.de>
1181
1182         PR tree-optimization/35229
1183         PR tree-optimization/39300
1184
1185         * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
1186         (inhibit_phi_insertion): New function.
1187         (insert_into_preds_of_block): Call it for REFERENCEs.
1188         (init_pre): Initialize and finalize scalar evolutions.
1189         * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
1190
1191 2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
1192
1193         * config/i386/predicates.md (zero_extended_scalar_load_operand):
1194         Use CONST_VECTOR_NUNITS to determine number of elements.
1195
1196 2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
1197
1198         * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
1199         (U, W): Constraints are now deprecated and will be removed if we
1200         run out of letters.     
1201         * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
1202         the file.
1203         ("prefetch"): Add the stcmh instruction for prefetching.
1204         * config/s390/s390.c (s390_symref_operand_p): Function moved. No
1205         changes.
1206         (s390_short_displacement): Return always true if compiling for
1207         machines not providing the long displacement facility.
1208         (s390_mem_constraint): Support the new constraint letter Z.
1209         (s390_check_qrst_address): New function.
1210
1211 2009-07-21  DJ Delorie  <dj@redhat.com>
1212
1213         * config/mep/mep.c (mep_legitimize_arg): Leave control registers
1214         alone too.
1215
1216 2009-07-21  Jason Merrill  <jason@redhat.com>
1217
1218         * c-common.c (max_tinst_depth): Increase default to 1024.
1219
1220 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1221
1222         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
1223         (vec_unpacku_float_lo_v4si): Ditto.
1224
1225 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1226
1227         PR target/40811
1228         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
1229         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
1230         (builtin_description): Add __builtin_ia32_cvtudq2ps.
1231         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
1232
1233 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
1234
1235         PR tree-optimization/40813
1236         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
1237         it.
1238
1239 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1240
1241         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
1242         with a NOP_EXPR if needed.
1243
1244 2009-07-21  Paul Brook <paul@codesourcery.com>
1245
1246         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
1247         Terminate debug dump with newline.
1248
1249 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1250
1251         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
1252         Cast "1" to unsigned HOST_WIDE_INT.
1253         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
1254         deposit length to the maximum length - lsb.  Extend length if
1255         HOST_BITS_PER_WIDE_INT is 32.
1256
1257 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
1258
1259         * cgraph.h (constant_pool_htab): New function.
1260         (constant_descriptor_tree): Move from varasm.c.
1261         * varasm.c (constant_pool_htab): New function.
1262         (constant_descriptor_tree): Move to cgraph.h.
1263
1264 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
1265
1266         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
1267
1268 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
1269
1270         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
1271         $(VARRAY_H).
1272
1273 2009-07-20  Xinliang David Li  <davidxl@google.com>
1274
1275         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
1276
1277 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
1278
1279         * config/mips/mips.md (move_type): Add arith.
1280         (type): Handle arith.
1281         (zero_extendsidi2): Rename this into ...
1282         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
1283         (zero_extendsidi2): New expander.
1284         (*zero_extendsidi2_dext): New pattern.
1285
1286 2009-07-20  Nick Clifton  <nickc@redhat.com>
1287
1288         * config.gcc (mips64-*-*): Add definition of tm_defines in order
1289         to set MIPS_ABI_DEFAULT.
1290         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
1291
1292 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
1293
1294         * tree-object-size.c (addr_object_size): Handle unions with
1295         array in it as last field of structs in __bos (, 1) as __bos (, 0).
1296
1297         PR tree-optimization/40792
1298         * tree.c (build_function_type_skip_args): Remove bogus assert.
1299
1300 2009-07-20  Jan Hubicka  <jh@suse.cz>
1301             Martin Jambor  <mjambor@suse.cz>
1302
1303         * cgraph.h (combined_args_to_skip): New field.
1304         * cgraph.c (cgraph_create_virtual_clone): Properly handle
1305         combined_args_to_skip and args_to_skip.
1306         * tree-inline.c (update_clone_info): New function.
1307         (tree_function_versioning): Call update_clone_info.
1308         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
1309         functions.
1310         (cgraph_materialize_all_clones): More extensive dumping, working
1311         with combined_args_to_skip rather than args_to_skip.
1312
1313 2009-07-20  Ira Rosen  <irar@il.ibm.com>
1314
1315         * tree-vectorizer.h (vectorizable_condition): Add parameters.
1316         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
1317         (get_initial_def_for_reduction): Likewise.
1318         (vectorizable_reduction): Skip the check of first operand in case
1319         of COND_EXPR. Add check that it is outer loop vectorization if
1320         nested cycle was detected. Call vectorizable_condition() for 
1321         COND_EXPR. If reduction epilogue cannot be created do not fail for
1322         nested cycles (if it is not double reduction). Assert that there
1323         is only one type in the loop in case of COND_EXPR. Call
1324         vectorizable_condition() to vectorize COND_EXPR.
1325         * tree-vect-stmts.c (vectorizable_condition): Update comment.
1326         Add parameters. Allow nested cycles if called from 
1327         vectorizable_reduction(). Use reduction vector variable if provided.
1328         (vect_analyze_stmt): Call vectorizable_reduction() before
1329         vectorizable_condition().
1330         (vect_transform_stmt): Update call to vectorizable_condition().
1331
1332 2009-07-20  Christian Bruel  <christian.bruel@st.com>
1333         
1334         * config/sh/sh.opt (-mfmovd): Resurrect and document.
1335         * doc/invoke.texi (-mfmovd): Likewise.
1336         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
1337         
1338 2009-07-20  Jan Hubicka  <jh@suse.cz>
1339
1340         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
1341         when handling SSA name.
1342
1343 2009-07-19  Jan Hubicka  <jh@suse.cz>
1344
1345         PR tree-optimization/40676
1346         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
1347         virtual PHIs in empty BBs.
1348
1349 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1350
1351         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
1352         re-expanded the compound use gen_lowpart instead to convert to the
1353         desired mode.
1354
1355 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1356
1357         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
1358         OUTER_CONST arguments.
1359         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
1360         the new wider mode will be masked off.
1361         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
1362
1363 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1364
1365         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
1366         high-order bits are zero.
1367
1368 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1369
1370         * combine.c (simplify_shift_const_1): Split code to determine
1371         shift_mode into ...
1372         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
1373         new bits shifted in are identical to the old sign bit.
1374
1375 2009-07-18  Richard Guenther  <rguenther@suse.de>
1376
1377         PR c/40787
1378         * gimplify.c (gimplify_call_expr): Reject code using results from
1379         functions returning void.
1380
1381 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1382
1383         * doc/md.texi: Document the new PowerPC "es" constraint.
1384         Document that "m" can include automodified addresses on this target,
1385         and explain how %U must be used.  Extend the "Q" and "Z" documentation
1386         to suggest "es" as well as "m".
1387         * config/rs6000/constraints.md (es): New memory constraint.
1388         (Q, Z): Update strings to match new documentation.
1389
1390 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1391
1392         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
1393         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
1394         * config/rs6000/predicates.md (volatile_mem_operand): Use
1395         offsettable_nonstrict_memref_p.
1396         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
1397         (*floatunssidf2_internal): Likewise.
1398         (*fix_truncdfsi2_internal): Likewise.
1399         (*fix_trunctfsi2_internal): Likewise.
1400
1401 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
1402
1403         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
1404         atmega32u2 devices.
1405         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1406
1407 2009-07-17  Richard Guenther  <rguenther@suse.de>
1408
1409         PR c/40401
1410         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
1411         (pass_warn_unused_result): Likewise.
1412         (TODO_set_props): Remove.
1413         * omp-low.c (diagnose_omp_structured_block_errors): Change to
1414         run as a pass.
1415         (pass_diagnose_omp_blocks): Define.
1416         * c-decl.c (pop_file_scope): Do not finalize the CU here.
1417         (c_gimple_diagnostics_recursively): Remove.
1418         (finish_function): Do not call it.
1419         (c_write_global_declarations): Continue after errors.
1420         Finalize the CU here.
1421         * c-gimplify.c (c_genericize): Do not gimplify here.
1422         * c-common.c (c_warn_unused_result): Move ...
1423         * tree-cfg.c (do_warn_unused_result): ... here.
1424         (run_warn_unused_result): New function.
1425         (gate_warn_unused_result): New function.
1426         (pass_warn_unused_result): New pass.
1427         * c-common.h (c_warn_unused_result): Remove.
1428         * flags.h (flag_warn_unused_result): Declare.
1429         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
1430         * opts.c (flag_warn_unused_result): Initialize to false.
1431         * toplev.c (compile_file): Add comment.
1432         * omp-low.c (create_omp_child_function): Do not register
1433         the function with the frontend.
1434         (diagnose_omp_structured_block_errors): Prepare to be
1435         called as optimization pass.
1436         (gate_diagnose_omp_blocks): New function.
1437         (pass_diagnose_omp_blocks): New pass.
1438         * cgraph.h (cgraph_optimize): Remove.
1439         (cgraph_analyze_function): Likewise.
1440         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
1441         * cgraphunit.c (cgraph_lower_function): Lower nested functions
1442         before their parents here.
1443         (cgraph_finalize_function): Not here.
1444         (cgraph_analyze_function): Gimplify functions here.
1445         (cgraph_finalize_compilation_unit): Continue after errors.
1446         Optimize the callgraph from here.
1447         (cgraph_optimize): Make static.
1448         * langhooks.c (write_global_declarations): Finalize the CU.
1449         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
1450         (gimplify_function_tree): Assert we gimplify only once.
1451         Set PROP_gimple_any property.
1452         * tree-nested.c (gimplify_all_functions): New function.
1453         (lower_nested_functions): Gimplify all nested functions.
1454         * gimple.h (diagnose_omp_structured_block_errors): Remove.
1455         * passes.c (init_optimization_passes): Add pass_warn_unused_result
1456         and pass_diagnose_omp_blocks after gimplification.  Do not
1457         set TODO_set_props on all_lowering_passes.
1458         (execute_one_pass): Do not handle TODO_set_props.
1459         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
1460         (gimplify.o): Add tree-pass.h dependency.
1461         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
1462         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
1463         (unsave_r): Likewise.
1464         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
1465         temporary variable.
1466
1467 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
1468
1469         * doc/service.texi (Service): Restore previously removed link,
1470         which isn't broken after all.
1471
1472 2009-07-17  Richard Guenther  <rguenther@suse.de>
1473
1474         PR tree-optimization/40321
1475         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
1476         PHI nodes to the maximal set.
1477         (make_values_for_phi): Add PHI arguments to the maximal set.
1478         (execute_pre): Dump PHI_GEN and the maximal set.
1479
1480 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
1481
1482         PR c++/40780
1483         * gimplify.c (gimplify_conversion): Don't change non-conversions into
1484         VIEW_CONVERT_EXPR.
1485
1486 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1487
1488         * doc/extend.texi (Nested Functions): Replace broken link with
1489         textual reference.
1490         * doc/service.texi (Service): Remove broken link.
1491
1492 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
1493
1494         PR bootstrap/40781
1495         * builtins.c (expand_builtin_memcmp): Use loc instead of
1496         EXPR_LOCATION (exp).
1497         (expand_builtin_strncmp): Likewise.
1498
1499 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
1500             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1501
1502         PR 40435 
1503         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
1504         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
1505         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
1506         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
1507         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
1508         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
1509         tree-inline.c, c-common.c, c-common.h, gimple.c,
1510         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
1511         convert.c: Add location argument to fold_{unary,binary,ternary},
1512         fold_build[123], build_call_expr, build_size_arg,
1513         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
1514         fold_build1_initializer, fold_build2_initializer,
1515         fold_build3_initializer, fold_build_call_array,
1516         fold_build_call_array_initializer, fold_single_bit_test,
1517         omit_one_operand, omit_two_operands, invert_truthvalue,
1518         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
1519         combine_comparisons, fold_builtin_*, fold_call_expr,
1520         build_range_check, maybe_fold_offset_to_address, round_up,
1521         round_down.
1522
1523 2009-07-16  Jason Merrill  <jason@redhat.com>
1524
1525         PR libstdc++/37907
1526         * c-common.c (c_common_reswords): Add __is_standard_layout
1527         and __is_trivial.
1528         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
1529         * doc/implement-cxx.texi: New.
1530         * doc/gcc.texi: Include it.
1531
1532 2009-07-16  DJ Delorie  <dj@redhat.com>
1533
1534         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
1535         compares that may be indirectly affected by previous instructions.
1536
1537 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1538
1539         * builtins.c (do_mpc_arg2): New.
1540         (fold_builtin_2): Fold builtin cpow.
1541         * real.h (HAVE_mpc_pow): New.
1542
1543 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
1544
1545         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
1546         comparison to skip unprofitable schedule
1547
1548 2009-07-16  Simon Baldwin  <simonb@google.com>
1549
1550         * gcc.c (option_map): New flag -no-canonical-prefixes.
1551         * (display_help): Print help text for new flag.
1552         * (process_command): Move options translation and language specifics
1553         and handle new flag early.  Use it to set a function pointer to a
1554         prefix builder.  Replace make_relative_prefix calls with calls to
1555         the function pointed to.  Ignore new flag in regular options handling.
1556         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
1557
1558 2009-07-15  DJ Delorie  <dj@redhat.com>
1559
1560         * config/mep/mep.md (sibcall_internal): Change register to avoid
1561         argument registers.
1562         (sibcall_value_internal): Likewise.
1563
1564 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
1565
1566         PR rtl-optimization/40710
1567         * resource.c (mark_target_live_regs): Reset DF problem to LR.
1568
1569 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
1570
1571         * config/mips/mips.md (*extenddi_truncate<mode>,
1572         *extendsi_truncate<mode>): Change type attribute to move_type
1573         with shift_shift.  Split out code handling exts from here ...
1574         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
1575         pattern.
1576         (*extendhi_truncateqi): Change type attribute to move_type with
1577         shift_shift.  Split out code handling exts from here ...
1578         (*extendhi_truncateqi_exts): ... to this new pattern.
1579
1580 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
1581
1582         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
1583         instead of "and" with inverted sign bit mask value.  Use
1584         "nonimmediate_operand" for operand 1 and operand 2 predicate.
1585         Allocate registers only for operand 4 and operand 5.
1586
1587 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
1588
1589         PR middle-end/40747
1590         * fold-const.c (fold_cond_expr_with_comparison): When folding
1591         < and <= to MIN, make sure the MIN uses the same type as the
1592         comparison's operands.
1593
1594 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
1595
1596         * arm.md (ior_xor): New code iterator.
1597         (split for ior/xor with shift and zero-extend): New split pattern.
1598         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
1599
1600 2009-07-15  Richard Guenther  <rguenther@suse.de>
1601
1602         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
1603         offset member.
1604
1605 2009-07-15  Richard Guenther  <rguenther@suse.de>
1606
1607         PR middle-end/40753
1608         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
1609
1610 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
1611
1612         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
1613         handle 2.6.30 kernel.
1614
1615 2009-07-15  DJ Delorie  <dj@redhat.com>
1616
1617         * config/mep/mep.md (sibcall_internal): Change register to allow
1618         for 24-bit addresses.
1619         (sibcall_value_internal): Likewise.
1620
1621 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1622         
1623         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
1624         that are enabled/disabled by the flags introduced by a previous patch.
1625         
1626 2009-07-14  DJ Delorie  <dj@redhat.com>
1627
1628         * config/mep/mep.md (sibcall_internal): Include non-toggling
1629         non-jmp case.
1630         (sibcall_value_internal): Likewise.
1631
1632 2009-07-14  Taras Glek  <tglek@mozilla.com>
1633             Rafael Espindola  <espindola@google.com>
1634
1635         * doc/sourcebuild.texi: Document install-plugin target.
1636         * configure.ac: Added install-plugin target to language makefiles.
1637         * configure: Regenerate.
1638         * Makefile.in: (install-plugin): Install more headers,
1639         depend on lang.install-plugin.
1640
1641 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1642
1643         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
1644         translation.
1645         
1646 2009-07-14  DJ Delorie  <dj@redhat.com>
1647
1648         * config/mep/mep.c (mep_vliw_jmp_match): New function.
1649         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
1650         * config/mep/mep.md (sibcall_internal): Change test from
1651         mep_vliw_mode_match to mep_vliw_jmp_match.
1652         (sibcall_value_internal): Likewise.
1653
1654 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
1655
1656         * config/i386/sse.md (copysign<mode>3): New expander.
1657         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
1658         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
1659         Use ix86_build_const_vector.
1660         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
1661         IX86_BUILTIN_CPYSGNPD.
1662         (builtin_description): Add __builtin_ia32_copysignps and
1663         __builtin_ia32_copysignpd.
1664         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
1665         and BUILT_IN_COPYSIGNF.
1666
1667 2009-07-13  Jason Merrill  <jason@redhat.com>
1668
1669         * builtins.c (can_trust_pointer_alignment): New fn.
1670         (get_pointer_alignment): Factor it out from here.
1671         * tree.h: Declare it.
1672
1673 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
1674
1675         * config/rs6000/predicates.md (offsettable_mem_operand): Test
1676         RTX_AUTOINC class.
1677
1678 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
1679
1680         PR debug/40705
1681         PR c++/403057
1682         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
1683
1684 2009-07-14  Richard Guenther  <rguenther@suse.de>
1685             Andrey Belevantsev <abel@ispras.ru>
1686
1687         PR middle-end/40745
1688         * cfgexpand.c (partition_stack_vars): Do not bother to update
1689         alias information when not optimizing.
1690
1691 2009-07-14  Richard Guenther  <rguenther@suse.de>
1692             Andrey Belevantsev <abel@ispras.ru>
1693
1694         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
1695         (pt_solution_set): Likewise.
1696         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
1697         * tree-ssa-structalias.c (pt_solution_set): New function.
1698         * final.c (rest_of_clean_state): Free SSA data structures.
1699         * print-rtl.c (print_decl_name): Remove.
1700         (print_mem_expr): Implement in terms of print_generic_expr.
1701         * alias.c (ao_ref_from_mem): New function.
1702         (rtx_refs_may_alias_p): Likewise.
1703         (true_dependence): Query alias-export info.
1704         (canon_true_dependence): Likewise.
1705         (write_dependence_p): Likewise.
1706         * tree-dfa.c (get_ref_base_and_extent): For void types leave
1707         size unknown.
1708         * emit-rtl.c (component_ref_for_mem_expr): Remove.
1709         (mem_expr_equal_p): Use operand_equal_p.
1710         (set_mem_attributes_minus_bitpos): Do not use
1711         component_ref_for_mem_expr.
1712         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
1713         (update_alias_info_with_stack_vars): Likewise.
1714         (partition_stack_vars): Call update_alias_info_with_stack_vars.
1715         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
1716         explicitly nor clear stmt operands.
1717         Free the decl-to-pointer map.
1718         * tree-optimize.c (execute_free_datastructures): Do not free
1719         SSA data structures here.
1720         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
1721         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
1722         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
1723         dependencies.
1724         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
1725
1726 2009-07-13  DJ Delorie  <dj@redhat.com>
1727
1728         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
1729         unrolling at the right iteration count.
1730
1731         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
1732         calculations.
1733
1734 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1735         
1736         * haifa-sched.c (rank_for_schedule): Introduced flags to
1737         enable/disable individual scheduling heuristics.
1738         * common.opt: Introduced flags to enable/disable individual
1739         heuristics in the scheduler.    
1740         * doc/invoke.texi: Introduced flags to enable/disable individual
1741         heuristics in the scheduler.
1742         
1743 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
1744
1745         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
1746         config/i386/mingw-tls.c.
1747         * config/i386/mingw-tls.c: Removed.
1748
1749 2009-07-13  Ira Rosen  <irar@il.ibm.com>
1750
1751         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
1752         checks access only relevant statements.
1753         (vectorizable_reduction): Likewise.
1754
1755 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
1756
1757         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
1758         just for 32-bit case.
1759
1760 2009-07-12  Jan Hubicka  <jh@suse.cz>
1761
1762         PR tree-optimization/40585
1763         * except.c (expand_resx_expr): When there already is resume
1764         instruction, produce linked list.
1765         (build_post_landing_pads): Assert that resume is empty.
1766         (connect_post_landing_pads): Handle resume lists.
1767         (dump_eh_tree): Dump resume list.
1768
1769 2009-07-12  Ira Rosen  <irar@il.ibm.com>
1770
1771         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1772         with additional argument.
1773         * tree-vectorizer.h (enum vect_def_type): Add
1774         vect_double_reduction_def.
1775         (vect_is_simple_reduction): Add argument.
1776         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
1777         indentation.
1778         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
1779         vect_is_simple_reduction with additional argument.
1780         (vect_analyze_loop_operations): Handle exit phi nodes in case of
1781         double reduction.
1782         (reduction_code_for_scalar_code): Handle additional codes by
1783         returning ERROR_MARK for them. Fix comment and indentation.
1784         (vect_is_simple_reduction): Fix comment, add argument to specify
1785         double reduction. Detect double reduction.
1786         (get_initial_def_for_induction): Fix indentation.
1787         (get_initial_def_for_reduction): Fix comment and indentation.
1788         Handle double reduction. Create initial definitions that do not
1789         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
1790         (vect_create_epilog_for_reduction): Fix comment, add argument to
1791         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
1792         epilogue result extraction. Create double reduction phi node and
1793         replace relevant uses.
1794         (vectorizable_reduction): Call vect_is_simple_reduction with
1795         additional argument. Fix indentation. Update epilogue code treatment
1796         according to the changes in reduction_code_for_scalar_code. Check
1797         for double reduction. Call vect_create_epilog_for_reduction with
1798         additional argument.
1799         * tree-vect-stmts.c (process_use): Handle double reduction, update
1800         documentation.
1801         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
1802         (vect_get_vec_def_for_operand): Likewise.
1803
1804 2009-07-12  Danny Smith  <dansmister@gmail.com>
1805
1806         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
1807         dllexport if !TREE_PUBLIC.
1808         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
1809
1810 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
1811
1812         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
1813         (avr_extra_arch_macro) Remove declatation.
1814         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
1815         (avr_extra_arch_macro) Declare as static.
1816         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
1817
1818 2009-07-11  Jan Hubicka  <jh@suse.cz>
1819
1820         PR middle-end/48388
1821         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
1822
1823 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
1824
1825         PR debug/40713
1826         * dwarf2out.c (dw_fde_struct): Add in_std_section and
1827         cold_in_std_section bits.
1828         (dwarf2out_begin_prologue): Initialize them.
1829         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
1830         if already covered by text_section or cold_text_section range.
1831
1832         PR rtl-optimization/40667
1833         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
1834         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
1835         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
1836         * config/i386/i386.c (ix86_minimum_alignment): New function.
1837         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
1838         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
1839         * emit-rtl.c (gen_reg_rtx): Likewise.
1840         * function.c (assign_parms): Likewise.  If nominal_type needs
1841         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
1842         rather than passed_type's alignment.
1843
1844         PR target/40668
1845         * function.c (assign_parm_setup_stack): Adjust
1846         MEM_OFFSET (data->stack_parm) if promoted_mode is different
1847         from nominal_mode on big endian.
1848
1849 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
1850
1851         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
1852
1853 2009-07-10  DJ Delorie  <dj@redhat.com>
1854
1855         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
1856
1857 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
1858
1859         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
1860         attribute.
1861         (thumb2_cbnz): Likewise.
1862
1863 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
1864
1865         PR target/39079
1866         * config.gcc (supported_defaults): Add synci.
1867         (with_synci): Add validation.
1868         (all_defaults): Add synci.
1869         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
1870         ISA_HAS_SYNCI.
1871         (synci): Same.
1872         * config/mips/mips.opt (msynci): New option.
1873         * config/mips/mips.c (mips_override_options): Warn on use of
1874         -msynci for targets that do now support it.
1875         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1876         msynci.
1877         * gcc/doc/invoke.texi (-msynci): Document the new option.
1878         * doc/install.texi (--with-synci): Document the new option.
1879
1880 2009-07-10  Richard Guenther  <rguenther@suse.de>
1881
1882         PR tree-optimization/40496
1883         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
1884         the PHI result with a compatible type.
1885
1886 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1887
1888         PR 25509
1889         PR 40614
1890         * c.opt (Wunused-result): New.
1891         * doc/invoke.texi: Document it.
1892         * c-common.c (c_warn_unused_result): Use it.
1893
1894 2009-07-09  DJ Delorie  <dj@redhat.com>
1895
1896         * targhooks.c (default_target_can_inline_p): Rename from
1897         default_target_option_can_inline_p.
1898         * targhooks.h (default_target_can_inline_p): Likewise.
1899         * target-def.h (TARGET_CAN_INLINE_P): Rename from
1900         TARGET_OPTION_CAN_INLINE_P.
1901         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
1902         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
1903         (mep_target_can_inline_p): Rename from
1904         mep_target_option_can_inline_p.
1905
1906         PR target/40626
1907         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
1908         registers used to pass vectors.
1909
1910         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
1911
1912 2009-07-09  Tom Tromey  <tromey@redhat.com>
1913
1914         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
1915         * config/mmix/mmix.c: Include dwarf2.h.
1916         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
1917         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
1918         * config/sh/sh.c: Include dwarf2.h.
1919         * config/i386/i386.c: Include dwarf2.h.
1920         * Makefile.in (DWARF2_H): Remove 'elf'.
1921         * except.c: Include dwarf2.h.
1922         * unwind-dw2.c: Include dwarf2.h.
1923         * dwarf2out.c: Include dwarf2.h.
1924         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
1925         * unwind-dw2-fde.c: Include dwarf2.h.
1926         * dwarf2asm.c: Include dwarf2.h.
1927
1928 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1929
1930         * haifa-sched.c (insn_finishes_cycle_p): New static function.
1931         (max_issue): Use it.
1932         * sched-int.h (struct sched_info: insn_finishes_block_p): New
1933         scheduler hook.
1934         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
1935         (region_sched_info): Update.
1936         * sched-ebb.c (ebb_sched_info): Update.
1937         * modulo-sched.c (sms_sched_info): Update.
1938         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
1939
1940 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1941
1942         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
1943
1944 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
1945
1946         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
1947
1948 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
1949
1950         PR middle-end/40692
1951         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
1952         arg1 with arg01 if arg1 is already INTEGER_CST.
1953
1954 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
1955
1956         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
1957         Transform (and (truncate)) into (truncate (and)).
1958
1959 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
1960
1961         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
1962         creating LHS paradoxical subregs.  Fix surrounding returns to
1963         use NULL_RTX rather than 0.
1964
1965 2009-07-08  DJ Delorie  <dj@redhat.com>
1966
1967         * config/mep/mep.c: (mep_option_can_inline_p): New.
1968         (TARGET_OPTION_CAN_INLINE_P): Define.
1969
1970 2009-07-08  Mark Wielaard  <mjw@redhat.com>
1971
1972         PR debug/40659
1973         * dwarf2out.c (add_data_member_location_attribute): When we have
1974         only a constant offset don't emit a new location description using
1975         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
1976         dwarf_version > 2.
1977
1978 2009-07-08  Richard Henderson  <rth@redhat.com>
1979
1980         PR target/38900
1981         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
1982         (enum reg_class): Add CLOBBERED_REGS.
1983         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
1984         * config/i386/i386.c (ix86_conditional_register_usage): Moved
1985         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
1986         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
1987         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
1988         force 64-bit sibcalls into R11.
1989         * config/i386/constraints.md (U): New constraint.
1990         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
1991         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
1992         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
1993
1994 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
1995
1996         * basic-block.h (dump_regset, debug_regset): Remove duplicate
1997         prototypes.
1998         * c-objc-common.h (c_initialize_diagnostics): Ditto.
1999         * ebitmap.h (dump_ebitmap): Ditto.
2000         * optabs.h (optab_libfunc): Ditto.
2001         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
2002         * tree-flow.h (vect_can_force_dr_alignment_p,
2003         get_vectype_for_scalar_type): Ditto.
2004         (vectorize_loops): Move prototype to ...
2005         * tree-vectorizer.h: ... here. Also, adjust comment.
2006         (vect_set_verbosity_level): Remove duplicate prototype.
2007         * tree-ssa-loop.c: Include tree-vectorizer.h.
2008         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
2009
2010 2009-07-08  Nick Clifton  <nickc@redhat.com>
2011
2012         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
2013         forward slash.
2014
2015 2009-07-08  DJ Delorie  <dj@redhat.com>
2016
2017         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
2018         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
2019         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
2020         written to.
2021         * config/mep/intrinsics.md: Regenerated.
2022         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
2023         registers when asm() or calls are detected.
2024
2025 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2026
2027         PR c++/31246
2028         * gimplify.c (gimplify_expr): Propagate no_warning flag when
2029         gimplifying.
2030         * gimple (gimple_build_call_from_tree): Likewise.
2031         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
2032         no_warning flag before warning.
2033
2034 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2035
2036         * tree.c (set_expr_locus): Remove.
2037         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
2038         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
2039         EXPR_LOCATION.
2040         * gimplify.c (internal_get_tmp_var): Likewise.
2041         (gimplify_call_expr): Likewise.
2042         (gimplify_one_sizepos): Likewise.
2043
2044 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2045
2046         PR debug/40666
2047         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
2048         to variables for debugging purposes.
2049
2050 2009-06-23  Mark Loeser  <mark@halcy0n.com>
2051
2052         PR build/40010
2053         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
2054
2055 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2056
2057         * pretty-print.c (pp_base_format): Remove %J.
2058         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2059         gcc_cxxdiag_char_table): Likewise.
2060         (init_dynamic_diag_info): Likewise.
2061
2062 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2063
2064         * pretty-print.c (pp_base_format): Remove %H.
2065         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2066         gcc_cxxdiag_char_table): Likewise.
2067         (init_dynamic_diag_info): Likewise.
2068         * config/mep/mep.c (mep_select_section): Likewise.
2069
2070 2009-07-07  Duncan Sands  <baldrick@free.fr>
2071
2072         * final.c (pass_clean_state): Give the pass a name.
2073         * passes.c (pass_rest_of_compilation): Likewise.
2074         * tree-optimize.c (pass_all_optimizations): Likewise.
2075
2076 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2077
2078         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
2079         an extra 'decl' for error_at.
2080
2081 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
2082
2083         PR middle-end/40669
2084         * tree-tailcall.c (adjust_return_value_with_ops,
2085         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
2086         if it has complex or vector type.
2087
2088 2009-07-07  Olivier Hainque  <hainque@adacore.com>
2089
2090         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
2091         pthread symbols.
2092
2093 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
2094
2095         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
2096
2097 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2098
2099         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
2100         * c-decl.c: Likewise.
2101         * function.c: Likewise.
2102         * varasm.c: Likewise.
2103         * tree-ssa.c: Likewise.
2104         * c-common.c: Likewise.
2105         * tree-cfg.c: Likewise.
2106         * config/spu/spu.c: Likewise.
2107         * config/ia64/ia64.c: Likewise.
2108         * config/v850/v850.c: Likewise.
2109
2110 2009-07-06  DJ Delorie  <dj@redhat.com>
2111
2112         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
2113         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
2114         unspecified accesses to control registers.
2115         * config/mep/intrinsics.md: Regenerate.
2116         * config/mep/intrinsics.h: Regenerate.
2117         * config/mep/mep-intrin.h: Regenerate.
2118
2119 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2120
2121         * c-lex.c: Replace %H by an explicit location. Update all calls.
2122         * c-common.c: Likewise.
2123         * c-decl.c: Likewise.
2124         * c-typeck.c: Likewise.
2125         * fold-const.c: Likewise.
2126         * gimplify.c: Likewise.
2127         * stmt.c: Likewise.
2128         * tree-cfg.c: Likewise.
2129         * tree-ssa-loop-niter.c: Likewise.
2130         * tree-vrp.c: Likewise.
2131         * value-prof.c: Likewise.
2132
2133 2009-07-06  Diego Novillo  <dnovillo@google.com>
2134
2135         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
2136         if it has one.  Handle cases where VAR does not have an
2137         annotation or cfun is NULL.
2138
2139 2009-07-06  Diego Novillo  <dnovillo@google.com>
2140
2141         * tree.c: Include debug.h.
2142         (initialize_tree_contains_struct): New.
2143         (init_ttree): Call it.
2144         (tree_node_structure_for_code): Factor out of ...
2145         (tree_node_structure): ... here.
2146         * treestruct.def (TS_PHI_NODE): Remove.
2147         (TS_GIMPLE_STATEMENT): Remove.
2148
2149 2009-07-06  Diego Novillo  <dnovillo@google.com>
2150
2151         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
2152         (debug_tree_chain): Handle cycles.
2153
2154 2009-07-06  Nick Clifton  <nickc@redhat.com>
2155             DJ Delorie  <dj@redhat.com>
2156
2157         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2158         __FMOVD_ENABLED__ is defined.
2159         * config/sh/sh.h
2160         (TARGET_FMOVD): Provide a default definition.
2161         (MASK_FMOVD): Likewise.
2162         (TARGET_CPU_CPP_BUILTINS): Define
2163         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2164         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2165         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
2166         (split for DF load from memory into register): Also handle
2167         MEMs which consist of REG+DISP addressing.
2168         (split for DF store from register to memory): Likewise.
2169         (movsf_ie): Always use single fp_mode.
2170         * config/sh/sh.c (sh_override_options): Do not automatically
2171         enable TARGET_MOVD for the SH2A when supporting doubles - leave
2172         that to the -mfmovd command line switch.
2173         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
2174         (fldi_ok): Always allow.
2175         * config/sh/sh.opt (mfmovd): Remove this switch.
2176         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2177
2178 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
2179             Kaz Kojima  <kkojima@gcc.gnu.org>
2180
2181         PR rtl-optimization/30807
2182         * postreload.c (reload_combine): For every new use of REG_SUM,
2183         record the use of BASE.
2184
2185 2009-07-06  Jan Hubicka  <jh@suse.cz>
2186
2187         * params.def: Revert my accidental commit at 2009-06-30.
2188
2189 2009-07-04  Ian Lance Taylor  <iant@google.com>
2190
2191         PR target/40636
2192         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
2193         EXPORTED_CONST.
2194         (mingw_format_attribute_overrides): Likewise.
2195
2196 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
2197
2198         PR debug/40596
2199         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
2200         don't check cfa.reg.  Instead of cfa.indirect use
2201         fde && fde->drap_reg != INVALID_REGNUM test.
2202
2203 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
2204
2205         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
2206
2207 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
2208
2209         PR target/40587
2210         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
2211
2212 2009-07-03  Richard Guenther  <rguenther@suse.de>
2213
2214         PR tree-optimization/40640
2215         * tree-switch-conversion.c (build_arrays): Perform arithmetic
2216         in original type.
2217
2218 2009-07-03  Jan Hubicka  <jh@suse.cz>
2219
2220         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
2221         for size, reduce amount of inlining.
2222
2223 2009-07-03  Richard Guenther  <rguenther@suse.de>
2224
2225         PR middle-end/34163
2226         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
2227         if t +- x is known to not overflow and the conversion widens the
2228         operation.
2229         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
2230
2231 2009-07-03  Jan Hubicka  <jh@suse.cz>
2232
2233         * ipa-pure-const.c (analyze): Update loop optimizer init.
2234         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
2235         try_remove_empty_loop, remove_empty_loops): Remove.
2236         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
2237         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
2238         to mark regular loops as neccesary.
2239         (degenerate_phi_p): New function.
2240         (propagate_necessity, remove_dead_phis): Use it.
2241         (forward_edge_to_pdom): Likewise.
2242         (eliminate_unnecessary_stmts): Take care to remove uses of results of
2243         virtual PHI nodes that became unreachable.
2244         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
2245         * tree-flow.h (remove_empty_loops): Remove.
2246         * passes.c (init_optimization_passes): Remove.
2247
2248 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
2249
2250         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
2251         can_create_pseudo_p.
2252         (*fix_trunc<mode>_i387_1): Ditto.
2253         (*floathi<mode>2_1): Ditto.
2254         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
2255         (*fistdi2_1): Ditto.
2256         (*fist<mode>2_1): Ditto.
2257         (frndintxf2_floor): Ditto.
2258         (*fist<mode>2_floor_1): Ditto.
2259         (frndintxf2_ceil): Ditto.
2260         (*fist<mode>2_ceil_1): Ditto.
2261         (frndintxf2_trunc): Ditto.
2262         (frndintxf2_mask_pm): Ditto.
2263         (fxam<mode>2_i387_with_temp): Ditto.
2264         * config/i386/sse.md (mulv16qi3): Ditto.
2265         (*sse2_mulv4si3): Ditto.
2266         (mulv2di3): Ditto.
2267         (sse4_2_pcmpestr): Ditto.
2268         (sse4_2_pcmpistr): Ditto.
2269
2270 2009-07-03  Jan Hubicka  <jh@suse.cz>
2271
2272         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
2273         (mark_stmt_necessary): Set it.
2274         (mark_operand_necessary): Set it.
2275         (mark_control_dependent_edges_necessary): Set it.
2276         (mark_virtual_phi_result_for_renaming): New function.
2277         (get_live_post_dom): New function.
2278         (forward_edge_to_pdom): New function.
2279         (remove_dead_stmt): Fix handling of control dependences.
2280         (tree_dce_init): Init new bitmap.
2281         (tree_dce_done): Free it.
2282
2283 2009-07-02  Richard Guenther  <rguenther@suse.de>
2284
2285         PR bootstrap/40617
2286         * tree-ssa-structalias.c (new_var_info): Initialize
2287         is_restrict_var.
2288
2289 2009-07-02  Jan Hubicka  <jh@suse.cz>
2290
2291         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
2292         local.
2293
2294 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
2295
2296         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
2297         instead of recomputing it.  Adjust calls.
2298         (emit_store_flag): Adjust recursive calls.
2299
2300 2009-07-02  Richard Guenther  <rguenther@suse.de>
2301
2302         * tree-ssa-live.c (remove_unused_locals): Do not remove
2303         heap variables.
2304         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
2305         of DECL_EXTERNAL for HEAP variables.
2306         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
2307         HEAP variables.  Do not adjust RESTRICT vars.
2308         (find_what_var_points_to): Nobody cares if something
2309         points to READONLY.
2310
2311 2009-07-02  Ben Elliston  <bje@au.ibm.com>
2312
2313         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
2314         pc_low and pc_high declarations to the top of the function.
2315
2316 2009-07-01  DJ Delorie  <dj@redhat.com>
2317
2318         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
2319         registers as fixed.
2320         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
2321         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
2322         unspecified accesses to control registers.
2323         * config/mep/intrinsics.md: Regenerate.
2324         * config/mep/intrinsics.h: Regenerate.
2325         * config/mep/mep-intrin.h: Regenerate.
2326
2327 2009-07-01  Anthony Green  <green@moxielogic.com>
2328
2329         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
2330         instruction when possible.
2331         (moxie_expand_prologue): Ditto.  Also, save an instruction and
2332         some complexity by popping off of $r12 instead of $sp.
2333         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
2334         operands.
2335
2336 2009-07-01  Richard Henderson  <rth@redhat.com>
2337
2338         PR bootstrap/40347
2339         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
2340         contained no insns, reposition note before last insn.
2341
2342 2009-07-01  Richard Henderson  <rth@redhat.com>
2343
2344         PR debug/40431
2345         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
2346         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
2347
2348 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2349
2350         PR bootstrap/40558
2351         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
2352         darwin9 for printing reg addresses with %y.
2353
2354 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2355
2356         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
2357         truncation from operands in binary operations.
2358
2359 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2360
2361         Revert:
2362         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
2363         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
2364         subreg of op0 to the original op0.
2365
2366         * expmed.c (store_bit_field_1): Use a temporary as the destination
2367         instead of a paradoxical subreg when we need to truncate the result.
2368
2369 2009-07-01  DJ Delorie  <dj@redhat.com>
2370
2371         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
2372         names to VLIW variants.
2373         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
2374         * config/mep/intrinsics.md: Regenerate.
2375         * config/mep/intrinsics.h: Regenerate.
2376         * config/mep/mep-intrin.h: Regenerate.
2377
2378 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
2379
2380         PR debug/40462
2381         * jump.c (returnjump_p): Revert last patch.
2382         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
2383
2384 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2385
2386         PR target/40575
2387         * pa.md (casesi32p): Use jump table label to determine the offset
2388         of the jump table.
2389         (casesi64p): Likewise.
2390
2391         * pa.c (forward_branch_p): Return bool type.  Use instruction
2392         addresses when available.  Assert that INSN has a jump label.
2393         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
2394         have a jump label.
2395
2396 2009-07-01  Richard Guenther  <rguenther@suse.de>
2397
2398         PR tree-optimization/19831
2399         * tree-ssa-dce.c (propagate_necessity): Calls to functions
2400         that only act as barriers do not make any previous stores necessary.
2401         * tree-ssa-structalias.c (handle_lhs_call): Delay making
2402         HEAP variables global, do not add a constraint from nonlocal.
2403         (find_func_aliases): Handle escapes through return statements.
2404         (compute_points_to_sets): Make escaped HEAP variables global.
2405
2406 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2407
2408         PR bootstrap/40597
2409         * expmed.c (emit_store_flag): Perform a conversion if necessary,
2410         after reducing a DImode cstore to SImode.
2411
2412 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2413
2414         * expr.c (expand_expr_real_1): Reinstate fallthrough to
2415         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
2416
2417 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
2418
2419         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
2420         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
2421         to 0.
2422         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
2423         and umod_optab if TARGET_BSD_DIVMOD.
2424         * config/vax/lib1funcs.asm: New file.
2425         * config/vax/t-linux: New file.
2426         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
2427
2428 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
2429
2430         PR c++/40566
2431         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
2432         to type arguments that have void type.
2433
2434         PR debug/40573
2435         * dwarf2out.c (gen_formal_parameter_die): Call
2436         equate_decl_number_to_die if node is different from origin.
2437
2438 2009-06-30  Anthony Green  <green@moxielogic.com>
2439
2440         Clean up moxie port for --enable-build-with-cxx.
2441         * config/moxie/moxie.c (moxie_function_value): First two
2442         parameters are const_tree, not tree.
2443         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
2444         (REG_CLASS_NAMES): Ditto.
2445         (REGNO_REG_CLASS): Ditto.
2446         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
2447         (moxie_function_value): Fix constyness of arguments.
2448
2449 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
2450
2451         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2452         finalize_size_functions before further processing.
2453         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
2454         (variable_size): Call self_referential_size on size expressions
2455         that contain a PLACEHOLDER_EXPR.
2456         (size_functions): New static variable.
2457         (copy_self_referential_tree_r): New static function.
2458         (self_referential_size): Likewise.
2459         (finalize_size_functions): New global function.
2460         * tree.c: Include tree-inline.h.
2461         (push_without_duplicates): New static function.
2462         (find_placeholder_in_expr): New global function.
2463         (substitute_in_expr) <tcc_declaration>: Return the replacement object
2464         on equality.
2465         <tcc_expression>: Likewise.
2466         <tcc_vl_exp>: If the replacement object is a constant, try to inline
2467         the call in the expression.
2468         * tree.h (finalize_size_functions): Declare.
2469         (find_placeholder_in_expr): Likewise.
2470         (FIND_PLACEHOLDER_IN_EXPR): New macro.
2471         (substitute_placeholder_in_expr): Update comment.
2472         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
2473         is true.
2474         (copy_tree_body_r): Likewise.
2475         (copy_tree_body): New static function.
2476         (maybe_inline_call_in_expr): New global function.
2477         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
2478         (maybe_inline_call_in_expr): Declare.
2479         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
2480         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
2481         GIMPLE_H.
2482
2483 2009-06-30  Richard Guenther  <rguenther@suse.de>
2484
2485         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
2486         continue walking.
2487         (propagate_necessity): Do not mark reaching defs of stores
2488         as necessary.
2489
2490 2009-06-30  Jan Hubicka  <jh@suse.cz>
2491
2492         * cfgloopanal.c (check_irred): Move into ...
2493         (mark_irreducible_loops): ... here; return true if ireducible
2494         loops was found.
2495         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
2496         (analyze_function): Try to prove loop finiteness.
2497         * cfgloop.h (mark_irreducible_loops): Update prototype.
2498         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
2499
2500 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
2501
2502         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
2503
2504 2009-06-30  Ira Rosen  <irar@il.ibm.com>
2505
2506         PR tree-optimization/40542
2507         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
2508         types.
2509
2510 2009-06-30  Martin Jambor  <mjambor@suse.cz>
2511
2512         PR tree-optimization/40582
2513         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
2514         than useless_type_conversion_p.
2515         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
2516         proper place.
2517
2518 2009-06-30  Martin Jambor  <mjambor@suse.cz>
2519
2520         PR middle-end/40554
2521         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
2522
2523 2009-06-30  Richard Guenther  <rguenther@suse.de>
2524
2525         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
2526         use ao_ref references.
2527         (walk_aliased_vdefs): Likewise.
2528         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
2529         * tree-ssa-dce.c (struct ref_data): Remove.
2530         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
2531         (mark_aliased_reaching_defs_necessary): Adjust.
2532         (mark_all_reaching_defs_necessary_1): Likewise.
2533
2534 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
2535
2536         PR boostrap/40597
2537         * expmed.c (emit_cstore): New name of emit_store_flag_1.
2538         (emit_store_flag_1): Extract from emit_store_flag, adjust
2539         calls to (what now is) emit_cstore.
2540         (emit_store_flag): Call emit_store_flag_1 and also use it
2541         for what used to be recursive calls.
2542
2543 2009-06-30  Wei Guozhi  <carrot@google.com>
2544
2545         PR/40416
2546         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
2547         if the target bb post dominates from bb.
2548         * config/i386/i386.c (memory_address_length): Check existence of base
2549         register before using it.
2550
2551 2009-06-30  Nick Clifton  <nickc@redhat.com>
2552             DJ Delorie  <dj@redhat.com>
2553
2554         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2555         __FMOVD_ENABLED__ is defined.
2556         * config/sh/sh.h
2557         (TARGET_FMOVD): Provide a default definition.
2558         (MASK_FMOVD): Likewise.
2559         (TARGET_CPU_CPP_BUILTINS): Define
2560         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2561         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2562         two fmov instructions depending upon whether TARGET_FMOVD is
2563         enabled.
2564         (split for DF load from memory into register): Also handle
2565         MEMs which consist of REG+DISP addressing.
2566         (split for DF store from register to memory): Likewise.
2567         * config/sh/sh.opt (mfmovd): Remove this switch.
2568         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2569         * config/sh/sh.c (sh_override_options): Do not automatically
2570         enable TARGET_MOVD for the SH2A when supporting doubles - leave
2571         that to the -mfmovd command line switch.
2572
2573         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
2574         the SH4 and SH4A.
2575         (fldi_ok): Always allow.
2576         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
2577
2578 2009-06-29  DJ Delorie  <dj@redhat.com>
2579
2580         * doc/install.texi (mep-x-elf): Correct chip's full name.
2581
2582 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
2583
2584         * doc/extend.texi: Fix typo.
2585
2586 2009-06-29  Tom Tromey  <tromey@redhat.com>
2587
2588         * dwarf2.h: Remove.
2589         * Makefile.in (DWARF2_H): New variable.
2590         (except.o): Use it.
2591         (dwarf2out.o): Likewise.
2592         (dwarf2asm.o): Likewise.
2593         * config/i386/t-i386: Use DWARF2_H.
2594         * except.c: Include elf/dwarf2.h.
2595         * unwind-dw2.c: Include elf/dwarf2.h.
2596         * dwarf2out.c: Include elf/dwarf2.h.
2597         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
2598         <dtprel>: New field.
2599         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
2600         (size_of_loc_descr): Likewise.
2601         (output_loc_operands_raw): Likewise.
2602         (output_loc_operands): Handle new dtprel field.
2603         (loc_checksum): Update.
2604         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
2605         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
2606         * unwind-dw2-fde.c: Include elf/dwarf2.h.
2607         * dwarf2asm.c: Include elf/dwarf2.h.
2608         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
2609         * config/mmix/mmix.c: Include elf/dwarf2.h.
2610         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
2611         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
2612         * config/sh/sh.c: Include elf/dwarf2.h.
2613         * config/i386/i386.c: Include elf/dwarf2.h.
2614
2615 2009-06-29  DJ Delorie  <dj@redhat.com>
2616
2617         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
2618
2619         * doc/extend.texi: Add MeP attributes and pragmas.
2620         * doc/invoke.text: Add MeP Options.
2621         * doc/contrib.texi: Add MeP contribution.
2622         * doc/md.texi: Add MeP constraints.
2623         * doc/install.texi: Add MeP target.
2624
2625 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
2626
2627         * target.h (struct gcc_target): Add frame_pointer_required field.
2628         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
2629         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
2630         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
2631         hook.
2632         * reload1.c (update_eliminables): (Ditto.).
2633         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
2634         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2635         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
2636
2637         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
2638
2639         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
2640         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2641         (arm_frame_pointer_required): New function.
2642
2643         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
2644         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2645         (avr_frame_pointer_required_p): Declare as static.
2646         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
2647
2648         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
2649         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2650         (bfin_frame_pointer_required): Make as static, change return type
2651         to bool.
2652         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
2653
2654         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
2655         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2656         (cris_frame_pointer_required): New function.
2657         
2658         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
2659
2660         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
2661         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2662         (fr30_frame_pointer_required): New function.
2663         
2664         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
2665         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2666         (frv_frame_pointer_required): Make as static, change return type
2667         to bool.
2668         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
2669
2670         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
2671         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2672         (ix86_frame_pointer_required): Make as static, change return type to
2673         bool.
2674         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
2675
2676         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
2677         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2678
2679         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
2680
2681         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
2682         
2683         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
2684
2685         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
2686         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2687         (mips_frame_pointer_required): Make as static.
2688         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
2689         
2690         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
2691         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2692         (mmix_frame_pointer_required): Mew function.
2693
2694         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
2695         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2696
2697         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
2698
2699         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
2700
2701         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
2702
2703         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
2704         (CAN_ELIMINATE): Redefine.
2705         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
2706         (sparc_frame_pointer_required): New function.
2707         (sparc_can_eliminate): New function.
2708         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
2709
2710         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
2711         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2712
2713         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
2714         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
2715         (xtensa_frame_pointer_required): Make as static, change return type
2716         to bool.
2717         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
2718         Remove.
2719
2720 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
2721
2722         * doc/plugins.texi: Document PLUGIN_START_UNIT.
2723         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
2724         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
2725         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
2726         (register_callback): Handle PLUGIN_START_UNIT.
2727         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
2728
2729 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
2730
2731         * tree.c (process_call_operands): Propagate TREE_READONLY from the
2732         operands.
2733         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
2734         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
2735
2736 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
2737
2738         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
2739         move cost.
2740
2741 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
2742
2743         * doc/extend.texi (Additional Floating Types): __float128 is also
2744         supported on i386 targets.
2745
2746 2009-06-29  Richard Guenther  <rguenther@suse.de>
2747
2748         PR middle-end/14187
2749         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
2750         flag.
2751         (pt_solutions_same_restrict_base): Declare.
2752         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
2753         flag.
2754         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
2755         (make_constraint_from, make_copy_constraint): Move earlier.
2756         (make_constraint_from_heapvar): New function.
2757         (make_constraint_from_restrict): Likewise.
2758         (handle_lhs_call): Use it.
2759         (find_func_aliases): Use it to track conversions to restrict
2760         qualified pointers.
2761         (struct fieldoff): Add only_restrict_pointers flag.
2762         (push_fields_onto_fieldstack): Initialize it.
2763         (create_variable_info_for): Track global restrict qualified pointers.
2764         (intra_create_variable_infos): Use make_constraint_from_heapvar.
2765         Track restrict qualified pointer arguments.
2766         (set_uids_in_ptset): Use varinfo is_global_var flag.
2767         (find_what_var_points_to): Set the vars_contains_restrict flag.
2768         Always create the points-to solution for sets including restrict tags.
2769         (pt_solutions_same_restrict_base): New function.
2770         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
2771         qualified pointers use pt_solutions_same_restrict_base as
2772         additional source for disambiguation.
2773
2774 2009-06-29  Richard Guenther  <rguenther@suse.de>
2775
2776         PR middle-end/38212
2777         * alias.c (find_base_decl): Remove.
2778         (get_deref_alias_set_1): Remove restrict handling.
2779         * c-common.c (c_apply_type_quals_to_decl): Do not set
2780         DECL_POINTER_ALIAS_SET.
2781         * gimplify.c (find_single_pointer_decl_1): Remove.
2782         (find_single_pointer_decl): Likewise.
2783         (internal_get_tmp_var): Remove restrict handling.
2784         (gimple_regimplify_operands): Likewise.
2785         * omp-low.c (expand_omp_atomic_pipeline): Do not set
2786         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
2787         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
2788         * tree.c (restrict_base_for_decl): Remove.
2789         (init_ttree): Do not allocate it.
2790         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
2791         LABEL_DECL_UID for label decls.
2792         (copy_node_stat): Do not copy restrict information.
2793         (decl_restrict_base_lookup): Remove.
2794         (decl_restrict_base_insert): Likewise.
2795         (print_restrict_base_statistics): Likewise.
2796         (dump_tree_statistics): Do not call print_restrict_base_statistics.
2797         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
2798         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
2799         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
2800         (LABEL_DECL_UID): Adjust.
2801         (DECL_BASED_ON_RESTRICT_P): Remove.
2802         (DECL_GET_RESTRICT_BASE): Likewise.
2803         (SET_DECL_RESTRICT_BASE): Likewise.
2804         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
2805
2806         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
2807         instead of DECL_POINTER_ALIAS_SET.
2808         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
2809         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
2810         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
2811
2812 2009-06-29  Richard Guenther  <rguenther@suse.de>
2813
2814         PR tree-optimization/40579
2815         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
2816         the IL to simplify has constants that overflowed.
2817
2818 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
2819
2820         PR tree-optimization/40550
2821         * tree-vect-generic.c (expand_vector_operations_1): Compute in
2822         vector_compute_type only when the size of vector_compute_type is
2823         less than the size of type.
2824
2825 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
2826
2827         * fold-const.c (contains_label_1): Fix comments.
2828         (contains_label_p): Do not walk trees multiple time.
2829
2830 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2831
2832         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
2833         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
2834         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
2835         ix86_fp_comparison_operator.
2836         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
2837         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
2838         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
2839         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
2840         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
2841         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
2842         (related splits): Change predicate to ix86_fp_comparison_operator.
2843         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
2844         instead of ix86_fp_comparison_codes.
2845         (ix86_trivial_fp_comparison_operator,
2846         ix86_fp_comparison_operator): New.
2847         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
2848         (ix86_expand_compare): Eliminate last two parameters.
2849         (ix86_fp_jump_nontrivial_p): Kill.
2850         * config/i386/i386.c (put_condition_code): Eliminate call to
2851         ix86_fp_comparison_codes and subsequent assertion.
2852         (ix86_fp_comparison_codes): Eliminate.
2853         (ix86_fp_swap_condition): New.
2854         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
2855         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
2856         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
2857         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
2858         and ix86_fp_swap_condition.
2859         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
2860         Use ix86_fp_comparison_strategy.
2861         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
2862         (ix86_fp_jump_nontrivial_p): Eliminate.
2863         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
2864         call to ix86_expand_compare.
2865         (ix86_split_fp_branch, ix86_expand_setcc,
2866         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
2867         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
2868
2869 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2870
2871         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
2872         related to jump_clobbers.
2873         * config/arm/arm.md (conds): Remove jump_clob case.
2874         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
2875         splits): Change comparison_operator to arm_comparison_operator.
2876         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
2877         Eliminate.
2878
2879 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2880
2881         * dojump.c (do_compare_rtx_and_jump): Try swapping the
2882         condition for floating point modes.
2883         * expmed.c (emit_store_flag_1): Move here a bigger part
2884         of emit_store_flag.
2885         (emit_store_flag): Try swapping the condition for floating point
2886         modes.
2887         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
2888
2889 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2890
2891         * expr.c (expand_expr_real_1): Just use do_store_flag.
2892         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
2893         emit_store_flag_force.
2894         * expmed.c (emit_store_flag_force): Copy here trick
2895         previously in expand_expr_real_1.  Try reversing the comparison.
2896         (emit_store_flag_1): Work if target is NULL.
2897         (emit_store_flag): Work if target is NULL, using the result mode
2898         from the comparison.  Use split_comparison, restructure final part
2899         to simplify conditionals.
2900
2901 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
2902
2903         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
2904         * dojump.c (do_jump): Change handling of floating-point
2905         ops to use just do_compare_and_jump.
2906         (split_comparison): New.
2907         (do_compare_rtx_and_jump): Add here logic coming previously
2908         in do_jump, using split_comparison.
2909
2910 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
2911
2912         PR target/40489
2913         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
2914
2915 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2916
2917         * tree-ssa-alias.c: Fix unintentional commit.
2918
2919 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2920
2921         * passes.c (execute_one_pass): Fix unintentional commit.
2922
2923 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2924
2925         * df-problems.c (df_set_seen, df_unset_seen): Delete.
2926         (df_rd_local_compute, df_md_local_compute): Inline them.
2927
2928         (df_md_scratch): New.
2929         (df_md_alloc, df_md_free): Allocate/free it.
2930         (df_md_local_compute): Only include live registers in init.
2931         (df_md_transfer_function): Prune the in-set computed by
2932         the confluence function, and the gen-set too.
2933
2934 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2935
2936         PR rtl-optimization/26854
2937         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
2938         * df-problems.c (df_rd_add_problem): Fix comment.
2939         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
2940         df_md_simulate_artificial_defs_at_top,
2941         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
2942         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
2943         df_md_transfer_function, df_md_init, df_md_confluence_0,
2944         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
2945         problem_MD, df_md_add_problem): New.
2946         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
2947         df_md_get_bb_info): New.
2948         (DF_LAST_PROBLEM_PLUS1): Adjust.
2949
2950         * Makefile.in (fwprop.o): Include domwalk.h.
2951         * fwprop.c: Include domwalk.h.
2952         (reg_defs, reg_defs_stack): New.
2953         (bitmap_only_bit_between): Remove.
2954         (process_defs): New.
2955         (process_uses): Use reg_defs and local_md instead of
2956         bitmap_only_bit_between and local_rd.
2957         (single_def_use_enter_block): New, from build_single_def_use_links.
2958         (single_def_use_leave_block): New.
2959         (build_single_def_use_links): Remove code moved to
2960         single_def_use_enter_block, invoke domwalk.
2961         (use_killed_between): Adjust comment.
2962
2963 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2964
2965         * bitmap.h (bitmap_ior_and_into): New.
2966         * bitmap.c (bitmap_ior_and_into): New.
2967
2968 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
2969
2970         * domwalk.h (struct dom_walk_data): Remove all callbacks except
2971         before_dom_children_before_stmts and after_dom_children_after_stmts.
2972         Rename the two remaining callbacks to just before_dom_children and 
2973         after_dom_children. Remove other GIMPLE statement walking bits.
2974         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
2975         * graphite.c: Do not include domwalk.h.
2976         * tree-into-ssa.c (interesting_blocks): New global.
2977         (struct mark_def_sites_global_data): Remove it and names_to_rename.
2978         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
2979         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
2980         now that they're not domwalk callbacks.
2981         (rewrite_initialize_block): Rename to...
2982         (rewrite_enter_block): ... this, place after called functions.  Test
2983         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
2984         (rewrite_finalize_block): Rename to...
2985         (rewrite_leave_block): ... this, place after called functions.
2986         (rewrite_update_init_block): Rename to...
2987         (rewrite_update_enter_block): ... this, place after called functions.
2988         Test interesting_blocks, call rewrite_update_stmt and 
2989         rewrite_update_phi_arguments.
2990         (rewrite_update_fini_block): Rename to...
2991         (rewrite_leave_block): ... this, place after called functions.
2992         (rewrite_blocks): Remove last argument, simplify initialization of
2993         walk_data.
2994         (mark_def_sites_initialize_block): Rename to...
2995         (mark_def_sites_block): ... this, call mark_def_sites.
2996         (mark_def_sites_blocks): Remove argument, simplify initialization of
2997         walk_data.
2998         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
2999         (update_ssa): Likewise.
3000         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
3001         callback.
3002         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
3003         (dom_opt_initialize_block): Rename to...
3004         (dom_opt_enter_block): ... this, place after called functions.  Walk
3005         statements here, inline propagate_to_outgoing_edges.
3006         (dom_opt_finalize_block): Rename to...
3007         (dom_opt_leave_block): ... this, place after called functions.
3008         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
3009         domwalk callback.
3010         (dse_enter_block, dse_record_phi): New.
3011         (dse_record_phis): Delete.
3012         (dse_finalize_block): Rename to...
3013         (dse_leave_block): ... this.
3014         (tree_ssa_dse): Simplify initialization of walk_data.
3015         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
3016         Adjust initialization of walk_data.
3017         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
3018         * tree-ssa-loop-phiopt.c (get_non_trapping):
3019         Adjust initialization of walk_data.
3020         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
3021         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
3022         it's not a domwalk callback.
3023         (uncprop_initialize_block): Rename to...
3024         (dse_enter_block): ... this, call uncprop_into_successor_phis.
3025         (dse_finalize_block): Rename to...
3026         (dse_leave_block): ... this.
3027         (tree_ssa_uncprop): Simplify initialization of walk_data.
3028         * Makefile.in: Adjust dependencies.
3029
3030 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
3031
3032         * arm.md (casesi): Fix test for Thumb1.
3033         (thumb1_casesi_internal_pic): Likewise.
3034         (thumb1_casesi_dispatch): Likewise.
3035
3036 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
3037
3038         * config/arm/arm-cores.def: Added core cortex-m0.
3039         * config/arm/arm-tune.md: Regenerated.
3040         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
3041
3042 2009-06-26  DJ Delorie  <dj@redhat.com>
3043
3044         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
3045
3046         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
3047         the scheduler doesn't tag jump insns.
3048
3049 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
3050
3051         * c-decl.c (merge_decls): Re-indent.
3052
3053 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
3054
3055         PR c/39902
3056         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
3057         Special-case decimal float constants.
3058
3059 2009-06-26  Richard Henderson  <rth@redhat.com>
3060
3061         * function.h (struct function): Add cannot_be_copied_reason,
3062         and cannot_be_copied_set.
3063         * tree-inline.c (has_label_address_in_static_1): Rename from
3064         inline_forbidden_p_2; don't set inline_forbidden_reason here.
3065         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
3066         don't set inline_forbidden_reason.
3067         (copy_forbidden): New function, split out of inline_forbidden_p.
3068         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
3069         (inline_forbidden_p): Use copy_forbidden.
3070         (tree_versionable_function_p): Likewise.
3071         (inlinable_function_p): Merge into tree_inlinable_function_p.
3072         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
3073         * ipa-cp.c (ipcp_versionable_function_p): New function.
3074         (ipcp_cloning_candidate_p): Use it.
3075         (ipcp_node_modifiable_p): Likewise.
3076
3077 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
3078
3079         * builtins.c (expand_builtin_alloca): Handle builtin alloca
3080         that is marked not to be inlined. Remove flag_mudflap use.
3081         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
3082         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
3083
3084 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
3085
3086         PR bootstrap/40338
3087         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
3088         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
3089
3090 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
3091
3092         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
3093         shared libgcc.
3094         (__mingwthr_remove_key_dtor): Likewise.
3095
3096 2009-06-26  Richard Guenther  <rguenther@suse.de>
3097
3098         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
3099
3100 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3101
3102         PR middle-end/40525
3103         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
3104         try the non-cond_exec path also.
3105
3106 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3107
3108         PR target/40468
3109         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
3110         (output_cbranch): Use new functions.
3111         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
3112         Likewise.
3113
3114 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3115             Pat Haugen  <pthaugen@us.ibm.com>
3116             Revital Eres <ERES@il.ibm.com>
3117
3118         * config/rs6000/rs6000.c (print_operand): Correct lossage message
3119         for %c error.  Add %x support to print VSX registers as a unified
3120         register set, instead of separate float and altivec registers.
3121         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
3122         %y case, and add support for VSX pre-modify addresses.
3123         (output_toc): Add assert for CONST containing an integer constant
3124         in the PLUS case.
3125         (rs6000_adjust_cost): Add POWER7 support.
3126         (insn_must_be_first_in_group): Ditto.
3127         (insn_must_be_last_in_group): Ditto.
3128         (rs6000_emit_popcount): Ditto.
3129         (rs6000_vector_mode_supported_p): Ditto.
3130
3131         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
3132         Change some of the functions called by macros to being called
3133         through a pointer, so debug functions can be inserted if
3134         -mdebug=addr or -mdebug=cost. 
3135         (rs6000_preferred_reload_class_ptr): Ditto.
3136         (rs6000_secondary_reload_class_ptr): Ditto.
3137         (rs6000_secondary_memory_needed_ptr): Ditto.
3138         (rs6000_cannot_change_mode_class_ptr): Ditto.
3139         (rs6000_secondary_reload_inner): Ditto.
3140         (rs6000_legitimize_reload_address): Ditto.
3141         (rs6000_legitimize_reload_address_ptr): Ditto.
3142         (rs6000_mode_dependent_address): Ditto.
3143         (rs6000_mode_dependent_address_ptr): Ditto.
3144
3145         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
3146         function to return true if the mode allows reg + integer
3147         addresses.
3148         (virtual_stack_registers_memory_p): New function to return true if
3149         the address refers to a virtual stack register.
3150         (rs6000_legitimate_offset_address_p): Move code to say whether a
3151         mode supports reg+int addressing to reg_offset_addressing_ok_p and
3152         call it.
3153         (rs6000_legitimate_address_p): Add checks for modes that only can
3154         do reg+reg addressing.  Start adding VSX support.
3155         (rs6000_legitimize_reload_address): Ditto.
3156         (rs6000_legitimize_address): Ditto.
3157         (rs6000_debug_legitimate_address_p): New debug functions for
3158         -mdebug=addr and -mdebug=cost.
3159         (rs6000_debug_rtx_costs): Ditto.
3160         (rs6000_debug_address_costs): Ditto.
3161         (rs6000_debug_adjust_cost): Ditto.
3162         (rs6000_debug_legitimize_address): Ditto.
3163         (rs6000_legitimize_reload_address_ptr): Point to call normal
3164         function or debug function.  Make functions called via pointer
3165         static.
3166         (rs6000_mode_dependent_address_ptr): Ditto.
3167         (rs6000_secondary_reload_class_ptr): Ditto.
3168         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
3169         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
3170         into a friendlier error.
3171         (rs6000_init_builtins): Add initial VSX support.
3172         (rs6000_adjust_cost): Fix some spacing issues.
3173
3174         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
3175         (REG_CLASS_NAMES): Ditto.
3176         (REG_CLASS_CONTENTS): Ditto.
3177         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
3178         pointer, to add -mdebug=addr support.
3179         (CANNOT_CHANGE_MODE_CLASS): Ditto.
3180         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
3181         -mdebug=addr support.
3182         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
3183         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
3184         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
3185
3186         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
3187         16-bit values.
3188         (bswapsi*): Set attribute types for load/store.  Add combiner
3189         patterns to eliminate zero extend on 64-bit.
3190         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
3191         stdbrx if the hardware supports those instructions.
3192
3193 2009-06-25  Ian Lance Taylor  <iant@google.com>
3194
3195         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
3196         (Link Options): Document -static-libstdc++.
3197
3198 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3199
3200         PR target/38731
3201         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
3202         DATA_ALIGNMENT instead.
3203
3204 2009-06-25  Richard Guenther  <rguenther@suse.de>
3205
3206         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
3207         indirect references against the callused/escaped solutions.
3208         (call_may_clobber_ref_p_1): Likewise.
3209
3210 2009-06-25  Martin Jambor  <mjambor@suse.cz>
3211
3212         PR tree-optimization/40493
3213         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
3214         (enum unscalarized_data_handling): New type.
3215         (handle_unscalarized_data_in_subtree): Return what has been done.
3216         (load_assign_lhs_subreplacements): Handle left flushes differently.
3217         (sra_modify_assign): Use unscalarized_data_handling, simplified
3218         condition determining whether to remove the statement.
3219
3220 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
3221
3222         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
3223         excerpt - @ should be doubled for texinfo.
3224
3225 2009-06-24  Ian Lance Taylor  <iant@google.com>
3226
3227         * config/arc/arc.c: Include "df.h".
3228         (arc_attribute_table): Make static.  Move higher in file.
3229         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
3230         (output_shift): Initialize n later to avoid warning.
3231         * config/arm/arm.c (arm_attribute_table): Make static.  Move
3232         higher in file.
3233         * config/avr/avr.c (avr_attribute_table): Make static.  Move
3234         higher in file.
3235         (reg_class_tab): Change array type from int to enum reg_class.
3236         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
3237         LABEL_REF.
3238         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
3239         (lshrhi3_out): Likewise.
3240         (class_likely_spilled_p): Change return type to bool.
3241         (avr_rtx_costs): Use local code variable with enum type.
3242         * config/avr/avr.md (movmemhi): Use add_reg_note.
3243         (andhi3, andsi3): Don't use AS2 with "and".
3244         (iorhi3, iorsi3): Don't use AS2 with "or".
3245         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
3246         * config/crx/crx.c: Include "df.h".
3247         (crx_attribute_table): Make static.
3248         * config/m32r/m32r.c: Include "df.h".
3249         (m32r_attribute_table): Make static.  Move higher in file.
3250         (pop): Use add_reg_note.
3251         (block_move_call): Change 0 to LCT_NORMAL in function call.
3252         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
3253         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
3254         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
3255         declare, not just when TREE_CODE is defined.
3256         * config/m68hc11/m68hc11.c: Include "expr.h".
3257         (m68hc11_attribute_table): Make static.  Move higher in file.
3258         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
3259         function call.
3260         (m68hc11_register_indirect_p): Likewise.
3261         (m68hc11_function_arg_padding): Change return type to enum
3262         direction.
3263         (emit_move_after_reload): Use add_reg_note.
3264         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
3265         (m68hc11_split_logical): Likewise.
3266         (m68hc11_rtx_costs): Add local code_and outer_code variables with
3267         enum type.
3268         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
3269         to VOIDmode in function call.
3270         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
3271         tree is defined.
3272         (m68hc11_split_logical): Update declaration.
3273         (m68hc11_function_arg_padding): Update declaration.
3274         * config/mcore/mcore.c (regno_reg_class): Change form array of int
3275         to array of enum reg_class.
3276         (mcore_attribute_table): Make static.  Move higher in file.
3277         (mcore_rtx_costs): Add cast to enum type.
3278         * config/mcore/mcore.h (regno_reg_class): Update declaration.
3279         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
3280         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
3281         in file.
3282         * config/sh/predicates.md (trapping_target_operand): Rename and to
3283         and_expr.
3284         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
3285         higher in file.
3286         * config/spu/spu.c (spu_attribute_table): Make static.  Move
3287         higher in file.
3288         * config/v850/v850.c (v850_attribute_table): Make static.  Move
3289         higher in file.
3290         (v850_rtx_costs): Use local code with enum type.
3291         (expand_epilogue): Add cast.
3292         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
3293
3294 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
3295
3296         PR target/40515
3297         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
3298         -m2a-single-only and -m2a-nofpu.
3299         * config/sh/sh.opt: Document m2a generates FPU code.  
3300
3301 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
3302
3303         * defaults.h (CAN_ELIMINATE): Provide default.
3304         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
3305         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
3306         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
3307         * config/spu/spu.h (CAN_ELIMINATE): Delete.
3308         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
3309         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
3310         * config/cris/cris.h (CAN_ELIMINATE): Delete.
3311         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
3312         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
3313         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
3314
3315 2009-06-24  DJ Delorie  <dj@redhat.com>
3316
3317         * mep-ext-cop.cpu: Fix copyright notice.
3318         * mep-default: Fix copyright notice.
3319         * mep-core: Fix copyright notice.
3320         * mep: Fix copyright notice.
3321         * mep-ivc2: Fix copyright notice.
3322         * mep-c5: Fix copyright notice.
3323
3324 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
3325
3326         * doc/contrib.texi (Contributors): 
3327
3328 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3329         
3330         PR middle-end/40501
3331         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
3332         src and dst operands if necessary.
3333
3334 2009-06-23  DJ Delorie  <dj@redhat.com>
3335
3336         Add MeP port.
3337         * config.gcc: Add mep support.
3338         * recog.c: Resurrect validate_replace_rtx_subexp().
3339         * recog.h: Likewise.
3340         * config/mep/: Add new port:
3341         * config/mep/constraints.md: New file.
3342         * config/mep/default.h: New file.
3343         * config/mep/intrinsics.h: New file.
3344         * config/mep/intrinsics.md: New file.
3345         * config/mep/ivc2-template.h: New file.
3346         * config/mep/mep-c5.cpu: New file.
3347         * config/mep/mep-core.cpu: New file.
3348         * config/mep/mep-default.cpu: New file.
3349         * config/mep/mep-ext-cop.cpu: New file.
3350         * config/mep/mep-intrin.h: New file.
3351         * config/mep/mep-ivc2.cpu: New file.
3352         * config/mep/mep-lib1.asm: New file.
3353         * config/mep/mep-lib2.c: New file.
3354         * config/mep/mep-pragma.c: New file.
3355         * config/mep/mep-protos.h: New file.
3356         * config/mep/mep-tramp.c: New file.
3357         * config/mep/mep.c: New file.
3358         * config/mep/mep.cpu: New file.
3359         * config/mep/mep.h: New file.
3360         * config/mep/mep.md: New file.
3361         * config/mep/mep.opt: New file.
3362         * config/mep/predicates.md: New file.
3363         * config/mep/t-mep: New file.
3364
3365 2009-06-23  Ian Lance Taylor  <iant@google.com>
3366
3367         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
3368         from loose_warn into c_loose_warn and from strict_warn into
3369         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
3370         --enable-build-with-cxx.  Set and substitute
3371         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
3372         * Makefile.in (CXXFLAGS): New variable.
3373         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
3374         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
3375         the default is the same as $(STRICT_WARN).
3376         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
3377         (CXX): New variable.
3378         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
3379         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
3380         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
3381         (HOST_LIBS): New variable.
3382         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
3383         (ALL_CXXFLAGS): New variable.
3384         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
3385         * doc/install.texi (Configuration): Document
3386         --enable-build-with-cxx, --with-stage1-ldflags,
3387         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
3388         * configure: Rebuild.
3389
3390 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3391
3392         * config/arm/arm.c (arm_override_options): Fix braces and formatting
3393         from previous commit.
3394
3395 2009-06-23  Ian Lance Taylor  <iant@google.com>
3396
3397         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
3398
3399 2009-06-23  Ian Lance Taylor  <iant@google.com>
3400
3401         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
3402         with ATTRIBUTE_UNUSED.
3403
3404 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3405             Pat Haugen  <pthaugen@us.ibm.com>
3406             Revital Eres  <eres@il.ibm.com>
3407
3408         * config.in (HAVE_AS_POPCNTD): Add default definition.
3409         (HAVE_AS_LWSYNC): Ditto.
3410
3411         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
3412         release number.
3413         (gcc_cv_as_powerpc_cmpb): Ditto.
3414         (gcc_cv_as_powerpc_dfp): Ditto.
3415         (gcc_cv_as_powerpc_vsx): Ditto.
3416         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
3417         supporting the popcntd/lwsync instructions.
3418         (gcc_cv_as_powerpc_lwsync): Ditto.
3419         * configure: Regenerate.
3420
3421         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
3422         -mcpu=native and -mcpu=power7.
3423         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
3424
3425         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
3426         a variable instead of a mask to reduce the number of mask bits.
3427         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3428         (-mbit-word): Ditto.
3429         (-mregnames): Ditto.
3430         * config/rs6000/rs6000.opt (-mupdate): Ditto.
3431         (-mfused-madd): Ditto.
3432
3433         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
3434         2.06 instructions.
3435         (-mvsx): New switch for VSX instructions.
3436         (-misel): Move from a variable to a mask to allow it to be set by
3437         -mcpu=.
3438
3439         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
3440         function declaration to an array declaration.
3441         (rs6000_hard_regno_nregs): New external array declaration.
3442
3443         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
3444         files included by rs6000.md.
3445
3446         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3447         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
3448
3449         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
3450         a target mask.
3451         (rs6000_debug_reg): New -mdebug= variables.
3452         (rs6000_debug_addr): Ditto.
3453         (rs6000_debug_cost): Ditto.
3454         (rs6000_pmode): New variable to hold Pmode.
3455         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
3456         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
3457         calculated at compiler start.
3458         (rs6000_hard_regno_nregs): Change function to an array which holds
3459         HARD_REGNO_NREGS calculated at compiler start.
3460         (rs6000_explicit_options): Delete isel field.
3461         (rs6000_vector_unit): New array to hold which vector unit
3462         supports arithmetic options for a given type.
3463         (rs6000_vector_mem): New array to hold which vector unit supports
3464         memory reference operations for a given type.
3465         (rs6000_vector_align): New array to given the alignment of each
3466         vector type.
3467         (power7_cost): New basic costs for power7.
3468         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
3469         (rs6000_hard_regno_nregs_internal): New function, moved from
3470         HARD_REGNO_NREGS, to calculate the number of registers each hard
3471         register takes for each type.
3472         (rs6000_debug_reg_print): New function for -mdebug=reg support.
3473         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
3474         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
3475         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
3476         unit information here so it is calculated once at compiler startup
3477         time.
3478         (rs6000_override_options): Make -misel a target mask.  Add more
3479         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
3480         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
3481         -mdebug=cost.
3482         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
3483         (rs6000_handle_option): Move -misel from variable to target mask.
3484         (rs6000_builtin_mask_for_load): Add VSX support.
3485         (rs6000_conditional_register_usage): Ditto.
3486         (USE_ALTIVEC_FOR_ARG_P): Ditto.
3487         (function_arg_boundary): Ditto.
3488         (rs6000_expand_builtin): Ditto.
3489         (def_builtin): Make abort message a little friendlier.
3490         (rs6000_emit_int_cmove): Add support for 64-bit isel.
3491
3492         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
3493         assembler support the popcntd instruction instead of a vsx
3494         instruction to enable power7 support.
3495         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
3496         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
3497         option to the assembler if -mcpu=native.
3498         (ASM_CPU_NATIVE_SPEC): Ditto.
3499         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
3500         ISA 2.06 features.
3501         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
3502         the lwsync instruction.
3503         (enum processor_type): Add PROCESSOR_POWER7.
3504         (rs6000_debug_reg): New -mdebug= options.
3505         (rs6000_debug_addr): Ditto.
3506         (rs6000_debug_cost): Ditto.
3507         (rs6000_isel): Delete.
3508         (enum rs6000_vector): New enum to say what vector unit we have.
3509         (VECTOR_UNIT_*): New macros to say which vector unit has
3510         arithmetic operations for a given type.
3511         (VECTOR_MEM_*): New macros to say which vector unit has memory
3512         operations for a given type.
3513         (TARGET_LDBRX): Whether the machine supports the ldbrx
3514         instruction.
3515         (TARGET_ISEL): Delete, -misel moved to be a mask.
3516         (TARGET_ISEL64): New macro for 64-bit isel support.
3517         (UNITS_PER_VSX_WORD): New macro.
3518         (POINTER_SIZE): Move to be an external variable, rather than
3519         calculating whether we are generating 32 ot 64-bit code.
3520         (Pmode): Ditto.
3521         (STACK_BOUNDARY): Add VSX support.
3522         (LOCAL_ALIGNMENT): Ditto.
3523         (SLOW_UNALIGNED_ACCESS): Ditto.
3524         (VSX_REGNO_P): New macro for VSX support.
3525         (VFLOAT_REGNO_P): Ditto.
3526         (VINT_REGNO_P): Ditto.
3527         (VLOGICAL_REGNO_P): Ditto.
3528         (VSX_VECTOR_MODE): Ditto.
3529         (VSX_SCALAR_MODE): Ditto.
3530         (VSX_MODE): Ditto.
3531         (VSX_MOVE_MODE): Ditto.
3532         (VSX_REG_CLASS_P): Ditto.
3533         (HARD_REGNO_NREGS): Instead of calling a function, use an array
3534         lookup.
3535         (UNITS_PER_SIMD_WORD): Add VSX support.
3536         (MODES_TIEABLE_P): Ditto.
3537         (STARTING_FRAME_OFFSET): Ditto.
3538         (STACK_DYNAMIC_OFFSET): Ditto.
3539         (EPILOGUE_USES): Ditto.
3540         (REGNO_REG_CLASS): Move to array lookup.
3541         (CLASS_MAX_NREGS): Ditto.
3542         (rs6000_vector_reg_class): Add declaration.
3543         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
3544         overlap with the floating point and Altivec registers.
3545
3546         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
3547
3548         * config/rs6000/driver-rs6000.c (asm_names): New static array to
3549         give the appropriate asm switches if -mcpu=native.
3550         (host_detect_local_cpu): Add support for "asm".
3551         (host_detect_local_cpu): Follow GNU code guidelines for name.
3552
3553         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
3554         -mbit-word to a variable instead of being a target mask.
3555
3556         * config/rs6000/sync.md (lwsync): If the assembler supports it,
3557         emit the lwsync instruction instead of emitting the instruction as
3558         an integer constant.
3559
3560         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
3561         fixuns_trundfsi2, move expander into rs6000.md.
3562
3563         * config/rs6000/rs6000.md (cpu): Add power7.
3564         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
3565         (logical predicate patterns): Change the single instruction
3566         primitives that set CR0 to be fast_compare instead of compare.
3567         (norsi*): Ditto.
3568         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
3569         (popcntddi2): Ditto.
3570         (popcount<mode>): Ditto.
3571         (floating multiply/add insns): Name the floating point
3572         multiply/add insns.
3573         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
3574         (isel_unsigned_<mode>): Ditto.
3575         (fixuns_trundfsi2): Move expander here from spe.md.
3576         (smindi3): Define if we have -misel on 64-bit systems.
3577         (smaxdi3): Ditto.
3578         (umindi3): Ditto.
3579         (umaxdi3): Ditto.
3580
3581 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
3582
3583         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
3584         extra_objs.
3585         * config/avr/avr.c (avr_current_device): New variable.
3586         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
3587         (avr_arch, mcu_type_s): Move to avr.h.
3588         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
3589         default_data_section_start fields.
3590         (avr_arch): Moved from avr.c.
3591         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
3592         library_name fields.
3593         (avr_current_device, avr_mcu_types, avr_arch_types,
3594         avr_device_to_arch, avr_device_to_data_start,
3595         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
3596         (EXTRA_SPEC_FUNCTIONS): Define.
3597         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
3598         options mapping. Use device_to_arch and device_to_data_start insted.
3599         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
3600         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
3601         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
3602         * config/avr/driver-avr.c: New file.
3603         * config/avr/avr-devices.c: New file.
3604
3605 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
3606
3607         * var-tracking.c (unshare_variable): Force initialized to
3608         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
3609         (set_variable_part): Likewise.
3610         (struct variable_union_info): Remove pos_src field.
3611         (vui_vec, vui_allocated): New variables.
3612         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
3613         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
3614         == 1 use a simpler sorting algorithm.  Compute pos field right
3615         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
3616         Avoid quadratic comparison if !flag_var_tracking_uninit.
3617         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
3618         unshare_variable unconditionally.   
3619         (dataflow_set_different_2): Removed.
3620         (dataflow_set_different): Don't traverse second hash table.
3621         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
3622         unconditionally to var_reg_set or var_mem_set.
3623         (emit_notes_in_bb): Likewise.
3624         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
3625         unshare_variable.
3626         (emit_note_insn_var_location): Don't set initialized to
3627         VAR_INIT_STATUS_INITIALIZED early.
3628         (vt_finalize): Free vui_vec if needed, clear vui_vec and
3629         vui_allocated.
3630         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
3631
3632         * tree-object-size.c (addr_object_size): Instead of checking
3633         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
3634         are no FIELD_DECLs following it.
3635
3636 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
3637
3638         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
3639         order to match bswaps with signed source operands.
3640
3641 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3642
3643         * sdbout.c (sdbout_one_type): Fix braces in switch.
3644
3645 2009-06-23  Richard Guenther  <rguenther@suse.de>
3646
3647         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
3648         member.
3649         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
3650         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
3651         var_callused, callused_tree, var_storedanything, storedanything_tree,
3652         var_integer, integer_tree): Remove global variables.
3653         (new_var_info): Do not pass new id, append the new var to the
3654         global variable vector.
3655         (do_ds_constraint): Use is_global_var member of the variable-info.
3656         (new_scalar_tmp_constraint_exp): Adjust.
3657         (create_function_info_for): Likewise.
3658         (create_variable_info_for): Likewise.
3659         (find_what_var_points_to): Remove dead code.
3660         (init_base_vars): Simplify.
3661         (compute_points_to_sets): Adjust.
3662
3663 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
3664
3665         * combine.c (try_combine): Dump information about the insns we're
3666         combining.
3667
3668 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
3669
3670         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
3671         check when calling force_to_mode on TRUNCATE's operand.
3672
3673 2009-06-22  Ian Lance Taylor  <iant@google.com>
3674
3675         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
3676
3677 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
3678
3679         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
3680
3681 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3682
3683         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
3684         override library linkage flags such as -static-libgcc or
3685         -shared-libgcc.
3686
3687 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3688
3689         * config/m68k/m68k-devices.def: Add line for MCF5221x.
3690
3691 2009-06-22  Ian Lance Taylor  <iant@google.com>
3692
3693         * config/linux.opt: Put mglibc ahead of muclibc.
3694
3695         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
3696         for duplicate decls.
3697
3698 2009-06-22  Matthias Klose  <doko@ubuntu.com>
3699
3700         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
3701
3702 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
3703
3704         PR objc/28050
3705         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
3706         instead of NULL if a parser error occurs.
3707
3708 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3709
3710         * dwarf2out.c (dwarf2_debug_hooks): Initialize
3711         non-DWARF2_DEBUGGING_INFO version.
3712
3713 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
3714
3715         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
3716         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
3717
3718         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
3719         (LIBGCC2_TF_CEXT): Define.
3720         (TF_SIZE): Define.
3721
3722 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3723
3724         PR target/40463
3725         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
3726
3727 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3728
3729         * config/arm/arm.c (arm_override_options): Disable
3730         -mcaller-super-interworking and -mcallee-super-interworking.
3731         * doc/invoke.texi (ARM Options): Document this.
3732
3733 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
3734
3735         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
3736         * config/arm/constraints.md (j): New constraint for movw operands.
3737         (N): Remove thumb2 meaning.
3738         * config/arm/arm.md (*arm_movw): Delete.
3739         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
3740         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
3741         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
3742
3743 2009-06-22  Martin Jambor  <mjambor@suse.cz>
3744
3745         PR tree-optimization/40492
3746         * tree-sra.c (sra_modify_assign): Pass zero offsets to
3747         build_ref_for_offset.
3748
3749 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
3750
3751         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
3752         JUMP_TABLE_DATA_P predicates where applicable.
3753         * auto-inc-dec.c: Ditto.
3754         * builtins.c: Ditto.
3755         * caller-save.c: Ditto.
3756         * calls.c: Ditto.
3757         * cfgcleanup.c: Ditto.
3758         * cfglayout.c: Ditto.
3759         * cfgrtl.c: Ditto.
3760         * combine.c: Ditto.
3761         * combine-stack-adj.c: Ditto.
3762         * cse.c: Ditto.
3763         * cselib.c: Ditto.
3764         * dbxout.c: Ditto.
3765         * df-scan.c: Ditto.
3766         * dse.c: Ditto.
3767         * dwarf2asm.c: Ditto.
3768         * dwarf2out.c: Ditto.
3769         * emit-rtl.c: Ditto.
3770         * except.c: Ditto.
3771         * explow.c: Ditto.
3772         * expmed.c: Ditto.
3773         * expr.c: Ditto.
3774         * final.c: Ditto.
3775         * function.c: Ditto.
3776         * fwprop.c: Ditto.
3777         * gcse.c: Ditto.
3778         * genpreds.c: Ditto.
3779         * genrecog.c: Ditto.
3780         * ifcvt.c: Ditto.
3781         * ira-costs.c: Ditto.
3782         * ira-lives.c: Ditto.
3783         * jump.c: Ditto.
3784         * loop-iv.c: Ditto.
3785         * lower-subreg.c: Ditto.
3786         * modulo-sched.c: Ditto.
3787         * optabs.c: Ditto.
3788         * postreload.c: Ditto.
3789         * print-rtl.c: Ditto.
3790         * recog.c: Ditto.
3791         * reginfo.c: Ditto.
3792         * regmove.c: Ditto.
3793         * reload1.c: Ditto.
3794         * reload.c: Ditto.
3795         * reorg.c: Ditto.
3796         * rtlanal.c: Ditto.
3797         * rtl.c: Ditto.
3798         * sched-vis.c: Ditto.
3799         * sdbout.c: Ditto.
3800         * sel-sched-ir.c: Ditto.
3801         * simplify-rtx.c: Ditto.
3802         * targhooks.c: Ditto.
3803         * var-tracking.c: Ditto.
3804         * vmsdbgout.c: Ditto.
3805
3806 2009-06-22  Matthias Klose  <doko@ubuntu.com>
3807
3808         * Makefile.in (install-plugin): Always use DESTDIR.
3809
3810 2009-06-22  Olivier Hainque  <hainque@adacore.com>
3811         
3812         * config/pa/pa.c (output_call): Don't optimize post call jumps
3813         into return address adjustments if the call may throw.
3814
3815 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
3816
3817         * arm.c (thumb1_output_casesi): New function.
3818         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
3819         optimizing for size or PIC.
3820         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
3821         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
3822         (casesi): Handle Thumb-1 when optimizing for size or PIC.
3823         (thumb1_casesi_internal_pic): New expand rule.
3824         (thumb1_casesi_dispatch): New pattern.
3825         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
3826         thumb-1 mode.
3827         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
3828         in the text seciton when PIC or optimizing for size.
3829         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
3830         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
3831         preservation properties of code.
3832         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
3833         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
3834         (__gnu_thumb1_case_si): New function.
3835         * t-arm (LIB1ASMSRC): Define here.
3836         (LIB1ASMFUNCS): Add some common functions.
3837         * t-arm-elf (LIB1ASMSRC): Delete.
3838         (LIB1ASMFUNCS): Append to existing set.
3839         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3840         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3841         * t-symbian (LIB1ASMFUNCS): Likewise.
3842         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3843         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
3844
3845 2009-06-21  Richard Guenther  <rguenther@suse.de>
3846
3847         PR tree-optimization/38729
3848         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
3849         to loops with a single exit if -fno-expensive-optimizations.
3850
3851 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
3852
3853         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
3854         (dataflow_set): Change vars type from htab_t to shared_hash.
3855         (shared_hash_pool, empty_shared_hash): New variables.
3856         (vars_clear): Removed.
3857         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
3858         shared_hash_find_slot_unshare, shared_hash_find_slot,
3859         shared_hash_find_slot_noinsert, shared_hash_find): New
3860         static inlines.
3861         (shared_hash_unshare, shared_hash_destroy): New functions.
3862         (unshare_variable): Unshare set->vars if shared, use
3863         shared_hash_htab.
3864         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
3865         (get_init_value, find_src_set_src, dump_dataflow_set,
3866         clobber_variable_part, emit_notes_for_differences): Use
3867         shared_hash_htab.
3868         (dataflow_set_init): Remove second argument, set vars to
3869         empty_shared_hash instead of creating a new htab.
3870         (dataflow_set_clear): Call shared_hash_destroy and set vars
3871         to empty_shared_hash instead of calling vars_clear.
3872         (dataflow_set_copy): Don't call vars_copy, instead just share
3873         the src htab with dst.
3874         (variable_union): Use shared_hash_*, use initially NO_INSERT
3875         lookup if set->vars is shared.  Don't keep slot cleared before
3876         calling unshare_variable.  Unshare set->vars if needed.
3877         Even ->refcount == 1 vars must be unshared if set->vars is shared
3878         and var needs to be modified.
3879         (variable_canonicalize): New function.
3880         (dataflow_set_union): If dst->vars is empty, just share src->vars
3881         with dst->vars and traverse with variable_canonicalize to canonicalize
3882         and unshare what is needed.
3883         (dataflow_set_different): If old_set and new_set use the same shared
3884         htab, they aren't different.  If number of htab elements is different,
3885         htabs are different.  Use shared_hash_*.
3886         (dataflow_set_destroy): Call shared_hash_destroy instead of
3887         htab_delete.
3888         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
3889         second argument to dataflow_set_init.
3890         (vt_initialize): Likewise.  Initialize shared_hash_pool and
3891         empty_shared_hash, move bb in/out initialization afterwards.
3892         Use variable_htab_free instead of NULL as changed_variables del hook.
3893         (variable_was_changed): Change type of second argument to pointer to
3894         dataflow_set.  When inserting var into changed_variables, bump
3895         refcount.  Unshare set->vars if set is shared htab and slot needs to
3896         be cleared.
3897         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
3898         lookup if set->vars is shared.  Unshare set->vars if needed.
3899         Even ->refcount == 1 vars must be unshared if set->vars is shared
3900         and var needs to be modified.  Adjust variable_was_changed caller.
3901         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
3902         vars must be unshared if set->vars is shared and var needs to be
3903         modified.  Adjust variable_was_changed caller.
3904         (emit_note_insn_var_location): Don't pool_free var.
3905         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
3906         instead of 1.
3907         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
3908         free_alloc_pool on shared_hash_pool.
3909
3910 2009-06-20  Anthony Green  <green@moxielogic.com>
3911
3912         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
3913         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
3914
3915 2009-06-20  Richard Guenther  <rguenther@suse.de>
3916
3917         * tree-ssa-structalias.c (find_func_aliases): For memset use
3918         a constraint from NULL if we memset to zero.
3919         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
3920         we explicitly handle that do not read from memory.
3921         (call_may_clobber_ref_p_1): Properly handle builtins that may
3922         set errno.
3923
3924 2009-06-20  Richard Guenther  <rguenther@suse.de>
3925
3926         PR tree-optimization/40495
3927         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
3928         (new_scalar_tmp_constraint_exp): New function.
3929         (process_constraint): Do not create temporary decls.
3930         (process_all_all_constraints): Likewise.
3931         (handle_const_call): Likewise.
3932         (create_function_info_for): Do not set decl.
3933
3934 2009-06-19  Ian Lance Taylor  <iant@google.com>
3935
3936         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
3937         (rs6000_attribute_table): Make static; move before use.
3938
3939 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
3940
3941         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
3942         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
3943         Propagate the TREE_READONLY flag without overwriting it.
3944         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
3945         Propagate the TREE_READONLY flag onto the result.
3946         (process_call_operands): Move around.  Use correct constant value.
3947
3948 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3949
3950         PR target/40482
3951         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
3952         * config/arm/arm.md: Likewise.
3953
3954 2009-06-19  Ian Lance Taylor  <iant@google.com>
3955
3956         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
3957         to GIMPLE_ERROR_MARK.
3958
3959         * c-typeck.c (build_conditional_expr): Add op1_original_type and
3960         op2_original_type parameters.  Warn about using different enum types.
3961         * c-parser.c (c_parser_conditional_expression): Pass original
3962         types to build_conditional_expr.
3963         * c-tree.h (build_conditional_expr): Update declaration.
3964
3965 2009-06-19  Ian Lance Taylor  <iant@google.com>
3966
3967         * config/i386/i386.c (ix86_function_specific_save): Test that
3968         fields match values, rather than testing the values are in a
3969         certain range.
3970
3971 2009-06-19  Richard Guenther  <rguenther@suse.de>
3972
3973         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
3974         ADDR_EXPR pointers.
3975         (ptr_derefs_may_alias_p): Likewise.
3976         (ptr_deref_may_alias_ref_p_1): New function.
3977         (ptr_deref_may_alias_ref_p): Likewise.
3978         (ref_maybe_used_by_call_p_1): Handle builtins that are not
3979         covered by looking at the ESCAPED solution.
3980         (call_may_clobber_ref_p_1): Likewise.
3981         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
3982         Handle NULL_TREE offset.  Do not produce redundant constraints.
3983         (process_all_all_constraints): New helper function.
3984         (do_structure_copy): Use it.
3985         (handle_lhs_call): Likewise.
3986         (find_func_aliases): Handle some builtins with pointer arguments
3987         and/or return values explicitly.
3988
3989 2009-06-19  Ian Lance Taylor  <iant@google.com>
3990
3991         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
3992
3993 2009-06-19  Ian Lance Taylor  <iant@google.com>
3994
3995         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
3996
3997 2009-06-19  Ian Lance Taylor  <iant@google.com>
3998
3999         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
4000         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
4001         version.
4002
4003         * c-decl.c (finish_decl): If -Wc++-compat, warn about
4004         uninitialized const.
4005
4006 2009-06-19  Ian Lance Taylor  <iant@google.com>
4007
4008         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
4009         all uses.
4010
4011         * c-decl.c (in_struct, struct_types): Remove.
4012         (struct c_binding): Add in_struct field.
4013         (c_binding_ptr): Define type, along with VEC.
4014         (struct c_struct_parse_info): Define.
4015         (struct_parse_info): New static variable.
4016         (bind): Initialize in_struct field.
4017         (start_struct): Remove enclosing_in_struct and
4018         enclosing_struct_types parameters.  Add
4019         enclosing_struct_parse_info parameter.  Change all callers.  Set
4020         struct_parse_info rather than in_struct and struct_types.
4021         (grokfield): If -Wc++-compat and there is a symbol binding for the
4022         field name, set the in_struct flag and push it on the
4023         struct_parse_info->fields vector.
4024         (warn_cxx_compat_finish_struct): New static function.
4025         (finish_struct): Remove enclosing_in_struct and
4026         enclosing_struct_types parameters.  Add
4027         enclosing_struct_parse_info parameter.  Change all callers.  Don't
4028         set C_TYPE_DEFINED_IN_STRUCT here.  Call
4029         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
4030         parameter.  Only push on struct_types if warn_cxx_compat.
4031         (finish_enum): Only push on struct_types if warn_cxx_compat.
4032         (declspecs_add_type): Add loc parameter.  Change all callers.
4033         Change all error calls to error_at.  Pass loc, not input_location,
4034         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
4035         defined in a struct.  If -Wc++-compat and parsing a struct, record
4036         that a typedef name was used.
4037         * c-parser.c (c_parser_declspecs): Get location to pass to
4038         declspecs_add_type.
4039         (c_parser_struct_or_union_specifier): Update calls to start_struct
4040         and finish_struct.
4041         * c-tree.h (struct c_struct_parse_info): Declare.
4042         (finish_struct, start_struct): Update declarations.
4043         (declspecs_add_type): Update declaration.
4044
4045 2009-06-19  Ian Lance Taylor  <iant@google.com>
4046
4047         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
4048         variable with an anonymous type.
4049
4050 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
4051
4052         * see.c: Remove for real.
4053
4054 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
4055
4056         * optabs.h (enum optab_index): Add new OTI_significand.
4057         (significand_optab): Define corresponding macro.
4058         * optabs.c (init_optabs): Initialize significand_optab.
4059         * genopinit.c (optabs): Implement significand_optab using
4060         significand?f2 patterns.
4061         * builtins.c (expand_builtin_mathfn): Handle
4062         BUILT_IN_SIGNIFICAND{,F,L}.
4063         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
4064         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4065
4066         * config/i386/i386.md (significandxf2, significand<mode>2): New
4067         expanders to implement significandf, significand and significandl
4068         built-ins as inline x87 intrinsics.
4069
4070 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
4071
4072         * config/avr/avr.c (avr_override_options): Remove setting value of
4073         PARAM_INLINE_CALL_COST.
4074
4075 2009-06-18  Richard Henderson  <rth@redhat.com>
4076
4077         PR 40488
4078         * tree-pass.h (TDF_ASMNAME): New.
4079         * tree-dump.c (dump_options): Add asmname.
4080         * doc/invoke.texi: Document it.
4081
4082         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
4083         (dump_decl_name): ...here.
4084         (dump_function_name): New flags arg; mind TDF_ASMNAME.
4085         (dump_generic_node): Update dump_function_name calls.
4086         (print_call_name): New flags arg; update all dump calls.
4087         * diagnostic.h (print_call_name): Update.
4088         * gimple-pretty-print.c (dump_gimple_call): Update.
4089
4090 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4091
4092         PR target/40470
4093         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
4094
4095 2009-06-18  Diego Novillo  <dnovillo@google.com>
4096
4097         * doc/plugins.texi: Document plugin_is_GPL_compatible.
4098         * plugin.c (str_license): Declare.
4099         (try_init_one_plugin): Assert that the symbol
4100         'plugin_is_GPL_compatible' exists.
4101
4102 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
4103
4104         * see.c: Remove.
4105         * Makefile.in (OBJS-common): Remove see.o.
4106         (see.o): Remove.
4107         * common.opt (fsee): Mark as preserved for backward compatibility.
4108         * opts.c (common_handle_option): Add OPT_fsee to the backward 
4109         compatibility section.
4110         * passes.c (init_optimization_passes, pass_see): Remove pass.
4111         * timevar.def (TV_SEE): Remove.
4112         * tree-pass.h (pass_see): Remove declaration.
4113         * doc/invoke.texi (-fsee): Remove documentation.
4114         
4115 2009-06-18  Martin Jambor  <mjambor@suse.cz>
4116
4117         * tree-sra.c: Include statistics.h
4118         (sra_stats): New variable.
4119         (sra_initialize): Clear sra_stats.
4120         (create_access_replacement): Increment sra_stats.replacements.
4121         (get_access_replacement): Do not return twice.
4122         (analyze_all_variable_accesses): Increment statistics counter by the
4123         number of scalarized aggregates.
4124         (generate_subtree_copies): Increment sra_stats.subtree_copies.
4125         (sra_modify_expr): Increment sra_stats.exprs.
4126         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
4127         (sra_modify_assign): Increment sra_stats.exprs,
4128         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
4129         (perform_intra_sra): Update statistics counters.
4130         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
4131
4132 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
4133
4134         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
4135         (arm_scalar_mode_supported_p): New function.
4136
4137 2009-06-18  Paul Brook  <paul@codesourcery.com>
4138             Sandra Loosemore  <sandra@codesourcery.com>
4139
4140         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
4141         (__extendhfsf2, __truncsfhf2): Define.
4142         * config/arm/fp16.c: New file.
4143         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
4144         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
4145
4146 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
4147
4148         * doc/extend.texi (Half-Precision): New section.
4149         * doc/invoke.texi (Option Summary): List -mfp16-format.
4150         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
4151         * config/arm/arm.opt (mfp16-format=): New.
4152         * config/arm/arm.c: Include intl.h.
4153         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
4154         (TARGET_INVALID_RETURN_TYPE): Redefine.
4155         (TARGET_PROMOTED_TYPE): Redefine.
4156         (TARGET_CONVERT_TO_TYPE): Redefine.
4157         (arm_fp16_format): Define.
4158         (all_fpus): Add entry for neon-fp16.
4159         (fp_model_for_fpu): Likewise.
4160         (struct fp16_format): Declare.
4161         (all_fp16_formats): Define.
4162         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
4163         functions.
4164         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
4165         and no ldrh.
4166         (arm_legitimate_index_p): Treat HFmode like HImode.
4167         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
4168         (coproc_secondary_reload_class): Special-case HFmode.
4169         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
4170         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
4171         (arm_init_fp16_builtins): New.
4172         (arm_init_builtins): Call it.
4173         (arm_invalid_parameter_type): New.
4174         (arm_invalid_return_type): New.
4175         (arm_promoted_type): New.
4176         (arm_convert_to_type).
4177         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
4178         format.
4179         (arm_emit_fp16_const): New function.
4180         (arm_mangle_type): Mangle __fp16 as "Dh".
4181         * config/arm/arm.h (TARGET_VFPD32): Make it know about
4182         FPUTYPE_NEON_FP16.
4183         (TARGET_NEON_FP16): New.
4184         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
4185         (enum fputype): Add FPUTYPE_NEON_FP16.
4186         (enum arm_fp16_format_type): Declare.
4187         (arm_fp16_format): Declare.
4188         (LARGEST_EXPONENT_IS_NORMAL): Define.
4189         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
4190         * config/arm/arm-modes.def (HFmode): Define.
4191         * config/arm/vfp.md: (*movhf_vfp): New.
4192         (extendhfsf2): New.
4193         (truncsfhf2): New.
4194         * config/arm/arm.md: (fpu): Add neon_fp16.
4195         (floatsihf2, floatdihf2): New.
4196         (fix_trunchfsi2, fix_trunchfdi2): New.
4197         (truncdfhf2): New.
4198         (extendhfdf2): New.
4199         (movhf): New.
4200         (*arm32_movhf): New.
4201         (*thumb1_movhf): New.
4202         (consttable_2): Add check for HFmode constants.
4203         (consttable_4): Handle HFmode constants.
4204
4205 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
4206
4207         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
4208
4209 2009-06-17  Olivier Hainque  <hainque@adacore.com>
4210
4211         * collect2.c (main): Use CONST_CAST2 to perform char ** to
4212         const char ** conversion in AIX specific section.
4213         
4214 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
4215
4216         * config/i386/i386.c (ix86_special_builtin_type): Remove
4217         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
4218         (bdesc_special_args): Updated.
4219         (ix86_init_mmx_sse_builtins): Likewise.
4220         (ix86_expand_special_args_builtin): Likewise.
4221
4222 2009-06-17  Richard Henderson  <rth@redhat.com>
4223
4224         * tree-pretty-print.c (maybe_dump_asm_name): New.
4225         (dump_decl_name): Use it.
4226         (PRINT_FUNCTION_NAME): Merge into...
4227         (dump_function_name): ... here.  Use maybe_dump_asm_name.
4228
4229 2009-06-17  Cary Coutant  <ccoutant@google.com>
4230
4231         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
4232         Change caller.
4233         * debug.c (struct gcc_debug_hooks): Change placeholder for
4234         source_line hook.
4235         (debug_nothing_int_charstar_int): Replaced by...
4236         (debug_nothing_int_charstar_int_bool): ...this.
4237         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
4238         source_line prototype.
4239         (debug_nothing_int_charstar_int): Replaced by...
4240         (debug_nothing_int_charstar_int_bool): ...this.
4241         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
4242         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
4243         Output is_stmt operand when necessary.
4244         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
4245         (notice_source_line): Add is_stmt parameter.
4246         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
4247         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
4248         Change callers.
4249         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
4250         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
4251
4252 2009-06-17  Ian Lance Taylor  <iant@google.com>
4253
4254         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
4255         Change all uses.
4256         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
4257         call uses.
4258
4259 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
4260
4261         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
4262         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
4263         tree_strip_sign_nop_conversions and
4264         tree_ssa_strip_useless_type_conversions rather than stripping
4265         the operations here.
4266         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
4267         Declare them.
4268         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
4269         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
4270         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
4271         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
4272         functions.
4273
4274 2009-06-17  Michael Eager  <eager@eagercon.com>
4275
4276         * config/rs6000/constraints.md (register_constraint "d"): New.
4277         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
4278         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
4279         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
4280         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
4281         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
4282         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
4283         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
4284         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
4285         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
4286         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
4287         __fctiwz): Same.
4288         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
4289         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
4290         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
4291         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
4292         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4293         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
4294         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
4295         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
4296         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
4297         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
4298         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
4299         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
4300         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
4301         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
4302
4303 2009-06-16  Ian Lance Taylor  <iant@google.com>
4304
4305         * profile.c (total_num_never_executed): Don't define.
4306         (compute_branch_probabilities): Don't count or print
4307         num_never_executed.
4308         (init_branch_prob): Don't set total_num_never_executed.
4309         (end_branch_prob): Don't print total_num_never_executed.
4310
4311 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
4312
4313         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
4314
4315 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
4316
4317         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
4318         (nabstd2_fpr): Same.
4319
4320 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
4321
4322         * expr.c (expand_assignment): Change complex type check.
4323
4324 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
4325
4326         * doc/plugins.texi (Building GCC plugins): Added new section. 
4327
4328 2009-06-17  Ian Lance Taylor  <iant@google.com>
4329
4330         * c-pch.c (get_ident): Don't set size of templ array.
4331         (pch_init): Don't set size of partial_pch array.
4332
4333         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
4334         string constant to intialize an array whose size is the length of
4335         the string.
4336
4337 2009-06-17  Richard Guenther  <rguenther@suse.de>
4338
4339         PR tree-optimization/40389
4340         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
4341         to addressable types.
4342         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
4343
4344 2009-06-17  Richard Guenther  <rguenther@suse.de>
4345
4346         PR middle-end/40460
4347         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
4348         if there is no evolution of left in the loop bail out.
4349         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
4350         chrec_fold_multiply.
4351
4352 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
4353             Janis Johnson  <janis187@us.ibm.com>
4354
4355         PR target/39254
4356         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
4357         for the symbol ref of a constant that is the source of a move
4358         - nor for any other not-obvious-label-ref constants.
4359
4360 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
4361
4362         * plugin.c (position_pass): Skip newly inserted pass during list
4363         traversal to avoid repeated insertion.
4364
4365 2009-06-16  Ian Lance Taylor  <iant@google.com>
4366
4367         * vec.h (VEC_stack_alloc): Define different version if
4368         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
4369         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
4370         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
4371         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
4372
4373 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
4374
4375         * config.gcc (extra_headers): Add ia32intrin.h for x86.
4376
4377         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
4378         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
4379         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
4380         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
4381         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
4382         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
4383         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
4384         (bdesc_special_args): Add __builtin_ia32_rdtsc and
4385         __builtin_ia32_rdtscp.
4386         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
4387         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
4388         and __builtin_ia32_rorhi.
4389         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
4390         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
4391         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
4392         (ix86_expand_args_builtin): Likewise.
4393         (ix86_expand_special_args_builtin): Likewise.
4394
4395         * config/i386/i386.md (UNSPECV_RDTSCP): New.
4396         (UNSPECV_RDTSC): Likewise.
4397         (UNSPECV_RDPMC): Likewise.
4398         (*bsr): Renamed to ...
4399         (bsr): This
4400         (*bsr_rex64): Renamed to ...
4401         (bsr_rex64): This.
4402         (rdpmc): New.
4403         (*rdpmc): Likewise.
4404         (*rdpmc_rex64): Likewise.
4405         (rdtsc): Likewise.
4406         (*rdtsc): Likewise.
4407         (*rdtsc_rex64): Likewise.
4408         (rdtscp): Likewise.
4409         (*rdtscp): Likewise.
4410         (*rdtscp_rex64): Likewise.
4411
4412         * config/i386/ia32intrin.h: New.
4413
4414         * config/i386/x86intrin.h: Include <ia32intrin.h>.
4415
4416 2009-06-16  Ian Lance Taylor  <iant@google.com>
4417
4418         * ira-build.c (copy_info_to_removed_store_destinations):
4419         Initialize parent_a.
4420
4421 2009-06-16  Ian Lance Taylor  <iant@google.com>
4422
4423         * c-decl.c (grokdeclarator): Change size_varies to bool.
4424
4425 2009-06-16  Ian Lance Taylor  <iant@google.com>
4426
4427         * sel-sched.c: Make forward declarations of move_op_hooks and
4428         fur_hooks explicitly extern.
4429
4430 2009-06-16  Ian Lance Taylor  <iant@google.com>
4431
4432         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
4433         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
4434
4435 2009-06-16  Ian Lance Taylor  <iant@google.com>
4436
4437         * resource.c (mark_referenced_resources): Change
4438         include_delayed_effects parameter to bool.  Change all callers.
4439         (mark_end_of_function_resources): Likewise.
4440         * reorg.c (insn_references_resource_p): Likewise.
4441         (insn_sets_resource_p): Likewise.
4442         * resource.h (mark_referenced_resources): Update declaration.
4443         (mark_end_of_function_resources): Update declaration.
4444
4445 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
4446
4447         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
4448
4449 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
4450
4451         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
4452         GCC can bootstrap on AIX with GNU Binutils 2.20.
4453
4454 2009-06-16  Ian Lance Taylor  <iant@google.com>
4455
4456         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
4457
4458 2009-06-16  Ian Lance Taylor  <iant@google.com>
4459
4460         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
4461         inline, not extern inline.
4462         (exact_log2): Likewise.
4463         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
4464         test CLZ_HWI.
4465         (exact_log2): Likewise, but don't test CTZ_HWI.
4466
4467 2009-06-16  Ian Lance Taylor  <iant@google.com>
4468
4469         * bitmap.c (bitmap_clear): Don't declare as inline.
4470         * gimple.c (gimplify_assign): Likewise.
4471         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4472         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
4473         (sched_scan_info): Remove duplicate definition.
4474
4475 2009-06-16  Ian Lance Taylor  <iant@google.com>
4476
4477         * c-common.c (skip_evaluation): Don't define.
4478         (c_inhibit_evaluation_warnings): Define global variable.
4479         (overflow_warning): Check c_inhibit_evaluation_warnings rather
4480         than skip_evaluation.
4481         (convert_and_check, warn_for_div_by_zero): Likewise.
4482         * c-common.h (skip_evaluation): Don't declare.
4483         (c_inhibit_evaluation_warnings): Declare.
4484         * c-parser.c (c_parser_typeof_specifier): Set
4485         c_inhibit_evaluation_warnings rather than skip_evaluation.
4486         (c_parser_conditional_expression): Likewise.
4487         (c_parser_binary_expression): Likewise.
4488         (c_parser_sizeof_expression): Likewise.
4489         (c_parser_alignof_expression): Likewise.
4490         * c-typeck.c (build_indirect_ref): Check
4491         c_inhibit_evaluation_warnings rather than skip_evaluation.
4492         (build_conditional_expr, build_binary_op): Likewise.
4493
4494 2009-06-16  Richard Guenther  <rguenther@suse.de>
4495
4496         * tree-ssa-alias.c (is_escape_site): Remove.
4497         * tree-ssa-alias.h (enum escape_type): Remove.
4498         (is_escape_site): Likewise.
4499         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
4500         via casts and asms without deferring to is_escape_site.
4501
4502 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
4503
4504         PR middle-end/40446
4505         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
4506         use gen_lowpart if op0 has complex mode.
4507
4508 2009-06-16  Richard Guenther  <rguenther@suse.de>
4509
4510         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
4511         variables add them to ESCAPED.
4512         (find_func_aliases): Do not make all indirectly stored values escaped.
4513
4514 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
4515
4516         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
4517         make_decl_one_only.
4518
4519 2009-06-16  Martin Jambor  <mjambor@suse.cz>
4520
4521         PR tree-optimization/40432
4522         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
4523         check whether we need to force gimple register operand.
4524
4525 2009-06-16  Martin Jambor  <mjambor@suse.cz>
4526
4527         PR tree-optimization/40413
4528         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
4529         build_ref_for_offset.
4530         (propagate_subacesses_accross_link): Fix a typo in a comment.
4531
4532 2009-06-16  Ira Rosen  <irar@il.ibm.com>
4533
4534         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
4535         with additional parameter.
4536         * tree-vectorizer.h (enum vect_def_type): Add new value
4537         vect_nested_cycle.
4538         (enum vect_relevant): Add comments.
4539         (vect_is_simple_reduction): Add new argument.
4540         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
4541         Detect nested cycles.
4542         (vect_is_simple_reduction): Update documentation, add an argument to
4543         distinguish inner-loop reduction from nested cycle, detect nested
4544         cycles, fix printings and indentation, don't swap operands in case
4545         of nested cycle.
4546         (get_initial_def_for_reduction): Handle subtraction.
4547         (vect_create_epilog_for_reduction): Add new argument to specify
4548         reduction variable.
4549         (vect_finalize_reduction): Handle subtraction, fix comments.
4550         (vectorizable_reduction): Handle nested cycles. In case of nested
4551         cycle keep track of the reduction variable position. Call 
4552         vect_is_simple_reduction with additional parameter. Use original
4553         statement code in reduction epilogue for nested cycle. Call
4554         vect_create_epilog_for_reduction with additional parameter.
4555         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
4556         inner-loop vectorization.
4557         (vect_recog_widen_sum_pattern): Likewise.
4558         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
4559         and reductions.
4560         (vect_mark_stmts_to_be_vectorized): Likewise.
4561         (vect_get_vec_def_for_operand): Handle nested cycles.
4562
4563 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4564
4565         * doc/invoke.texi (Debugging Options): Fix option index entries
4566         for -fdump-statistics, -frandom-seed add entries for
4567         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
4568         (FRV Options): Fix entries for -mTLS, -mtls.
4569         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
4570         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
4571         (M68hc1x Options): Fix @itemx for -mnominmax.
4572         (MCore Options): Fix entry for -mno-lsim.
4573         (MMIX Options): Fix entry for -mabi=mmixware.
4574         (PDP-11 Options): Fix entry for -mbcopy-builtin.
4575
4576 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
4577
4578         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
4579         Mention the plugin mode of gengtype.
4580         * doc/gty.texi (Source Files Containing Type Information): Likewise.
4581         * gengtype.c: Updated copyright.
4582         (plugin_files, nb_plugin_files) Added new static variables.
4583         (measure_input_list) Care about plugin_files.
4584         (write_rtx_next): Added early return in plugin mode.
4585         (create_file): Updated copyright year in generated file. Added
4586         asserts.
4587         (oprintf): Added early return if NULL outf.
4588         (get_output_file_with_visibility): Care of plugin_files.
4589         (get_output_file_name): May return null.
4590         (write_local): Added early return.
4591         (put_mangled_filename): Ditto.
4592         (finish_root_table): Added check for base_files.
4593         (write_roots): Care about null when plugins.
4594         (main): Added plugin mode.
4595
4596 2009-06-15  Ian Lance Taylor  <iant@google.com>
4597
4598         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
4599         * gcov.c (read_count_file): Add braces around variables declared
4600         before label.
4601
4602         * c.opt (Wjump-misses-init): New warning.
4603         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
4604         -Wall and -Wc++-compat if not already set.
4605         (c_common_post_options): Clear warn_jump_misses_init if it was not
4606         set.
4607         * c-decl.c (struct c_binding): Change type field to a union with
4608         new label field.  Make it the first field in the struct.  Update
4609         references to type to use u.type instead.
4610         (struct c_spot_bindings): Define.
4611         (struct c_goto_bindings): Define.
4612         (c_goto_bindings_p): Define, along with VECs.
4613         (struct c_label_vars): Define.
4614         (struct c_scope): Add has_label_bindings field.
4615         (bind_label, set_spot_bindings): New static functions.
4616         (decl_jump_unsafe, update_spot_bindings): New static functions.
4617         (update_label_decls): New static function.
4618         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
4619         Update binding u.label field to shadowed field.
4620         (c_binding_start_stmt_expr): New function.
4621         (c_binding_end_stmt_expr): New function.
4622         (pushdecl): Don't call c_begin_vm_scope.
4623         (make_label): Add defining and p_label_vars parameters.  Change
4624         all callers.
4625         (lookup_label): Correct test for whether a label has not yet been
4626         defined.  Call bind_label rather than bind.
4627         (warn_about_goto): New static function.
4628         (lookup_label_for_goto): New function.
4629         (declare_label): Call bind_label rather than bind.
4630         (check_earlier_gotos): New static function.
4631         (define_label): Don't give errors about jumping into statement
4632         expressions or scopes of variably modified types.  Call
4633         set_spot_bindings and check_earlier_gotos.  Call bind_label
4634         instead of bind.  Don't set label_context_stack_se or
4635         label_context_stack_vm.
4636         (c_get_switch_bindings): New function.
4637         (c_release_switch_bindings): New function.
4638         (c_check_switch_jump_warnings): New function.
4639         (start_function): Don't set label_context_stack_se or
4640         label_context_stack_vm.
4641         (finish_function): Likewise.
4642         * c-typeck.c (label_context_stack_se): Don't define.
4643         (label_context_stack_vm): Don't define.
4644         (c_finish_goto_label): Call lookup_label_for_goto rather than
4645         lookup_label.  Don't give errors about jumping into a statement
4646         expression or the scope of a variably modified type.  Don't set
4647         label_context_stack_se or label_context_stack_vm.
4648         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
4649         fields.  Add bindings field.
4650         (c_start_case): Don't set deleted fields.  Set bindings field.
4651         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
4652         or blocked_vm.  Call c_check_switch_jump_warnings.
4653         (c_finish_case): Don't test blocked_stmt_expr field.  Call
4654         c_release_switch_bindings.
4655         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
4656         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
4657         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
4658         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
4659         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
4660         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
4661         (c_begin_vm_scope, c_end_vm_scope): Don't define.
4662         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
4663         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
4664         (C_DECL_UNJUMPABLE_VM): Don't define.
4665         (C_DECL_UNDEFINABLE_VM): Don't define.
4666         (struct c_label_list): Don't define.
4667         (struct c_label_context_se): Don't define.
4668         (struct c_label_context_vm): Don't define.
4669         (struct c_spot_bindings): Declare.
4670         (c_bindings_start_stmt_expr): Declare.
4671         (c_bindings_end_stmt_expr): Declare.
4672         (lookup_label_for_goto): Declare.
4673         (c_get_switch_bindings, c_release_switch_bindings): Declare.
4674         (c_check_switch_jump_warnings): Declare.
4675         (label_context_stack_se, label_context_stack_vm): Don't declare.
4676         (c_finish_goto_label): Update declaration.
4677         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
4678         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
4679         (Warning Options): Document -Wjump-misses-init.
4680
4681 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
4682
4683         * tree-object-size.c (addr_object_size): Fix a pasto in the last
4684         change.
4685
4686 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
4687
4688         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
4689
4690 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
4691
4692         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
4693
4694 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
4695
4696         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
4697
4698 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
4699
4700         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
4701         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
4702         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
4703         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
4704         * dwarf2asm.c (dw2_force_const_mem): Update call to
4705         make_decl_one_only.
4706         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
4707         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
4708         * langhooks.c (lhd_comdat_group): Remove.
4709         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
4710         * tree.h (DECL_COMDAT_GROUP): New.
4711         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
4712         (tree_decl_with_vis): Add comdat_group. Remove one_only.
4713         (make_decl_one_only): Change signature.
4714         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
4715         make_decl_one_only.
4716         (make_decl_one_only): Change signature.
4717         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
4718
4719 2009-06-15  Richard Guenther  <rguenther@suse.de>
4720
4721         PR middle-end/40439
4722         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
4723
4724 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4725
4726         * tree-ssa-math-opts.c: Remove extra divide.
4727
4728 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4729
4730         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
4731
4732 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4733
4734         * passes.c: Add bswap pass.
4735         * tree-pass.h: Add pass_optimize_bswap declaration.
4736         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
4737         Include rtl.h, expr.h and optabs.h for optab_handler check.
4738         (struct symbolic_number, pass_optimize_bswap): New definition.
4739         (do_shift_rotate, verify_symbolic_number_p): New functions.
4740         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
4741         (gate_optimize_bswap): New function.
4742         * tree.c (widest_int_cst_value): New function.
4743         * tree.h (widest_int_cst_value): Prototype added.
4744
4745 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
4746
4747         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
4748         REG_EQUAL/REG_EQUIV notes.
4749
4750 2009-06-14  Richard Guenther  <rguenther@suse.de>
4751
4752         PR middle-end/40389
4753         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
4754         has its address taken if NRV was applied and it is addressable.
4755         * tree-ssa-structalias.c (get_constraint_for_address_of): New
4756         function split out from ...
4757         (get_constraint_for_1): ... here.
4758         (handle_rhs_call): Use it to mark the return slot escaped if
4759         it is addressable and NRV was applied.
4760
4761 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
4762
4763         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
4764         Change first argument type to location_t.
4765         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
4766         Do not set input_location.
4767         Use loc instead of input_location throughout.
4768
4769 2009-06-13  Richard Guenther  <rguenther@suse.de>
4770
4771         PR tree-optimization/40421
4772         * tree-predcom.c (should_unroll_loop_p): Remove.
4773         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
4774
4775 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
4776
4777         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4778         Add location argument.
4779
4780 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
4781
4782         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
4783         build_decl.
4784         * config/s390/s390.c (s390_build_builtin_va_list): Same.
4785         (s390_gimplify_va_arg): Pass location to create_artificial_label.
4786         * config/spu/spu-protos.h: Add location to
4787         spu_resolve_overloaded_builtin.
4788         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
4789         spu_build_builtin_va_list.
4790         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
4791         argument.  Pass location to build_function_call_vec.
4792         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
4793         build_decl.
4794         (emit_fpu_switch): Same.
4795         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
4796         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
4797         to build_decl and create_artificial_label.
4798         (xtensa_gimplify_va_arg_expr): Same.
4799         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
4800         (xstormy16_gimplify_va_arg_expr): Same.
4801         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
4802         * config/arm/arm.c (arm_build_builtin_va_list): Same.
4803         * config/mips/mips.c (mips_build_builtin_va_list): Same.
4804         (mips16_build_function_stub): Same.
4805         (mips16_build_call_stub): Same.
4806
4807 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
4808
4809         PR target/40327
4810         * arm/constraints.md (Pa, Pb): New constraints.
4811         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
4812         split pattern to deal with them.
4813
4814 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
4815
4816         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
4817         fix index entry for -Xpreprocessor.
4818
4819 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
4820
4821         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4822         Add location argument to build_decl call.
4823         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
4824         (rs6000_init_builtins): Same.
4825         (spe_init_builtins): Same.
4826         (rs6000_gimplify_va_arg): Add location argument to
4827         create_artificial_label call.
4828
4829 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
4830
4831         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
4832         * combine-stack-adj.c (pass_stack_adjustments): Use it.
4833         * Makefile.in: Fix GGC dependency for gcse.o.
4834
4835 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
4836
4837         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
4838         * gimple-pretty-print.c (dump_gimple_stmt): Same.
4839         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
4840         created.
4841         * c-parser.c (c_parser_binary_expression): Use current column while
4842         building binary operations.
4843         * common.opt (fshow-column): Enable by default.
4844         * tree-vrp.c (check_array_ref): Use warning_at.
4845         (check_array_bounds): Use location from call back if expr has no
4846         location.
4847         * tree.h: Add location argument to maybe_fold_*.
4848         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
4849         (maybe_fold_offset_to_array_ref): Add location argument and use it.
4850         (maybe_fold_offset_to_component_ref): Same.
4851         (maybe_fold_offset_to_reference): Same.
4852         (maybe_fold_offset_to_address): Same.
4853         (maybe_fold_stmt_indirect): Same.
4854         (maybe_fold_stmt_addition): Same.
4855         (fold_stmt_r): Pass location to maybe_fold_*.
4856         (fold_gimple_assign): Same.
4857         * c-tree.h: Add location argument to finish_decl,
4858         default_function_array_conversion, store_init_value.
4859         * c-decl.c (define_label): Use error_at.
4860         (c_make_fname_decl): Pass location to finish_decl.
4861         (finish_decl): New location argument.
4862         (build_compound_literal): Pass location to store_init_value.
4863         (grokdeclarator): Pass location to finish_decl.
4864         (grokfield): Same.
4865         * c-typeck.c (array_to_pointer_conversion): New location argument.
4866         (function_to_pointer_conversion): Same.
4867         (default_function_array_conversion): Same.
4868         (parser_build_unary_op): Pass location to overflow_warning.
4869         (parser_build_binary_op): Same.  Use warning_at.
4870         (build_unary_op): Pass location to array_to_pointer_conversion.
4871         (build_c_cast): Pass location to digest_init.
4872         (build_modify_expr): New location argument.
4873         (convert_for_assignment): Same.
4874         (store_init_value): Same.
4875         (digest_init): Same.
4876         (output_init_element): Pass location to digest_init and
4877         array_to_pointer_conversion.
4878         (c_finish_return): Pass location to convert_for_assignment.
4879         * gimplify.c (gimplify_conversion): Pass location to
4880         maybe_fold_offset_to_address.
4881         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
4882         to maybe_fold_stmt_addition.
4883         * c-omp.c (c_finish_omp_atomic): Pass new location to
4884         build_modify_expr.
4885         (c_finish_omp_for): Same.
4886         * c-common.c (overflow_warning): New argument.
4887         * c-common.h: New argument to build_modify_expr, overflow_warning.
4888         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
4889         finish_decl.
4890         (c_parser_initializer): Pass location to
4891         default_function_array_conversion.
4892         (c_parser_initelt): Same.
4893         (c_parser_initval): Same.
4894         (c_parser_asm_operands): Same.
4895         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
4896         (c_parser_conditional_expression): Same.
4897         (c_parser_binary_expression): Add location info to stack.  Use it.
4898         (c_parser_unary_expression): Pass location to
4899         default_function_array_conversion, parser_build_unary_op,
4900         build_indirect_ref, c_parser_postfix_expression_after_primary.
4901         (c_parser_postfix_expression_after_primary): New location argument.
4902         Use it.
4903         (c_parser_expression_conv): Pass location to
4904         default_function_array_conversion.
4905         (c_parser_expr_list): Same.
4906         (c_parser_omp_atomic): Same.
4907         (c_parser_omp_for_loop): Same.
4908         * c-tree.h: (struct c_declarator): Add comment to id_loc.
4909         (build_array_declarator): New argument.
4910         * c-decl.c (build_array_declarator): Add location argument.
4911         (grokdeclarator): Set id_loc for cdk_array.
4912         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
4913         build_array_declarator.
4914         * tree.c (build_omp_clause): Add location argument.
4915         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
4916         (OMP_CLAUSE_LOCATION): New macro.
4917         (struct tree_omp_clause): Add location field.
4918         (build_omp_clause): Add argument.
4919         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
4920         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
4921         build_omp_clause.
4922         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
4923         (cp_parser_omp_clause_collapse): Same.
4924         (cp_parser_omp_clause_default): Same.
4925         (cp_parser_omp_clause_if): Same.
4926         (cp_parser_omp_clause_nowait): Same.
4927         (cp_parser_omp_clause_num_threads): Same.
4928         (cp_parser_omp_clause_ordered): Same.
4929         (cp_parser_omp_clause_schedule): Same.
4930         (cp_parser_omp_clause_untied): Same.
4931         (cp_parser_omp_for_loop): Same.
4932         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
4933         * c-tree.h (c_start_case): Add location argument.
4934         (c_process_expr_stmt): Same.
4935         (c_finish_goto_*): Same.
4936         * tree-parloops.c (initialize_reductions): Pass location to
4937         build_omp_clause.
4938         (create_parallel_loop): Same.
4939         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
4940         (gfc_trans_omp_reduction_list): Same.
4941         (gfc_trans_omp_clauses): Same.
4942         (gfc_trans_omp_do): Same.
4943         * c-typeck.c (c_finish_goto_label): Same.
4944         (c_finish_goto_ptr): New location argument.
4945         (c_start_case): Same.
4946         (emit_side_effect_warnings): Same.
4947         (c_process_expr_stmt): Same.
4948         (c_finish_stmt_expr): Same.
4949         (c_finish_omp_clauses): Use error_at instead of error.
4950         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
4951         build_omp_clause.
4952         * c-omp.c (c_split_parallel_clauses): New location argument.
4953         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
4954         to build_omp_clause.
4955         (convert_local_reference_stmt): Same.
4956         (convert_gimple_call): Same.
4957         * c-common.h (c_split_parallel_clauses): New argument.
4958         * c-parser.c (c_parser_statement_after_labels): Pass location to
4959         c_finish_goto_label.
4960         (c_parser_switch_statement): Pass location to c_start_case.
4961         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
4962         and c_process_expr_stmt.
4963         (c_parser_omp_variable_list): Add location argument.
4964         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
4965         (c_parser_omp_clause_default): Same.
4966         (c_parser_omp_clause_if): Same.
4967         (c_parser_omp_clause_num_threads): Same.
4968         (-c_parser_omp_clause_ordered): Same.
4969         (c_parser_omp_clause_reduction): Pass location to
4970         c_parser_omp_variable_list.
4971         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
4972         (c_parser_omp_clause_untied): Same.
4973         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
4974         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
4975
4976         * c-tree.h (check_for_loop_decls, undeclared_variable,
4977         build_component_ref, build_array_ref, build_external_ref,
4978         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
4979         build_conditional_expr, build_compound_expr, c_cast_expr,
4980         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
4981         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
4982         argument.
4983         * c-semantics.c (build_stmt): Same.
4984         (build_case_label): Same.
4985         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
4986         (undeclared_variable): New argument.
4987         (make_label): Same.
4988         (lookup_label): Pass location on down.
4989         (define_label): Same.
4990         (finish_decl): Same.
4991         (build_compound_literal): Same.
4992         (finish_struct): Same.
4993         (finish_function): Do not set location here.
4994         (check_for_loop_decls): New argument.
4995         * tree.c (save_expr): Set location.
4996         (build_empty_stmt): New argument.
4997         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
4998         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
4999         * builtins.c (gimplify_va_arg_expr): Use locations.
5000         (expand_builtin_sync_operation): Same.
5001         * c-typeck.c (build_component_ref): New argument.
5002         (build_array_ref): Same.
5003         (build_external_ref): Same.
5004         (c_expr_sizeof_expr): Same.
5005         (c_expr_sizeof_type): Same.
5006         (parser_build_unary_op): Same.
5007         (build_conditional_expr): Same.
5008         (build_compound_expr): Pass location on down.
5009         (build_compound_expr): New argument.
5010         (build_c_cast): Same.
5011         (c_cast_expr): Same.
5012         (build_asm_expr): Same.
5013         (c_finish_return): Same.
5014         (c_process_expr_stmt): Pass location on down.
5015         (c_finish_stmt_expr): New argument.
5016         (push_clenaup): Same.
5017         (c_finish_omp_parallel): Same.
5018         (c_finish_omp_task): Same.
5019         * gimplify.c (gimplify_call_expr): Pass location on down.
5020         * c-omp.c (c_finish_omp_master): New argument.
5021         (c_finish_omp_critical): Same.
5022         (c_finish_omp_ordered): Same.
5023         (c_finish_omp_barrier): Same.
5024         (-c_finish_omp_taskwait): Same.
5025         (c_finish_omp_atomic): Same.
5026         (c_finish_omp_flush): Same.
5027         * tree-inline.c (copy_tree_body_r): Pass location on down.
5028         (inline_forbidden_p): Remove use of input_location.
5029         * c-gimplify.c (c_build_bind_expr): New argument.
5030         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
5031         (c_sizeof_or_alignof_type): New argument.
5032         (c_alignof_expr): Same.
5033         (build_va_arg): Same.
5034         (c_add_case_label): Same.
5035         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
5036         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
5037         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
5038         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
5039         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
5040         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
5041         New argument.
5042         * stub-objc.c (objc_build_selector_expr): Same.
5043         (objc_build_throw_stmt): Same.
5044         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
5045         (c_parser_initelt): Same.
5046         (c_parser_compound_statement): Same.
5047         (c_parser_compound_statement_nostart): Same.
5048         (c_parser_label): Same.
5049         (c_parser_statement_after_labels): Same.
5050         (c_parser_if_body): Same.
5051         (c_parser_else_body): Same.
5052         (c_parser_if_statement): Same.
5053         (c_parser_switch_statement): Same.
5054         (c_parser_while_statement): Same.
5055         (c_parser_do_statement): Same.
5056         (c_parser_for_statement): Same.
5057         (c_parser_asm_statement): Same.
5058         (c_parser_conditional_expression): Same.
5059         (c_parser_binary_expression): Same.
5060         (c_parser_cast_expression): Same.
5061         (c_parser_unary_expression): Same.
5062         (c_parser_sizeof_expression): Same.
5063         (c_parser_alignof_expression): Same.
5064         (c_parser_postfix_expression): Same.
5065         (c_parser_expression): Same.
5066         (c_parser_objc_receiver): Same.
5067         (c_parser_omp_variable_list): Same.
5068         (c_parser_omp_structured_block): Same.
5069         (c_parser_omp_atomic): New argument.
5070         (c_parser_omp_barrier): Same.
5071         (c_parser_omp_critical): Same.
5072         (c_parser_omp_flush): Pass location on down.
5073         (c_parser_omp_for_loop): New argument.
5074         (c_parser_omp_for): Same.
5075         (c_parser_omp_master): Same.
5076         (c_parser_omp_ordered): Same.
5077         (c_parser_omp_sections_scope): Same.
5078         (c_parser_omp_sections): Same.
5079         (c_parser_omp_parallel): Same.
5080         (c_parser_omp_single): Same.
5081         (c_parser_omp_task): Same.
5082         (c_parser_omp_taskwait): Pass location on down.
5083         (c_parser_omp_construct): Same.
5084         (c_parser_omp_threadprivate): Same.
5085         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
5086         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
5087         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
5088         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
5089         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
5090         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
5091         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
5092         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
5093         config/i386/i386.c, stmt.c:
5094         Add location argument to the following function definitions and/or
5095         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
5096         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
5097         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
5098         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
5099         do_case, c_finish_bc_stmt, build_compound_literal,
5100         build_function_call.
5101         * c-decl.c (build_compound_literal): Add location argument.
5102         Make all diagnostic calls use location.
5103         (start_struct): Same.
5104         (finish_struct): Same.
5105         (start_enum): Same.
5106         (build_enumerator): Same.
5107         (start_function): Same.
5108         (grokdeclarator): Make all diagnostic calls use location.
5109         (store_parm_decls_oldstyle): Same.
5110         * c-typeck.c (build_function_call): Add location argument.
5111         Make all diagnostic calls use location.
5112         (do_case): Same.
5113         (c_finish_bc_stmt): Same.
5114         * tree-nested.c (get_trampoline_type): Add argument.
5115         Pass location to build_decl.
5116         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
5117         * rtl.h (RTL_LOCATION): New.
5118         * c-common.c (c_add_case_label): Add location argument.
5119         Make all diagnostic calls use location.
5120         * c-common.h: Add location argument to make_fname_decl, do_case,
5121         c_add_case_label, build_function_call, resolve_overloaded_builtin.
5122         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
5123         Set it appropriately for every case.  Pass enum_loc to start_enum
5124         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
5125         parser_xref_tag.
5126         (c_parser_struct_or_union_specifier): Save location.  Use it for
5127         start_struct, finish_struct, and parser_xref_tag.
5128
5129 2009-06-12  Ian Lance Taylor  <iant@google.com>
5130
5131         * fold-const.c (fold_unary): Rename local variable and to and_expr.
5132
5133         * c-opts.c (c_common_handle_option): For -Wc++-compat set
5134         cpp_opts->warn_cxx_operator_names.
5135
5136 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5137
5138         PR tree-opt/38865
5139         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
5140         is returns NULL and OP is a VCE, look through the VCE.
5141
5142 2009-06-12  Ian Lance Taylor  <iant@google.com>
5143
5144         PR bootstrap/40430
5145         * collect2.c (main): Use CONST_CAST2 in code inside #if
5146         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
5147
5148 2009-06-12  Joey Ye  <joey.ye@intel.com>
5149
5150         PR middle-end/39146
5151         * cfgexpand.c (get_decl_align_unit): Update
5152         max_used_stack_slot_alignment with align instead of
5153         stack_alignment_needed.
5154
5155         * function.c (assign_stack_local_1): Update
5156         max_used_stack_slot_alignment with alignment_in_bits instead
5157         of stack_alignment_needed.
5158         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
5159         here.
5160
5161 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
5162
5163         * dwarf2out.c (last_var_location_insn): New variable.
5164         (dwarf2out_end_epilogue): Clear last_var_location_insn.
5165         (dwarf2out_var_location): Don't record anything after last real
5166         insn.  Only change labels if there were any real instructions
5167         in between last note and this one, or if changed sections.
5168
5169 2009-06-11  Richard Henderson  <rth@redhat.com>
5170
5171         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
5172         note when storing the frame pointer in a register.
5173         (FRP): Don't redefine to nothing for epilogue.
5174         (alpha_expand_epilogue): Mark register and sp restores.
5175         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
5176
5177         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
5178         when gen_lowpart is needed.
5179
5180 2009-06-11  Richard Henderson  <rth@redhat.com>
5181
5182         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
5183
5184         * dwarf2out.c (need_data_align_sf_opcode): New.
5185         (div_data_align): Move earlier.
5186         (def_cfa_1, reg_save): Use it.
5187
5188 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
5189
5190         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
5191         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
5192         (ix86_handle_option): Handle OPT_mcrc32.
5193         (ix86_target_string): Add -mcrc32.
5194         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
5195
5196         * config/i386/i386.h (TARGET_CRC32): New.
5197
5198         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
5199         (sse4_2_crc32di): Likewise.
5200
5201         * config/i386/i386.opt (mcrc32): New.
5202
5203         * doc/invoke.texi: Document -mcrc32.
5204
5205 2009-06-11  Richard Henderson  <rth@redhat.com>
5206
5207         * common.opt (gdwarf-): Accept a version number.
5208         * doc/invoke.texi (gdwarf-): Update docs.
5209         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
5210         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
5211         version level, and record it.
5212
5213         * dwarf2.h (DW_CIE_VERSION): Remove.
5214         * dwarf2out.c (DWARF_VERSION): Remove.
5215         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
5216         (output_call_frame_info): Use CIE version 3 for dwarf3,
5217         or if the return register column is out of range for version 1.
5218         (dwarf_stack_op_name): Add all dwarf3 values.
5219         (DEBUG_PUBTYPES_SECTION): New.
5220         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
5221         encoding change for dwarf3.
5222         (output_die) [dw_val_class_die_ref]: Likewise.
5223         (output_compilation_unit_header): Emit correct version for dwarf3.
5224         (output_line_info): Likewise.
5225         (output_pubnames): Update for DWARF_VERSION removal.
5226         (output_aranges): Likewise.
5227         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
5228         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
5229         (dwarf2out_finish): Likewise.
5230
5231 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
5232
5233         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
5234         in r148403.
5235
5236 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
5237
5238         PR c/39252
5239         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
5240         * builtins.c (expand_builtin_unreachable): New function.
5241         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
5242         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
5243         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
5244         successors.
5245         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
5246         searching for missing barriers.
5247
5248 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5249
5250         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
5251         when -fprofile-generate* was passed.
5252         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
5253
5254 2009-06-11  Anthony Green  <green@moxielogic.com>
5255
5256         * config/moxie/moxie.md: Define length attribute for all instructions.
5257         (rCC): Define.
5258         (*b<cond:code>): Support limited branch ranges for new PC-relative
5259         branch instructions.
5260         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
5261
5262 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
5263
5264         * config/i386/i386.c (min_insn_size): Use get_attr_length
5265         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
5266         For __asm return 0.
5267
5268         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
5269         instead of emit_insn_before.
5270
5271 2009-06-10  Ian Lance Taylor  <iant@google.com>
5272
5273         PR bootstrap/40408
5274         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
5275         GIMPLE_SWITCH.
5276
5277 2009-06-10  Revital Eres  <eres@il.ibm.com>
5278
5279         * passes.c (init_optimization_passes): Reschedule
5280         predictive-commoning pass before complete unroll pass.
5281
5282 2009-06-10  Martin Jambor  <mjambor@suse.cz>
5283
5284         * cgraph.c (cgraph_node_can_be_local_p): New function.
5285         (cgraph_make_node_local): New function.
5286         * cgraph.h (cgraph_node_can_be_local_p): Declare.
5287         (cgraph_make_node_local): Declare.
5288
5289 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
5290
5291         * tree.h (tree_base): Add packed_flag and user_align fields.
5292         Decrease size of spare field.
5293         (TYPE_USER_ALIGN): Use user_align from tree_base.
5294         (DECL_USER_ALIGN): Likewise.
5295         (TYPE_PACKED): Use packed_flag from tree_base.
5296         (DECL_PACKED): Likewise.
5297         (tree_type): Delete packed_flag and user_align fields.  Widen
5298         precision field.  Widen mode field and shuffle fields to align
5299         mode on an 8-bit boundary.
5300         (tree_decl_common): Delete decl_flag_1 and user_align fields.
5301         Renumber decl_flag_* fields.  Fix comments.  Widen
5302         decl_common_unused field.
5303         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
5304         (DECL_EXTERNAL): Likewise.
5305         (DECL_BIT_FIELD): Likewise.
5306         (DECL_NONADDRESSABLE_P): Likewise.
5307         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
5308         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
5309
5310 2009-06-10  Ian Lance Taylor  <iant@google.com>
5311
5312         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
5313         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
5314         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
5315         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
5316         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
5317         DEF_VEC_ALLOC_FUNC_P.
5318         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
5319         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
5320         DEF_VEC_ALLOC_FUNC_O.
5321         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
5322         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
5323         DEF_VEC_ALLOC_FUNC_I.
5324         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
5325         (vec_stack_p_reserve_exact_1): Declare.
5326         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
5327         (vec_stack_free): Declare.
5328         (VEC_stack_alloc): Define.
5329         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
5330         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
5331         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
5332         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
5333         for void_p.
5334         (stack_vecs): New static variable.
5335         (vec_stack_p_reserve_exact_1): New function.
5336         (vec_stack_o_reserve_1): New static function.
5337         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
5338         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
5339         (vec_stack_free): New function.
5340         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
5341         (VEC_df_ref_stack_alloc): Define.
5342         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
5343         DEF_VEC_ALLOC_P_STACK.
5344         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
5345         (struct df_collection_rec): Change _vec fields to VEC.  Remove
5346         _use fields.
5347         (df_free_collection_rec): Adjust for new fields.
5348         (df_insn_rescan): Use new df_collection_rec fields.
5349         (df_notes_rescan, df_canonize_collection_rec): Likewise.
5350         (df_ref_create_structure, df_ref_record): Likewise.
5351         (df_get_conditional_uses, df_get_call_refs): Likewise.
5352         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
5353         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
5354         (df_record_exit_block_uses, df_bb_verify): Likewise.
5355         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
5356         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
5357         Remove count parameter.  Change return type to void.  Change all
5358         callers.
5359         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
5360         Remove count parameter.  Change return type to void.  Change all
5361         callers.
5362         (df_install_refs): Change old_vec parameter to VEC.  Remove count
5363         parameter.  Change all callers.
5364         (df_install_mws): Change old_vec parameter to VEC.  Remove count
5365         parameter.  Change all callers.
5366         (df_refs_verify): Change new_rec parameter to VEC.  Change call
5367         callers.
5368         (df_mws_verify): Likewise.
5369
5370 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
5371
5372         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
5373
5374 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
5375
5376         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
5377
5378 2009-06-10  Anthony Green  <green@moxielogic.com>
5379
5380         * config/moxie/crti.asm: New file.
5381         * config/moxie/crtn.asm: New file.
5382         * config/moxie/moxie.c: New file.
5383         * config/moxie/moxie.h: New file.
5384         * config/moxie/sfp-machine.h: New file.
5385         * config/moxie/moxie-protos.h: New file.
5386         * config/moxie/t-moxie: Created.
5387         * config/moxie/t-moxie-softfp: Created.
5388         * config/moxie/moxie.md: Created.
5389         * config/moxie/constraints.md: Created.
5390         * config.gcc: Add moxie support.
5391         * doc/md.texi (Machine Constraints): Add moxie constraints.
5392         * doc/contrib.texi (Contributors): Mention moxie port.
5393         * doc/install.texi (Specific): Mention the moxie port.
5394
5395 2009-06-09  Ian Lance Taylor  <iant@google.com>
5396
5397         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
5398         compiling with C++.
5399         * optabs.c (optab_table): Only use designated initializers if
5400         HAVE_DESIGNATED_INITIALIZERS is defined.
5401         (convert_optab_table): Likewise.
5402         (init_optabs): Always call init_insn_codes if
5403         HAVE_DESIGNATED_INITIALIZERS is not defined.
5404
5405 2009-06-09  Ian Lance Taylor  <iant@google.com>
5406
5407         * targhooks.c (default_builtin_vectorized_function): Change fn
5408         parameter to unsigned int.
5409         (default_builtin_vectorized_conversion): Change code parameter to
5410         unsigned int.
5411         (default_builtin_reciprocal): Change fn parameter to unsigned int.
5412         * targhooks.h: Update declarations.
5413         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
5414         parameter to unsigned int.
5415
5416         * c-typeck.c (comptypes_check_enum_int): New static function.
5417         (comptypes_internal): Add enum_and_int_p parameter.  Change all
5418         callers.
5419         (comp_target_types): Add location parameter.  Change all callers.
5420         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
5421         Change all callers.
5422         (function_types_compatible_p, type_lists_compatible_p): Likewise.
5423         (build_conditional_expr): Add colon_loc parameter.  Change all
5424         callers.
5425         (convert_for_assignment): Add location parameter.  Change all callers.
5426         * c-parser.c (c_parser_conditional_expression): Pass location of
5427         colon to build_conditional_expr.
5428         * c-tree.h (build_conditional_expr): Update declaration.
5429
5430 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5431
5432         * graphite.c: Revert previous patch.
5433
5434 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5435
5436         PR bootstrap/40103
5437         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
5438
5439 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
5440
5441         * tree-ssa-loop-prefetch.c
5442         (loop_prefetch_arrays): Fixed a portability problem in printf format
5443         string.
5444
5445 2009-06-09  Martin Jambor  <mjambor@suse.cz>
5446
5447         PR tree-optimization/40351
5448         * tree-sra.c (propagate_subacesses_accross_link): Check that a
5449         refrence to a potential artifical subaccess can be constructed.
5450
5451 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5452
5453         * config/sh/sh-protos.h (sh_optimization_options): Declare.
5454         (sh_override_options): Likewise.
5455         * config/sh/sh.c: Include params.h.
5456         (sh_optimization_options): New.
5457         (sh_override_options): Likewise.
5458         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
5459         (OVERRIDE_OPTIONS): Use sh_override_options.
5460
5461 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
5462
5463         * dwarf2out.c (emit_cfa_remember): New variable.
5464         (add_fde_cfi): If emit_cfa_remember, recurse to add
5465         DW_CFA_remember_state first.
5466         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
5467         instead just set emit_cfa_remember.
5468
5469 2009-06-08  Jan Hubicka  <jh@suse.cz>
5470
5471         PR debug/40126
5472         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
5473
5474 2009-06-08  Jan Hubicka  <jh@suse.cz>
5475
5476         PR middle-end/39834
5477         * cgraphunit.c (save_inline_function_body): Do not copy transform
5478         hooks for saved inline bodies.
5479         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
5480         for given function.
5481
5482 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
5483
5484         * jump.c (returnjump_p): Handle delayed branches.  Add missing
5485         function comment.
5486
5487 2009-06-08  Jan Hubicka  <jh@suse.cz>
5488
5489         PR middle-end/40102
5490         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
5491         original node might've been modified.
5492         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
5493
5494 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
5495
5496         * tree-object-size.c (addr_object_size): Add OSI argument.
5497         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
5498         (compute_builtin_object_size, expr_object_size): Adjust callers.
5499         (plus_stmt_object_size): Call addr_object_size instead of
5500         compute_builtin_object_size.
5501
5502 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
5503             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5504         
5505         * tree-ssa-loop-prefetch.c 
5506         (gather_memory_references): Introduced a counter for the number of 
5507         memory references.
5508         (anything_to_prefetch_p): Introduced a counter for the number of 
5509         prefetches.
5510         (is_loop_prefetching_profitable): New function with a cost model 
5511         for prefetching.
5512         (loop_prefetch_arrays): Use the new cost model to determine if 
5513         prefetching is profitable.
5514         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
5515         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
5516         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
5517         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
5518         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
5519         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
5520         
5521 2009-06-08  Michael Matz  <matz@suse.de>
5522
5523         PR debug/40012
5524         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
5525         partitions use the same.
5526         (expand_one_var): Deal with DECL_RTL sometimes begin set also
5527         for basevars of SSA_NAMEs.
5528         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
5529         to not expand them twice.
5530         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
5531         multiple places.
5532
5533 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
5534
5535         * common.opt (fcompare-debug=, fcompare-debug-second): New.
5536         (fdump-final-insns=, gtoggle): New.
5537         * doc/invoke.texi: Document them.
5538         * final.c (rest_of_clean_state): Dump final insn stream.
5539         * gcc.c (invoke_as): Hook in -fcompare-debug.
5540         (static_spec_functions): Add compare-debug-dump-opt,
5541         compare-debug-self-opt and compare-debug-auxbase-opt.
5542         (compare_debug, compare_debug_second, compare_debug_opt): New.
5543         (switches_debug_check, n_switches_debug_check): New.
5544         (debug_auxbase_opt, debug_check_temp_file): New.
5545         (process_command): Handle -fno-compare-debug, -fcompare-debug and
5546         -fcompare-debug=*.
5547         (do_self_spec): Handle arguments after switches.
5548         (do_spec_1): Add .gk extension to temp file basenames for compare.
5549         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
5550         (cc1_options): Use it instead of normal auxbase computation for
5551         the second compare-debug compilation.
5552         (compare_files): New.
5553         (main): Set up and implement compare debug mode.
5554         (compare_debug_dump_opt_spec_function): New.
5555         (compare_debug_self_opt_spec_function): New.
5556         (compare_debug_auxbase_opt_spec_function): New.
5557         * toplev.c (process_options): Handle flag_gtoggle,
5558         flag_dump_final_insns.
5559         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
5560         during -fcompare-debug-second compilation.
5561
5562 2009-06-07  Ian Lance Taylor  <iant@google.com>
5563
5564         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
5565         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
5566
5567         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
5568         with no default node.  Change warning with %H to warning_at.
5569         Don't clear warn_switch around case checking.
5570         * doc/invoke.texi (Warning Options): Clarify distinction between
5571         -Wswitch and -Wswitch-enum.
5572
5573 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5574
5575         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
5576
5577 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5578
5579         * gbl-ctors.h: Add header guard.
5580
5581 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5582
5583         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
5584         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
5585         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
5586         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
5587         prototypes for removed functions.
5588         (expressions_equal_p): Move to ...
5589         * tree-ssa-sccvn.h: ... here and ...
5590         * matrix-reorg.c: ... adjust includes.
5591
5592 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5593
5594         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
5595
5596 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5597
5598         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
5599         (finish_function): Remove erroneous whitespace.
5600
5601 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5602
5603         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
5604         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
5605
5606 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5607
5608         * errors.c (internal_error): Commentary typo fix.
5609         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
5610         * tree-ssa-pre.c: Ditto.
5611
5612 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5613
5614         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
5615         them is supposed to hold actual statements.
5616
5617 2009-06-06  Ian Lance Taylor  <iant@google.com>
5618
5619         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
5620         empty statements can now have attributes.
5621
5622 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
5623
5624         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
5625         * config/mips/mips.md: Ditto.
5626
5627 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
5628
5629         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
5630         _RELOCATABLE.
5631         (__eabi_uconvert): Likewise.
5632
5633 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
5634
5635         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
5636         CFI_* definitions with IN_GCC.
5637
5638 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
5639
5640         * xcoffout.h (xcoffout_source_line): Update prototype.
5641
5642 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5643
5644         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
5645         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
5646
5647 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
5648
5649         PR middle-end/40340
5650         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
5651         inlined_function_outer_scope_p blocks for artificial inlines
5652         even at -g0/-g1.
5653         * tree.c (tree_nonartificial_location): Rewrite using
5654         block_nonartificial_location.
5655
5656 2009-06-05  Revital Eres  <eres@il.ibm.com>
5657             Leehod Baruch  <leehod@il.ibm.com>
5658
5659         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
5660         (expand_expr_real_1): Remove comment.
5661         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5662         Vectorize misaligned access when the target supports it.
5663         (vect_supportable_dr_alignment): Check for unaligned access support.
5664         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
5665         and remove asset.
5666
5667 2009-06-05  Julian Brown  <julian@codesourcery.com>
5668
5669         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
5670         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
5671
5672 2009-06-05  Richard Guenther  <rguenther@suse.de>
5673
5674         PR bootstrap/40350
5675         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
5676         as possibly unused.
5677
5678 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
5679
5680         * config/s390/s390.c (global_not_special_regno_p): New static inline.
5681         (save_gprs): Don't tell unwinder when a global register is saved.
5682         (s390_emit_epilogue): Emit needed epilogue unwind info.
5683
5684 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
5685
5686         * dwarf2out.c (deferred_asm_name): New.
5687         (add_name_and_src_coords_attributes): Defer creation of
5688         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
5689         computed yet.
5690         (move_linkage_attr): New.
5691         (dwarf2out_finish): Revisit deferrals and emit attributes at the
5692         right place.
5693
5694 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
5695
5696         * tree-nested.c (finalize_nesting_tree_1): Declare the
5697         frame_decl in the binding tree.
5698
5699 2009-06-04  Cary Coutant  <ccoutant@google.com>
5700
5701         * basic-block.h (struct basic_block_def): Add discriminator field.
5702         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
5703         callers.
5704         * debug.c (do_nothing_debug_hooks): Add additional entry.
5705         (debug_nothing_int_charstar_int): New function.
5706         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
5707         (debug_nothing_int_charstar_int): New declaration.
5708         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
5709         discriminator value in .loc directive.
5710         * final.c (last_discriminator): New variable.
5711         (discriminator): New variable.
5712         (final_start_function): Initialize above variables, pass current
5713         discriminator to debug hook.
5714         (notice_source_line): Check for discriminator change.
5715         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
5716         * sdbout.c (sdbout_source_line): New parameter.
5717         * tree-cfg.c (struct locus_discrim_map): New structure type.
5718         (discriminator_per_locus): New hash table.
5719         (build_gimple_cfg): Allocate and free discriminator hash table.
5720         (make_edges): Call assign_discriminator.
5721         (locus_map_hash): New function.
5722         (locus_map_eq): New function.
5723         (next_discriminator_for_locus): New function.
5724         (same_line_p): New function.
5725         (assign_discriminator): New function.
5726         (make_cond_expr_edges): Call assign_discriminator.
5727         (make_gimple_switch_edges): Likewise.
5728         (first_non_label_stmt): New function.
5729         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
5730         all callers.
5731         * xcoffout.c (xcoffout_source_line): Add new parameter.
5732
5733         * configure.ac (gcc_cv_as_discriminator): New configury check for
5734         gas support for discriminator.
5735         * configure: Regenerate.
5736         * config.in: Regenerate.
5737
5738 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5739
5740         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
5741         val after checking for integers.
5742
5743 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
5744
5745         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
5746         X64_REGPARM_MAX.
5747         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
5748         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
5749         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
5750         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
5751         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
5752         X64_SSE_REGPARM_MAX.
5753         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
5754         X64_SSE_REGPARM_MAX.
5755
5756 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
5757
5758         * gcc.c (report_times_to_file): New.
5759         (execute): Implement it.
5760         (process_command): Support -time=.
5761         * doc/invoke.texi: Document it.
5762
5763 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
5764
5765         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
5766         that have value exprs.
5767
5768 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
5769
5770         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
5771         declarations for constants until...
5772         (dw2_output_indirect_constant_1): ... this point.
5773
5774 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
5775
5776         PR target/10242
5777         * arm.md (arm_addsi3): Don't try to split an add with an
5778         eliminable register until after reload has completed.
5779
5780 2009-06-03  Ian Lance Taylor  <iant@google.com>
5781
5782         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
5783         * genattrtab.c (write_length_unit_log): Likewise.
5784         * genchecksum.c (dosum): Likewise.
5785         * gengtype.c (write_rtx_next): Likewise.
5786         (finish_root_table, write_roots): Likewise.
5787         * gimple.c (gimple_ops_offset_): Likewise.
5788         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
5789         * config/arc/arc.c (arc_attribute_table): Likewise.
5790         * config/arm/arm.c (arm_attribute_table): Likewise.
5791         * config/avr/avr.c (avr_attribute_table): Likewise.
5792         * config/crx/crx.c (crx_attribute_table): Likewise.
5793         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
5794         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
5795         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
5796         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
5797         * config/sh/sh.c (sh_attribute_table): Likewise.
5798         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
5799         * config/spu/spu.c (spu_attribute_table): Likewise.
5800         * config/v850/v850.c (v850_attribute_table): Likewise.
5801
5802         * config/alpha/alpha.c (vms_attribute_table): Make static.
5803         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
5804         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
5805         * config/mips/mips.c (mips_attribute_table): Likewise.
5806
5807         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
5808         $(SYSTEM_H).
5809         (cc1-checksum.o): Likewise.
5810
5811 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
5812
5813         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
5814
5815 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
5816
5817         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
5818         insn if it is changing sp.  Use gen_add3_insn instead of
5819         conditionally gen_addsi3 and gen_adddi3.
5820         (offset_below_red_zone_p): New static inline function.
5821         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
5822         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
5823         * config/rs6000/ppc-asm.h: Include auto-host.h.
5824         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
5825         CFI_RESTORE): Define.
5826         * config/rs6000/crtresxgpr.asm: Add unwind info.
5827         * config/rs6000/crtresxfpr.asm: Likewise.
5828         * config/rs6000/crtresgpr.asm: Likewise.
5829         * config/rs6000/crtresfpr.asm: Likewise.
5830         * config/rs6000/crtsavgpr.asm: Likewise.
5831         * config/rs6000/crtsavfpr.asm: Likewise.
5832
5833         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
5834         argument of DWARF2_FRAME_REG_OUT macros.
5835
5836 2009-06-03  Julian Brown  <julian@codesourcery.com>
5837
5838         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
5839         words or less (including TImode) in core registers.
5840
5841 2009-06-03  Richard Guenther  <rguenther@suse.de>
5842
5843         PR middle-end/40328
5844         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
5845
5846 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
5847
5848         * statistics.c (statistics_counter_event): Do not record event 
5849         in pass dump if its number == -1.
5850         (curr_statistics_hash): Add assert that we never get passes 
5851         with static number == -1.
5852
5853 2009-06-03  Richard Guenther  <rguenther@suse.de>
5854             Andrey Belevantsev  <abel@ispras.ru>
5855
5856         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
5857         non-BLKmode arrays addressable.
5858
5859 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
5860
5861         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
5862         * config/m68k/m68k.h: ... here.
5863         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
5864         m68k and fido.
5865
5866 2009-06-03  Martin Jambor  <mjambor@suse.cz>
5867
5868         PR tree-optimization/40323
5869         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
5870         assignment.
5871
5872 2009-06-03  Richard Guenther  <rguenther@suse.de>
5873
5874         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
5875         consistently.
5876
5877 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
5878
5879         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
5880         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
5881         JUMP_TABLE_DATA_P where applicable.
5882         * config/sh/sh.c: Ditto.
5883         * config/sh/sh.h: Ditto.
5884         * config/sh/sh.md: Ditto.
5885         * config/sh/symbian.c: Ditto.
5886
5887 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
5888
5889         * config/i386/driver-i386.c (describe_cache): Optimize
5890         concatenation of strings.  Use snprintf instead of sprintf.
5891         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
5892         target when not compiling with GCC.
5893
5894 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
5895
5896         * config/sh/sh.c: Revert last change.
5897         (sh_expand_epilogue): Emit a blockage insn before the frame
5898         pointer adjustment unconditionally.
5899
5900 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
5901
5902         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
5903         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
5904         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
5905         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
5906         to COLLECT_GCC_OPTIONS.
5907
5908 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
5909
5910         * collect2.c (target_system_root): New variable.
5911         (main): Handle --sysroot=.
5912         (ignore_library): Strip the sysroot from the library path.
5913
5914 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
5915
5916         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
5917         (collect2.o): Depend on collect2-aix.h.
5918         (collect2-aix.o): New rule.
5919         * collect2-aix.h: New file.
5920         * collect2-aix.c: Likewise.
5921         * collect2.c: Include collect2-aix.h.  Don't undefine
5922         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
5923         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
5924         Use TARGET_AIX_VERSION instead of _AIX51.
5925         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
5926         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
5927         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
5928         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
5929         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
5930
5931 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
5932
5933         * collect2.c (ignore_library): Avoid premature post-increment
5934         and null deference.
5935
5936 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
5937
5938         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
5939         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
5940         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
5941         CROSS_DIRECTORY_STRUCTURE too.
5942         (LINK_LIBG_SPEC): Likewise.
5943         (LIB_SPEC): Add %R to sysroot paths.
5944         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
5945         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
5946         * config/rs6000/aix51.h: As for aix43.h.
5947         * config/rs6000/aix52.h: Likewise.
5948         * config/rs6000/aix53.h: Likewise.
5949         * config/rs6000/aix61.h: Likewise.
5950         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
5951         to the beginning of sysroot paths.
5952
5953 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5954
5955         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
5956         INSN_LISTs that are out of the REG_NOTE range.
5957
5958 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5959
5960         * loop-unroll.c (struct iv_to_split): Add pointer to next.
5961         (struct var_to_expand): Likewise.
5962         (struct opt_info): Add head and tail for linked lists of the above.
5963         (analyze_insn_to_expand_var): Initialize next.
5964         (analyze_iv_to_split_insn): Likewise.
5965         (analyze_insns_in_loop): Create linked lists.
5966         (allocate_basic_variable): Simplify for use without hash table.
5967         (insert_var_expansion_initialization): Likewise, make it type-safer.
5968         (combine_var_copies_in_loop_exit): Likewise.
5969         (apply_opt_in_copies): Walk lists rather than hash tables.
5970         (release_var_copies): Simplified and inlined by hand into...
5971         (free_opt_info): ... this function.
5972
5973 2009-06-02  Richard Guenther  <rguenther@suse.de>
5974
5975         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
5976         for field decls.
5977
5978 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5979
5980         * cfgexpand.c (gimple_expand_cfg): Discard the source location
5981         only for builtins that are not overridden.
5982
5983 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5984
5985         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
5986         label string.
5987
5988 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5989
5990         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
5991
5992 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5993
5994         * combine.c (move_deaths): Compare LUIDs within the same BB only.
5995
5996 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
5997
5998         * common.opt (fdump-unnumbered-links): New.
5999         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
6000         * print-rtl.c (flag_dump_unnumbered_links): New.
6001         (print_rtx): Test it.
6002
6003 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
6004
6005         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
6006         push/pop multiple to 8-byte alignment.
6007
6008 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
6009
6010         * config/i386/i386.c (queued_cfa_restores): New static variable.
6011         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
6012         functions.
6013         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
6014         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
6015         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
6016         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
6017         note unconditionally.
6018         (ix86_emit_restore_regs_using_mov): Likewise.
6019         (ix86_emit_restore_sse_regs_using_mov): Likewise.
6020         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
6021         it through to ix86_emit_restore_reg_using_pop.
6022         (ix86_emit_leave): Add RED_OFFSET argument.  Call
6023         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
6024         instead of adding REG_CFA_OFFSET note unconditionally.
6025         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
6026         the above functions.  Call ix86_add_queued_cfa_restore_notes when
6027         needed.
6028
6029         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
6030         force output of the label even for dwarf2out_do_cfi_asm.
6031         (add_fde_cfi): If -g2 and above and cfi might change CFA,
6032         force creation of CFI label and chain DW_CFA_set_loc jumping to it
6033         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
6034         caller.
6035         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
6036         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
6037         dwarf2out_cfi_label callers.
6038         * tree.h (dwarf2out_cfi_label): Adjust prototype.
6039         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
6040         Adjust dwarf2out_cfi_label callers.
6041         * config/vax/vax.c (vax_output_function_prologue): Likewise.
6042
6043         * config/i386/i386.h (struct machine_cfa_state,
6044         struct machine_function): Guard with ifndef USED_FOR_TARGET
6045         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
6046
6047         PR other/40024
6048         * emutls.c (__emutls_get_address): Change arr->size to mean number
6049         of allocated arr->data entries instead of # of slots + 1.
6050
6051         PR middle-end/40316
6052         * recog.c (peep2_reinit_state): New function.
6053         (peephole2_init_state): Use it at the end of a basic block and also
6054         when seeing a RTX_FRAME_RELATED_P insn.
6055
6056 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
6057
6058         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
6059         fixuns_truncrfdi2): New.
6060         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
6061         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
6062         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
6063         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
6064         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
6065         *recip_approx): Remove.
6066         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
6067         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
6068         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
6069         move to div.md.
6070         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
6071         setf_exp_rf): New.
6072
6073 2009-06-01  Ian Lance Taylor  <iant@google.com>
6074
6075         * attribs.c (register_attribute): Use CONST_CAST.
6076         * collect2.c (main): Use CONST_CAST2.
6077         (scan_prog_file): Likewise.
6078         * gcc.c (process_command, main): Likewise.
6079         * toplev.c (toplev_main): Likewise.
6080
6081         * c-typeck.c (handle_warn_cast_qual): New static function,
6082         partially broken out of build_c_cast.
6083         (build_c_cast): Call handle_warn_cast_qual.
6084         * doc/invoke.texi (Warning Options): Document new effect of
6085         -Wcast-qual.
6086
6087 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
6088
6089         * diagnostic.c (diagnostic_build_prefix): Always print columns.
6090         (diagnostic_report_current_module): Print columns.
6091         * common.opt (flag_show_column): Enable by default.
6092
6093 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
6094
6095         * alias.c (find_base_term): Check for NULL term before returning.
6096
6097 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6098
6099         Revert due to PR40320:
6100         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6101         * calls.c (emit_library_call_value_1): Don't force_operand for move
6102         and push insns.
6103
6104 2009-06-01  Olivier Hainque  <hainque@adacore.com>
6105             Eric Botcazou  <ebotcazou@adacore.com>
6106
6107         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
6108         to be processed as a bitfield for constructor output purposes.
6109         * output.h (initializer_constant_valid_for_bitfield_p): Declare
6110         new function.
6111         * varasm.c (oc_local_state): New type, output_constructor
6112         local state to support communication with helpers.
6113         (oc_outer_state): New type, output_constructor outer state of
6114         relevance in recursive calls.
6115         (output_constructor_array_range): New output_constructor helper,
6116         extracted code for an array range element.
6117         (output_constructor_regular_field): New output_constructor helper,
6118         extracted code for an element that is not a bitfield.
6119         (output_constructor_bitfield): New output_constructor helper,
6120         extracted code for a bitfield element.  Accept an OUTER state
6121         argument for recursive processing.  Recurse on record or array
6122         CONSTRUCTOR values, possibly past noop conversions.
6123         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
6124         VALUE is a valid constant-valued expression for use in a static
6125         bit-field initializer.
6126         (output_constructor): Rework to use helpers.  Accept and honor an
6127         OUTER state argument for recursive calls.  Return total size.  Be
6128         prepared for nested constructors initializing bitfields.
6129         (output_constant): Feed OUTER in calls to output_constructor.
6130
6131 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6132
6133         * calls.c (emit_library_call_value_1): Don't force_operand for move
6134         and push insns.
6135
6136 2009-06-01  Nick Clifton  <nickc@redhat.com>
6137
6138         * doc/invoke.texi (IA-64 Options): Fix typo.
6139
6140 2009-06-01  Ira Rosen  <irar@il.ibm.com>
6141
6142         PR tree-optimization/39129
6143         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
6144         printed message.
6145         (vect_do_peeling_for_loop_bound): Use
6146         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
6147         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
6148         (vect_loop_versioning): Likewise.
6149         (vect_create_cond_for_alias_checks): Fix indentation.
6150         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
6151         macros.
6152         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
6153         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
6154         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
6155         "control flow in loop".
6156         (vect_estimate_min_profitable_iters): Use
6157         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
6158         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
6159         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
6160         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
6161         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
6162         statement belongs to a group of strided accesses with the exact code
6163         check.
6164         (vectorizable_load): Likewise.
6165         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
6166         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
6167
6168 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
6169
6170         * config/freebsd-stdint.h: New file.
6171         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
6172         Add freebsd-stdint.h to tm_file.
6173
6174 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
6175
6176         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
6177         (thumb2_extendhidi2): Likewise.
6178
6179 2009-05-31  Ian Lance Taylor  <iant@google.com>
6180
6181         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
6182
6183 2009-05-31  Ian Lance Taylor  <iant@google.com>
6184
6185         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
6186         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
6187         (ipa-reference.o): Depend upon gt-ipa-reference.h.
6188
6189 2009-05-31  Jason Merrill  <jason@redhat.com>
6190
6191         * tree-pretty-print.c (print_call_name): Take the callee, not the
6192         call itself.  Make non-static.  Use dump_function_name for functions.
6193         (dump_generic_node): Adjust.
6194         * diagnostic.h: Declare print_call_name.
6195         * gimple-pretty-print.c (dump_gimple_call): Use it.
6196
6197 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6198
6199         * config/sh/sh.md (ashldi3_std): New define_expand.
6200         (ashldi3): Use it.
6201
6202 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6203
6204         PR target/40313
6205         * config/sh/sh.c: Include debug.h.
6206         (sh_expand_epilogue): Emit a blockage insn before the frame
6207         pointer adjustment also when dwarf2out_do_frame returns true.
6208
6209 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
6210
6211         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
6212         (thumb2_extendqidi2): New pattern.
6213
6214 2009-05-31  Ira Rosen  <irar@il.ibm.com>
6215
6216         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
6217         mark phis for renaming.
6218         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
6219         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
6220         Call mark_sym_for_renaming.
6221         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
6222         * tree-vect-loop.c (vect_transform_loop): Remove
6223         vect_memsyms_to_rename initialization and a call to
6224         mark_set_for_renaming.
6225
6226 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
6227
6228         PR middle-end/40304
6229         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
6230         frame related even if !set_cfa && style < 0.
6231
6232 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
6233
6234         * config/i386/mingw-tls.c: New file.
6235         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
6236         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
6237         defining _WIN32 but not __CYGWIN__.
6238
6239 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6240
6241         * configure.ac: Add MPC support.
6242         
6243         * config.in, configure: Regenerate.     
6244
6245 2009-05-29  Richard Henderson  <rth@redhat.com>
6246
6247         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
6248         NOTE_INSN_BASIC_BLOCK.
6249         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
6250         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
6251         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
6252         to be deleted.
6253         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
6254         add in_use field.
6255         (add_cfi): Disable check redefining cfa away from drap.
6256         (lookup_cfa_1): Add remember argument; handle remember/restore.
6257         (lookup_cfa): Pass remember argument.
6258         (cfa_remember): New.
6259         (compute_barrier_args_size_1): Remove sibcall check.
6260         (dwarf2out_frame_debug_def_cfa): New.
6261         (dwarf2out_frame_debug_adjust_cfa): New.
6262         (dwarf2out_frame_debug_cfa_offset): New.
6263         (dwarf2out_frame_debug_cfa_register): New.
6264         (dwarf2out_frame_debug_cfa_restore): New.
6265         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
6266         (dwarf2out_begin_epilogue): New.
6267         (dwarf2out_frame_debug_restore_state): New.
6268         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
6269         DW_CFA_restore_state.
6270         (output_cfi_directive): Likewise.
6271         (convert_cfa_to_fb_loc_list): Likewise.
6272         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
6273         * dwarf2out.h: Update.
6274         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
6275         (copy_insn_1): Early out for null.
6276         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
6277         and dwarf2out_frame_debug_restore_state.
6278         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
6279         (prologue_insn_hash, epilogue_insn_hash): New.
6280         (free_after_compilation): Adjust freeing accordingly.
6281         (record_insns): Create hash table if needed; push insns into
6282         hash instead of array.
6283         (maybe_copy_epilogue_insn): New.
6284         (contains): Search hash table instead of array.
6285         (sibcall_epilogue_contains): Remove.
6286         (thread_prologue_and_epilogue_insns): Split eh_return insns
6287         and mark them as epilogues.
6288         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
6289         scanning in terms of basic blocks.
6290         * insn-notes.def (CFA_RESTORE_STATE): New.
6291         * jump.c (returnjump_p_1): Accept EH_RETURN.
6292         (eh_returnjump_p_1, eh_returnjump_p): New.
6293         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
6294         CFA_REGISTER, CFA_RESTORE): New.
6295         * rtl.def (EH_RETURN): New.
6296         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
6297
6298         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
6299         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
6300
6301         * config/i386/i386.c (gen_push): Update cfa state.
6302         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
6303         add a CFA_ADJUST_CFA note.
6304         (ix86_dwarf_handle_frame_unspec): Remove.
6305         (ix86_expand_prologue): Update cfa state.
6306         (ix86_emit_restore_reg_using_pop): New.
6307         (ix86_emit_restore_regs_using_pop): New.
6308         (ix86_emit_leave): New.
6309         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
6310         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
6311         * config/i386/i386.h (struct machine_cfa_state): New.
6312         (ix86_cfa_state): New.
6313         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
6314         (eh_return_internal): Merge from eh_return_<mode>,
6315         use eh_return rtx, split w/ epilogue.
6316
6317 2009-05-29  Ian Lance Taylor  <iant@google.com>
6318
6319         * builtins.c (validate_gimple_arglist): Don't use va_arg with
6320         enum type.
6321         * calls.c (emit_library_call_value_1): Likewise.
6322
6323         * c-typeck.c (c_build_va_arg): New function.
6324         * c-tree.h (c_build_va_arg): Declare.
6325         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
6326         instead of build_va_arg.
6327
6328 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
6329
6330         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
6331         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
6332         (ptr_difference_cost): Use affine combinations to compute it.
6333         (difference_cost): Likewise.
6334         (get_computation_cost_at): Compute more accurate cost for addresses
6335         if the ratio is a multiplier allowed in addresses.
6336         For non-addresses, consider that an additional offset or symbol is
6337         added only once.
6338
6339 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
6340
6341         * config/i386/i386.c (ix86_decompose_address): Avoid useless
6342         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
6343
6344         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
6345         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
6346         (prefix_rex): For UNIT_MMX don't imply the prefix by default
6347         if MODE_DI.
6348         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
6349         to 1 for TYPE_SSE{IADD1,CVT1}.
6350         (prefix_vex_imm8): Removed.
6351         (length_vex): Only pass 1 as second argument to
6352         ix86_attr_length_vex_default if prefix_extra is 0.
6353         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
6354         (length): For prefix vex computation use length_immediate
6355         attribute instead of prefix_vex_imm8.
6356         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
6357         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
6358         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
6359         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
6360         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
6361         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
6362         a space in between the operands.
6363         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
6364         if one operand is 0xff and the other one si, di, bp or sp.
6365         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
6366         other one si, di, bp or sp.
6367         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
6368         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
6369         type and mode attributes.
6370         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
6371         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
6372         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
6373         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
6374         prefix_data16 attribute iff MODE_DF.
6375         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
6376         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
6377         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
6378         constm128_operand in length_immediate computation.
6379         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
6380         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
6381         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
6382         length_immediate attribute to 1.
6383         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
6384         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
6385         for certain alternatives.
6386         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
6387         prefix_data16 attribute if MODE_V1DF.
6388         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
6389         length_immediate to 1.
6390         (set_got_rex64, set_rip_rex64): Remove length attribute, set
6391         length_address to 4, set mode attribute to MODE_DI.
6392         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
6393         (fxam<mode>2_i387): Set length attribute to 4.
6394         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
6395         *prefetch_3dnow_rex): Override length_address attribute.
6396         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
6397         attributes.
6398         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
6399         (constm128_operand): Removed.
6400         * config/i386/i386.c (memory_address_length): For
6401         disp && !index && !base in 64-bit mode account for SIB byte if
6402         print_operand_address can't optimize disp32 into disp32(%rip)
6403         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
6404         for fs: or gs: segment.
6405         (ix86_attr_length_immediate_default): When checking if shortform
6406         is possible, truncate immediate to the length of the non-shortened
6407         immediate.
6408         (ix86_attr_length_address_default): Ignore MEM_P operands
6409         with X constraint.
6410         (ix86_attr_length_vex_default): Only check for DImode on
6411         GENERAL_REG_P operands.
6412         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
6413         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
6414         (sse_cvttps2pi): Clear prefix_rep attribute.
6415         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
6416         attribute.
6417         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
6418         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
6419         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
6420         iff operand 2 is const_int_operand.
6421         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
6422         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
6423         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
6424         instead of vex.
6425         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
6426         prefix_data16.
6427         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
6428         prefix_data16 attribute for movlpd and movhpd instructions.
6429         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
6430         length_immediate for shufpd instruction.
6431         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
6432         (avx_cmpp<avxmodesuffixf2c><mode>3,
6433         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
6434         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
6435         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
6436         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
6437         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
6438         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
6439         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
6440         prefix_data16 attribute for the first alternative to 1.
6441         (*avx_loadlps): Override length_immediate for the first alternative.
6442         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
6443         attributes for second alternative.
6444         (*vec_concatv2sf_sse4_1): Override length_immediate and
6445         prefix_data16 attributes for second alternative.
6446         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
6447         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
6448         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
6449         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
6450         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
6451         prefix_data16 and length_immediate to 1.
6452         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
6453         to 1.
6454         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
6455         prefix_extra attribute for variants that don't have 0f prefix alone.
6456         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
6457         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
6458         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
6459         *sse4_1_pextrd): Set length_immediate to 1.
6460         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
6461         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
6462         to 1.
6463         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
6464         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
6465         length_immediate to 1 for second alternative.
6466         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
6467         prefix_extra and length_immediate attributes for the first
6468         alternative.
6469         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
6470         first alternative.
6471         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
6472         to 1 for the first and third alternative.
6473         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
6474         alternative.
6475         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
6476         attribute.
6477         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
6478         attribute to 0.
6479         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
6480         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
6481         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
6482         *avx_psign<mode>3): Set prefix_extra attribute to 1.
6483         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
6484         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
6485         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
6486         ssse3_psign<mode>3): Override prefix_rex attribute.
6487         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
6488         (ssse3_palignrti): Override length_immediate to 1.
6489         (ssse3_palignrdi): Override length_immediate to 1, override
6490         prefix_rex attribute.
6491         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
6492         (sse4a_extrqi): Override length_immediate to 2.
6493         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
6494         (sse4a_insertq): Override prefix_data16 to 0.
6495         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
6496         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
6497         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
6498         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
6499         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
6500         and length_immediate to 1.
6501         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
6502         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
6503         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
6504         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
6505         and length_immediate to 1.
6506         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
6507         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
6508         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
6509         avx_ptest256): Override prefix_extra to 1.
6510         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
6511         Override prefix_data16 and length_immediate to 1.
6512         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
6513         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
6514         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
6515         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
6516         prefix_data16 to 0 and prefix_extra to 2.
6517         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
6518         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
6519         attribute.
6520         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
6521         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
6522         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
6523         and prefix_extra to 2.
6524         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
6525         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
6526         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
6527         avx_vpermilvar<mode>3,
6528         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
6529         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
6530         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
6531         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
6532         Override prefix_extra to 1.
6533         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
6534         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
6535         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
6536         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
6537         prefix_extra and length_immediate to 1.
6538         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
6539         modrm to 0.
6540         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
6541         to 1 for the first alternative.
6542         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
6543         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
6544         cases.
6545         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
6546         *movv2sf_internal_avx, *movv2sf_internal): Override
6547         prefix_rep attribute for certain alternatives.
6548         (*mov<mode>_internal): Override prefix_rep or prefix_data16
6549         attributes for certain alternatives.
6550         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
6551         attributes for certain alternatives.
6552         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
6553         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
6554         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
6555         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
6556         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
6557         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
6558         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
6559         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
6560         length_immediate to 1 if operand 2 is const_int_operand.
6561         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
6562         *vec_extractv2si_1): Set length_immediate attribute to 1.
6563         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
6564         using old 3DNOW insn rather than SSE/3DNOW_A.
6565         (mmx_emms, mmx_femms): Clear modrm attribute.
6566
6567 2009-05-29  Martin Jambor  <mjambor@suse.cz>
6568
6569         * tree-sra.c:  New implementation of SRA.
6570
6571         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
6572         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
6573         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
6574         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
6575         (SRA_MAX_STRUCTURE_COUNT): Removed.
6576         (SRA_FIELD_STRUCTURE_RATIO): Removed.
6577         * doc/invoke.texi (sra-max-structure-size): Removed.
6578         (sra-field-structure-ratio): Removed.
6579
6580 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
6581
6582         PR middle-end/40291
6583         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
6584         before expansion.
6585
6586 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
6587
6588         PR rtl-optimization/40101
6589         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
6590         seqno.  Adjust comment.
6591         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
6592         inserting bookkeeping before a jump, the jump is not scheduled.
6593         When no positive seqno found, provide a value.  Add comment.
6594
6595 2009-05-29  Richard Guenther  <rguenther@suse.de>
6596
6597         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
6598         short-cutting on the first component.
6599
6600 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
6601
6602         PR middle-end/39958
6603         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
6604         for trees other than decls/types.
6605
6606 2009-05-29  Richard Guenther  <rguenther@suse.de>
6607
6608         * tree-ssa-operands.c (get_expr_operands): Do not handle
6609         INDIRECT_REFs in the handled-component case.  Remove
6610         unused get_ref_base_and_extent case.
6611         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
6612         tree_low_cst and host_integerp where possible.
6613         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
6614         codes for equivalence.
6615         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
6616
6617 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
6618
6619         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
6620         to tmake_file for i[34567]86-*-cygwin*. 
6621
6622 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
6623
6624         PR target/40017
6625         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
6626         (altivec_categorize_keyword, init_vector_keywords,
6627         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
6628         similar to bool.
6629
6630 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
6631
6632         * tree.c (handle_dll_attribute): Check if node is
6633         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
6634
6635 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
6636
6637         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
6638         component.
6639         (thumb2_zero_extendqidi2): Likewise.
6640
6641 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6642
6643         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
6644         instead of gen_movrt.
6645         * config/sh/sh.md (movrt): Remove.
6646
6647 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
6648
6649         * doc/invoke.texi (IA-64 Options):
6650         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
6651         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
6652         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
6653         -msched-prefer-non-control-spec-insns,
6654         -msched-stop-bits-after-every-cycle,
6655         -msched-count-spec-in-critical-path,
6656         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
6657         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
6658         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
6659         and -msched-spec-verbose.
6660
6661 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
6662
6663         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
6664         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
6665         error if used.
6666         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
6667
6668 2009-05-28  Richard Guenther  <rguenther@suse.de>
6669
6670         * tree-ssa-alias.c (ao_ref_init): New function.
6671         (ao_ref_base): Likewise.
6672         (ao_ref_base_alias_set): Likewise.
6673         (ao_ref_alias_set): Likewise.
6674         (refs_may_alias_p_1): Change signature.
6675         (refs_may_alias_p): Adjust.
6676         (refs_anti_dependent_p): Likewise.
6677         (refs_output_dependent_p): Likewise.
6678         (call_may_clobber_ref_p_1): Change signature.
6679         (call_may_clobber_ref_p): Adjust.
6680         (stmt_may_clobber_ref_p_1): New function split out from ...
6681         (stmt_may_clobber_ref_p): ... here.
6682         (maybe_skip_until): Adjust signature.
6683         (get_continuation_for_phi): Likewise.
6684         (walk_non_aliased_vuses): Likewise.
6685         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
6686         (ao_ref_init): Declare.
6687         (ao_ref_base): Likewise.
6688         (ao_ref_alias_set): Likewise.
6689         (stmt_may_clobber_ref_p_1): Likewise.
6690         (walk_non_aliased_vuses): Adjust.
6691         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
6692         (get_ref_from_reference_ops): remove.
6693         (vn_reference_lookup_2): Adjust signature.
6694         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
6695         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
6696         (vn_reference_lookup): Adjust.
6697         (vn_reference_insert): Likewise.
6698         (vn_reference_insert_pieces): Adjust signature.
6699         (visit_reference_op_call): Adjust.
6700         * tree-ssa-pre.c (get_expr_type): Simplify.
6701         (phi_translate_1): Adjust.
6702         (compute_avail): Likewise.
6703         (translate_vuse_through_block): Do not re-build trees.
6704         (value_dies_in_block_x): Likewise.
6705         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
6706         fields.
6707         (vn_reference_lookup_pieces): Adjust declaration.
6708         (vn_reference_insert_pieces): Likewise.
6709
6710 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
6711
6712         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
6713         with checking disabled.
6714
6715 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
6716
6717         PR target/37216
6718
6719         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
6720         macro definition for support of three-operand format aligned
6721         .comm directive in assembler on cygwin/pe/mingw target OS.
6722         * configure:  Regenerate.
6723         * config.h:  Regenerate.
6724
6725         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
6726         aligned form of .comm directive if -mpe-aligned-commons is in effect.
6727         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
6728
6729         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
6730         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
6731
6732 2009-05-28  Ira Rosen  <irar@il.ibm.com>
6733
6734         PR tree-optimization/40254
6735         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
6736         in analysis of basic blocks.
6737
6738 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
6739
6740         PR middle-end/33699
6741         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
6742         * target-def.h (TARGET_CONST_ANCHOR): New macro.
6743         (TARGET_INITIALIZER): Use it.
6744         * cse.c (CHEAPER): Move it up to the other macros.
6745         (insert): Rename this ...
6746         (insert_with_costs): ... to this.  Add cost parameters.  Update
6747         function comment.
6748         (insert): New function.  Call insert_with_costs.
6749         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
6750         find_reg_offset_for_const, try_const_anchors): New functions.
6751         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
6752         when using a const-anchor.  Call insert_const_anchors.
6753         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
6754         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
6755
6756 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
6757
6758         * tree-inline.c (remap_decls): Enable nonlocalized variables
6759         when not optimizing.
6760
6761 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
6762
6763         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
6764         Simplify other tests involving optimize.
6765
6766 2009-05-27  Tom Tromey  <tromey@redhat.com>
6767
6768         * unwind-dw2.c (_Unwind_DebugHook): New function.
6769         (uw_install_context): Call _Unwind_DebugHook.
6770
6771 2009-05-27  Tom Tromey  <tromey@redhat.com>
6772
6773         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
6774
6775 2009-05-27  Ian Lance Taylor  <iant@google.com>
6776
6777         * Makefile.in (LINKER, LINKER_FLAGS): Define.
6778         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
6779         (ALL_LINKERFLAGS): Define.
6780         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
6781         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
6782         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
6783         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
6784         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
6785         $(LINKER_FOR_BUILD).
6786         (build/gcov-iov$(build_exeext)): Likewise.
6787
6788 2009-05-27  Julian Brown  <julian@codesourcery.com>
6789
6790         * gcse.c (target.h): Include.
6791         (can_assign_to_reg_without_clobbers_p): Check that the target allows
6792         copy of argument to a pseudo register.
6793
6794 2009-05-27  Diego Novillo  <dnovillo@google.com>
6795
6796         * tree-ssa-live.c (dump_scope_block): Document arguments.
6797         (dump_scope_blocks): Document.
6798         (debug_scope_blocks): New.
6799         * tree-flow.h (debug_scope_blocks): Declare.
6800
6801 2009-05-21  Denis Chertykov  <denisc@overta.ru>
6802
6803         * doc/contrib.texi (Contributors): Add myself to the list.
6804
6805 2009-05-27  Olivier Hainque  <hainque@adacore.com>
6806
6807         * expr.c (target_align): New function.  Alignment the TARGET of an
6808         assignment may be assume to have.
6809         (highest_pow2_factor_for_target): Use it instead of relying on
6810         immediate tree attributes of TARGET, not necessarily honored when
6811         intermediate bitfields are involved.
6812         
6813 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
6814
6815         PR target/40266
6816         * config/i386/driver-i386.c (host_detect_local_cpu): Support
6817         AVX, SSE4, AES, PCLMUL and POPCNT.
6818
6819 2009-05-27  Diego Novillo  <dnovillo@google.com>
6820
6821         * tree-pretty-print.c (dump_location): New.
6822         (dump_generic_node): Call it.
6823         Factor code to handle BLOCK nodes ...
6824         (dump_block_node): ... here.
6825
6826 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
6827
6828         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
6829         with it.
6830         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
6831         included.
6832         * gcc-plugin.h: Include config.h and system.h.
6833         (IN_GCC): Define if not defined.
6834
6835 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
6836
6837         PR middle-end/40249
6838         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
6839         with -fno-inline.
6840
6841 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
6842
6843         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
6844         applicable.
6845         * config/m32r/m32r.h: Ditto.
6846         * config/m32r/m32r.md: Ditto.
6847         * config/m32r/predicates.md: Ditto.
6848
6849 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
6850
6851         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
6852
6853 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
6854
6855         * doc/plugins.texi
6856         (Loading plugins): typo.
6857         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
6858         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
6859         (Interacting with the GCC Garbage Collector): Added new section.
6860         (Giving information about a plugin): Added new section for
6861         PLUGIN_INFO.
6862         * ggc.h (ggc_register_root_tab): Added declaration.
6863         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
6864         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
6865         (register_callback): Improved comment in declaration.
6866         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
6867         (extra_root_vec) Added static variable for dynamic roots registration.
6868         (ggc_register_root_tab) Added new routine.
6869         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
6870         PLUGIN_GGC_MARKING event.
6871         * ggc-zone.c: Include plugin.h.
6872         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
6873         * ggc-page.c: Include plugin.h.
6874         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
6875         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
6876         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
6877         (register_callback): check lack of callbacks for
6878         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
6879         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
6880         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
6881         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
6882         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
6883         dependency on plugin.h.
6884         (plugin.o): Added dependency on ggc.h...
6885
6886 2009-05-26  Richard Guenther  <rguenther@suse.de>
6887
6888         PR middle-end/40248
6889         Revert
6890         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
6891         with mismatched comparison modes.
6892
6893         * expr.c (expand_expr_real_1): Expand the operand of a
6894         VIEW_CONVERT_EXPR in its natural mode.
6895
6896 2009-05-26  Ian Lance Taylor  <iant@google.com>
6897
6898         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
6899         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
6900         (ALL_COMPILERFLAGS): Define.
6901         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
6902         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
6903         (collect2$(exeext), collect2.o): Likewise.
6904         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
6905         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
6906         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
6907         (libbackend.o, intl.o, cppdefault.o): Likewise.
6908         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
6909         (build/%.o): Use $(COMPILER_FOR_BUILD).
6910         (build/gen%$(build_exeext)): Likewise.
6911         (build/gcov-iov$(build_exeext)): LIkewise.
6912         * config/t-darwin (darwin.o): Use $(COMPILER).
6913         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
6914         * config/t-sol2 (sol2-c.o): Likewise.
6915         (sol2.o): Likewise.
6916         * config/t-vxworks (vxworks.o): Likewise.
6917         * config/x-darwin (host-darwin.o): Likewise.
6918         * config/x-hpux (host-hpux.o): Likewise.
6919         * config/x-linux (host-linux.o): Likewise.
6920         * config/x-solaris (host-solaris.o): Likewise.
6921         * config/alpha/x-alpha (driver-alpha.o): Likewise.
6922         * config/arm/t-arm (arm-c.o): Likewise.
6923         * config/arm/t-pe (pe.o): Likewise.
6924         * config/arm/t-wince-pe (pe.o): Likewise.
6925         * config/i386/t-cygming (winnt.o): Likewise.
6926         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
6927         * config/i386/t-cygwin (cygwin1.o): Likewise.
6928         (cygwin2.o): Likewise.
6929         * config/i386/t-i386 (i386-c.o): Likewise.
6930         * config/i386/t-interix (winnt.o): Likewise.
6931         * config/i386/t-netware (netware.o): Likewise.
6932         * config/i386/t-nwld (nwld.o): Likewise.
6933         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
6934         * config/i386/x-i386 (driver-i386.o): Likewise.
6935         * config/i386/x-cygwin (host-cygwin.o): Likewise.
6936         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
6937         * config/ia64/t-ia64 (ia64-c.o): Likewise.
6938         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
6939         * config/mips/x-native (driver-native.o): Likewise.
6940         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
6941         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
6942         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
6943         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
6944         * config/score/t-score-elf (score7.o): Likewise.
6945         (score3.o): Likewise.
6946         * config/sh/t-sh (sh-c.o): Likewise.
6947         * config/sh/t-symbian (sh-c.o): Likewise.
6948         (symbian.o): Likewise.
6949         * config/spu/t-spu-elf (spu-c.o): Likewise.
6950         * config/v850/t-v850 (v850-c.o): Likewise.
6951         * config/v850/t-v850e (v850-c.o): Likewise.
6952
6953 2009-05-26  Richard Guenther  <rguenther@suse.de>
6954
6955         PR tree-optimization/40122
6956         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
6957         VECTOR_CSTs if possible.
6958         (fold_gimple_assign): Likewise.
6959
6960 2009-05-26  Richard Guenther  <rguenther@suse.de>
6961
6962         PR middle-end/40252
6963         * fold-const.c (fold_binary): Use the correct types for building
6964         rotates.
6965
6966 2009-05-26  Richard Guenther  <rguenther@suse.de>
6967
6968         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
6969         redundant calls to merge_alias_info.
6970         (bump_vector_ptr): Likewise.
6971         * tree-ssa-copy.c (merge_alias_info): Remove.
6972         (replace_exp_1): Remove call to merge_alias_info.
6973         (propagate_tree_value): Likewise.
6974         (fini_copy_prop): Propagate points-to info.
6975         * tree-flow.h (merge_alias_info): Remove.
6976
6977 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
6978
6979         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
6980
6981 2009-05-25  Jan Hubicka  <jh@suse.cz>
6982
6983         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
6984         * cgraph.h (struct inline_summary): New filed self_wize,
6985         size_inlining_benefit, self_time and time_inlining_benefit.
6986         (struct cgraph_global_info): Replace insns by time ans size fields.
6987         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
6988         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
6989         (ipcp_update_callgraph): Do not touch function bodies.
6990         * ipa-inline.c: Include except.h
6991         (MAX_TIME): New constant.
6992         (overall_insns): Remove.
6993         (leaf_node_p): New.
6994         (overall_size, max_benefit): New static variables.
6995         (cgraph_estimate_time_after_inlining): New function.
6996         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
6997         (cgraph_clone_inlined_nodes): Update size.
6998         (cgraph_mark_inline_edge): Update size.
6999         (cgraph_estimate_growth): Use size info.
7000         (cgraph_check_inline_limits): Check size.
7001         (cgraph_default_inline_p): Likewise.
7002         (cgraph_edge_badness): Compute badness based on benefit and size cost.
7003         (cgraph_decide_recursive_inlining): Check size.
7004         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
7005         and times.
7006         (cgraph_decide_inlining): Likewise.
7007         (cgraph_decide_inlining_incrementally): Likewise; honor
7008         PARAM_EARLY_INLINING_INSNS.
7009         (likely_eliminated_by_inlining_p): New predicate.
7010         (estimate_function_body_sizes): New function.
7011         (compute_inline_parameters): Use it.
7012         * except.c (must_not_throw_labels): New function.
7013         * except.h (must_not_throw_labels): Declare.
7014         * tree-inline.c (init_inline_once): Kill inlining_weigths
7015         * tree-ssa-structalias.c: Avoid uninitialized warning.
7016         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
7017         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
7018         (PARAM_INLINE_CALL_COST): Remove.
7019         (PARAM_EARLY_INLINING_INSNS): New.
7020
7021 2009-05-25  Richard Guenther  <rguenther@suse.de>
7022
7023         PR tree-optimization/36327
7024         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
7025         callback for reference translation or lookup at the point of may-defs.
7026         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
7027         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
7028         for union COMPONENT_REFs.
7029         (vn_reference_lookup_3): New callback.  Lookup from memset
7030         and CONSTRUCTOR assignment, translate through struct copies.
7031         (vn_reference_lookup_pieces): Make sure to not free the
7032         passed operands array.  Adjust walk_non_aliased_vuses call.
7033         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
7034         make sure we do not leak memory.
7035
7036 2009-05-25  Richard Guenther  <rguenther@suse.de>
7037
7038         * tree-ssa-alias.h (dump_points_to_solution): Declare.
7039         * tree-inline.c (expand_call_inline): Reset the escaped and
7040         callused solutions.
7041         * tree-ssa-structalias.c (pass_build_ealias): New.
7042         * tree-pass.h (pass_build_ealias): Declare.
7043         * passes.c (init_optimization_passes): Add PTA during 
7044         early optimizations.
7045         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
7046         and CALLUSED solutions.
7047         (dump_points_to_solution): New function, split out from ...
7048         (dump_points_to_info_for): ... here.
7049         * tree-parloops.c (parallelize_loops): Reset the escaped and
7050         callused solutions.
7051
7052 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7053
7054         PR bootstrap/40027
7055         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
7056         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
7057
7058 2009-05-25  Ira Rosen  <irar@il.ibm.com>
7059
7060         PR tree-optimization/40238
7061         * tree-vect-stmts.c (vect_init_vector): Insert initialization
7062         statements after basic block's labels.
7063         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
7064         to free the allocated memory.
7065
7066 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7067
7068         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
7069         return address with a USE.
7070
7071 2009-05-24  Richard Guenther  <rguenther@suse.de>
7072
7073         PR middle-end/40233
7074         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
7075         array type from the main variant of the inner type.
7076
7077 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7078
7079         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
7080         definition to bool (from int) to un-break build.
7081         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
7082
7083 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
7084
7085         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
7086         discard_stmt_changes): Delete.
7087         * tree-ssa-operands.c (scb_stack): Delete.
7088         (init_ssa_operands): Do not initialize it.
7089         (fini_ssa_operands): Do not free it.
7090         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
7091
7092         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
7093         update_stmt, remove the others.  Fix comments.
7094         * tree-dfa.c (optimize_stack_restore): Likewise.
7095         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
7096         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
7097         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
7098         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
7099         Likewise.
7100         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
7101         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
7102         (dom_opt_finalize_block): Likewise, adjusting access to
7103         stmts_to_rescan.
7104         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
7105         (stmts_to_rescan): Change item type to gimple.
7106         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
7107
7108 2009-05-24  Ira Rosen  <irar@il.ibm.com>
7109
7110         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
7111         * tree-pass.h (pass_slp_vectorize): New pass.
7112         * params.h (SLP_MAX_INSNS_IN_BB): Define.
7113         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
7114         * tree-vectorizer.c (timevar.h): Include.
7115         (user_vect_verbosity_level): Declare.
7116         (vect_location): Fix comment.
7117         (vect_set_verbosity_level): Update user_vect_verbosity_level
7118         instead of vect_verbosity_level.
7119         (vect_set_dump_settings): Add an argument. Ignore user defined
7120         verbosity if dump flags require higher level of verbosity. Print to
7121         stderr only for loop vectorization.
7122         (vectorize_loops): Update call to vect_set_dump_settings.
7123         (execute_vect_slp): New function.
7124         (gate_vect_slp): Likewise.
7125         (struct gimple_opt_pass pass_slp_vectorize): New.
7126         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
7127         access its members.
7128         (vec_info_for_bb): New function.
7129         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
7130         (VECTORIZATION_ENABLED): New macro.
7131         (SLP_ENABLED, SLP_DISABLED): Likewise.
7132         (vect_is_simple_use): Add bb_vec_info argument.
7133         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
7134         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
7135         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
7136         vect_schedule_slp, vect_analyze_slp): Likewise.
7137         (vect_analyze_stmt): Add slp_tree argument.
7138         (find_bb_location): Declare.
7139         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
7140         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
7141         (vect_analyze_loop_operations, vect_analyze_loop,
7142         get_initial_def_for_induction, vect_create_epilog_for_reduction,
7143         vect_finalize_reduction, vectorizable_reduction,
7144         vectorizable_live_operation, vect_transform_loop): Likewise.
7145         * tree-data-ref.c (dr_analyze_innermost): Update comment,
7146         skip evolution analysis if analyzing a basic block.
7147         (dr_analyze_indices): Likewise.
7148         (initialize_data_dependence_relation): Skip the test whether the
7149         object is invariant for basic blocks.
7150         (compute_all_dependences): Skip dependence analysis for data
7151         references in basic blocks.
7152         (find_data_references_in_stmt): Don't fail in case of invariant
7153         access in basic block.
7154         (find_data_references_in_bb): New function.
7155         (find_data_references_in_loop): Move code to
7156         find_data_references_in_bb and add a call to it.
7157         (compute_data_dependences_for_bb): New function.
7158         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
7159         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
7160         that STEP is 0.
7161         (vect_analyze_data_ref_dependence): Check for interleaving in case of
7162         unknown dependence in basic block and fail in case of dependence in
7163         basic block.
7164         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
7165         dependence instances from either loop or basic block vectorization
7166         info.
7167         (vect_compute_data_ref_alignment): Check if it is loop vectorization
7168         before calling nested_in_vect_loop_p.
7169         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
7170         dependence instances from either loop or basic block vectorization
7171         info.
7172         (vect_verify_datarefs_alignment): Likewise.
7173         (vect_enhance_data_refs_alignment): Adjust function calls.
7174         (vect_analyze_data_refs_alignment): Likewise.
7175         (vect_analyze_group_access): Fix printing. Skip different checks if
7176         DR_STEP is 0. Keep strided stores either in loop or basic block
7177         vectorization data structure. Fix indentation.
7178         (vect_analyze_data_ref_access): Fix comments, allow zero step in
7179         basic blocks.
7180         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
7181         dependence instances from either loop or basic block vectorization
7182         info.
7183         (vect_analyze_data_refs): Update comment. Call
7184         compute_data_dependences_for_bb to analyze basic blocks.
7185         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
7186         case of loop vectorization. In case of basic block vectorization use
7187         data-ref itself as a base.
7188         (vect_create_data_ref_ptr): In case of basic block vectorization:
7189         don't advance the pointer, add new statements before the current
7190         statement.  Adjust function calls.
7191         (vect_supportable_dr_alignment): Support only aligned accesses in
7192         basic block vectorization.
7193         * common.opt (ftree-slp-vectorize): New flag.
7194         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
7195         (vect_pattern_recog_1): Likewise.
7196         * tree-vect-stmts.c (process_use): Likewise.
7197         (vect_init_vector): Add new statements in the beginning of the basic
7198         block in case of basic block SLP.
7199         (vect_get_vec_def_for_operand): Adjust function calls.
7200         (vect_finish_stmt_generation): Likewise.
7201         (vectorizable_call): Add assert that it is loop vectorization, adjust
7202         function calls.
7203         (vectorizable_conversion, vectorizable_assignment): Likewise.
7204         (vectorizable_operation): In case of basic block SLP, take
7205         vectorization factor from statement's type and skip the relevance
7206         check. Adjust function calls.
7207         (vectorizable_type_demotion): Add assert that it is loop
7208         vectorization, adjust function calls.
7209         (vectorizable_type_promotion): Likewise.
7210         (vectorizable_store): Check for outer loop only in case of loop
7211         vectorization. Adjust function calls. For basic blocks, skip the
7212         relevance check and don't advance pointers.
7213         (vectorizable_load): Likewise.
7214         (vectorizable_condition): Add assert that it is loop vectorization,
7215         adjust function calls.
7216         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
7217         that it is not reduction, get vector type, call only supported
7218         functions, skip loop specific parts.
7219         (vect_transform_stmt): Check for outer loop only in case of loop
7220         vectorization.
7221         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
7222         (vect_is_simple_use): Fix comment, add new argument, fix conditions
7223         for external definition.
7224         * passes.c (pass_slp_vectorize): New pass.
7225         * tree-vect-slp.c (find_bb_location): New function.
7226         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
7227         check for patterns only in loops.
7228         (vect_build_slp_tree): Add argument, adjust function calls, fail in
7229         case of multiple types in basic block SLP.
7230         (vect_mark_slp_stmts_relevant): New function.
7231         (vect_supported_load_permutation_p): Fix comment.
7232         (vect_analyze_slp_instance): Add argument. In case of basic block
7233         SLP, take vectorization factor from statement's type, check that
7234         unrolling factor is 1. Adjust function call. Save SLP instance in
7235         either loop or basic block vectorization structure. Return FALSE,
7236         if SLP failed.
7237         (vect_analyze_slp): Add argument. Get strided stores groups from
7238         either loop or basic block vectorization structure. Return FALSE
7239         if basic block SLP failed.
7240         (new_bb_vec_info): New function.
7241         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
7242         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
7243         (vect_schedule_slp): Add argument. Get SLP instances from either
7244         loop or basic block vectorization structure. Set vectorization factor
7245         to be 1 for basic block SLP.
7246         (vect_slp_transform_bb): New function.
7247         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
7248
7249 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
7250
7251         * final.c (shorten_branches): Do not align labels for jump tables.
7252         (final_scan_insn): Use JUMP_TABLE_DATA_P.
7253
7254 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
7255
7256         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
7257         Remove outdated reference to flow.c and fix nits.
7258         * doc/gccint.texi: Tweak RTL description.
7259         * doc/rtl.texi: Likewise.
7260
7261 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
7262
7263         * config/avr/avr.c: Change my email address.
7264         * config/avr/avr.h: Likewise.
7265         * config/avr/avr.md: Likewise.
7266         * config/avr/avr-protos.h: Likewise.
7267         * config/avr/libgcc.S: Likewise.
7268
7269 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
7270
7271         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
7272         (spu_split_load, spu_split_store): Change return type to int.
7273         (spu_split_convert): Declare.
7274         * config/spu/predicates.md (spu_mem_operand): Remove.
7275         (spu_mov_operand): Update.
7276         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
7277         * config/spu/spu.c (regno_aligned_for_load): Remove.
7278         (reg_aligned_for_addr, spu_expand_load): Define.
7279         (spu_expand_extv): Reimplement and handle MEM.
7280         (spu_expand_insv): Handle MEM.
7281         (spu_sched_reorder): Handle insn's with length 0.
7282         (spu_legitimate_address_p): Reimplement.
7283         (store_with_one_insn_p): Return TRUE for any mode with size
7284         larger than 16 bytes.
7285         (address_needs_split): Define.
7286         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
7287         operands.
7288         (spu_convert_move): Define.
7289         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
7290         (spu_split_store): Change all MEM's to TImode.
7291         (spu_init_expanders): Preallocate registers that correspond to
7292         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
7293         mark_reg_pointer.
7294         (spu_split_convert): Define.
7295         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
7296         (_move<mode>, _movdi, _movti): Update predicate and condition.
7297         (load, store): Change to define_split.
7298         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
7299         extend<mode>ti2.
7300         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
7301         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
7302         define_insn_and_split of lshr<mode>3.
7303         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
7304         (<v>ashr<mode>3_imm): Define.
7305         (extv, extzv, insv): Allow MEM operands.
7306         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
7307         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
7308         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
7309         (_spu_convert2): Change to define_insn_and_split and remove the
7310         corresponding define_peephole2.
7311         (stack_protect_set, stack_protect_test, stack_protect_test_si):
7312         Change predicates to memory_operand.
7313
7314 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
7315
7316         * config/arm/thumb2.md: Add 16-bit multiply instructions.
7317
7318 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
7319
7320         PR tree-optimization/40219
7321         * tree.c (iterative_hash_expr): Make sure the builtin function is
7322         a normal builtin function and not a front end or back end builtin
7323         before indexing into the built_in_decls array.
7324
7325 2009-05-22  Richard Guenther  <rguenther@suse.de>
7326
7327         PR middle-end/38964
7328         * alias.c (write_dependence_p): Do not use TBAA for answering
7329         anti-dependence or output-dependence.
7330         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
7331         (emit_pointer_definition): Remove.
7332         (emit_alias_warning): Likewise.
7333         (find_what_var_points_to): Remove TBAA pruning code.
7334         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
7335         violations.
7336         (compute_points_to_sets): Remove code computing the set of
7337         dereferenced pointers.
7338         * tree-data-ref.c (dr_may_alias_p): Properly use the split
7339         oracle for querying anti and output dependencies.
7340         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
7341         if TBAA may be applied.
7342         (refs_anti_dependent_p): New function.
7343         (refs_output_dependent_p): Likewise.
7344         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
7345         (refs_output_dependent_p): Likewise.
7346         * doc/tree-ssa.texi (Memory model): New section.
7347         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
7348         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
7349         * cfgexpand.c (expand_gimple_basic_block): Do not handle
7350         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
7351         * expr.c (expand_expr_real_1): Likewise.
7352         * gimple-low.c (lower_stmt): Likewise.
7353         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
7354         (dump_gimple_cdt): Remove.
7355         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
7356         (gimple_size): Likewise.
7357         (walk_gimple_op): Likewise.
7358         (is_gimple_stmt): Likewise.
7359         (walk_stmt_load_store_addr_ops): Likewise.
7360         (gimple_build_cdt): Remove.
7361         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
7362         * gimple.h (gimple_cdt_new_type): Remove.
7363         (gimple_cdt_new_type_ptr): Likewise.
7364         (gimple_cdt_set_new_type): Likewise.
7365         (gimple_cdt_location): Likewise.
7366         (gimple_cdt_location_ptr): Likewise.
7367         (gimple_cdt_set_location): Likewise.
7368         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
7369         * tree-cfg.c (remove_useless_stmts_1): Do not handle
7370         GIMPLE_CHANGE_DYNAMIC_TYPE.
7371         (verify_types_in_gimple_stmt): Likewise.
7372         * tree-inline.c (estimate_num_insns): Likewise.
7373         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
7374         (copy_decl_to_var): Likewise.
7375         (copy_result_decl_to_var): Likewise.
7376         * tree-pretty-print.c (dump_generic_node): Do not handle
7377         CHANGE_DYNAMIC_TYPE_EXPR.
7378         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7379         * tree-ssa-operands.c (get_expr_operands): Likewise.
7380         * tree-ssa-structalias.c (struct variable_info): Remove
7381         no_tbaa_pruning member.
7382         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
7383         (unify_nodes): Do not copy it.
7384         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
7385         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
7386         (set_uids_in_ptset): Do not check it.
7387         (find_what_var_points_to): Likewise.
7388         (compute_tbaa_pruning): Remove.
7389         (compute_points_to_sets): Do not call it.
7390         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
7391         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
7392         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
7393         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
7394         (DECL_NO_TBAA_P): Likewise.
7395         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
7396         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
7397         (expand_omp_atomic_pipeline): Do not set it.
7398         * print-tree.c (print_node): Do not dump it.
7399         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
7400         redundant check.
7401
7402 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
7403
7404         PR target/39856
7405         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
7406         for clobber.
7407
7408 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
7409
7410         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
7411         non-external.
7412
7413 2009-05-22  Ben Elliston  <bje@au.ibm.com>
7414
7415         * Makefile.in (bversion.h, s-bversion): New targets.
7416         (TOPLEV_H): Add bversion.h.
7417         * toplev.h: Include "bversion.h".
7418         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
7419         the __format__ attribute only if compiling with the same version
7420         of GCC as the sources (the "build version").
7421
7422 2009-05-22  Ben Elliston  <bje@au.ibm.com>
7423
7424         * c-format.c (handle_format_attribute): Fix comment typo.
7425
7426 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
7427
7428         PR target/37846
7429         * config/ia64/ia64.opt (mfused-madd): New.
7430         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
7431         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
7432         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
7433         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
7434         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
7435         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
7436         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
7437         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
7438         instruction if !TARGET_FUSED_MADD.
7439         (fpma, fpms): Remove colon from name.
7440
7441 2009-05-22  Richard Guenther  <rguenther@suse.de>
7442
7443         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
7444         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
7445         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
7446         TARGET_MEM_REF.
7447         (create_expression_by_pieces): Only convert if necessary.
7448         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
7449         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
7450
7451 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
7452
7453         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
7454         regular pattern from a template and rename it ...
7455         (*extzv_truncsi_exts): ... to this.
7456
7457 2009-05-21  Richard Guenther  <rguenther@suse.de>
7458
7459         * cgraph.h (struct cgraph_node): Remove inline_decl member.
7460         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
7461         (cgraph_default_inline_p): Likewise.
7462         (cgraph_decide_inlining_incrementally): Likewise.
7463
7464 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
7465             Uros Bizjak  <ubizjak@gmail.com>
7466
7467         * config/i386/cpuid.h (bit_MOVBE): New.
7468
7469         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
7470
7471         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
7472         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
7473         (ix86_handle_option): Handle OPT_mmovbe.
7474         (ix86_target_string): Add -mmovbe.
7475         (pta_flags): Add PTA_MOVBE.
7476         (processor_alias_table): Add PTA_MOVBE to "atom".
7477         (override_options): Handle PTA_MOVBE.
7478
7479         * config/i386/i386.h (TARGET_MOVBE): New.
7480
7481         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
7482         (*bswapsi_movbe): New.
7483         (*bswapdi_movbe): Likewise.
7484         (bswapdi2): Renamed to ...
7485         (*bswapdi_1): This.
7486         (bswapdi2): New expander.
7487
7488         * config/i386/i386.opt (mmovbe): New.
7489
7490         * doc/invoke.texi: Document -mmovbe.
7491
7492 2009-05-21  Taras Glek  <tglek@mozilla.com>
7493
7494         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
7495         * gcc-plugin.h (plugin_init): Updated signature.
7496         * gcc-plugin.h (plugin_name_args): Moved to this header.
7497         * doc/plugins.texi (plugin_init): Updated documention to reflect
7498         API change.
7499         * doc/plugins.texi (plugin_name_args): Added to documention.
7500
7501 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
7502
7503         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
7504         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
7505
7506 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
7507
7508         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
7509         JUMP_TABLE_DATA_P predicates where applicable.
7510         * config/i386/predicates.md: Ditto.
7511         * config/i386/sse.md: Ditto.
7512
7513 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
7514
7515         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
7516         operand2 -128 override length_immediate attribute to 1.
7517         * config/i386/predicates.md (constm128_operand): New predicate.
7518
7519         * config/i386/i386.c (memory_address_length): Handle %r12
7520         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
7521         also check REGNO.
7522         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
7523         mode look through optional ZERO_EXTEND and SUBREG.
7524         * config/i386/i386.md (R12_REG): New define_constant.
7525         (prefix_data16): For sse unit set also for MODE_TI insns.
7526         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
7527         insns set if operand 1 is ext_QIreg_operand.
7528         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
7529         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
7530         immediate.
7531         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
7532         mode from MODE_DI to MODE_SI.
7533         (movdi_1_rex64): Override modrm and length_immediate attributes
7534         only for movabs (TYPE_IMOV, alternative 2).
7535         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
7536         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
7537         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
7538         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
7539         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
7540         prefix_rex attribute if DImode.
7541         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
7542         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
7543         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
7544         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
7545         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
7546         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
7547         Likewise.  For TYPE_IMOV clear length_immediate attribute.
7548         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
7549         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
7550         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
7551         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
7552         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
7553         or one operand TYPE_ISHIFT.
7554         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
7555         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
7556         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
7557         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
7558         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
7559         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
7560         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
7561         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
7562         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
7563         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
7564         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
7565         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
7566         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
7567         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
7568         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
7569         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
7570         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
7571         set mode attribute, don't override length attribute.
7572         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
7573         to 1.
7574         (return_internal_long): Set length attribute to 2 instead of 1.
7575         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
7576         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
7577         prefix_rex attribute.
7578         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
7579         New predicates.
7580         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
7581
7582 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7583
7584         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
7585
7586 2009-05-20  Ian Lance Taylor  <iant@google.com>
7587
7588         * tree.c (build_tree_list_vec_stat): New function.
7589         (ctor_to_vec): New function.
7590         (build_nt_call_vec): New function.
7591         (build_call_array): Change args to be a const pointer.
7592         (build_call_vec): New function.
7593         * tree.h (build_nt_call_vec): Declare.
7594         (build_tree_list_vec_stat): Declare.
7595         (build_tree_list_vec): Define.
7596         (build_call_array): Update declaration.
7597         (build_call_vec): Declare.
7598         (ctor_to_vec): Declare.
7599         * c-common.c (tree_vector_cache): New static variable.
7600         (make_tree_vector): New function.
7601         (release_tree_vector): New function.
7602         (make_tree_vector_single): New function.
7603         (make_tree_vector_copy): New function.
7604         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
7605         (make_tree_vector_single, make_tree_vector_copy): Declare.
7606         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
7607         (c_parser_expr_list): Don't manage cache here, instead call
7608         make_tree_vector.
7609         (c_parser_release_expr_list): Remove static function.
7610         (c_parser_vec_to_tree_list): Remove static function.
7611         (c_parser_attributes): Call build_tree_list_vec instead of
7612         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
7613         c_parser_release_expr_list.
7614         (c_parser_postfix_expression_after_primary): Likewise.
7615         (c_parser_objc_keywordexpr): Likewise.
7616
7617 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
7618
7619         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
7620         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
7621         TARGET_CONVERT_TO_TYPE.
7622         * hooks.c (hook_tree_const_tree_null): Define.
7623         * hooks.h (hook_tree_const_tree_null): Declare.
7624         * target.h (struct gcc_target):  Add invalid_parameter_type,
7625         invalid_return_type, promoted_type, and convert_to_type fields.
7626         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
7627         (TARGET_INVALID_RETURN_TYPE): Define.
7628         (TARGET_PROMOTED_TYPE): Define.
7629         (TARGET_CONVERT_TO_TYPE): Define.
7630         (TARGET_INITIALIZER): Update for new fields.
7631         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
7632         (grokparms): Check targetm.invalid_parameter_type.
7633         * c-typeck.c (default_conversion): Check targetm.promoted_type.
7634         * c-convert.c (convert): Check targetm.convert_to_type.
7635
7636 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
7637
7638         * config/mips/mips.md (*extenddi_truncate<mode>,
7639         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
7640         defintions.
7641         (*extendhi_truncateqi): New define_insn_and_sptit.
7642
7643 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
7644
7645         PR middle-end/40204
7646         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
7647         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
7648
7649 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
7650
7651         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
7652         the operand of VIEW_CONVERT_EXPR.
7653
7654 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
7655
7656         * config/i386/driver-i386.c (host_detect_local_cpu): Check
7657         extended family and model for Intel processors.  Support Intel Atom.
7658
7659 2009-05-20  Olivier Hainque  <hainque@adacore.com>
7660
7661         * gstab.h (stab_code_type): Define, to be used instead of the
7662         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
7663         notice.
7664         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
7665         occurrences by stab_code_type.
7666         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
7667
7668 2009-05-20  Martin Jambor  <mjambor@suse.cz>
7669
7670         * tree-flow.h (insert_edge_copies_seq): Undeclare.
7671         (sra_insert_before): Likewise.
7672         (sra_insert_after): Likewise.
7673         (sra_init_cache): Likewise.
7674         (sra_type_can_be_decomposed_p): Likewise.
7675         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
7676         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
7677         (sra_insert_before): Likewise.
7678         (sra_insert_after): Likewise.
7679         (sra_init_cache): Likewise.
7680         (insert_edge_copies_seq): Made static and moved upwards.
7681
7682         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
7683         case.
7684
7685         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
7686
7687         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
7688         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
7689         simple copies.
7690
7691 2009-05-20  Richard Guenther  <rguenther@suse.de>
7692
7693         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
7694         with mismatched comparison modes.
7695
7696 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7697
7698         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
7699         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
7700         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
7701         with shifts for Thumb2.
7702         (orsi_notsi): New for orn.
7703         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
7704         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
7705         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
7706         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
7707         Don't invert remainder for IOR.
7708         
7709 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
7710
7711         PR tree-optimization/40087
7712         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
7713         number_of_iterations_ne): Rename never_infinite argument.
7714         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
7715         number_of_iterations_le): Handle pointer-type ivs when
7716         exit_must_be_taken is false.
7717         (number_of_iterations_cond):  Do not always assume that
7718         exit_must_be_taken if the control variable is a pointer.
7719
7720 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7721
7722         * c-typeck.c (build_binary_op): Allow % on integal vectors.
7723         * doc/extend.texi (Vector Extension): Document that % is allowed too.
7724
7725 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
7726
7727         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
7728         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
7729
7730 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7731
7732         PR c/40172
7733         * c.opt (Wlogical-op): Disabled by default.
7734         * c-opt (c_common_post_options): Do not enable Wlogical-op with
7735         Wextra.
7736         * doc/invoke.texi (Wlogical-op): Likewise.
7737         
7738 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
7739
7740         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
7741         into CASE_CONVERT.
7742         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
7743         Propagate the type of the first operand.
7744         <ASSERT_EXPR>: Simplify.
7745         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
7746         Rewrite using the RHS code as discriminant.
7747         <NOP_EXPR>: Turn into CASE_CONVERT.
7748         <PLUS_EXPR>: Propagate the type of the first operand.
7749
7750 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
7751
7752         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
7753         (ia64_dconst_0_375): New.
7754         * config/ia64/ia64.c (ia64_override_options): Remove
7755         -minline-sqrt-min-latency warning.
7756         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
7757         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
7758         * config/ia64/ia64.md (*sqrt_approx): Remove.
7759         (sqrtsf2): Remove #if 0.
7760         (sqrtsf2_internal_thr): Rewrite and move to div.md.
7761         (sqrtdf): Remove assert.
7762         (sqrtdf2_internal_thr): Rewrite and move to div.md.
7763         (sqrtxf2): Remove #if 0.
7764         (sqrtxf2_internal_thr): Rewrite and move to div.md.
7765         * div.md (sqrt_approx_rf): New.
7766         (sqrtsf2_internal_thr): New implementation.
7767         (sqrtsf2_internal_lat): New.
7768         (sqrtdf2_internal_thr: New implementation.
7769         (sqrtxf2_internal): New implementation.
7770
7771 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
7772             Hans-Peter Nilsson  <hp@axis.com>
7773
7774         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
7775         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
7776         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
7777         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
7778         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
7779         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
7780         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
7781         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
7782         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
7783         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
7784         * c-common.c: ...from here.
7785
7786 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7787
7788         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
7789
7790 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7791
7792         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
7793
7794 2009-05-19  Ben Elliston  <bje@au.ibm.com>
7795
7796         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
7797         assignments with memcpy calls.
7798         (add_fdes): Likewise.
7799         (binary_search_unencoded_fdes): Likewise.
7800         (linear_search_fdes): Eliminate type puns.
7801         
7802 2009-05-19  Richard Guenther  <rguenther@suse.de>
7803
7804         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
7805         not falsely claim to have propagated into all uses.
7806
7807 2009-05-19  Ben Elliston  <bje@au.ibm.com>
7808
7809         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
7810         version to v3.0.
7811
7812 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7813
7814         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
7815         * config/sh/sh.c (sh_legitimate_address_p): Make static.
7816         (TARGET_LEGITIMATE_ADDRESS_P): New.
7817         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
7818         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
7819         
7820 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
7821
7822         PR debug/40109
7823         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
7824         child of the containing namespace's DIE.
7825
7826 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
7827
7828         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
7829         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
7830         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
7831         extend patterns.
7832
7833 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
7834
7835         PR target/39942
7836         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
7837         gen_align with gen_pad.
7838         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
7839         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
7840
7841         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
7842         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
7843
7844         * config/i386/i386.md (align): Renamed to ...
7845         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
7846         ASM_OUTPUT_MAX_SKIP_PAD.
7847
7848 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
7849
7850         * config.gcc: Fix variable syntax.
7851
7852         PR target/39531
7853         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
7854         before calling exact_log2.
7855         (output_iorsi3): Likewise.
7856         (output_xorsi3): Likewise.
7857
7858 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7859
7860         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
7861         for the none zero constant operand except for EQ and NE
7862         comprisons even when the first operand is R0.
7863
7864 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
7865
7866         * config/s390/2064.md: Remove trailing whitespaces.
7867         * config/s390/2084.md: Likewise.
7868         * config/s390/constraints.md: Likewise.
7869         * config/s390/fixdfdi.h: Likewise.
7870         * config/s390/libgcc-glibc.ver: Likewise.
7871         * config/s390/s390-modes.def: Likewise.
7872         * config/s390/s390-protos.h: Likewise.
7873         * config/s390/s390.c: Likewise.
7874         * config/s390/s390.h: Likewise.
7875         * config/s390/s390.md: Likewise.
7876         * config/s390/tpf-unwind.h: Likewise.
7877
7878 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7879
7880         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
7881
7882 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7883
7884         M68K TLS support.
7885         * configure.ac (m68k-*-*): Check if binutils support TLS.
7886         * configure: Regenerate.
7887         * config/m68k/predicates.md (symbolic_operand): Extend comment.
7888         * config/m68k/constraints.md (Cu): New constraint.
7889         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
7890         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
7891         (movsi): Handle TLS symbols.
7892         (addsi3_5200): Handle XTLS symbols, indent.
7893         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
7894         (m68k_tls_reference_p): Declare.
7895         (m68k_legitimize_address): Declare.
7896         (m68k_unwrap_symbol): Declare.
7897         * config/m68k/m68k.opt (mxtls): New option.
7898         * config/m68k/m68k.c (ggc.h): Include.
7899         (m68k_output_dwarf_dtprel): Implement hook.
7900         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
7901         (m68k_expand_prologue): Load GOT pointer when function needs it.
7902         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
7903         (m68k_legitimate_constant_address_p): Same.
7904         (m68k_decompose_address): Handle TLS references.
7905         (m68k_get_gp): New static function.
7906         (enum m68k_reloc): New contants.
7907         (TLS_RELOC_P): New macro.
7908         (m68k_wrap_symbol): New static function.
7909         (m68k_unwrap_symbol): New function.
7910         (m68k_final_prescan_insn_1): New static function.
7911         (m68k_final_prescan_insn): New function.
7912         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
7913         functions.
7914         (legitimize_pic_address): Handle TLS references..
7915         (m68k_tls_get_addr, m68k_get_tls_get_addr)
7916         (m68k_libcall_value_in_a0_p)
7917         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
7918         (m68k_call_m68k_read_tp): Helper variables and functions for ...
7919         (m68k_legitimize_tls_address): Handle TLS references.
7920         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
7921         New functions.
7922         (m68k_legitimize_address): Handle TLS symbols.
7923         (m68k_get_reloc_decoration): New static function.
7924         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
7925         UNSPEC_RELOC32.
7926         (m68k_output_dwarf_dtprel): Implement hook.
7927         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
7928         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
7929         m68k_call_* routines.
7930         (sched_attr_op_type): Handle TLS symbols.
7931         (gt-m68k.h): Include.
7932         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
7933         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
7934
7935 2009-05-18  Martin Jambor  <mjambor@suse.cz>
7936
7937         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
7938         (visit_store_addr_for_mod_analysis): New function.
7939         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
7940         (determine_cst_member_ptr): Use gimple_assign_single_p.
7941         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
7942         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
7943         operands.  Don't check number of operands of a NOP_EXPR.
7944
7945 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
7946
7947         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
7948
7949 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7950
7951         PR c/40172
7952         * c-common.c (warn_logical_operator): Don't warn if one of
7953         expression isn't always true or false.
7954
7955 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
7956
7957         * config/i386/biarch32.h: New file.
7958         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
7959
7960 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
7961
7962         * config/mips/mips.md (*zero_extend<mode>_trunchi,
7963         *zero_extend<mode>_truncqi): Merge these into ...
7964         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
7965         Name the pattern following this as *zero_extendhi_truncqi.
7966
7967 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
7968
7969         PR middle-end/39301
7970         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
7971         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
7972         (output_info): Make field HOST_WIDEST_INT.
7973         (print_statistics): Use HOST_WIDEST_INT_PRINT.
7974         (dump_bitmat_statistics): Same.
7975
7976 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
7977
7978         * config.gcc (use_gcc_stdint):  Set to wrap.
7979         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7980         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7981         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7982         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7983         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7984         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7985         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7986         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7987
7988 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
7989
7990         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
7991         tune_64.
7992         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
7993         Move definitions earlier.
7994         (OPT_ARCH64, OPT_ARCH32): Define.
7995         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
7996         and tune_64.
7997
7998 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
7999
8000         PR target/40153
8001         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
8002         implies.
8003
8004 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
8005
8006         * arm.md (movdi2): Copy non-reg values to DImode registers.
8007
8008 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
8009
8010         PR target/39942
8011         * final.c (label_to_max_skip): New function.
8012         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
8013         CODE_LABEL_NUMBER <= max_labelno.
8014         * output.h (label_to_max_skip): New prototype.
8015         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
8016         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
8017         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
8018         Handle CODE_LABELs with >= 16 byte alignment or with
8019         max_skip == (1 << align) - 1.
8020         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
8021         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
8022
8023         PR target/39942
8024         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
8025         .p2align 3 if MAX_SKIP is smaller than 7.
8026         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8027
8028 2009-05-15  Ian Lance Taylor  <iant@google.com>
8029
8030         * alias.c (struct alias_set_entry_d): Rename from struct
8031         alias_set_entry.  Change all uses.
8032         * except.c (struct call_site_record_d): Rename from struct
8033         call_site_record.  Change all uses.
8034         * except.h (struct eh_region_d): Rename from struct eh_region.
8035         Change all uses.
8036         * gcse.c (struct hash_table_d): Rename from struct hash_table.
8037         Change all uses.
8038         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
8039         ivtype_map_elt.  Change all uses.
8040         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
8041         Change all uses.
8042         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
8043         * graphite.h (struct name_tree_d): Rename from struct name_tree.
8044         Change all uses.
8045         (struct sese_d): Rename from struct sese.  Change all uses.
8046         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
8047         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
8048         * optabs.h (struct optab_d): Rename from struct optab.  Change all
8049         uses.
8050         (struct convert_optab_d): Rename from struct convert_optab.
8051         Change all uses.
8052         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
8053         ipa_opt_pass.  Change all uses.
8054         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
8055         all uses.
8056
8057         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
8058         defined as a typedef.
8059         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
8060         defined as a tag.
8061
8062 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8063
8064         PR 16302
8065         * fold-const.c (make_range,build_range_check,merge_ranges): Move
8066         declaration to...
8067         (merge_ranges): Returns bool. 
8068         * tree.h (make_range): .. to here.
8069         (build_range_check): Likewise.
8070         (merge_ranges): Likewise. Renamed from merge_ranges.
8071         * c-typeck.c (parser_build_binary_op): Update calls to
8072         warn_logical_operator.
8073         * c-common.c (warn_logical_operator): Add new warning.
8074         * c-common.h (warn_logical_operator): Update declaration.
8075         
8076 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8077
8078         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
8079         
8080 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8081
8082         * doc/install.texi: Document MPC requirements, flags etc.
8083
8084         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
8085         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
8086         Evaluate constant arguments.
8087         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
8088         (fold_builtin_1): Likewise, also evaluate constant arguments.
8089         Remove superfluous break.
8090         (do_mpc_ckconv): New.
8091         * real.h: Include mpc.h.
8092         * toplev.c (print_version): Output MPC version info if available.
8093
8094 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
8095
8096         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
8097
8098 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
8099
8100         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
8101         only once.
8102
8103 2009-05-15  Jan Hubicka  <jh@suse.cz>
8104
8105         * doc/invoke.texi (max-early-inliner-iterations): New flag.
8106         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
8107         (try_inline): Fix return value.
8108         (cgraph_decide_inlining_incrementally): Honor new value.
8109         (cgraph_early_inlining): Handle indirect inlining.
8110         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
8111
8112 2009-05-15  Jan Hubicka  <jh@suse.cz>
8113
8114         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
8115         * cgraphunit.c (cgraph_finalize_function): Set it.
8116         (cgraph_expand_function): Use it.
8117
8118 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
8119
8120         * real.c (encode_ieee_half): Define.
8121         (decode_ieee_half): Define.
8122         (ieee_half_format): Define.
8123         (arm_half_format): Define.
8124         * real.h (ieee_half_format): Declare.
8125         (arm_half_format): Declare.
8126
8127 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
8128
8129         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
8130         swapped, and reversed optabs exist before trying to use them.
8131
8132 2009-05-15  Paul Brook  <paul@codesourcery.com>
8133             Sandra Loosemore  <sandra@codesourcery.com>
8134
8135         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
8136         loads.  Allow PRE_DEC.
8137         (output_move_neon): Handle PRE_DEC.
8138         (arm_print_operand): Add 'A' for neon structure loads.
8139         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
8140         * config/arm/neon.md (neon_mov): Update comment.
8141         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
8142         calls.
8143         (Um): New constraint.
8144
8145 2009-05-15  Jan Hubicka  <jh@suse.cz>
8146
8147         Revert the following patch until testsuite fallout is fixed:
8148         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8149         * cgraph.h (struct inline_summary): New filed self_wize,
8150         size_inlining_benefit, self_time and time_inlining_benefit.
8151         (struct cgraph_global_info): Replace insns by time ans size fields.
8152         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8153         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8154         (ipcp_update_callgraph): Do not touch function bodies.
8155         * ipa-inline.c: Include except.h
8156         (MAX_TIME): New constant.
8157         (overall_insns): Remove
8158         (overall_size, max_benefit): New static variables.
8159         (cgraph_estimate_time_after_inlining): New function.
8160         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8161         (cgraph_clone_inlined_nodes): Update size.
8162         (cgraph_mark_inline_edge): Update size.
8163         (cgraph_estimate_growth): Use size info.
8164         (cgraph_check_inline_limits): Check size.
8165         (cgraph_default_inline_p): Likewise.
8166         (cgraph_edge_badness): Compute badness based on benefit and size cost.
8167         (cgraph_decide_recursive_inlining): Check size.
8168         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8169         and times.
8170         (cgraph_decide_inlining): Likewise.
8171         (cgraph_decide_inlining_incrementally): Likewise; honor
8172         PARAM_EARLY_INLINING_INSNS.
8173         (likely_eliminated_by_inlining_p): New predicate.
8174         (estimate_function_body_sizes): New function.
8175         (compute_inline_parameters): Use it.
8176         * except.c (must_not_throw_labels): New function.
8177         * except.h (must_not_throw_labels): Declare.
8178         * tree-inline.c (init_inline_once): Kill inlining_weigths
8179         * tree-ssa-structalias.c: Avoid uninitialized warning.
8180         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
8181         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
8182         (PARAM_INLINE_CALL_COST): Remove.
8183         (PARAM_EARLY_INLINING_INSNS): New.
8184
8185 2009-05-15  Richard Guenther  <rguenther@suse.de>
8186
8187         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
8188         not TODO_update_ssa.
8189
8190 2009-05-15  Richard Guenther  <rguenther@suse.de>
8191
8192         PR tree-optimization/39999
8193         * gimple.h (gimple_expr_type): Use the expression type looking
8194         through useless conversions.
8195         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
8196         (vn_nary_op_insert_stmt): Likewise.
8197         (simplify_binary_expression): Likewise.
8198
8199 2009-05-15  Richard Guenther  <rguenther@suse.de>
8200
8201         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
8202         New options, enabled by default.
8203         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
8204         Document.
8205         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
8206         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
8207         * tree-ssa-structalias.c (gate_tree_pta): New function.
8208         (pass_build_alias): Use it.
8209
8210 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
8211
8212         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
8213         recurse on an invariant address if a conversion from a pointer
8214         type to a wider integer type is involved.
8215
8216 2009-05-15  Jan Hubicka  <jh@suse.cz>
8217
8218         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8219         * cgraph.h (struct inline_summary): New filed self_wize,
8220         size_inlining_benefit, self_time and time_inlining_benefit.
8221         (struct cgraph_global_info): Replace insns by time ans size fields.
8222         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8223         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8224         (ipcp_update_callgraph): Do not touch function bodies.
8225         * ipa-inline.c: Include except.h
8226         (MAX_TIME): New constant.
8227         (overall_insns): Remove
8228         (overall_size, max_benefit): New static variables.
8229         (cgraph_estimate_time_after_inlining): New function.
8230         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8231         (cgraph_clone_inlined_nodes): Update size.
8232         (cgraph_mark_inline_edge): Update size.
8233         (cgraph_estimate_growth): Use size info.
8234         (cgraph_check_inline_limits): Check size.
8235         (cgraph_default_inline_p): Likewise.
8236         (cgraph_edge_badness): Compute badness based on benefit and size cost.
8237         (cgraph_decide_recursive_inlining): Check size.
8238         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8239         and times.
8240         (cgraph_decide_inlining): Likewise.
8241         (cgraph_decide_inlining_incrementally): Likewise; honor
8242         PARAM_EARLY_INLINING_INSNS.
8243         (likely_eliminated_by_inlining_p): New predicate.
8244         (estimate_function_body_sizes): New function.
8245         (compute_inline_parameters): Use it.
8246         * except.c (must_not_throw_labels): New function.
8247         * except.h (must_not_throw_labels): Declare.
8248         * tree-inline.c (init_inline_once): Kill inlining_weigths
8249         * tree-ssa-structalias.c: Avoid uninitialized warning.
8250         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
8251         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
8252         (PARAM_INLINE_CALL_COST): Remove.
8253         (PARAM_EARLY_INLINING_INSNS): New.
8254         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
8255         (inline-call-cost): Remove.
8256         (early-inlining-insns): New.
8257
8258 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
8259
8260         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
8261         for bounds.
8262         (print_int_cst_bounds_in_octal_p): Likewise.
8263         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
8264         with subtypes.
8265         * dwarf2out.c (base_type_die): Likewise.
8266         (is_subrange_type): Delete.
8267         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
8268         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
8269         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
8270         if the destination type is boolean.
8271         (build_range_check): Do not special-case subtypes.
8272         (fold_sign_changed_comparison): Likewise.
8273         (fold_unary): Likewise.
8274         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
8275         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
8276         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
8277         * tree.c (subrange_type_for_debug_p): New predicate based on the
8278         former is_subrange_type.
8279         * tree.h (subrange_type_for_debug_p): Declare.
8280         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
8281         (convert_affine_scev): Remove call to above function.
8282         (chrec_convert_aggressive): Likewise.
8283         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
8284         false for conversions involving subtypes.
8285         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
8286         (vrp_val_min): Likewise.
8287         (needs_overflow_infinity): Likewise.
8288         (extract_range_from_unary_expr): Likewise.
8289
8290 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
8291
8292         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
8293         * config/frv/frv.c: Likewise.
8294         * config/s390/s390.c: Likewise.
8295         * config/sparc/sparc.h: Likewise.
8296         * config/i386/i386.h: Likewise.
8297         * config/i386/i386.c: Likewise.
8298         * config/crx/crx.c: Likewise.
8299         * config/m68hc11/m68hc11.h: Likewise.
8300         * config/iq2000/iq2000.c: Likewise.
8301         * config/mn10300/mn10300.h: Likewise.
8302         * config/mn10300/mn10300.c: Likewise.
8303         * config/m68k/m68k.c: Likewise.
8304         * config/rs6000/rs6000.c: Likewise.
8305         * config/rs6000/xcoff.h: Likewise.
8306         * config/rs6000/linux64.h: Likewise.
8307         * config/rs6000/sysv4.h: Likewise.
8308         * config/score/score3.c: Likewise.
8309         * config/score/score7.c: Likewise.
8310         * config/score/score.c: Likewise.
8311         * config/arm/arm.md: Likewise.
8312         * config/mips/mips.c: Likewise.
8313         * config/mips/mips.md: Likewise.
8314         * config/bfin/bfin.h: Likewise.
8315         * config/pa/pa.c: Likewise.
8316         * config/pa/constraints.md: Likewise.
8317
8318         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
8319         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
8320         * config/pdp11/pdp11.h: Use memory_address_p instead.
8321
8322 2009-05-14  Ian Lance Taylor  <iant@google.com>
8323
8324         * passes.c (finish_optimization_passes): Change i to int.
8325         * plugin.c (plugins_active_p): Change event to int.
8326         (dump_active_plugins): Likewise.
8327         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
8328         Add cast.
8329         * tree.c (tree_range_check_failed): Change c to unsigned int.
8330         (omp_clause_range_check_failed): Likewise.
8331         (build_common_builtin_nodes): Change mode to int.  Add cast.
8332         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
8333         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
8334
8335         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
8336         ++ or -- with a variable of enum type.
8337
8338 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
8339
8340         PR driver/40144
8341         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
8342
8343 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
8344
8345         * store-motion.c: Do not include params.h
8346         * Makefile.in: Fix dependencies for various files.
8347
8348 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
8349
8350         * auto-inc-dec.c: Fix pass description, remove apparent
8351         accidental duplication.
8352
8353 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
8354
8355         PR middle-end/40147
8356         * ipa-utils.h (memory_identifier_string): Moved to ...
8357         * tree.h (memory_identifier_string): Here.  Add GTY(()).
8358
8359 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
8360
8361         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
8362         in the former documentation of...
8363         (GO_IF_LEGITIMATE_ADDRESS): ... this.
8364         * ira-conflicts.c (get_dup_num): Use address_operand.
8365         * targhooks.c (default_legitimate_address_p): New.
8366         * targhooks.h (default_legitimate_address_p): New.
8367         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
8368         Call hook.
8369         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
8370         * target.h (struct target): Add legitimate_address_p.
8371         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
8372         (TARGET_INITIALIZER): Include it.
8373
8374         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8375         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
8376         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
8377         (TARGET_LEGITIMATE_ADDRESS_P): New.
8378
8379         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8380         (REG_OK_STRICT_P): Delete.
8381         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
8382         (frv_legitimate_address_p_1): ... this.
8383         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
8384         (frv_legitimate_address_p_1): ... the renamed old
8385         frv_legitimate_address_p.
8386         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
8387         (TARGET_LEGITIMATE_ADDRESS_P): New.
8388
8389         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8390         * config/s390/s390-protos.h (legitimate_address_p): Remove.
8391         * config/s390/s390.c (legitimate_address_p): Rename to...
8392         (s390_legitimate_address_p): ... this, make static.
8393         (legitimize_address): Adjust call.
8394         (TARGET_LEGITIMATE_ADDRESS_P): New.
8395         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
8396
8397         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8398         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
8399         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
8400         (TARGET_LEGITIMATE_ADDRESS_P): New.
8401
8402         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8403         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
8404         * config/spu/spu.c (spu_legitimate_address): Rename to...
8405         (spu_legitimate_address_p): ... this, make static.
8406         (TARGET_LEGITIMATE_ADDRESS_P): New.
8407
8408         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8409         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
8410         * config/sparc/sparc.c (legitimate_address_p): Rename to...
8411         (sparc_legitimate_address_p): ... this, make static and return bool.
8412         (legitimize_address): Adjust call.
8413         (TARGET_LEGITIMATE_ADDRESS_P): New.
8414
8415         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8416         * config/i386/i386-protos.h (legitimate_address_p): Remove.
8417         * config/i386/i386.c (legitimate_address_p): Rename to...
8418         (ix86_legitimate_address_p): ... this, make static.
8419         (constant_address_p): Move after it, adjust call.
8420         (TARGET_LEGITIMATE_ADDRESS_P): New.
8421
8422         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8423         * config/avr/avr-protos.h (legitimate_address_p): Remove.
8424         * config/avr/avr.c (legitimate_address_p): Rename to...
8425         (avr_legitimate_address_p): ... this, make static.
8426         (legitimize_address): Adjust call.
8427         (TARGET_LEGITIMATE_ADDRESS_P): New.
8428
8429         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8430         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
8431         * config/crx/crx.c (crx_legitimate_address_p): Make static.
8432         (TARGET_LEGITIMATE_ADDRESS_P): New.
8433
8434         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8435         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
8436         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
8437         (TARGET_LEGITIMATE_ADDRESS_P): New.
8438
8439         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8440         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
8441         Remove.
8442         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
8443         Make static.
8444         (TARGET_LEGITIMATE_ADDRESS_P): New.
8445
8446         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8447         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
8448         Remove.
8449         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
8450         Rename to...
8451         (m68hc11_legitimate_address_p): ... this, make static.
8452         (go_if_legitimate_address_internal): Rename to...
8453         (m68hc11_legitimate_address_p_1): ... this.
8454         (legitimize_address): Adjust call.
8455         (TARGET_LEGITIMATE_ADDRESS_P): New.
8456
8457         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8458         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
8459         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
8460         (TARGET_LEGITIMATE_ADDRESS_P): New.
8461
8462         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8463         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
8464         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
8465         (mn10300_legitimate_address_p): ... this, make static.
8466         (TARGET_LEGITIMATE_ADDRESS_P): New.
8467
8468         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8469         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
8470         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
8471         (TARGET_LEGITIMATE_ADDRESS_P): New.
8472
8473         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8474         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
8475         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
8476         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8477         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
8478         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
8479         (rs6000_legitimate_address_p): ... this, make static.
8480         (TARGET_LEGITIMATE_ADDRESS_P): New.
8481         (REG_MODE_OK_FOR_BASE_P): Delete.
8482         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
8483
8484         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8485         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
8486         Delete.
8487         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
8488         static, adjust types.
8489         (TARGET_LEGITIMATE_ADDRESS_P): New.
8490
8491         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8492         * config/score/score.c (score_address_p): Rename to...
8493         (score_legitimate_address_p): ... this.
8494         (TARGET_LEGITIMATE_ADDRESS_P): New.
8495         * config/score/score3.c (score3_address_p): Rename to...
8496         (score3_legitimate_address_p): ... this.
8497         * config/score/score7.c (score7_address_p): Rename to...
8498         (score7_legitimate_address_p): ... this.
8499
8500         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
8501         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
8502         GO_IF_LEGITIMATE_ADDRESS): Delete.
8503         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
8504         thumb2_legitimate_address_p): Delete.
8505         (arm_legitimate_address_p): Rename to...
8506         (arm_legitimate_address_outer_p): ... this.
8507         * config/arm/constraints.md ("Uq"): Adjust call.
8508         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
8509         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
8510         to...
8511         (arm_legitimate_address_outer_p): ... this.
8512         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
8513         static.
8514         (TARGET_LEGITIMATE_ADDRESS_P): New.
8515
8516         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8517         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
8518         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
8519         (TARGET_LEGITIMATE_ADDRESS_P): New.
8520
8521         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8522         * config/vax/vax-protos.h (legitimate_address_p): Remove.
8523         * config/vax/vax.c (legitimate_address_p): Rename to...
8524         (vax_legitimate_address_p): ... this, make static.
8525         (TARGET_LEGITIMATE_ADDRESS_P): New.
8526
8527         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8528         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
8529         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
8530         (TARGET_LEGITIMATE_ADDRESS_P): New.
8531
8532         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8533         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
8534         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
8535         (mmix_legitimate_address_p): ... this, make static.
8536         (TARGET_LEGITIMATE_ADDRESS_P): New.
8537
8538         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8539         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
8540         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
8541         (TARGET_LEGITIMATE_ADDRESS_P): New.
8542
8543 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
8544
8545         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
8546         of MODE_COMPLEX_INT.
8547
8548 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8549
8550         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
8551         LCT_NORMAL in function call.
8552         * mips-tdump.c (print_file_desc): Add cast to enum type.
8553         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
8554         (mark_stabs): Add casts to enum types.
8555         (parse_stabs_common): Add casts to enum types.
8556
8557 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
8558
8559         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
8560         Check for invalid values of LETTER.
8561
8562 2009-05-13  Taras Glek  <tglek@mozilla.com>
8563
8564         * attribs.c (register_attribute): moved out attribute registration
8565         into register_attribute.
8566         * doc/plugins.texi: Documented register_attribute and
8567         PLUGIN_ATTRIBUTES.
8568         * gcc-plugin.h: Added forward decl for register_attribute.
8569         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
8570         * plugin.c (register_callback, invoke_plugin_callbacks): Added
8571         PLUGIN_ATTRIBUTES boilerplate.
8572
8573 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
8574
8575         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
8576         values even in sentinel and empty entries.
8577         (ms_printf_flag_specs):  Likewise.
8578         (ms_scanf_flag_specs):  Likewise.
8579         (ms_strftime_flag_specs):  Likewise.
8580         (ms_print_char_table):  Likewise.
8581         (ms_scan_char_table):  Likewise.
8582         (ms_time_char_table):  Likewise.
8583
8584 2009-05-13  Doug Kwan  <dougkwan@google.com>
8585
8586         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
8587
8588 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
8589
8590         * config/mips/mips.md (store): Add attributes for QI and HI.
8591         Update comment.
8592         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
8593         (truncdi<mode>2): ... this new pattern.
8594
8595 2009-05-13  Brad Hards  <bradh@kde.org>
8596
8597         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
8598
8599 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
8600             Ben Elliston <bje@au.ibm.com>
8601
8602         PR middle-end/40035
8603         * dse.c (check_mem_read_rtx): Guard against width == -1.
8604
8605 2009-05-13  Michael Matz  <matz@suse.de>
8606
8607         PR middle-end/39976
8608         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
8609         (trivially_conflicts_p): New function.
8610         (insert_backedge_copies): Use it.
8611
8612 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
8613
8614         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
8615         (handle_stdc_pragma): Use new enum constant names.
8616         (handle_pragma_float_const_decimal64): Ditto.
8617
8618 2009-05-13  Ian Lance Taylor  <iant@google.com>
8619
8620         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
8621         tree.def.
8622
8623 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
8624
8625         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
8626         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
8627         multilibs.
8628         * config/m68k/m68k.h (FL_UCLINUX): Define.
8629
8630 2009-05-13  Jan Hubicka  <jh@suse.cz>
8631
8632         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
8633
8634 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8635
8636         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
8637         unless -fschedule-insns is specified.
8638
8639 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8640
8641         PR target/39561
8642         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
8643         TARGET_EXPAND_CBRANCHDI4.
8644         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
8645         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
8646         (cmpeqdi): Fix comment.
8647
8648 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
8649
8650         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
8651         (sh_legitimate_address_p): Likewise.
8652         * config/sh/sh.c (sh_legitimate_index_p): New.
8653         (sh_legitimate_address_p): Likewise.
8654         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
8655         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
8656         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
8657         (MAYBE_BASE_REGISTER_RTX_P): New macro.
8658         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
8659         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
8660         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
8661         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
8662         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
8663
8664 2009-05-12  Jan Hubicka  <jh@suse.cz>
8665
8666         * tree-inline.c (estimate_operator_cost): Add operands;
8667         when division happens by constant, it is cheap.
8668         (estimate_num_insns): Loads and stores are not having cost of 0;
8669         EH magic stuff is cheap; when computing runtime cost of switch,
8670         use log2 base of amount of its cases; builtin_expect has cost of 0;
8671         compute cost for moving return value of call.
8672         (init_inline_once): Initialize time_based flags.
8673         * tree-inline.h (eni_weights_d): Add time_based flag.
8674
8675 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
8676
8677         * df-core.c: Update head documentation.
8678
8679 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8680
8681         PR bootstrap/40118
8682         * rs6000.c (rs6000_generate_compare): Use op1b instead of
8683         shadowing exisiting variable op1.
8684
8685 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
8686
8687         PR target/37179
8688         * config/i386/driver-i386.c (processor_signatures): New enum.
8689         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
8690         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
8691         processor signature to detect geode processor.
8692
8693 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
8694
8695         Revert:
8696
8697         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
8698
8699         * optabs.c (prepare_cmp_insn): Temporarily disable test that
8700         causes spurious differences between trunk and cond-optab branch.
8701
8702 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
8703
8704         * dojump.c (compare_from_rtx): Delete.
8705         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
8706         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
8707         if the comparison does not satisfy the predicate; test predicates for
8708         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
8709         further if one existing pattern fails.
8710         * expr.h (compare_from_rtx): Delete.
8711         (prepare_operand): Declare it.
8712         * optabs.c: Change "lib call" to "libcall" throughout.
8713         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
8714         HAVE_conditional_trap, emit_cmp_insn): Delete.
8715         (can_compare_p): Delete cmp_optab case.
8716         (prepare_float_lib_cmp): Return an rtx and a machine mode.
8717         Accept other parameters by value.
8718         (prepare_operand): Make non-static.
8719         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
8720         other parameters by value.  Try to widen operands here based on
8721         an optab_methods argument and looking at cbranch_optab.
8722         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
8723         loop.  Use cbranch_optab directly.
8724         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
8725         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
8726         assertion.
8727         (emit_conditional_move, emit_conditional_add): Inline what's needed
8728         of compare_from_rtx, using new prepare_cmp_insn for the rest.
8729         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
8730         with COMPARE.  Move cmov_optab and cstore_optab above
8731         with cbranch_optab, move cmp_optab down with ucmp_optab,
8732         remove tst_otpab.  Do not initialize trap_rtx.
8733         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
8734         for trap code.  Do not check HAVE_conditional_trap.  Use
8735         prepare_cmp_insn.  Accept no predicate for operand 3.
8736         * optabs.h (OTI_cmp): Mark as used only for libcalls.
8737         (OTI_ctrap, ctrap_optab): New.
8738         (tst_optab): Delete.
8739         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
8740         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
8741         with lookup of ctrap_optab.
8742         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
8743         Delete.
8744         (ctrap_optab): New.
8745
8746         * combine.c (combine_simplify_rtx, simplify_set): Do not
8747         special case comparing against zero for cc0 machines.
8748         * simplify-rtx.c (simplify_binary_operation_1): Never remove
8749         COMPARE on cc0 machines.
8750         (simplify_relational_operation): Return a new expression when
8751         a COMPARE could be removed.
8752         * final.c (final_scan_insn): Compare cc_status values
8753         against LHS of a (compare FOO (const_int 0)) cc0 source.
8754         Also check if cc_status.value is the full compare.
8755
8756         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
8757         (cstoreMM4): Document.
8758         (conditional_trap): Document ctrapMM4 instead.
8759         (sync_compare_and_swapMM): Refer to cbranchcc4.
8760         (Dependent Patterns): Eliminate obsolete information referring to
8761         the old jump optimization phase.
8762         (Canonicalization): Include cbranchcc4 case, omit canonicalization
8763         of compares with 0 on cc0 machines.
8764         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
8765         avoiding references to cc0.  Remove text about storing operands
8766         in cmpMM.
8767         * doc/tm.texi (Condition Codes): Include blurb on different
8768         condition code representations, separate into subsections for
8769         CC0, MODE_CC and conditional execution.
8770
8771         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
8772         alpha_emit_setcc): Accept operands and a machine mode.
8773         * config/alpha/alpha.c (alpha_emit_conditional_branch):
8774         Get code/op0/op1 from operands, use machine mode argument
8775         instead of alpha_compare.fp_p.  Emit the branch here.
8776         (alpha_emit_setcc): Likewise, and return boolean.
8777         (alpha_emit_conditional_move): Likewise.  Assert that
8778         cmp_op_mode == cmp_mode, and simplify accordingly.
8779         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
8780         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
8781         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
8782         Delete.
8783         (stack probe test): Use cbranchdi4.
8784         * config/alpha/predicates.md (alpha_cbranch_operator): New.
8785
8786         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
8787         * config/arc/arc.h (movsicc, movsfcc): Use it.
8788         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
8789         (cbranchsi4, cstoresi4): New.
8790         (cmpsi, bCC and sCC expanders): Remove. 
8791
8792         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
8793         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
8794         * config/arm/predicates.md (arm_comparison_operator): Only include
8795         floating-point operators if there is a hardware floating-point unit.
8796         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
8797         deferring to cbranch_cc and cstore_cc respectively.
8798         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
8799         cbranch_cc, cstore_cc): New.
8800         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
8801         arm_compare_op1.
8802         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
8803
8804         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
8805         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
8806         as an argument.
8807         (adjust_insn_length): Adjust calls.
8808         (avr_reorg): Handle (compare (foo) (const_int 0)).
8809         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
8810         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
8811         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
8812         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
8813         (bCC): Remove.
8814         (cbranchqi4, cbranchhi4, cbranchsi4): New.
8815         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
8816
8817         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
8818         (cbranchsi4, cstorebi4, cstoresi4): New.
8819         (movbisi): This insn is duplicate, split it to zero_extend.
8820         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
8821         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
8822         (bfin_optimize_loop): Use cbranch expander.
8823         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
8824         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
8825         (bfin_bimode_comparison_operator): ... this.
8826         (bfin_direct_comparison_operator): New.
8827  
8828         * config/cris/cris.c (cris_normal_notice_update_cc): Look
8829         inside (compare FOO (const_int 0)).
8830         (cris_rtx_costs): Handle ZERO_EXTRACT.
8831         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
8832         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
8833         (*tstdi_v32): Delete.
8834         (*cmpdi_non_v32): Add M alternative for operand 1.
8835         (cmpsi, cmp<mode>): Make private.
8836         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
8837         with COMPARE.
8838         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
8839
8840         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
8841         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
8842         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
8843         (cc_reg_operand): New.
8844         (any_cond): Delete.
8845         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
8846         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
8847         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
8848         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
8849         crx_expand_scond): Delete.
8850
8851         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
8852         (cbranchsi4): New.
8853         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
8854         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
8855
8856         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
8857         cstoresi4, cstoresf4, cstoredf4): New.
8858         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
8859         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
8860         Receive the entire operands array.
8861         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
8862         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
8863         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
8864         Get test/op0/op1 from the operands array.
8865         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
8866
8867         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
8868         (h8300_expand_store): New.
8869         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
8870         (const_int 0)).
8871         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
8872         (h8300_expand_store): New.
8873         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
8874         or do not try to produce (set (cc0) REG).
8875         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
8876         change a compare into a move to a scratch register.  Disable some
8877         peepholes when comparing with zero.
8878         (tstsi, tsthi, tstsi, cmpqi): Make private.
8879         (cmphi): Delete.
8880         (bCC, sCC): Delete.
8881         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
8882         cstoresi4): New.
8883
8884         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
8885         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
8886         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
8887         (ix86_emit_i387_log1p): Use cbranchxf2.
8888         (ix86_expand_setcc): Return void.
8889         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
8890         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
8891         cmp<MODEF>, cmpcc): Remove.
8892         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
8893         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
8894         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
8895         (sCC and bCC expanders): Remove.
8896         (stack_protect_test): Use cbranchcc4.
8897
8898         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
8899         Delete.
8900         (ia64_expand_compare): Accept three rtx by reference and return void.
8901         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
8902         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
8903         from *expr.  Update *expr with the BImode comparison to do.
8904         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
8905         cmptf, bCC, sCC, conditional_trap): Delete.
8906         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
8907         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
8908         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
8909         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
8910         * config/ia64/predicates.md (ia64_cbranch_operator): New.
8911
8912         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
8913         type of last argument.
8914         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
8915         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
8916         use machine mode argument instead of branch_type.  Remove dead
8917         code for floating-point comparisons.
8918         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
8919         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
8920         Remove.
8921         (cbranchsi4, cstoresi4): New.
8922         * config/iq2000/predicates.md (reg_or_const_operand): New.
8923
8924         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
8925         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
8926         (b<code>_op): Rewrite to...
8927         (bcc_op): ... this, using match_operator.
8928         (s<code>_op): Rewrite to...
8929         (scc_op): ... this, using match_operator.
8930         (s<code>_24_op): Rewrite to...
8931         (scc_op_24): ... this, using match_operator.
8932         (s<code>_<mode>): Rewrite to...
8933         (cstore<mode>4): ... this, using match_operator.
8934         (s<code>_<mode>_24): Rewrite to...
8935         (cstore<mode>4_24): ... this, using match_operator.
8936         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
8937         m32c_unpend_compare, m32c_expand_scc): Delete.
8938         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
8939         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
8940         (m32c_expand_movcc): Change NE to EQ if necessary.
8941         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
8942
8943         * config/m32r/m32r-protos.h (gen_cond_store): New.
8944         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
8945         (gen_cond_store): New, from sCC patterns.
8946         (m32r_expand_block_move): Use cbranchsi4.
8947         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
8948         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
8949         (cbranchsi4, cstoresi4): New.
8950         
8951         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
8952         Delete.
8953         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
8954         (m68hc11_notice_update_cc): Look into a compare with 0.
8955         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
8956         Delete.
8957         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
8958         cmphi, cmpqi, bCC): Delete.
8959         (cbranchsi4, cbranchhi4, cbranchqi4): New.
8960         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
8961         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
8962         sets with COMPARE.
8963
8964         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
8965         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
8966         * config/m68k/constraints.md (H): New.
8967         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
8968         the define_insn below.
8969         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
8970         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
8971         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
8972         patterns): Wrap RHS with COMPARE.
8973         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
8974         (*cmpdi_internal): Name this pattern.
8975         (cmpdi): Change to define_insn.
8976         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
8977         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
8978         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
8979         predicate.
8980         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
8981         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
8982         (conditional_trap): Change to...
8983         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
8984         (*conditional_trap): Use the ordered_comparison_operator and
8985         const1_operand predicates.
8986         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
8987         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
8988         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
8989         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
8990
8991         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
8992         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
8993         (mcore_gen_compare): New. 
8994         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
8995         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
8996         (mcore_gen_compare): ... this.
8997         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
8998         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
8999         (stack probe pattern): Use cbranchsi4.
9000
9001         * config/mips/predicates.md (mips_cstore_operator): New.
9002         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
9003         * config/mips/mips.md (any_cond): Delete.
9004         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
9005         always succeed.
9006         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
9007         fixuns_truncsfdi2): Use cbranch patterns.
9008         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
9009         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
9010         Adjust call to mips_expand_conditional_branch.
9011         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
9012         cstore<GPR:mode>4.
9013         * config/mips/mips-protos.h (mips_expand_conditional_branch,
9014         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
9015         * config/mips/mips.c (cmp_operands): Delete.
9016         (mips_emit_compare): Get comparison operands from *op0/*op1.
9017         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
9018         that it succeeds.  Use op0/op1 instead of cmp_operands.
9019         (mips_expand_conditional_branch, mips_expand_conditional_move,
9020         mips_expand_conditional_trap): Likewise.
9021         (mips_block_move_loop): Use cbranch patterns. 
9022         * config/mips/mips.h (cmp_operands): Delete.
9023
9024         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
9025         (mmix_gen_compare_reg): Just return a register in the right CC mode.
9026         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
9027         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
9028         (*cmpcc_folded): Rename to...
9029         (*cmpdi_folded): this.
9030         (*cmpcc): Rename to...
9031         (*cmps): ... this.
9032         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
9033         (bCC): Remove.
9034         (cbranchdi4): New.
9035         (cbranchdf4): New.  Handle invalid comparisons here.
9036         * config/mmix/predicates.md (float_comparison_operator): New.
9037
9038         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
9039         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
9040         * config/mn10300/mn10300.md (tst): Delete.
9041         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
9042         Name these patterns and wrap RHS in a compare.
9043         (*cmpsi): Make this pattern private.  Include tst.
9044         (*cmpsf): Make this pattern private.
9045         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
9046         (compare with zero peepholes): Likewise.
9047         (bCC): Remove.
9048         (cbranchsi4, cbranchsf4): New.
9049         (casesi): Use cbranchsi4.
9050
9051         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
9052         hppa_branch_type): Delete.
9053         (return_addr_rtx): Use cbranchsi4.
9054         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
9055         Emit CCFPmode comparison here.
9056         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
9057         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
9058         hppa_branch_type): Delete.
9059         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
9060         (movsicc, movdicc): Remove references to hppa_compare_op0,
9061         hppa_compare_op1 and compare_from_rtx.
9062         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
9063         (casesi): Use cbranchsi4.
9064
9065         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
9066         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
9067         * config/pdp11/pdp11.md (register_or_const0_operand): New.
9068         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
9069         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
9070         (bCC): Delete.
9071         (cbranchdf4, cbranchhi4, cbranchqi4): New.
9072         (*branch, *branch_inverted): New.
9073
9074         * config/picochip/picochip.md (cbranchhi4): Use
9075         ordered_comparison_operator.
9076         (cmphi, bCC): Remove.
9077
9078         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
9079         (trap_comparison_operator): Delete.
9080         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
9081         rs6000_emit_cbranch): Accept mode and operands.
9082         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
9083         rs6000_compare_fp_p): Delete.   
9084         (rs6000_generate_compare): Accept mode and comparison.  Extract code
9085         and op0/op1 from there.  Replace references to rs6000_compare_op0
9086         and rs6000_compare_op1.
9087         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
9088         extract result from passed operands.
9089         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
9090         extract loc from passed operands.
9091         (rs6000_emit_cmove): Likewise.
9092         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
9093         rs6000_compare_fp_p): Delete.
9094         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
9095         (cbranch<GPR>4, cbranch<FP>4): New.
9096         (cstore<mode>4): New.  Consolidate here all choices about when to use
9097         portable or specialized sCC sequences.
9098         (stack_protect_test): Use cbranchsi4.
9099         (conditional_trap): Replace with ctrap<GPR>4.
9100         (conditional trap insn): Replace trap_comparison_operator with
9101         ordered_comparison_operator. 
9102
9103         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
9104         (s390_emit_prologue): Use ctrap.
9105         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
9106         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
9107         New predicates replacing...
9108         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
9109         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
9110         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
9111         (add<mode>cc): Do not use s390_compare_op0/op1.
9112         (s<code>): Change to...
9113         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
9114         (seq): Change to...
9115         (cstorecc4): ... this.  Handle EQ or NE equally.
9116         (*sne): Un-privatize for use in cstorecc4.
9117         (b<code>): Change to...
9118         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
9119         (conditional_trap): Replace with...
9120         (ctrap<GPR>4, ctrap<FP>4): ... these.
9121         (stack_protect): Use cbranchcc4.
9122
9123         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
9124         * config/score/score-protos.h (score_gen_cmp): Delete.
9125         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
9126         (score_block_move-loop): Use cbranchsi4.
9127         * config/score/score.md (cbranchsi4): New.
9128         (cmpsi, bCC): Delete.
9129         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
9130         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
9131         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
9132         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
9133         * config/score/score3.h (score3_gen_cmp): Delete.
9134         * config/score/score7.h (score7_gen_cmp): Delete.
9135
9136         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
9137         (sh_emit_scc_to_t): ... this.  Return void.
9138         (from_compare): Rename to...
9139         (sh_emit_compare_and_branch): ... this.
9140         (sh_emit_compare_and_set): New.
9141         (sh_expand_t_scc): Accept operands.
9142         * config/sh/predicates.md (sh_float_comparison_operator): New.
9143         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
9144         (prepare_scc_operands): Rename to...
9145         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
9146         arguments.
9147         (sh_emit_cheap_store_flag): New.
9148         (sh_emit_set_t_insn): New.
9149         (from_compare): Rename to...
9150         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
9151         handling of TARGET_SH2E floating point to avoid recursive call.
9152         Generate branch here.
9153         (sh_emit_compare_and_set): New.
9154         (sh_expand_t_scc): Get op0/op1 from arguments.
9155         (sh_emit_cheap_store_flag): New.
9156         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
9157         cases.
9158         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
9159         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
9160         (movsicc, movdicc): Do nothing when it recreated operands from
9161         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
9162         prepare_scc_operands (now sh_emit_scc_to_t).
9163         (udivdi3): Use cstoresi4.
9164         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
9165         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
9166         (cbranchint4_media, cbranchfp4_media): New.
9167         (casesi): Use cbranchdi4.
9168         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
9169         Delete.
9170         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
9171         (movnegt): Remove second operand.
9172         (cbranchsf4, cbranchdf4): New.
9173         (stack_protect): Use cbranchdi4/cbranchsi4.
9174
9175         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
9176         (gen_compare_reg): Accept comparison, extract part of it to...
9177         (gen_compare_reg_1): ... this. 
9178         (gen_compare_operator): Delete.
9179         (gen_v9_scc): Accept separate destination, comparison code and arms.
9180         Do not use sparc_compare_op0/sparc_compare_op1.
9181         (emit_scc_insn, emit_conditional_branch_insn): New.
9182         (emit_v9_brxx): Make static.  Remove useless assertion.
9183         (sparc_emit_float_lib_cmp): Return RTL instead of calling
9184         emit_cmp_insn.
9185         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
9186         * config/sparc/sparc-protos.h (gen_compare_reg,
9187         sparc_emit_float_lib_cmp): Adjust prototype.
9188         (emit_scc_insn, emit_conditional_branch_insn): New.
9189         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
9190         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
9191         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
9192         iterators to the top.
9193         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
9194         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
9195         snedi_special_trunc): Delete.
9196         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
9197         and snedi_special_trunc.
9198         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
9199         cbranchdi4, cbranch<F:mode>4): New.
9200         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
9201         here.  Use gen_compare_reg instead of gen_compare_operator.
9202         (conditional_trap): Replace with...
9203         (ctrapsi4, ctrapdi4): ... this.
9204         (stack_protect_test): Use cbranchcc4.
9205
9206         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
9207         argument to rtx.
9208         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
9209         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
9210         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
9211         from operands[0] or operands[3] depending on is_set.
9212         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
9213         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
9214         cmpdf, bCC), sCC: Remove.
9215         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
9216         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
9217         cstoredf4): New.
9218         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
9219         spu_emit_branch_or_set.
9220
9221         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
9222         Add two arguments.
9223         * config/stormy16/stormy16.h (xstormy16_compare_op0,
9224         xstormy16_compare_op1): Delete.
9225         * config/stormy16/stormy16.c (xstormy16_compare_op0,
9226         xstormy16_compare_op1): Delete. 
9227         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
9228         Adjust calls.
9229         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
9230         (cmphi, cmpsi, bCC): Remove.
9231
9232         * config/v850/v850.md (tstsi, cmpsi): Fold into...
9233         (*cmpsi): ... this one.
9234         (cbranchsi4, cstoresi4): New.
9235         (bCC expanders): Delete.
9236         (sCC insns): Fold into...
9237         (*setcc): ... this one.
9238         (casesi): Do not use gen_cmpsi and gen_bgtu. 
9239         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
9240         (movsicc): Simplify.
9241         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
9242
9243         * config/vax/vax-protos.h (cond_name): New.
9244         (vax_output_conditional_branch): Remove.
9245         * config/vax/vax.c (cond_name): New.
9246         (vax_output_conditional_branch): Remove.
9247         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
9248         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
9249         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
9250         (bit<VAXint>): Wrap source with (compare).
9251         (b<code> and following unnamed pattern): Rename to *branch and
9252         *branch_reversed.  Change macroization to match_operator.
9253         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
9254
9255         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
9256         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
9257         Change last argument to machine_mode.
9258         (xtensa_expand_scc): Add machine_mode argument.
9259         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
9260         (gen_conditional_move, xtensa_expand_conditional_branch,
9261         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
9262         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
9263         Adjust operand numbers.
9264         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
9265         Delete.
9266         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
9267         (cmpsi, cmpsf, b<code>, s<code>): Delete.
9268         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
9269
9270 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
9271
9272         * optabs.c (prepare_cmp_insn): Temporarily disable test that
9273         causes spurious differences between trunk and cond-optab branch.
9274
9275 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
9276
9277         PR target/37137
9278         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
9279
9280 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
9281
9282         * tree.c (iterative_hash_pointer): Delete.
9283         (iterative_hash_expr): Short-circuit handling of NULL pointer.
9284         Hash UIDs and versions of SSA names.  Don't special-case built-in
9285         function declarations.
9286
9287 2009-05-11  Ian Lance Taylor  <iant@google.com>
9288
9289         PR bootstrap/40103
9290         * graphite.c: Force -Wc++-compat to only be a warning before
9291         #including "cloog/cloog.h".
9292
9293 2009-05-11  Martin Jambor  <mjambor@suse.cz>
9294
9295         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
9296         
9297 2009-05-11  Jan Hubicka  <jh@suse.cz>
9298
9299         * tree-ssa-loop-ivcanon.c: Include target.h
9300         (struct loop_size): new structure.
9301         (constant_after_peeling): New predicate.
9302         (tree_estimate_loop_size): New function.
9303         (estimated_unrolled_size): Rewrite for new estimates.
9304         (try_unroll_loop_completely): Use new estimates.
9305         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
9306
9307 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9308
9309         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
9310         libcpp interface change.
9311         (spu_macro_to_expand): Likewise.
9312
9313 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
9314
9315         PR tree-optimization/40026
9316         * gimplify.c (gimplify_init_constructor): Change initial conditional
9317         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
9318         optimize_compound_literals_in_ctor.
9319
9320 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
9321
9322         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
9323         New devices.
9324         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
9325
9326 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
9327
9328         * tree-vect-data-refs.c (vect_analyze_group_access): Use
9329         HOST_WIDE_INT for gap.
9330
9331 2009-05-11  Ira Rosen  <irar@il.ibm.com>
9332
9333         PR tree-optimization/40074
9334         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
9335         account in group size and step comparison.
9336
9337 2009-05-11  Richard Guenther  <rguenther@suse.de>
9338
9339         * passes.c (init_optimization_passes): Strip now incorrect comment.
9340         (execute_function_todo): Do not set PROP_alias.
9341         * tree-pass.h (PROP_alias): Remove.
9342         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
9343         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
9344         * tree-nrv.c (pass_return_slot): Likewise.
9345         * tree-object-size.c (pass_object_sizes): Likewise.
9346         * tree-ssa-dom.c (pass_dominator): Likewise.
9347         (pass_phi_only_cprop): Likewise.
9348         * tree-ssa-dse.c (pass_dse): Likewise.
9349         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
9350         (pass_cselim): Likewise.
9351         * tree-ssa-pre.c (pass_pre): Likewise.
9352         (pass_fre): Likewise.
9353         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
9354         * tree-ssa-sink.c (pass_sink_code): Likewise.
9355         * tree-stdarg.c (pass_stdarg): Likewise.
9356         * tree-tailcall.c (pass_tail_calls): Likewise.
9357         * tree-vrp.c (pass_vrp): Likewise.
9358
9359 2009-05-10  Ian Lance Taylor  <iant@google.com>
9360
9361         * basic-block.h (enum profile_status): Break out of struct
9362         control_flow_graph.
9363         * cgraph.h (struct inline_summary): Break out of struct
9364         cgraph_local_info.
9365         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
9366         of struct cgraph_order_sort.
9367         * combine.c (enum undo_kind): New enum, broken out of struct undo.
9368         * cse.c (struct branch_path): Break out of struct
9369         cse_basic_block_data.
9370         * except.h (enum eh_region_type): Break out of struct eh_region.
9371         * gcc.c (enum add_del): Break out of struct modify_target.
9372         * genrecog.c (enum decision_type): Break out of struct decision_test.
9373         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
9374         ggc_pch_data.
9375         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
9376         * regmove.c (enum match_use): New enum, broken out of struct match.
9377         * sched-int.h (enum post_call_group): New enum, broken out of
9378         struct deps.
9379         (struct deps_reg): Break out of struct deps.
9380         * target.h (struct asm_int_op): Break out of struct gcc_target.
9381         * tree-eh.c (struct goto_queue_node): Break out of struct
9382         leh_tf_state.
9383         * tree-inline.h (enum copy_body_cge_which): Break out of
9384         copy_body_data.
9385         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
9386
9387         * c-decl.c (in_struct, struct_types): New static variables.
9388         (pushtag): Add loc parameter.  Change all callers.
9389         (lookup_tag): Add ploc parameter.  Change all callers.
9390         (check_compound_literal_type): New function.
9391         (parser_xref_tag): Add loc parameter.  Change all callers.  If
9392         -Wc++-compat, warn about struct/union/enum types defined within a
9393         struct or union.
9394         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
9395         and loc parameters.  Change all callers.  Change error calls to
9396         error_at, using loc.  For a redefinition, if the location of the
9397         original definition is known, report it.  Set in_struct and
9398         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
9399         (finish_struct): Add new parameters enclosing_in_struct and
9400         enclosing_struct_types.  Change all callers.  Set
9401         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
9402         in the struct.  If in a struct, add this struct to struct_types.
9403         (start_enum): Add loc parameter.  Change all callers.  Use
9404         error_at for errors, using loc.  For a redefinition, if the
9405         location of the original definition is known, report it.  If in a
9406         struct, add this enum type to struct_types.  If -Wc++-compat warn
9407         if in sizeof, typeof, or alignof.
9408         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
9409         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
9410         (c_parser_enum_specifier): Get enum location for start_enum.
9411         (c_parser_struct_or_union_specifier): Get struct location for
9412         start_struct.  Save in_struct and struct_types status between
9413         start_struct and finish_struct.
9414         (c_parser_cast_expression): Get location of cast.
9415         (c_parser_alignof_expression): Get location of type.
9416         (c_parser_postfix_expression): Likewise.
9417         (c_parser_postfix_expression_after_paren_type): Add type_loc
9418         parameter.  Change all callers.  Call check_compound_literal_type.
9419         Use type_loc for error about variable size type.
9420         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
9421         of an enum constant from an enum type defined in a struct or union.
9422         (c_cast_expr): Add loc parameter.  Change all callers.  If
9423         -Wc++-compat, warn about defining a type in a cast.
9424         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
9425         (start_enum, start_struct, finish_struct): Update declarations.
9426         (parser_xref_tag, c_cast_expr): Update declarations.
9427         (check_compound_literal_type): Declare.
9428
9429 2009-05-11  Ben Elliston  <bje@au.ibm.com>
9430
9431         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
9432         for recent libcpp interface change.
9433         (rs6000_macro_to_expand): Likewise.
9434
9435 2009-05-10  Michael Matz  <matz@suse.de>
9436
9437         PR target/40031
9438         * config/arm/arm.c (require_pic_register): Emit on entry edge,
9439         not at entry of function.
9440
9441 2009-05-10  Richard Guenther  <rguenther@suse.de>
9442
9443         PR tree-optimization/40081
9444         Revert
9445         * tree-sra.c (instantiate_element): Instantiate scalar replacements
9446         using the main variant of the element type.  Do not fiddle with
9447         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
9448
9449         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
9450         structs with volatile fields.
9451
9452 2009-05-10  Jan Hubicka  <jh@suse.cz>
9453
9454         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
9455         (estimate_move_cost): Assert that it does not get called for
9456         VOID_TYPE_P.
9457         (estimate_num_insns): Skip VOID types in argument handling.
9458         (optimize_inline_calls): Delete unreachable blocks and verify that
9459         callgraph is valid.
9460
9461 2009-05-10  Jan Hubicka  <jh@suse.cz>
9462
9463         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
9464         * cgraph.c (cgraph_mark_address_taken_node): New function.
9465         (dump_cgraph_node): Dump new flag.
9466         * cgraph.h (struct cgraph_node): Add address_taken.
9467         (cgraph_mark_address_taken_node): New function.
9468         * ipa.c (cgraph_postorder): Prioritize functions with address taken
9469         since new direct calls can be born.
9470
9471 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
9472
9473         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
9474         tok->val.node.node.
9475
9476 2009-05-10  Jan Hubicka  <jh@suse.cz>
9477
9478         PR middle-end/40084
9479         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
9480         argument; rewrite.
9481         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
9482         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
9483         * tree-inline.c (copy_bb): Set frequency correctly.
9484         (fold_marked_statements): Update call to
9485         cgraph_update_edges_for_call_stmt.
9486
9487 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
9488
9489         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
9490         identifiers in diagnostics.
9491         * config/arm/arm.c (arm_handle_fndecl_attribute,
9492         arm_handle_isr_attribute): Likewise.
9493         * config/avr/avr.c (avr_handle_progmem_attribute,
9494         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
9495         * config/bfin/bfin.c (handle_int_attribute,
9496         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
9497         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
9498         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
9499         Likewise.
9500         * config/darwin.c (darwin_handle_kext_attribute,
9501         darwin_handle_weak_import_attribute): Likewise.
9502         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
9503         h8300_handle_eightbit_data_attribute,
9504         h8300_handle_tiny_data_attribute): Likewise.
9505         * config/i386/i386.c (ix86_handle_cconv_attribute,
9506         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
9507         * config/i386/winnt.c (ix86_handle_shared_attribute,
9508         ix86_handle_selectany_attribute): Likewise.
9509         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
9510         * config/m32c/m32c.c (function_vector_handler): Likewise.
9511         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
9512         m68hc11_handle_fntype_attribute): Likewise.
9513         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
9514         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
9515         * config/mips/mips.c (mips_insert_attributes,
9516         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
9517         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
9518         rs6000_handle_struct_attribute): Likewise.
9519         * config/sh/sh.c (sh_insert_attributes,
9520         sh_handle_resbank_handler_attribute,
9521         sh_handle_interrupt_handler_attribute,
9522         sh2a_handle_function_vector_handler_attribute,
9523         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
9524         Likewise.
9525         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
9526         * config/spu/spu.c (spu_handle_fndecl_attribute,
9527         spu_handle_vector_attribute): Likewise.
9528         * config/stormy16/stormy16.c
9529         (xstormy16_handle_interrupt_attribute): Likewise.
9530         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
9531         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
9532
9533 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
9534
9535         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
9536         (pp_translate_identifiers): New.
9537         (pp_identifier): Only conditionally translate identifier to locale
9538         character set.
9539         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
9540         (pp_base_tree_identifier): Only conditionally translate identifier
9541         to locale character set.
9542         * c-pretty-print.c (M_): Define.
9543         (pp_c_type_specifier, pp_c_primary_expression): Mark English
9544         fragments for conditional translation with M_.
9545         * tree-pretty-print.c (maybe_init_pretty_print): Disable
9546         identifier translation.
9547
9548 2009-05-10  Richard Guenther  <rguenther@suse.de>
9549
9550         PR tree-optimization/40081
9551         * tree-sra.c (instantiate_element): Instantiate scalar replacements
9552         using the main variant of the element type.  Do not fiddle with
9553         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
9554
9555 2009-05-09  Jan Hubicka  <jh@suse.cz>
9556
9557         PR middle-end/40080
9558         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
9559         indirect calls; verify cgraph afterwards.
9560
9561 2009-05-09  Jan Hubicka  <jh@suse.cz>
9562
9563         PR bootstrap/40082
9564         * ipa.c (update_inlined_to_pointer): New function.
9565         (cgraph_remove_unreachable_nodes): Use it.
9566
9567 2009-05-09  Jan Hubicka  <jh@suse.cz>
9568
9569         * tree-eh.c (struct leh_state): Remove prev_try.
9570         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
9571         not track prev_try.
9572         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
9573         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
9574         remove_eh_handler_and_replace, foreach_reachable_handler,
9575         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
9576         * except.h (struct eh_region): Remove eh_region_u_cleanup.
9577         (gen_eh_region_cleanup): Update prototype.
9578
9579 2009-05-09  Jan Hubicka  <jh@suse.cz>
9580
9581         PR middle-end/40043
9582         * except.c (copy_eh_region): Always set prev_try.
9583         (redirect_eh_edge_to_label): Find outer try.
9584         (foreach_reachable_handler): When looking for prev try
9585         handle case where previous try is not going to be taken.
9586
9587 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
9588
9589         PR tree-optimization/40049
9590         * tree-vect-stmts.c (vectorizable_operation): If the machine has
9591         only vector/vector shifts, convert the type of the constant to the
9592         appropriate type to avoid building incorrect trees, which
9593         eventually have problems with garbage collection.
9594
9595 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
9596
9597         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
9598         -1 for complex floating-point types if honoring signed zeros.
9599
9600 2009-05-08  Jan Hubicka  <jh@suse.cz>
9601
9602         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
9603         argument; handle correctly when profile is absent.
9604         (build_cgraph_edges): Update.
9605         (rebuild_cgraph_edges): Update.
9606         * cgraph.c: Do not include varray.h.
9607         (cgraph_set_call_stmt_including_clones): New function.
9608         (cgraph_create_edge_including_clones): Likewise
9609         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9610         (cgraph_update_edges_for_call_stmt): Handle clones.
9611         (cgraph_remove_node): Handle clone tree.
9612         (cgraph_remove_node_and_inline_clones): New function.
9613         (dump_cgraph_node): Dump clone tree.
9614         (cgraph_clone_node): Handle clone tree.
9615         (clone_function_name): Bring here from tree-inline.c.
9616         (cgraph_create_virtual_clone): New function.
9617         * cgraph.h (ipa_replace_map): Move here from ipa.h.
9618         (cgraph_clone_info): New function.
9619         (strut cgraph_node): Add clone_info and new clone tree pointers.
9620         (cgraph_remove_node_and_inline_clones,
9621         cgraph_set_call_stmt_including_clones,
9622         cgraph_create_edge_including_clones,
9623         cgraph_create_virtual_clone): Declare.
9624         (cgraph_function_versioning): Use VEC argument.
9625         (compute_call_stmt_bb_frequency): Update prototype.
9626         (cgraph_materialize_all_clones): New function.
9627         * ipa-cp.c (ipcp_update_cloned_node): Remove.
9628         (ipcp_create_replace_map): Update to VECtors.
9629         (ipcp_update_callgraph): Use virtual clones.
9630         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
9631         (ipcp_update_profiling): Do not update local profiling.
9632         (ipcp_insert_stage): Use VECtors and virtual clones.
9633         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
9634         (clone_of_p): New function.
9635         (cgraph_preserve_function_body_p): Use clone tree.
9636         (cgraph_optimize): Materialize clones.
9637         (cgraph_function_versioning): Update for VECtors.
9638         (save_inline_function_body): Use clone tree.
9639         (cgraph_materialize_clone): New function.
9640         (cgraph_materialize_all_clones): Likewise.
9641         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
9642         * ipa.c: Include gimple.h.
9643         (cgraph_remove_unreachable_nodes): Use clone tree.
9644         * ipa-prop.c (ipa_note_param_call): Update call to
9645         compute_call_stmt_bb_frequencycall.
9646         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
9647         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9648         (copy_bb): Handle updating of clone tree; add new edge when new call
9649         appears.
9650         (expand_call_inline): Be strict about every call having edge.
9651         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
9652         (delete_unreachable_blocks_update_callgraph): New function.
9653         (tree_function_versioning): Use VECtors; always remove unreachable
9654         blocks and fold conditionals.
9655         * tree-inline.h: Do not include varray.h.
9656         (tree_function_versioning): Remove.
9657         * Makefile.in (GTFILES): Remove tree-inline.c
9658         * passes.c (do_per_function): Do only functions having body.
9659         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
9660         tree.
9661
9662 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
9663             Andrew Morrow  <acm@google.com>
9664
9665         PR c/36892
9666         * c-common.c (c_common_attribute_table): Permit deprecated
9667         attribute to take an optional argument.
9668         (handle_deprecated_attribute): If the optional argument to
9669         __attribute__((deprecated)) is not a string ignore the attribute
9670         and emit a warning.
9671
9672         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
9673         * c-typeck.c (build_component_ref): Likewise.
9674         (build_external_ref): Likewise.
9675
9676         * toplev.c (warn_deprecated_use): Add an attribute argument.
9677         Emit the message associated with __attribute__((deprecated)).
9678
9679         * toplev.h (warn_deprecated_use): Updated.
9680
9681         * doc/extend.texi: Document new optional parameter to
9682         __attribute__((deprecated))
9683
9684 2009-05-08  Michael Eager <eager@eagercon.com>
9685
9686         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
9687         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
9688
9689 2009-05-08  Richard Guenther  <rguenther@suse.de>
9690
9691         PR tree-optimization/40062
9692         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
9693         Avoid exponential behavior.
9694
9695 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
9696
9697         PR rtl-optimization/33928
9698         PR 26854
9699         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
9700         process_uses, build_single_def_use_links): New.
9701         (update_df): Update use_def_ref.
9702         (forward_propagate_into): Use get_def_for_use instead of use-def
9703         chains.
9704         (fwprop_init): Call build_single_def_use_links and let it initialize
9705         dataflow.
9706         (fwprop_done): Free use_def_ref.
9707         (fwprop_addr): Eliminate duplicate call to df_set_flags.
9708         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
9709         df_rd_simulate_one_insn): New.
9710         (df_rd_bb_local_compute_process_def): Update head comment.
9711         (df_chain_create_bb): Use the new RD simulation functions.
9712         * df.h (df_rd_simulate_artificial_defs_at_top, 
9713         df_rd_simulate_one_insn): New.
9714         * opts.c (decode_options): Enable fwprop at -O1.
9715         * doc/invoke.texi (-fforward-propagate): Document this.
9716
9717 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
9718
9719         PR c/24581
9720         * c-typeck.c (build_binary_op): Handle arithmetic between one real
9721         and one complex operand specially.
9722         * tree-complex.c (some_nonzerop): Do not identify a real value as
9723         zero if flag_signed_zeros.
9724
9725 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
9726
9727         PR rtl-optimization/33928
9728         * loop-invariant.c (record_use): Fix && vs. || mishap.
9729
9730 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
9731
9732         PR rtl-optimization/33928
9733         * loop-invariant.c (struct use): Add addr_use_p.
9734         (struct def): Add n_addr_uses.
9735         (struct invariant): Add cheap_address.
9736         (create_new_invariant): Set cheap_address.
9737         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
9738         (record_uses): Pass df_ref to record_use.
9739         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
9740         used only as such.
9741
9742 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
9743
9744         * config/sh/sh.c: Do not include c-pragma.h.
9745
9746 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9747
9748         * config/spu/spu.c: Remove include of c-common.h.
9749
9750 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
9751
9752         PR c/39037
9753         * c-common.h (mark_valid_location_for_stdc_pragma,
9754         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
9755         clear_float_const_decimal64, float_const_decimal64_p): New.
9756         * c.opt (Wunsuffixed-float-constants): New.
9757         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
9758         unsuffixed float constant, handle new warning.
9759         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
9760         * c-decl.c (c_scope): New flag float_const_decimal64.
9761         (set_float_const_decimal64, clear_float_const_decimal64,
9762         float_const_decimal64_p): New.
9763         (push_scope): Set new flag.
9764         * c-parser.c (c_parser_translation_unit): Mark when it's valid
9765         to use STDC pragmas.
9766         (c_parser_external_declaration): Ditto.
9767         (c_parser_compound_statement_nostart): Ditto.
9768         * c-pragma.c (valid_location_for_stdc_pragma,
9769         mark_valid_location_for_stdc_pragma,
9770         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
9771         handle_pragma_float_const_decimal64): New.
9772         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
9773         * cp/semantics.c (valid_location_for_stdc_pragma_p,
9774         set_float_const_decimal64, clear_float_const_decimal64,
9775         float_const_decimal64_p): New dummy functions.
9776         * doc/extend.texi (Decimal Float): Remove statement that the
9777         pragma, and suffix for double constants, are not supported.
9778         * doc/invoke.texi (Warning Options): List new option.
9779         (-Wunsuffixed-float-constants): New.
9780
9781 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
9782
9783         * config/i386/i386.c: Do not include c-common.h.
9784
9785 2009-05-07  Mark Heffernan  <meheff@google.com>
9786
9787         * doc/invoke.texi (Debugging Options): Document change of debugging
9788         dump location.
9789         * opts.c (decode_options): Make dump_base_name relative to
9790         aux_base_name directory.
9791
9792 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
9793
9794         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
9795         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
9796
9797 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
9798
9799         * Makefile.in (install-plugin): Simplify a bit.
9800
9801 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
9802
9803         * Makefile.in (OBJS-common): Add regcprop.o.
9804         (regcprop.o): New.
9805         * timevar.def (TV_CPROP_REGISTERS): New.
9806         * regrename.c (regrename_optimize): Return 0.
9807         (rest_of_handle_regrename): Delete.
9808         (pass_rename_registers): Point to regrename_optimize.
9809         (struct value_data_entry, struct value_data, 
9810         kill_value_one_regno, kill_value_regno, kill_value,
9811         set_value_regno, init_value_data, kill_clobbered_value,
9812         kill_set_value, kill_autoinc_value, copy_value,
9813         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
9814         replace_oldest_value_reg, replace_oldest_value_addr,
9815         replace_oldest_value_mem, copyprop_hardreg_forward_1,
9816         debug_value_data, validate_value_data): Move...
9817         * regcprop.c: ... here.
9818         (rest_of_handle_cprop): Delete.
9819         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
9820
9821 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
9822
9823         PR middle-end/40057
9824         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
9825         GEN_INT for 1 << bitnum.
9826         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
9827         build_int_cst_type.
9828
9829 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
9830
9831         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
9832         Remove wrong description of "nand" operation.
9833
9834 2009-05-06  Richard Guenther  <rguenther@suse.de>
9835             Adam Nemet  <anemet@caviumnetworks.com>
9836
9837         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
9838         comment.  Add that if LHS is not a gimple register, then RHS1 has
9839         to be a single object (GIMPLE_SINGLE_RHS).
9840
9841 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
9842
9843         * expr.c (get_def_for_expr): Move it up in the file.
9844         (store_field): When expanding a bit-field store, look at the
9845         defining gimple stmt for the masking conversion.
9846
9847 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
9848
9849         PR middle-end/39986
9850         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
9851         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
9852         32-bit memcpy into long.
9853
9854 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
9855
9856         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
9857         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
9858         new_reg_loc_descr.
9859         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
9860         instead of appending DW_OP_deref*.
9861
9862 2009-05-06  Michael Matz  <matz@suse.de>
9863
9864         PR middle-end/40021
9865         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
9866         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
9867
9868 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
9869
9870         * Makefile.in (install-plugin): Fix srcdir handling.
9871
9872 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
9873
9874         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
9875         when processing for not_regs_needed bitmap.
9876         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
9877         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
9878         handling it for rhs. 
9879
9880 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
9881
9882         * config/i386/i386.md (unnamed inc/dec peephole): Use
9883         optimize_insn_for_size_p instead of optimize_size.
9884         * config/i386/predicates.md (incdec_operand): Likewise.
9885         (aligned_operand): Likewise.
9886         * config/i386/sse.md (divv8sf3): Likewise.
9887         (sqrtv8sf2): Likewise.
9888
9889 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
9890
9891         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
9892
9893         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
9894
9895 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
9896
9897         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
9898         ssemodesuffixf2c with avxmodesuffixf2c.
9899
9900 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
9901
9902         PR c/40032
9903         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
9904
9905 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
9906
9907         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
9908         (struct tree_base): Adjust spacing for 8 bit boundaries.
9909         (struct tree_decl_common): Add decl_by_reference_flag bit.
9910         (DECL_BY_REFERENCE): Adjust.
9911         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
9912         print DECL_BY_REFERENCE bit.
9913         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
9914         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
9915         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
9916         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
9917         unconditionally.
9918
9919         PR middle-end/39666
9920         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
9921         range of the type, but default label is missing, add it with one
9922         of the existing labels instead of adding a new label for it.
9923
9924 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
9925
9926         * dwarf.h: Remove.
9927
9928 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
9929
9930         * Makefile.in (enable_plugin, plugin_includedir): New.
9931         (install): Depend on install-plugin.
9932         (PLUGIN_HEADERS): New.
9933         (install-plugin): New.
9934         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
9935
9936 2009-05-05  Richard Guenther  <rguenther@suse.de>
9937
9938         PR tree-optimization/40022
9939         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
9940         the only vuse.
9941         (phivn_valid_p): Fix tuplification error, simplify.
9942         (phiprop_insert_phi): Add dumps.
9943         (propagate_with_phi): Simplify.
9944
9945 2009-05-05  Richard Guenther  <rguenther@suse.de>
9946
9947         PR middle-end/40023
9948         * builtins.c (gimplify_va_arg_expr): Properly build the address.
9949
9950 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
9951
9952         * tree.h (strip_float_extensions): Remove duplicate declaration.
9953         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
9954         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
9955         block_ultimate_origin): Rearrange the declarations line to match the
9956         comment that indicates the .c file which the functions are defined.
9957         (dwarf2out_*, set_decl_rtl): Add comment.
9958         (get_base_address): Adjust comment.
9959         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
9960         declarations line and add comment.
9961         (is_builtin_name): Add blank after function name, for clarity.
9962
9963 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
9964
9965         * attribs.c (decl_attributes): Use %qE for identifiers in
9966         diagnostics.
9967         * cgraphunit.c (verify_cgraph_node): Translate function names to
9968         locale character set in diagnostics.
9969         * coverage.c (get_coverage_counts): Use %qE for identifiers in
9970         diagnostics.
9971         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
9972         Document that functions are named in UTF-8.
9973         * expr.c (expand_expr_real_1): Translate function names to locale
9974         character set in diagnostics.
9975         * gimplify.c (omp_notice_variable, omp_is_private,
9976         gimplify_scan_omp_clauses): Use %qE for identifiers in
9977         diagnostics.
9978         * langhooks.c (lhd_print_error_function): Translate function names
9979         to locale character set.
9980         * langhooks.h (decl_printable_name): Document that return value is
9981         in internal character set.
9982         * stmt.c: Include pretty-print.h
9983         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
9984         diagnostics.
9985         (resolve_operand_name_1): Translate named operand name to locale
9986         character set.
9987         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
9988         diagnostics.
9989         * toplev.c (announce_function): Translate function names to locale
9990         character set.
9991         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
9992         (default_tree_printer): Use pp_identifier or translate identifiers
9993         to locale character set.  Mark "<anonymous>" for translation.
9994         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
9995         for identifiers in diagnostics.
9996         * tree.c (handle_dll_attribute): Use %qE for identifiers in
9997         diagnostics.
9998         * varasm.c (output_constructor): Use %qE for identifiers in
9999         diagnostics.
10000
10001 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
10002
10003         * configure.ac: use ` ` instead of $()
10004         * configure: Regenerate.
10005
10006 2009-05-05  Ben Elliston  <bje@au.ibm.com>
10007
10008         * config/pa/linux-atomic.c: Eliminate conditional include of
10009         errno.h on non-LP64 systems to simplify build requirements.
10010
10011 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
10012
10013         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
10014         diagnostics.
10015         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
10016         and pass value to identifier_to_locale.
10017         (warn_variable_length_array): Make name a tree.
10018         (grokdeclarator): Separate diagnostic texts for named and unnamed
10019         declarators.  Use %qE for named declarators.
10020         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
10021         diagnostics.
10022         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
10023         identifiers in diagnostics.
10024         * c-typeck.c (push_member_name, start_init): Pass identifiers to
10025         identifier_to_locale.  Mark "anonymous" strings for translation.
10026
10027 2009-05-04  Michael Eager <eager@eagercon.com>
10028
10029         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
10030         address for DImode/DFmode only if double-precision FP regs.
10031
10032 2009-05-04  Michael Eager <eager@eagercon.com>
10033
10034         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
10035         TARGET_SINGLE_FLOAT check.
10036
10037 2009-05-04  Michael Eager <eager@eagercon.com>
10038
10039         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
10040
10041 2009-05-04  Michael Eager <eager@eagercon.com>
10042
10043         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
10044         * config/rs6000/t-xilinx: New
10045
10046 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
10047
10048         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
10049         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
10050         * gcc/explow.c (memory_address): Use target hook.
10051         * gcc/targhooks.c (default_legitimize_address): New.
10052         * gcc/targhooks.h (default_legitimize_address): New.
10053         * gcc/target.h (legitimize_address): New.
10054         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
10055         (TARGET_INITIALIZER): Include it.
10056         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
10057
10058         * config/bfin/bfin-protos.h (legitimize_address): Remove.
10059         * config/bfin/bfin.c (legitimize_address): Remove.
10060         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
10061         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
10062         Remove.
10063         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
10064         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
10065
10066         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
10067         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
10068         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
10069         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
10070         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
10071         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
10072         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
10073         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
10074         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
10075         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
10076         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
10077         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
10078         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
10079         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
10080         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
10081         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
10082         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
10083         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
10084         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
10085         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
10086         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
10087         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
10088         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
10089
10090         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
10091         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
10092         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
10093         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
10094         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
10095         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
10096         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
10097         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
10098         (thumb_legitimize_address): Delete.
10099         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
10100         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
10101         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
10102         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
10103         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
10104         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
10105         Delete.
10106         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
10107         Delete.
10108
10109         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
10110         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
10111         * config/m32r/m32r.c (m32r_legitimize_address): New.
10112         * config/m68k/m68k.c (m68k_legitimize_address): New.
10113         * config/score/score.c (score_legitimize_address): Standardize.
10114         * config/score/score3.c (score3_legitimize_address): Standardize.
10115         * config/score/score3.h (score3_legitimize_address): Adjust.
10116         * config/score/score7.c (score7_legitimize_address): Standardize.
10117         * config/score/score7.h (score7_legitimize_address): Adjust.
10118         * config/sh/sh.c (sh_legitimize_address): New.
10119         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
10120
10121         * gcc/config/s390/s390.c (legitimize_address): Rename to...
10122         (s390_legitimize_address): ... this.
10123         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
10124         (sparc_legitimize_address): ... this.
10125         * gcc/config/i386/i386.c (legitimize_address): Rename to...
10126         (ix86_legitimize_address): ... this.
10127         * gcc/config/avr/avr.c (legitimize_address): Rename to...
10128         (avr_legitimize_address): ... this.
10129         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
10130         (mn10300_legitimize_address): ... this.
10131         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
10132         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
10133         (alpha_expand_mov): Adjust call.
10134
10135         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
10136         * config/spu/spu.c (spu_legitimize_address): Likewise.
10137         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
10138         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
10139
10140 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
10141
10142         * intl.c (locale_encoding, locale_utf8): New.
10143         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
10144         * intl.h (locale_encoding, locale_utf8): Declare.
10145         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
10146         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
10147         New.
10148         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
10149         argument.
10150         (pp_tree_identifier): Define to call pp_base_tree_identifier.
10151         (pp_base_tree_identifier): Declare as function.
10152         (identifier_to_locale): Declare.
10153         * Makefile.in (pretty-print.o): Update dependencies.
10154         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
10155
10156 2009-05-04  Richard Guenther  <rguenther@suse.de>
10157
10158         PR middle-end/40015
10159         * builtins.c (fold_builtin_memory_op): Do not decay to element
10160         type if the size matches the whole array.
10161
10162 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
10163
10164         * expmed.c (synth_mult): When trying out a shift, pass the result
10165         of a signed shift.
10166
10167 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
10168
10169         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
10170         (shiftsub1_cost): New.
10171         (init_expmed): Compute shiftsub1_cost.
10172         (synth_mult): Optimize multiplications by constants of the form
10173         -(2^^m-1) for some constant positive integer m.
10174
10175 2009-05-03  Richard Guenther  <rguenther@suse.de>
10176
10177         PR c/39983
10178         * c-typeck.c (array_to_pointer_conversion): Do not built
10179         ADDR_EXPRs of arrays of pointer-to-element type.
10180         * c-gimplify.c (c_gimplify_expr): Revert change fixing
10181         up wrong ADDR_EXPRs after-the-fact.
10182         * c-common.c (strict_aliasing_warning): Strip pointer
10183         conversions for obtaining the original type.
10184         * builtins.c (fold_builtin_memset): Handle array types.
10185         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
10186         and array types
10187
10188 2009-05-03  Richard Guenther  <rguenther@suse.de>
10189
10190         PR middle-end/23329
10191         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
10192         Do not lose casts from array types with unknown extent to array
10193         types with known extent.
10194         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
10195         alias set compatibility.
10196
10197 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10198
10199         * flags.h (extra_warnings): Delete.
10200         * toplev.c (process_options): Handle Wuninitialized here.
10201         * opts.c (extra_warnings): Delete.
10202         (set_Wextra): Delete.
10203         (common_handle_option): -Wextra can be handled automatically.
10204         * c-opts.c (c_common_handle_option): Delete obsolete code.
10205         (c_common_post_options): Simplify comment.
10206         * common.opt (W): Add Var.
10207         (Wextra): Add Var.
10208         (Wuninitialized): Initialize to -1.
10209
10210 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
10211             Richard Guenther  <rguenther@suse.de>
10212
10213         * expr.c (get_def_for_expr): New function.
10214         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
10215         SSA rather than trees.
10216         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
10217         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
10218         
10219 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
10220
10221         * c-common.c (reswords): Add _Imaginary.
10222         * c-common.c (enum rid): Add RID_IMAGINARY.
10223
10224 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
10225
10226         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
10227         Patch by Richard Guenther.
10228
10229 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
10230
10231         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
10232         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
10233         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
10234         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
10235         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
10236         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
10237         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
10238         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
10239         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
10240         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
10241         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
10242         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
10243         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
10244         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
10245         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
10246         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
10247         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
10248         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
10249
10250 2009-05-02  Richard Guenther  <rguenther@suse.de>
10251
10252         PR tree-optimization/39940
10253         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
10254         doing so.
10255
10256 2009-05-02  Richard Guenther  <rguenther@suse.de>
10257
10258         PR middle-end/40001
10259         * tree-ssa.c (execute_update_addresses_taken): Properly check
10260         if we can mark a variable DECL_GIMPLE_REG_P.
10261         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
10262         back to the end of the function.
10263         (is_gimple_reg_type): Remove complex type special casing.
10264         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
10265         if not optimizing.
10266
10267 2009-05-02  Ben Elliston  <bje@au.ibm.com>
10268
10269         * doc/collect2.texi (Collect2): Document search path behaviour
10270         when configured with --with-ld.
10271
10272 2009-05-02  Jan Hubicka  <jh@suse.cz>
10273
10274         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
10275         parameter; update callers.
10276         (coalesce_cost_edge): EH edges are costier because they needs
10277         splitting even if not critical and even more costier when there are
10278         multiple EH predecestors.
10279
10280 2009-05-02  Jan Hubicka  <jh@suse.cz>
10281
10282         * except.c (remove_eh_handler_and_replace): Handle updating after
10283         removing TRY blocks.
10284
10285 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
10286
10287         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
10288
10289 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
10290
10291         * varasm.c: Do not include c-pragma.h.
10292         * attribs.c: Do not incude c-common.h.
10293
10294 2009-05-01  Michael Matz  <matz@suse.de>
10295
10296         * calls.c (initialize_argument_information): Handle SSA names like
10297         decls with a non MEM_P DECL_RTL.
10298
10299 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
10300
10301         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
10302         * ipa-utils.c: Likewise.
10303         * ipa-type-escape.c: Likewise.
10304         * cgraphunit.c Do not include c-common.h.
10305         * ipa-pure-const.c: Likewise.
10306         * tree-if-conv.c: Likewise.
10307         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
10308         * ipa-struct-reorg.c: Likewise.
10309         * tree-nomudflap.c: Likewise.
10310         * tree-ssa-structalias.c: Likewise.
10311
10312 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
10313
10314         * store-motion.c: Many cleanups to make this pass a first-class
10315         citizen instead of an appendix to gcse load motion.  Add TODO list
10316         to make this pass faster/cleaner/better.
10317
10318         (struct ls_expr): Post gcse.c-split cleanups.
10319         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
10320         "stores" field to "avail_stores".
10321         (pre_ldst_mems): Rename to store_motion_mems.
10322         (pre_ldst_table): Rename to store_motion_mems_table.
10323         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
10324         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
10325         (ldst_entry): Rename to st_expr_entry, update users.
10326         (free_ldst_entry): Rename to free_st_expr_entry, update users.
10327         (free_ldst_mems): Rename to free_store_motion_mems, update users.
10328         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
10329         update caller.
10330         (first_ls_expr): Rename to first_st_expr, update users.
10331         (next_ls_expr): Rename to next_st_expr, update users.
10332         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
10333         fields properly for store motion instead of names inherited from load
10334         motion in gcse.c.
10335         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
10336         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
10337         are done with it.
10338
10339         (ae_kill): Rename to st_kill, update users.
10340         (ae_gen): Rename to st_avloc, update users.
10341         (transp): Rename to st_transp, update users.
10342         (pre_insert_map): Rename to st_insert_map, update users.
10343         (pre_delete_map): Rename to st_delete_map, update users.
10344         (insert_store, build_store_vectors, free_store_memory,
10345         one_store_motion_pass): Update for abovementioned changes.
10346
10347         (gcse_subst_count, gcse_create_count): Remove.
10348         (one_store_motion_pass): New statistics counters "n_stores_deleted"
10349         and "n_stores_created", local variables.
10350
10351         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
10352         use for_each_rtx.
10353
10354         (regvec, compute_store_table_current_insn): Remove.
10355         (reg_set_info, reg_clear_last_set): Remove.
10356         (compute_store_table): Use DF caches instead of local dataflow
10357         solvers.
10358
10359 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
10360
10361         * c-objc-common.c (c_tree_printer): Print identifiers with
10362         pp_identifier, not pp_string.  Mark "({anonymous})" for
10363         translation.
10364         * c-pretty-print.c (pp_c_ws_string): New.
10365         (pp_c_cv_qualifier, pp_c_type_specifier,
10366         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
10367         pp_c_storage_class_specifier, pp_c_function_specifier,
10368         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
10369         pp_c_primary_expression, pp_c_postfix_expression,
10370         pp_c_unary_expression, pp_c_shift_expression,
10371         pp_c_relational_expression, pp_c_equality_expression,
10372         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
10373         use pp_string and pp_c_ws_string in place of pp_identifier and
10374         pp_c_identifier for non-identifiers.  Mark English strings for
10375         translation.
10376         * c-pretty-print.h (pp_c_ws_string): Declare.
10377
10378 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
10379             Roland McGrath <roland@redhat.com>
10380
10381         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
10382         (ENABLE_LD_BUILDID): New configuration option.
10383         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
10384         (LINK_BUILDID_SPEC): New macro.
10385         (init_spec): If defined, prepend it between LINK_EH_SPEC and
10386         link_spec.
10387         * doc/install.texi: Document --enable-linker-build-id option.
10388         * configure: Rebuild.
10389         * config.in: Rebuild.
10390
10391 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
10392
10393         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
10394         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
10395         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
10396         MIPS_GP_SAVE_AREA_SIZE.
10397         * config/mips/mips.c (struct mips_frame_info): Update comment
10398         before arg_pointer_offset and hard_frame_pointer_offset.
10399         (mips_compute_frame_info): Update diagram before function: to
10400         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
10401         indicate the position of frame_pointer_rtx with -fstack-protector and
10402         to show args_size.  Don't allocate cprestore area for leaf functions
10403         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
10404         cprestore_size.
10405         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
10406
10407 2009-04-30  Michael Matz  <matz@suse.de>
10408
10409         PR tree-optimization/39955
10410         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
10411
10412 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
10413
10414         * ira.c (setup_cover_and_important_classes):  Use safe macro
10415         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
10416         directly.
10417         * genpreds.c (write_tm_preds_h):  Output suitable definition of
10418         REG_CLASS_FOR_CONSTRAINT.
10419
10420 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
10421
10422         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
10423         instead of an int.
10424         * bitmap.c (bitmap_descriptor): Likewise.
10425         * ggc-common.c (loc_descriptor): Likewise.
10426         * varray.c (varray_descriptor): Likewise.
10427         * vec.c (vec_descriptor): Likewise.
10428
10429 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
10430
10431         * Makefile.in (dce.o): Add $(EXCEPT_H).
10432         * dce.c: Include except.h and delete redundant vector definitions.
10433         (deletable_insn_p): Return false for non-call insns that can throw
10434         if DF is running.
10435
10436 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
10437
10438         * gcse.c (ae_gen): Remove.
10439         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
10440         and make non-static function to make it available in store-motion.c.
10441         Update call sites with search-and-replace.
10442         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
10443         extract_mentioned_regs, extract_mentioned_regs_helper,
10444         find_moveable_store, compute_store_table, load_kills_store, find_loads,
10445         store_killed_in_insn, store_killed_after, store_killed_before,
10446         build_store_vectors, insert_insn_start_basic_block, insert-store,
10447         remove_reachable_equiv_notes, replace_store_insn, delete_store,
10448         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
10449         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
10450         * store-motion.c: ...new file.  Also copy data structures from gcse.c
10451         and clean up to remove parts not used by store motion.
10452         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
10453         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
10454
10455 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10456
10457         PR target/38571
10458         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
10459         when optimizing for size.
10460
10461 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
10462
10463         * gcse.c (gcse_constant_p): Fix typo in last change.
10464
10465 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
10466
10467         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
10468
10469 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10470
10471         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
10472
10473 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
10474
10475         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
10476         CONST_HIGH_PART result.
10477
10478 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
10479
10480         * config/avr/avr.c (initial_elimination_offset): Rename to
10481         avr_initial_elimination_offset.
10482         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
10483         change return type to bool.
10484         (avr_can_eliminate): New function.
10485         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
10486         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
10487         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
10488         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
10489         avr_initial_elimination_offset.
10490         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
10491         (avr_initial_elimination_offset): Define.
10492
10493 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10494             Steven Bosscher  <steven@gcc.gnu.org>
10495
10496         PR rtl-optimization/39938
10497         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
10498         * cfgrtl.c: Include insn-attr.h.
10499         (rest_of_pass_free_cfg): New function.
10500         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
10501         * resource.c (init_resource_info): Remove call to df_analyze.
10502
10503 2009-04-29  Richard Guenther  <rguenther@suse.de>
10504
10505         PR target/39943
10506         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
10507         allow conversion to signed integers.
10508
10509 2009-04-29  Richard Guenther  <rguenther@suse.de>
10510
10511         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
10512         shifts of floating point vectors if the shift amount is
10513         a constant multiple of the element size.
10514
10515 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
10516             Michael Matz  <matz@suse.de>
10517
10518         PR middle-end/39927
10519         PR bootstrap/39929
10520         * tree-outof-ssa.c (emit_partition_copy): New function.
10521         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
10522         insert_part_to_rtx_on_edge): Perform the partition base var
10523         copy using emit_partition_copy.
10524         (insert_value_copy_on_edge): Convert constants to the right mode.
10525         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
10526         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
10527
10528 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
10529
10530         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
10531         scan backwards to try to find a constant to initialize it.
10532
10533         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
10534         insn before the loop_end instruction, don't look past labels.
10535
10536 2009-04-29  Richard Guenther  <rguenther@suse.de>
10537
10538         PR middle-end/39937
10539         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
10540         loose type conversions.
10541         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
10542         stmts only if there are no uses of its definition.
10543
10544 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
10545
10546         * config/bfin/bfin.h (splitting_loops): Declare.
10547         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
10548         Reorder bit definitions to be ascending.
10549         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
10550         * config/bfin/bfin.c (splitting_loops): New variable.
10551         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
10552         (struct loop_info): Remove members INIT and LOOP_INIT.
10553         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
10554         the LSETUP sequence.  Allow LC to be loaded from any register, but
10555         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
10556         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
10557         set to 1.
10558         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
10559         of reload_completed.
10560
10561         From Jie Zhang:
10562         * config/bfin/bfin.md (movsi_insn): Refine constraints.
10563
10564 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
10565
10566         * Makefile.in (PLUGIN_VERSION_H): New.
10567         (OBJS-common): Remove plugin-version.o.
10568         (plugin.o): Depend on (PLUGIN_VERSION_H).
10569         (plugin-version.o): Remove.
10570         * configure: Regenerate
10571         * configure.ac: Create plugin-version.h.
10572         * gcc-plugin.h (plugin_gcc_version): Remove.
10573         (plugin_default_version_check): Change signature.
10574         * plugin-version.c: Remove.
10575         * plugin.c: Include plugin-version.h.
10576         (str_plugin_gcc_version_name): Remove.
10577         (try_init_one_plugin): Pass gcc version to plugin_init.
10578         (plugin_default_version_check): Both gcc and plugin versions are now
10579         arguments.
10580
10581 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
10582         
10583         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
10584         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
10585         Remove special case testing for last insn of inner loops. Don't fail
10586         if the loop ends with a jump, emit an extra nop instead.
10587
10588         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
10589         DREGS rather than comparing directly.  Remove code that tries to
10590         account for latencies.
10591
10592 2009-04-29  Richard Guenther  <rguenther@suse.de>
10593
10594         PR tree-optimization/39941
10595         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
10596         eliminating an indirect call.
10597
10598 2009-04-29  Richard Guenther  <rguenther@suse.de>
10599
10600         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
10601         parameter.  Allow invariants as base if !require_lvalue.
10602         (verify_gimple_assign_single): Adjust.
10603
10604 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
10605
10606         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
10607         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
10608         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
10609         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
10610         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
10611         a VEC_SELECT.
10612         * config/bfin/bfin.c (bfin_expand_builtin,
10613         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
10614
10615 2009-04-28  Richard Guenther  <rguenther@suse.de>
10616
10617         * tree-vect-loop.c (get_initial_def_for_induction): Use
10618         correct types for pointer increment.
10619
10620 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10621
10622         * toplev.c (print_version): Update GMP version string calculation.
10623
10624 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10625
10626         PR rtl-optimization/39938
10627         * resource.c (init_resource_info): Add call to df_analyze.
10628
10629 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
10630
10631         * config/alpha/alpha.md (usegp): Cast the result of
10632         alpha_find_lo_sum_using_gp to enum attr_usegp.
10633         * config/alpha/alpha.c (override_options): Remove end-of-structure
10634         marker element from cpu_table.  Use array size of cpu_table to handle
10635         -mcpu and -mtune options.
10636         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
10637
10638 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
10639
10640         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
10641         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
10642         tune_32 and tune_64.
10643         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
10644         support on PowerPC.
10645         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
10646         * config/rs6000/option-defaults.h: ... here.  New file.
10647         (OPT_64, OPT_32): Define.
10648         (MASK_64BIT): Define to 0 if not already defined.
10649         (OPT_ARCH64, OPT_ARCH32): Define.
10650         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
10651         and tune_64.
10652
10653 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10654
10655         * config/arm/arm.c (arm_override_options): Emit error on using
10656         fpa with AAPCS.
10657
10658 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
10659
10660         PR rtl-optimization/39914
10661         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
10662         registers for allocnos created from user-defined variables only
10663         when not optimizing.
10664
10665 2009-04-28  Richard Guenther  <rguenther@suse.de>
10666
10667         PR middle-end/39937
10668         * fold-const.c (fold_binary): Use distribute_real_division only
10669         on float types.
10670
10671 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
10672
10673         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
10674         add hpux-stdint.h to tm_file.
10675         (hppa[12]*-*-hpux11*): Ditto.
10676         (ia64*-*-hpux*): Ditto.
10677         * config/hpux-stdint.h: New.
10678         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
10679         __STDC_EXT__ for all compiles.
10680         * config/pa/pa-hpux.h: Ditto.
10681         * config/pa/pa-hpux10.h: Ditto.
10682         * config/pa/pa-hpux11.h: Ditto.
10683
10684 2009-04-28  Catherine Moore  <clm@codesourcery.com>
10685
10686         * debug.h (set_name): Add comment.
10687
10688 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
10689
10690         PR target/39929
10691         * config/darwin.c (machopic_gen_offset): Check
10692         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
10693         * config/arm/arm.c (require_pic_register): Likewise.
10694
10695 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
10696
10697         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
10698         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
10699         m32c_promote_prototypes): Delete.
10700
10701 2009-04-28  Michael Matz  <matz@suse.de>
10702
10703         PR middle-end/39922
10704         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
10705         constants.
10706
10707 2009-04-28  Richard Guenther  <rguenther@suse.de>
10708
10709         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
10710
10711 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10712
10713         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
10714         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
10715         * config/arm/arm-tune.md: Regenerate.
10716
10717 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
10718
10719         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
10720         block if there are complex incoming edges.
10721         (sel_merge_blocks): Remove useless assert.
10722         (sel_redirect_edge_and_branch): Check that edge was redirected.
10723         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
10724         (sel_find_rgns): Delete declaration.
10725         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
10726         the region when it is not a preheader.
10727
10728 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
10729
10730         PR c/39323
10731         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
10732
10733 2009-04-28  Richard Guenther  <rguenther@suse.de>
10734
10735         * tree.h (SSA_NAME_VALUE): Remove.
10736         (struct tree_ssa_name): Remove value_handle member.
10737         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
10738         array for jump threading.
10739         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
10740         SSA_NAME_VALUEs.
10741         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
10742         * tree-flow.h (threadedge_initialize_values): Declare.
10743         (threadedge_finalize_values): Likewise.
10744         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
10745         (SSA_NAME_VALUE): Define.
10746         (threadedge_initialize_values): New function.
10747         (threadedge_finalize_values): Likewise.
10748         * tree-ssa-dom.c (ssa_name_values): New global variable.
10749         (SSA_NAME_VALUE): Define.
10750         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
10751
10752 2009-04-28  Ira Rosen  <irar@il.ibm.com>
10753
10754         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
10755         Use REPORT_VECTORIZED_LOCATIONS instead 
10756         REPORT_VECTORIZED_LOOPS.
10757         * tree-vectorizer.c (vect_verbosity_level): Make static.
10758         (vect_loop_location): Rename to vect_location.
10759         (vect_set_verbosity_level): Update comment.
10760         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
10761         and vect_location.
10762         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
10763         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
10764         instead REPORT_UNVECTORIZED_LOOPS.
10765         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
10766         and vect_loop_def to vect_external_def and vect_internal_def.
10767         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
10768         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
10769         REPORT_UNVECTORIZED_LOCATIONS.
10770         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
10771         and vect_used_in_loop and to vect_unused_in_scope and 
10772         vect_used_in_scope.
10773         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
10774         (vect_verbosity_level): Remove declaration.
10775         (vect_analyze_operations): Likewise.
10776         (vect_analyze_stmt): Declare.
10777         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
10778         REPORT_UNVECTORIZED_LOCATIONS.
10779         (vect_get_loop_niters): Fix indentation.
10780         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
10781         (vect_analyze_loop_operations): New function.
10782         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
10783         vect_analyze_operations.
10784         (vect_is_simple_reduction): Use new names.
10785         (vectorizable_live_operation, vect_transform_loop): Likewise.
10786         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
10787         to specify whether the data references can be a part of interleaving
10788         chain.
10789         (vect_analyze_data_ref_dependence): Use new names.
10790         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
10791         (vect_create_addr_base_for_vector_ref): Remove redundant code.
10792         * tree-vect-patterns.c (widened_name_p): Use new names.
10793         (vect_recog_dot_prod_pattern): Likewise.
10794         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
10795         (process_use, vect_mark_stmts_to_be_vectorized, 
10796         vect_model_simple_cost, vect_model_store_cost,
10797         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
10798         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
10799         vectorizable_operation, vectorizable_type_demotion,
10800         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
10801         vectorizable_condition): Likewise.
10802         (vect_analyze_operations): Split into vect_analyze_loop_operations
10803         and ...
10804         (vect_analyze_stmt): ... new function.
10805         (new_stmt_vec_info): Use new names.
10806         (vect_is_simple_use): Use new names and fix comment.
10807         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
10808         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
10809
10810 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
10811
10812         PR target/39911
10813         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
10814         and integer modes for x87 operands.  Do not ICE for unsupported size,
10815         generate error instead.  Generate error for unsupported operand types.
10816         ['z']: Do not handle HImode memory operands specially.  Warning
10817         for floating-point operands.  Fallthru to 'Z' for unsupported operand
10818         types.  Do not ICE for unsupported size, generate error instead.
10819         (output_387_binary_op): Use %Z to output operands.
10820         (output_fp_compare): Ditto.
10821         (output_387_reg_move): Ditto.
10822
10823 2009-04-28  Ben Elliston  <bje@au.ibm.com>
10824
10825         PR c++/35652
10826         Revert:
10827
10828         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10829
10830         * builtins.c (c_strlen): Do not warn here.
10831         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
10832         * c-common.c (pointer_int_sum): Take an explicit location.
10833         Warn about offsets out of bounds.
10834         * c-common.h (pointer_int_sum): Adjust declaration.
10835
10836 2009-04-27  Ian Lance Taylor  <iant@google.com>
10837
10838         * collect2.c (is_ctor_dtor): Change type of ret field in struct
10839         names to symkind.
10840         * dce.c (run_fast_df_dce): Change type of old_flags to int.
10841         * df-core.c (df_set_flags): Change return type to int.  Change
10842         type of old_flags to int.
10843         (df_clear_flags): Likewise.
10844         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
10845         (df_get_conditional_uses): Likewise.
10846         * df.h (df_set_flags, df_clear_flags): Update declarations.
10847         * dwarf2out.c (struct indirect_string_node): Change type of form
10848         field to enum dwarf_form.
10849         (AT_string_form): Change return type to enum dwarf_form.
10850         * fixed-value.c (fixed_compare): Add cast to enum type.
10851         * fwprop.c (update_df): Change 0 to VOIDmode.
10852         * gensupport.c: Change 0 to UNKNOWN.
10853         * gimple.h (gimple_cond_code): Add cast to enum type.
10854         * haifa-sched.c (reemit_notes): Add cast to enum type.
10855         * hooks.c (hook_int_void_no_regs): Remove function.
10856         * hooks.h (hook_int_void_no_regs): Remove declaration.
10857         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
10858         * predict.c (combine_predictions_for_insn): Add casts to enum type.
10859         * real.c (real_arithmetic): Add cast to enum type.
10860         (real_compare): Likewise.
10861         * target.h (struct gcc_target): Change return type of
10862         branch_target_register_class to enum reg_class.
10863         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
10864         default_branch_target_register_class.
10865         * targhooks.c (default_branch_target_register_class): New function.
10866         * targhooks.h (default_branch_target_register_class): Declare.
10867         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
10868         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
10869         cast to int.
10870         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
10871         ERROR_MARK.
10872         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
10873         vect_uninitialized_def.  Change 0 to ERROR_MARK.
10874         * tree-vect-stmts.c (supportable_widening_operation): Don't
10875         initialize icode1 and icode2.
10876         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
10877         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
10878         and to STD_C89.
10879         (cmn_err_flag_specs): Change 0 to STD_C89.
10880         (cmn_err_char_table): Likewise.
10881         * config/arm/arm.c (get_arm_condition_code): Change type of code
10882         to enum arm_cond_code.
10883         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
10884         (IWMMXT_BUILTIN2): Likewise.
10885         (neon_builtin_type_bits): Don't define typedef.
10886         (neon_builtin_datum): Change type of bits field to int.
10887         (arm_expand_neon_args): Add cast to enum type.
10888         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
10889         TLS_MODEL_NONE.
10890         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
10891         casts to enum type.
10892         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
10893         MIPS_FP_COND_f.
10894         * config/mips/mips.md (jal_macro): Return enum constant.
10895         (single_insn): Likewise.
10896         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
10897         CODE_FOR_nothing.
10898         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10899         casts to enum type.
10900         * config/s390/s390.c (s390_tune_flags): Change type to int.
10901         (s390_arch_flags): Likewise.
10902         (s390_handle_arch_option): Change flags field of struct pta to int.
10903         * config/s390/s390.h (s390_tune_flags): Update declaration.
10904         (s390_arch_flags): Likewise.
10905         * config/sh/sh.c (prepare_move_operands): Compare
10906         tls_symbolic_operand result with enum constant.
10907         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
10908         (sh_expand_prologue): Add cast to enum type.
10909         (sh_expand_epilogue): Likewise.
10910         (tls_symbolic_operand): Change return type to enum tls_model.
10911         (fpscr_set_from_mem): Add cast to enum type.
10912         (legitimize_pic_address): Compare tls_symbolic_operand result with
10913         enum constant.
10914         (sh_target_reg_class): Change return type to enum reg_class.
10915         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
10916         PROCESSOR_xxx.
10917         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
10918         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
10919         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
10920         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
10921         (delayed_branch, tls_call_delay): Likewise.
10922         (eligible_for_sibcall_delay): Likewise.
10923         (eligible_for_return_delay): Likewise. 
10924         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
10925         (spu_expand_builtin_1): Likewise.
10926
10927         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
10928         for all types of conversions.
10929         (output_init_element): Issue -Wc++-compat warning if needed when
10930         initializing a bitfield with enum type.
10931         * c-parser.c (c_parser_expression): Set original_type to
10932         original_type of right hand operand of comman operator.
10933
10934 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10935
10936         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
10937         grammar nits.
10938         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
10939         * doc/cpp.texi (Standard Predefined Macros)
10940         (Implementation-defined behavior): Likewise.
10941         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
10942         * doc/gimple.texi (GIMPLE Exception Handling)
10943         (@code{GIMPLE_ASSIGN}): Likewise.
10944         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
10945         * doc/invoke.texi (Warning Options, Optimize Options)
10946         (AVR Options, Darwin Options): Likewise.
10947         (Optimize Options): Reformulate -fwhole-program description.
10948         * doc/loop.texi (Lambda): Likewise.
10949         * doc/md.texi (Output Template, Define Constraints)
10950         (Standard Names, Insn Splitting): Likewise.
10951         * doc/options.texi (Option properties): Likewise.
10952         * doc/passes.texi (Tree-SSA passes): Likewise.
10953         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
10954         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
10955         (File Names and DBX): Likewise.
10956         * doc/trouble.texi (Incompatibilities): Likewise.
10957
10958 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10959
10960         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
10961         instruction is correct.
10962
10963 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
10964
10965         Allow non-constant arguments to conversion intrinsics.
10966         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
10967         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
10968         * spu.c (print_operand): Handle 'v' and 'w'.
10969         (exp2_immediate_p, spu_gen_exp2): Define.
10970         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
10971         spu_convtf_1): Update parameter descriptions.
10972         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
10973         * constraints.md ('v', 'w'): New.
10974         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
10975         Remove.
10976         (i2f, I2F): New define_mode_attr.
10977         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
10978         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
10979         fixuns_truncv4sfv4si2):  Update to use mode attribute.
10980         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
10981         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
10982         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
10983         patterns for combine.
10984
10985 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
10986
10987         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
10988         (cprop, hoist, pre, store_motion): New debug counters.
10989         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
10990         is not an RTL pass anymore.
10991         (pass_profiling): Remove extern decl for pass removed in 2005.
10992         (pass_gcse, pass_jump_bypass): Remove.
10993         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
10994         to 0 for clean state.
10995         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
10996         * cse.c (gate_handle_cse_after_global_opts,
10997         rest_of_handle_cse_after_global_opts): New functions.
10998         (pass_cse_after_global_opts): New pass, does local CSE.
10999         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
11000         (TV_CPROP): New timevar.
11001         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
11002         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
11003         (gcse_main, recompute_all_luids): Remove.
11004         (compute_hash_table_work): Call max_reg_num instead of reading
11005         max_gcse_regno.
11006         (cprop_jump): Don't set run_jump_opt_after_gcse.
11007         (constprop_register): Always allow to alter jumps.
11008         (cprop_insn): Likewise.
11009         (do_local_cprop): Likewise.
11010         (local_cprop_pass): Likewise.  Return non-zero if something changed.
11011         (cprop): Remove function, fold interesting bits into one_cprop_pass.
11012         (find_implicit_sets): Add note about missed optimization opportunity.
11013         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
11014         pass_rtl_cprop execute function.
11015         Don't bother tracking the pass number, each pass gets its own dumpfile
11016         now anyway.
11017         Always allow to alter jumpsand bypass jumps.
11018         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
11019         will just find no suitable set.
11020         (pre_edge_insert): Fix dumping, this function is for PRE only.
11021         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
11022         pass_rtl_pre execute function.
11023         (hoist_code): Return non-zero if something changed.  Keep track of
11024         substitutions and insertions for statistics gathering similar to PRE.
11025         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
11026         called from the pass_rtl_hoist execute function.  Show pass statistics.
11027         (compute_store_table): Use max_reg_num directly instead of using the
11028         formerly global max_gcse_regno.
11029         (build_store_vectors): Likewise.
11030         (replace_store_insn): Fix dumping.
11031         (store_motion): Rename to ...
11032         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
11033         pass, called from the pass_rtl_store_motion execute function.  Keep
11034         track of substitutions and insertions for statistics gathering similar
11035         to PRE.
11036         (bypass_jumps): Remove, fold interesting bits into ...
11037         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
11038         from the pass_rtl_cprop execute function.
11039         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
11040         pass_jump_bypass): Remove.
11041         (gate_handle_gcse, rest_of_handle_gcse): Remove.
11042         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
11043         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
11044         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
11045         (gate_rtl_store_motion, execute_rtl_store_motion,
11046         pass_rtl_store_motion): New.
11047         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
11048         make it clear that -fcse-skip-blocks is a no-op for backward compat.
11049         * passes.c (init_optimization_passes): Remove pass_gcse and
11050         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
11051         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
11052         instead of pass_jump_bypass.
11053
11054 2009-04-27  Richard Guenther  <rguenther@suse.de>
11055
11056         PR middle-end/39928
11057         * gimplify.c (gimplify_expr): If we are required to create
11058         a temporary make sure it ends up as register.
11059
11060 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
11061
11062         PR target/39903
11063         * config/i386/i386.c (construct_container): Don't call
11064         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
11065         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
11066
11067 2009-04-27  Michael Matz  <matz@suse.de>
11068
11069         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
11070         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
11071         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
11072         (dump_replaceable_exprs): Take a bitmap.
11073         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
11074         array.
11075         (expand_gimple_basic_block): Likewise.
11076         * tree-ssa-ter.c (struct temp_expr_table_d): Make
11077         replaceable_expressions member a bitmap.
11078         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
11079         (mark_replaceable): Likewise.
11080         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
11081         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
11082
11083 2009-04-27  Richard Guenther  <rguenther@suse.de>
11084
11085         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
11086         (verify_stmts): Dispatch to gimple/type verification code.
11087         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
11088         issue with call argument types.
11089
11090 2009-04-27  Michael Matz  <matz@suse.de>
11091
11092         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
11093         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
11094         to above.
11095
11096 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
11097             Eric Botcazou  <ebotcazou@adacore.com>
11098
11099         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
11100         a label's basic block.
11101         (mark_target_live_regs): Tidy and rework obsolete comments.
11102         Change back DF problem to LIVE.  If a label starts a basic block,
11103         assume that all registers that used to be live then still are.
11104         (init_resource_info): If a label starts a basic block, set its
11105         BLOCK_FOR_INSN accordingly.
11106         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
11107
11108 2009-04-27  Richard Guenther  <rguenther@suse.de>
11109
11110         * tree-flow-inline.h (function_ann): Remove.
11111         (get_function_ann): Likewise.
11112         * tree-dfa.c (create_function_ann): Remove.
11113         * tree-flow.h (struct static_var_ann_d): Remove.
11114         (struct function_ann_d): Likewise.
11115         (union tree_ann_d): Remove fdecl member.
11116         (function_ann_t): Remove.
11117         (function_ann, get_function_ann, create_function_ann): Remove
11118         declarations.
11119
11120 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
11121
11122         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
11123
11124 2009-04-27  Jan Hubicka  <jh@suse.cz>
11125
11126         * ipa-pure-const.c (struct funct_state_d): New fields
11127         state_previously_known, looping_previously_known; remove
11128         state_set_in_source.
11129         (analyze_function): Use new fields.
11130         (propagate): Avoid assumption that state_set_in_source imply
11131         nonlooping.
11132
11133         * tree-ssa-loop-niter.c (finite_loop_p): New function.
11134         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
11135         * cfgloop.h (finite_loop_p): Declare.
11136
11137 2009-04-26  Michael Matz  <matz@suse.de>
11138
11139         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
11140
11141 2009-04-26  Michael Matz  <matz@suse.de>
11142
11143         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
11144         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
11145         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
11146         pass_mark_used_blocks): Remove.
11147         * tree-optimize.c (pass_free_datastructures,
11148         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
11149         * passes.c (init_optimization_passes): Don't call
11150         pass_mark_used_blocks, remove dead code.
11151
11152 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
11153
11154         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
11155         * tree-ssa-live.h (register_ssa_partition): Likewise.
11156
11157 2009-04-26  Michael Matz  <matz@suse.de>
11158
11159         Expand from SSA.
11160         * builtins.c (fold_builtin_next_arg): Handle SSA names.
11161         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
11162         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
11163         SSA names. 
11164         (compare_pairs): Swap cost comparison.
11165         (coalesce_ssa_name): Don't use change_partition_var.
11166         * tree-nrv.c (struct nrv_data): Add modified member.
11167         (finalize_nrv_r): Set it.
11168         (tree_nrv): Use it to update statements.
11169         (pass_nrv): Require PROP_ssa.
11170         * tree-mudflap.c (mf_decl_cache_locals,
11171         mf_build_check_statement_for): Use make_rename_temp.
11172         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
11173         * alias.c (find_base_decl): Handle SSA names.
11174         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
11175         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
11176         * rtl.h (set_reg_attrs_for_parm): Declare.
11177         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
11178         to "optimized", remove unused locals at finish.
11179         (execute_free_datastructures): Make global, call
11180         delete_tree_cfg_annotations.
11181         (execute_free_cfg_annotations): Don't call
11182         delete_tree_cfg_annotations.
11183
11184         * ssaexpand.h: New file.
11185         * expr.c (toplevel): Include ssaexpand.h.
11186         (expand_assignment): Handle SSA names the same as register variables.
11187         (expand_expr_real_1): Expand SSA names.
11188         * cfgexpand.c (toplevel): Include ssaexpand.h.
11189         (SA): New global variable.
11190         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
11191         (SSAVAR): New macro.
11192         (set_rtl): New helper function.
11193         (add_stack_var): Deal with SSA names, use set_rtl.
11194         (expand_one_stack_var_at): Likewise.
11195         (expand_one_stack_var): Deal with SSA names.
11196         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
11197         before unique numbers.
11198         (expand_stack_vars): Use set_rtl.
11199         (expand_one_var): Accept SSA names, add asserts for them, feed them
11200         to above subroutines.
11201         (expand_used_vars): Expand all partitions (without default defs),
11202         then only the local decls (ignoring those expanded already).
11203         (expand_gimple_cond): Remove edges when jumpif() expands an
11204         unconditional jump.
11205         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
11206         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
11207         SSA name.
11208         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
11209         members of SA; deal with PARM_DECL partitions here; expand
11210         all PHI nodes, free tree datastructures and SA.  Commit instructions
11211         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
11212         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
11213         info and statements at start, collect garbage at finish.
11214         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
11215         (VAR_ANN_PARTITION) Remove.
11216         (change_partition_var): Don't declare.
11217         (partition_to_var): Always return SSA names.
11218         (var_to_partition): Only accept SSA names.
11219         (register_ssa_partition): Only check argument.
11220         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
11221         member.
11222         (delete_var_map): Don't free it.
11223         (var_union): Only accept SSA names, simplify.
11224         (partition_view_init): Mark only useful SSA names as used.
11225         (partition_view_fini): Only deal with SSA names.
11226         (change_partition_var): Remove.
11227         (dump_var_map): Use ssa_name instead of partition_to_var member.
11228         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
11229         basic blocks.
11230         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
11231         (struct _elim_graph): New member const_dests; nodes member vector of
11232         ints.
11233         (set_location_for_edge): New static helper.
11234         (create_temp): Remove.
11235         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
11236         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
11237         (new_elim_graph): Allocate const_dests member.
11238         (clean_elim_graph): Truncate const_dests member.
11239         (delete_elim_graph): Free const_dests member.
11240         (elim_graph_size): Adapt to new type of nodes member.
11241         (elim_graph_add_node): Likewise.
11242         (eliminate_name): Likewise.
11243         (eliminate_build): Don't take basic block argument, deal only with
11244         partition numbers, not variables.
11245         (get_temp_reg): New static helper.
11246         (elim_create): Use it, deal with RTL temporaries instead of trees.
11247         (eliminate_phi): Adjust all calls to new signature.
11248         (assign_vars, replace_use_variable, replace_def_variable): Remove.
11249         (rewrite_trees): Only do checking.
11250         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
11251         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
11252         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
11253         contains_tree_r, MAX_STMTS_IN_LATCH,
11254         process_single_block_loop_latch, analyze_edges_for_bb,
11255         perform_edge_inserts): Remove.
11256         (expand_phi_nodes): New global function.
11257         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
11258         functions, initialize new parameter, remember partitions having a
11259         default def.
11260         (finish_out_of_ssa): New global function.
11261         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
11262         don't reset in_ssa_p here, don't disable TER when mudflap.
11263         (pass_del_ssa): Remove.
11264         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
11265         partition members.
11266         (execute_free_datastructures): Declare.
11267         * Makefile.in (SSAEXPAND_H): New variable.
11268         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
11269         * basic-block.h (commit_one_edge_insertion): Declare.
11270         * passes.c (init_optimization_passes): Move pass_nrv and
11271         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
11272         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
11273         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
11274         (redirect_branch_edge): Deal with super block when expanding, split
11275         out jump patching itself into ...
11276         (patch_jump_insn): ... here, new static helper.
11277
11278 2009-04-26  Michael Matz  <matz@suse.de>
11279
11280         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
11281         beyond num_ssa_names.
11282         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
11283         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
11284
11285 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
11286
11287         PR inline-asm/39543
11288         * fwprop.c (forward_propagate_asm): New function.
11289         (forward_propagate_and_simplify): Propagate also into __asm, if it
11290         doesn't increase the number of referenced registers.
11291
11292         PR c/39889
11293         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
11294
11295 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
11296
11297         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
11298         note_nonlocal_vla_type for nonlocal VLAs.
11299         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
11300         contains_remapped_vars, remap_vla_decls): New functions.
11301         (convert_nonlocal_reference_stmt): If not optimizing, call
11302         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
11303         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
11304         if it wasn't found in var_map.
11305         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
11306         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
11307         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
11308         declare_vars.
11309         * gimplify.c (nonlocal_vlas): New variable.
11310         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
11311         referenced VLAs.
11312         (gimplify_body): Create and destroy nonlocal_vlas.
11313
11314         * dwarf2out.c (loc_descr_plus_const): New function.
11315         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
11316         mem_loc_descriptor, loc_descriptor_from_tree_1,
11317         descr_info_loc, gen_variable_die): Use it.
11318
11319         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
11320         !TREE_STATIC VAR_DECLs.
11321         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
11322         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
11323         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
11324         DECL_BY_REFERENCE is valid.
11325         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
11326         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
11327         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
11328         Copy DECL_BY_REFERENCE.
11329         (struct nesting_copy_body_data): New type.
11330         (nesting_copy_decl): New function.
11331         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
11332         if they have variable length.
11333
11334 2009-04-26  Michael Matz  <matz@suse.de>
11335
11336         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
11337         mark new temporaries for renaming.
11338
11339 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
11340
11341         PR c/39581
11342         * c-decl.c (global_bindings_p): Return negative value.
11343         (c_variable_size): New.  Based on variable_size from
11344         stor-layout.c.
11345         (grokdeclarator): Call c_variable_size not variable_size.
11346
11347 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
11348
11349         * config/i386/i386.c (print_operand) ['z']: Fix typo.
11350
11351 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
11352
11353         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
11354         Redefine it to just use mingw/include.
11355         (ASM_SPEC): Rules for -m32 and -m64.
11356         (LINK_SPEC): Use Likewise.
11357         (SPEC_32): New define.
11358         (SPEC_64): Likewise.
11359         (SUB_LINK_SPEC): Likewise.
11360         (MULTILIB_DEFAULTS): New define.
11361         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
11362         Add multilib options.
11363         (MULTILIB_DIRNAMES): Likewise.
11364         (MULTILIB_OSDIRNAMES): Likewise.
11365         (LIBGCC): Likewise.
11366         (INSTALL_LIBGCC): Likewise.
11367
11368 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
11369
11370         PR c/39556
11371         * c-tree.h (enum c_inline_static_type): New.
11372         (record_inline_static): Declare.
11373         * c-decl.c (struct c_inline_static, c_inline_statics,
11374         record_inline_static, check_inline_statics): New.
11375         (pop_file_scope): Call check_inline_statics.
11376         (start_decl): Call record_inline_static instead of pedwarning
11377         directly for static in inline function.
11378         * c-typeck.c (build_external_ref): Call record_inline_static
11379         instead of pedwarning directly for static referenced in inline
11380         function.
11381
11382 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
11383
11384         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
11385         not new but only being rescanned.
11386         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
11387         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
11388         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
11389         record_set_info, compute_set, grealloc): Remove.
11390         (recompute_all_luids): New function.
11391         (gcse_main): Don't compute sets, and don't do related memory
11392         allocations/free-ing.  If something changed before the end of the
11393         pass, update LUIDs using recompute_all_luids.
11394         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
11395         (free_gcse_mem): Don't free it either.
11396         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
11397         Use the df insn LUIDs.
11398         (load_killed_in_block): Likewise.
11399         (compute_hash_table_work): Don't compute reg_set_in_block.
11400         (compute_transp): Use DF_REG_DEF_CHAINs.
11401         (local_cprop_pass): Don't use compute_sets and related functions.
11402         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
11403         Use get_max_uid() instead of max_cuid.
11404         (insert_insn_end_basic_block, pre_insert_copy_insn,
11405         update_ld_motion_stores): Don't try to
11406         keep reg_set tables up to date.
11407         (pre_insert_copies): Use df insn LUIDs.
11408         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
11409         (reg_set_info): Don't use extra bitmap argument.
11410         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
11411         information to compute regs_set_in_block.
11412         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
11413         (bypass_jumps): Don't use compute_sets and friends.
11414
11415 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11416
11417         PR testsuite/39710
11418         * opts.c (undocumented_msg): Do not leave blank even with
11419         ENABLE_CHECKING.
11420
11421 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
11422
11423         * c-decl.c (build_enumerator): Allow values folding to integer
11424         constants but not integer constant expressions with a pedwarn if
11425         pedantic.
11426
11427 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
11428
11429         PR c/39582
11430         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
11431         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
11432         type is an integer constant.
11433
11434 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
11435
11436         PR target/39897
11437         * config/i386/i386.c (print_operand) ['z']: Revert handling of
11438         HImode operands.
11439
11440 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
11441
11442         PR c/39564
11443         * c-decl.c (grokdeclarator): Diagnose declarations of functions
11444         with variably modified return type and no storage class
11445         specifiers, except for the case of nested functions.  Distinguish
11446         extern declarations of functions with variably modified return
11447         types from those of objects with variably modified types.
11448
11449 2009-04-25  Jan Hubicka  <jh@suse.cz>
11450
11451         * tree.c (list_equal_p): New function.
11452         * tree.h (list_equal_p): Declare.
11453         * coretypes.h (edge_def, edge, const_edge, basic_block_def
11454         basic_block_def, basic_block, const_basic_block): New.
11455         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
11456         (redirect_eh_edge): New function.
11457         (make_eh_edge_update_phi): EH edges are not abnormal.
11458         * except.c: Include tree-flow.h.
11459         (list_match): New function.
11460         (eh_region_replaceable_by_p): New function.
11461         (replace_region): New function.
11462         (hash_type_list): New function.
11463         (hash_eh_region): New function.
11464         (eh_regions_equal_p): New function.
11465         (merge_peers): New function.
11466         (remove_unreachable_regions): Verify EH tree when checking;
11467         merge peers.
11468         (copy_eh_region_1): New function.
11469         (copy_eh_region): New function.
11470         (push_reachable_handler): New function.
11471         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
11472         regions without label but with live RESX.
11473         * except.h (redirect_eh_edge_to_label): New.
11474         * tree-flow.h (redirect_eh_edge): New.
11475         * coretypes.h (edge_def, edge, const_edge, basic_block_def
11476         basic_block_def, basic_block, const_basic_block): Remove.
11477         * Makefile.in (except.o): Add dependency on tree-flow.h
11478         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
11479         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
11480         Remove.
11481
11482 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
11483
11484         PR bootstrap/39645
11485         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
11486         on the destination of memcpy.
11487
11488 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
11489
11490         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
11491         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
11492         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
11493
11494 2009-04-25  Jan Hubicka  <jh@suse.cz>
11495
11496         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
11497         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
11498         to be reached by different label than left.
11499         (update_eh_edges): Update comment; remove edge_to_remove if possible
11500         and return true if suceeded.
11501         (cleanup_empty_eh): Accept sharing map; handle shared regions.
11502         (cleanup_eh): Compute sharing map.
11503         * except.c (remove_eh_handler_and_replace): Add argument if we should
11504         update regions.
11505         (remove_unreachable_regions): Update for label sharing.
11506         (label_to_region_map): Likewise.
11507         (get_next_region_sharing_label): New function.
11508         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
11509         prev_try pointers.
11510         (remove_eh_handler): Update.
11511         (remove_eh_region_and_replace_by_outer_of): New function.
11512         * except.h (struct eh_region): Add next_region_sharing_label.
11513         (remove_eh_region_and_replace_by_outer_of,
11514         get_next_region_sharing_label): Declare.
11515         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
11516
11517 2009-04-25  Jan Hubicka  <jh@suse.cz>
11518
11519         * tree-cfg.c (split_critical_edges): Split also edges where we can't
11520         insert code even if they are not critical.
11521
11522 2009-04-25  Jan Hubicka  <jh@suse.cz>
11523
11524         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
11525         (gimple_can_remove_branch_p): EH edges won't remove branch by
11526         redirection.
11527         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
11528         updating of non-abnormal EH edges.
11529         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
11530         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
11531         (split_critical_edges): Split also edges where emitting code on them
11532         will lead to splitting later.
11533
11534 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
11535             H.J. Lu  <hongjiu.lu@intel.com>
11536
11537         PR target/39590
11538         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
11539         the configured assembler supports fildq and fistpq mnemonics.
11540         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
11541         * configure: Regenerated.
11542         * config.in: Ditto.
11543
11544         * config/i386/i386.c (print_operand): Handle 'Z'.
11545         ['z']: Remove handling of special fild/fist suffixes.
11546         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
11547         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
11548         suffix of fild insn.
11549         (*floatsi<mode>2_vector_mixed): Ditto.
11550         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
11551         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
11552         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
11553         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
11554         * config/i386/gas.h (GAS_MNEMONICS): Remove.
11555
11556 2009-04-25  Ben Elliston  <bje@au.ibm.com>
11557  
11558         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
11559         the source of a set operation.
11560
11561 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
11562
11563         * target.h (struct gcc_target): Add case_values_threshold field.
11564         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
11565         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
11566         * targhooks.c (default_case_values_threshold): New function.
11567         * targhooks.h (default_case_values_threshold): Declare function.
11568         * stmt.c (expand_case): Use case_values_threshold target hook.
11569         * expr.h (case_values_threshold): Remove declartation.
11570         * expr.c (case_values_threshold): Remove function.
11571         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
11572
11573         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
11574         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
11575         (avr_case_values_threshold): Declare as static.
11576         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
11577
11578         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
11579         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
11580         (mn10300_case_values_threshold): New function.
11581
11582 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
11583
11584         * ira.c (setup_cover_and_important_classes): Add enum cast.
11585
11586 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
11587
11588         * genpreds.c (write_enum_constraint_num): Output definition of
11589         CONSTRAINT_NUM_DEFINED_P macro.
11590         * ira.c (setup_cover_and_important_classes): Use
11591         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
11592         
11593 2009-04-24  DJ Delorie  <dj@redhat.com>
11594
11595         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
11596         __SH2A_SINGLE_ONLY__ also.
11597
11598 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
11599
11600         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
11601         (movdf_internal): Ditto.
11602         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
11603         SFmode and DFmode constants.
11604         (ia64_print_operand): Add 'G' format for printing
11605         floating point constants.
11606
11607 2009-04-24  Richard Guenther  <rguenther@suse.de>
11608
11609         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
11610         from unsigned additions.
11611
11612 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
11613
11614         * c-typeck.c (set_init_index): Allow array designators that are
11615         not integer constant expressions with a pedwarn if pedantic.
11616
11617 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
11618
11619         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
11620         zero if no overlap in nonzero bits between the operands.
11621
11622 2009-04-24  Ian Lance Taylor  <iant@google.com>
11623
11624         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
11625         (record_dead_and_set_regs): Likewise.
11626         * df.h (struct df_mw_hardreg): Change flags field to int.
11627         (struct df_base_ref): Likewise.
11628         (struct df): Change changeable_flags field to int.
11629         * df-scan.c (df_defs_record): Change clobber_flags to int.
11630         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
11631         constants rather than #define macros.
11632         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
11633         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
11634         (enum dwarf_calling_convention): Likewise.
11635         (enum dwarf_line_number_x_ops): Likewise.
11636         (enum dwarf_call_frame_info): Likewise.
11637         (enum dwarf_source_language): Likewise.
11638         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
11639         (add_calling_convention_attribute): Likewise.
11640         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
11641         (combine_comparisons): Change compcode to int.  Add cast to enum type.
11642         * genrecog.c (maybe_both_true_2): Change c to int.
11643         (write_switch): Likewise.  Add cast to enum type.
11644         * gimplify.c (gimplify_omp_for): Handle return values from
11645         gimplify_expr using MIN rather than bitwise or.
11646         (gimplify_expr): Add cast to enum type.
11647         * ipa-prop.c (update_jump_functions_after_inlining): Change
11648         IPA_BOTTOM to IPA_JF_UNKNOWN.
11649         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
11650         Add casts to enum type.
11651         (setup_cover_and_important_classes): Change cl to int.  Add casts
11652         to enum type.
11653         (setup_class_translate): Change cl and mode to int.
11654         (ira_init_once): Change mode to int.
11655         (free_register_move_costs): Likewise.
11656         (setup_prohibited_mode_move_regs): Add casts to enum type.
11657         * langhooks.c (add_builtin_function_common): Rework assertion that
11658         value fits bitfield.
11659         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
11660         * omega.c (omega_do_elimination): Avoid math on enum types.
11661         * optabs.c (expand_vec_shift_expr): Remove casts to int.
11662         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
11663         int local to handle integral_argment value.
11664         * regmove.c (try_auto_increment): Change PUT_MODE to
11665         PUT_REG_NOTE_KIND.
11666         * reload.c (push_secondary_reload): Add casts to enum type.
11667         (secondary_reload_class, find_valid_class): Likewise.
11668         * reload1.c (emit_input_reload_insns): Likewise.
11669         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
11670         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
11671         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
11672         constant.
11673         * tree.c (build_common_builtin_nodes): Add casts to enum type.
11674         * tree-complex.c (complex_lattice_t): Typedef to int rather than
11675         enum type.
11676         (expand_complex_libcall): Add casts to enum type.
11677         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
11678         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
11679         with ERROR_MARK, not NUM_TREE_CODES.
11680         (vect_create_epilog_for_reduction): Likewise.
11681         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
11682         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
11683         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
11684         enum machine_mode.
11685         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
11686         vect_unused_in_loop.  Change 0 to loop_vect.
11687         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
11688         * var-tracking.c (get_init_value): Change return type to enum
11689         var_init_status.
11690         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
11691         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
11692         arm_fp_model.
11693         (arm_override_options): Add casts to enum type.
11694         (arm_emit_tls_decoration): Likewise.
11695         * config/i386/i386.c (ix86_function_specific_restore): Add casts
11696         to enum type.
11697         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
11698         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
11699         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
11700         enum type.
11701         * config/s390/s390.c (code_for_builtin_64): Change to array of
11702         enum insn_code.
11703         (code_for_builtin_31): Likewise.
11704         (s390_expand_builtin): Change code_for_builtin to enum insn_code
11705         const *.
11706         * config/sparc/sparc.c (sparc_override_options): Change value
11707         field in struct code_model to enum cmodel.  In initializer change
11708         0 to NULL and add cast to enum type.
11709
11710         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
11711         Change all callers.  Issue a -Wc++-compat warning using
11712         lhs_origtype if necessary.
11713         (convert_for_assignment): Issue -Wc++-compat warnings about
11714         invalid conversions to enum type on assignment.
11715         * c-common.h (build_modify_expr): Update declaration.
11716
11717 2009-04-24  Nick Clifton  <nickc@redhat.com>
11718
11719         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
11720         (function_arg_advance): Likewise.
11721         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
11722         5th alternative.
11723
11724 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
11725
11726         * config/s390/constraints.md ('I', 'J'): Fix condition.
11727
11728 2009-04-24  Diego Novillo  <dnovillo@google.com>
11729
11730         * gengtype-parse.c (parse_error): Add newline after message.
11731
11732 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
11733
11734         * config/i386/sse.md (avxmodesuffixs): Removed.
11735         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
11736         (*avx_pinsr<ssevecsize>): This.
11737
11738 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
11739
11740         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
11741         follow chains of regs with a single definition, and allow expressions
11742         that are function_invariant_p.
11743         (simple_rhs_p): Allow expressions that are function_invariant_p.
11744
11745 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
11746
11747         PR middle-end/39867
11748         * fold-const.c (fold_cond_expr_with_comparison): When folding
11749         > and >= to MAX, make sure the MAX uses the same type as the
11750         comparison's operands.
11751
11752 2009-04-24  Nick Clifton  <nickc@redhat.com>
11753
11754         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
11755         addressing for DImode accesses.
11756         (frv_print_operand_address): Handle PLUS case.
11757         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
11758
11759 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
11760
11761         PR rtl-optimization/39794
11762         * alias.c (canon_true_dependence): Add x_addr argument.
11763         * rtl.h (canon_true_dependence): Adjust prototype.
11764         * cse.c (check_dependence): Adjust canon_true_dependence callers.
11765         * cselib.c (cselib_invalidate_mem): Likewise.
11766         * gcse.c (compute_transp): Likewise.
11767         * dse.c (scan_reads_nospill): Likewise.
11768         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
11769         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
11770         canon_base_addr of the group, plus optional offset.
11771         (struct group_info): Rename canon_base_mem to
11772         canon_base_addr.
11773         (get_group_info): Set canon_base_addr to canon_rtx of base, not
11774         canon_rtx of base_mem.
11775
11776 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
11777
11778         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
11779         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
11780
11781 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11782
11783         * config/spu/spu-builtins.h: Delete file.
11784
11785         * config/spu/spu.h (enum spu_builtin_type): Move here from
11786         spu-builtins.h.
11787         (struct spu_builtin_description): Likewise.  Add GTY marker.
11788         Do not use enum spu_function_code or enum insn_code.
11789         (spu_builtins): Add extern declaration.
11790
11791         * config/spu/spu.c: Do not include "spu-builtins.h".
11792         (enum spu_function_code, enum spu_builtin_type_index,
11793         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
11794         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
11795         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
11796         unsigned_V2DI_type_node): Move here from spu-builtins.h.
11797         (spu_builtin_types): Make static.  Add GTY marker.
11798         (spu_builtins): Add extern declaration with GTY marker.
11799         Include "gt-spu.h".
11800
11801         * config/spu/spu-c.c: Do not include "spu-builtins.h".
11802         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
11803         Check programmatically whether all parameters are scalar.
11804
11805         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
11806
11807 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
11808
11809         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
11810         assignment from the constructor either if the target is volatile.
11811
11812 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
11813
11814         * config/arm/arm.md (insv): Do not share operands[0].
11815
11816 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
11817
11818         * config/vxlib-tls.c (active_tls_threads): Delete.
11819         (delete_hook_installed): New.
11820         (tls_delete_hook): Don't delete the delete hook.
11821         (tls_destructor): Delete it here.
11822         (__gthread_set_specific): Adjust installing the delete hook.
11823         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
11824         __gthread_leave_tsd_dtor_context.
11825
11826 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
11827
11828         * c-format.c (gcc_tdiag_char_table): Add support for %E.
11829
11830 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
11831
11832         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
11833         enum type.
11834         (alpha_rtx_costs): Ditto.
11835         (emit_unlikely_jump): Use add_reg_note.
11836         (emit_frame_store_1): Ditto.
11837         (alpha_expand_prologue): Ditto.
11838         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
11839         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
11840
11841 2009-04-23  Nick Clifton  <nickc@redhat.com>
11842
11843         * config/v850/v850.md (epilogue): Remove suppressed code.
11844         (return): Rename to return_simple and remove test of frame size.
11845         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
11846         to gen_return_simple.
11847
11848 2009-04-22  Jing Yu  <jingyu@google.com>
11849
11850         PR testsuite/39781
11851         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
11852
11853 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11854
11855         PR C/31499
11856         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
11857         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
11858         value is a VECTOR_CST, the element type is the element type of the
11859         vector.
11860
11861 2009-04-22  DJ Delorie  <dj@redhat.com>
11862
11863         * config/m32c/m32c.h: Update GTY annotations to new syntax.
11864
11865 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
11866
11867         * alias.c (find_base_term): Move around LO_SUM case, so that
11868         CONST falls through into PLUS/MINUS handling.
11869
11870         PR c/39855
11871         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
11872         into 0, use omit_one_operand.
11873
11874 2009-04-23  Ben Elliston  <bje@au.ibm.com>
11875
11876         * config/rs6000/linux-unwind.h (get_regs): Remove type
11877         puns. Change the type of `pc' to an array of unsigned ints and
11878         update all users.  Constify frame24.
11879
11880 2009-04-22  DJ Delorie  <dj@redhat.com>
11881
11882         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
11883         declarations before code.
11884         (current_function_special_page_vector): Likewise.
11885         (m32c_expand_insv): Silence a warning.
11886
11887 2009-04-21  Taras Glek  <tglek@mozilla.com>
11888
11889         * alias.c: Update GTY annotations to new syntax.
11890         * basic-block.h: Likewise.
11891         * bitmap.h: Likewise.
11892         * c-common.h: Likewise.
11893         * c-decl.c: Likewise.
11894         * c-parser.c: Likewise.
11895         * c-pragma.c: Likewise.
11896         * c-tree.h: Likewise.
11897         * cfgloop.h: Likewise.
11898         * cgraph.h: Likewise.
11899         * config/alpha/alpha.c: Likewise.
11900         * config/arm/arm.h: Likewise.
11901         * config/avr/avr.h: Likewise.
11902         * config/bfin/bfin.c: Likewise.
11903         * config/cris/cris.c: Likewise.
11904         * config/darwin.c: Likewise.
11905         * config/frv/frv.c: Likewise.
11906         * config/i386/i386.c: Likewise.
11907         * config/i386/i386.h: Likewise.
11908         * config/i386/winnt.c: Likewise.
11909         * config/ia64/ia64.h: Likewise.
11910         * config/iq2000/iq2000.c: Likewise.
11911         * config/mips/mips.c: Likewise.
11912         * config/mmix/mmix.h: Likewise.
11913         * config/pa/pa.c: Likewise.
11914         * config/pa/pa.h: Likewise.
11915         * config/rs6000/rs6000.c: Likewise.
11916         * config/s390/s390.c: Likewise.
11917         * config/sparc/sparc.c: Likewise.
11918         * config/xtensa/xtensa.c: Likewise.
11919         * cselib.h: Likewise.
11920         * dbxout.c: Likewise.
11921         * dwarf2out.c: Likewise.
11922         * except.c: Likewise.
11923         * except.h: Likewise.
11924         * fixed-value.h: Likewise.
11925         * function.c: Likewise.
11926         * function.h: Likewise.
11927         * gimple.h: Likewise.
11928         * integrate.c: Likewise.
11929         * optabs.c: Likewise.
11930         * output.h: Likewise.
11931         * real.h: Likewise.
11932         * rtl.h: Likewise.
11933         * stringpool.c: Likewise.
11934         * tree-data-ref.c: Likewise.
11935         * tree-flow.h: Likewise.
11936         * tree-scalar-evolution.c: Likewise.
11937         * tree-ssa-address.c: Likewise.
11938         * tree-ssa-alias.h: Likewise.
11939         * tree-ssa-operands.h: Likewise.
11940         * tree.c: Likewise.
11941         * tree.h: Likewise.
11942         * varasm.c: Likewise.
11943         * varray.h: Likewise.
11944         * vec.h: Likewise.
11945         * coretypes.h: Do not define GTY macro if it is already defined.
11946         * doc/gty.texi: Update GTY documentation to new syntax.
11947         * gengtype-lex.l: Enforce attribute-like syntax for GTY
11948         annotations on structs.
11949         * gengtype-parse.c: Likewise.
11950
11951 2009-04-22  Mark Heffernan  <meheff@google.com>
11952
11953         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
11954
11955 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
11956
11957         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
11958         where appropriate.
11959
11960 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
11961
11962         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
11963         the same as a PLUS without a shift.  Increase the cost of a
11964         CONST_INT in MULT.
11965
11966 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11967
11968         * Makefile.in: Update dependencies.
11969         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
11970         * errors.h: Remove bogus comment about compatibility.
11971         (warning): Update declaration.
11972         * genautomata.c: Update all calls to warning.
11973         * gimple.c: Do not include errors.h. Include toplev.h.
11974         * tree-ssa-structalias.c: Do not include errors.h.
11975         * omega.c: Likewise.
11976         * tree-ssa-reassoc.c: Likewise.
11977         * config/spu/spu-c.c: Likewise.
11978         * config/spu/t-spu-elf: Update dependencies.
11979
11980 2009-04-22  Richard Guenther  <rguenther@suse.de>
11981
11982         PR tree-optimization/39824
11983         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
11984         make sure the types are compatible.
11985
11986 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11987
11988         PR c++/14875
11989         * c-common.c (c_parse_error): Take a token_flags parameter.
11990         Use token_type for the token type instead.
11991         Pass token_flags to cpp_type2name.
11992         * c-common.h (c_parse_error): Update declaration.
11993         * c-parser.c (c_parser_error): Pass 0 as token flags.
11994
11995 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
11996
11997         PR rtl-optimization/39580
11998         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
11999         
12000 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12001
12002         * function.c (expand_function_end): Do not emit a jump to the "naked"
12003         return label for fall-through returns.
12004         * except.c (sjlj_emit_function_exit): Always place the call to the
12005         unregister function at the location installed by expand_function_end.
12006
12007 2009-04-22  Richard Guenther  <rguenther@suse.de>
12008
12009         PR tree-optimization/39845
12010         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
12011         (gen_inbound_check): Likewise.
12012
12013 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
12014
12015         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
12016         padding for PPC.
12017         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
12018         * config/vxlib.c (__gthread_once): Add race guard for PPC.
12019
12020 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
12021
12022         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
12023         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
12024         shift counts to avoid out-of-bounds array accesses.
12025
12026 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
12027
12028         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
12029         (Pmode): Move above.
12030
12031 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
12032
12033         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
12034         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
12035         GET_CODE macro.  Use IN_RANGE macro where appropriate.
12036         * config/alpha/alpha.h: Ditto.
12037         * config/alpha/alpha.md: Ditto.
12038         * config/alpha/constraints.md: Ditto.
12039         * config/alpha/predicates.md: Ditto.
12040         
12041 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
12042
12043         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
12044         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12045         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12046         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12047         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12048         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12049         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12050         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12051         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12052         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12053         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12054         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12055         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12056         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12057         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12058         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12059         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12060         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12061         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12062         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12063         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12064         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12065         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12066         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12067         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12068         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12069         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12070
12071 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12072
12073         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
12074         references from comments.
12075         * cfgbuild.c: (count_basic_blocks): Delete.
12076         (find_basic_blocks_1): Delete.
12077         (find_basic_blocks): Delete.
12078         * except.c (finish_eh_generation): Make static.  Move comment from
12079         except.h here.  Remove find_basic_blocks references from comments.
12080         * except.h (finish_eh_generation): Delete.
12081         * basic-block.h (find_basic_blocks): Delete.
12082         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
12083
12084 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
12085
12086         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
12087         (sdbout_parms):  Likewise.
12088
12089 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
12090
12091         * config/sh/sh.c (prepare_cbranch_operands): Use
12092         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
12093         (expand_cbranchdi4): Likewise.
12094         (from_compare): Add cast to enum type.
12095         (expand_cbranchsi4): Use add_reg_note.
12096         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
12097         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
12098         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
12099         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12100         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
12101         instead of CODE_FOR_nothing.
12102         (cbranchdi4): Likewise.  Fix the order of arguments for
12103         gen_rtx_fmt_ee.
12104         (push_fpscr): Use add_reg_note.
12105         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
12106         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
12107         
12108 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
12109
12110         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
12111         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
12112         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
12113         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
12114         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
12115         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
12116         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
12117         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
12118         config/alpha/x-vms, config/arc/t-arc,
12119         config/arm/README-interworking, config/arm/arm-c.c,
12120         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
12121         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
12122         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
12123         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
12124         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
12125         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
12126         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
12127         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
12128         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
12129         config/cris/t-elfmulti, config/crx/t-crx,
12130         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
12131         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
12132         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
12133         config/h8300/t-h8300, config/i386/athlon.md,
12134         config/i386/darwin-libgcc.10.4.ver,
12135         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
12136         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
12137         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
12138         config/i386/t-linux64, config/i386/t-nwld,
12139         config/i386/t-rtems-i386, config/i386/t-sol2-10,
12140         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
12141         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
12142         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
12143         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
12144         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
12145         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
12146         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
12147         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
12148         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
12149         config/m68k/t-uclinux, config/mcore/t-mcore,
12150         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
12151         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
12152         config/mips/crtn.asm, config/mips/irix-crti.asm,
12153         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
12154         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
12155         config/mips/mips-fixed.md, config/mips/sb1.md,
12156         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
12157         config/mips/t-iris6, config/mips/t-isa3264,
12158         config/mips/t-libgcc-mips16, config/mips/t-linux64,
12159         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
12160         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
12161         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
12162         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
12163         config/mn10300/t-linux, config/mn10300/t-mn10300,
12164         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
12165         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
12166         config/picochip/libgccExtras/clzsi2.asm,
12167         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
12168         config/rs6000/darwin-libgcc.10.4.ver,
12169         config/rs6000/darwin-libgcc.10.5.ver,
12170         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
12171         config/rs6000/t-aix43, config/rs6000/t-aix52,
12172         config/rs6000/t-darwin, config/rs6000/t-fprules,
12173         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
12174         config/rs6000/t-lynx, config/rs6000/t-netbsd,
12175         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
12176         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
12177         config/rs6000/t-rtems, config/rs6000/t-spe,
12178         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
12179         config/score/t-score-elf, config/sh/divcost-analysis,
12180         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
12181         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
12182         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
12183         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
12184         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
12185         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
12186         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
12187         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
12188         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
12189         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
12190         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
12191         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
12192         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
12193         limitx.h, version.c, xcoff.h: Add copyright and license notices.
12194         * config/h8300/genmova.sh: Include copyright and license notices
12195         in generated output.
12196         * config/h8300/mova.md: Regenerate.
12197         * doc/install.texi2html: Include word "Copyright" in copyright
12198         notice and use name "Free Software Foundation, Inc.".
12199         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
12200         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
12201         ChangeLog-2007, ChangeLog-2008: Correct dates.
12202
12203 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
12204
12205         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
12206         NE_EXPR operations as well.
12207         * c-parser.c (c_parser_condition): Do not set location information on
12208         the condition.
12209         (c_parser_conditional_expression): Likewise.
12210         (c_parser_binary_expression): Set location information on operators.
12211         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
12212         TRUTH_NOT_EXPR has been folded.
12213         * fold-const.c (fold_truth_not_expr): Copy location information from
12214         the incoming expression to the outgoing one.
12215         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
12216         recursive calls on the LHS of the operator but pass that of the
12217         operator to recursive calls on the RHS of the operator.  Set it
12218         on the COND_EXPR.
12219         (shortcut_cond_expr): Set the locus of the operator on the second
12220         COND_EXPR and that of the expression on the first in degenerate cases.
12221         Pass the locus of the expression to calls to shortcut_cond_r.
12222         Set the locus of the 'then' block on the associated jump, if any.
12223         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
12224         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
12225         expression to call to gimplify_boolean_expr.
12226
12227 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
12228
12229         * config.gcc: Add additional configuration for
12230         i686-w64-mingw* and x86_64-w64-mingw* triplet.
12231         * config/i386/mingw-w64.h: New mingw-w64 specific header.
12232         (CPP_SPEC): Redefine for allowing -municode option.
12233         (STARTFILE_SPEC): Likewise.
12234         * config/i386/t-mingw-w64: New.
12235         * config/i386/mingw-w64.opt: New.
12236         (municode): Add new target option.
12237         * doc/invoke.texi (municode): Add documentation for new option.
12238
12239 2009-04-21  Ian Lance Taylor  <iant@google.com>
12240
12241         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12242         Correct test for number of arguments.
12243         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
12244
12245 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
12246
12247         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
12248         argument of emit_library_call.
12249
12250 2009-04-21  Richard Guenther  <rguenther@suse.de>
12251
12252         PR middle-end/39829
12253         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
12254         inside VIEW_CONVERT_EXPRs.
12255
12256 2009-04-21  Martin Jambor  <mjambor@suse.cz>
12257
12258         * tree-switch-conversion.c (build_constructors): Split a long line.
12259         (constructor_contains_same_values_p): New function.
12260         (build_one_array): Create assigns of constants if possible, do not
12261         call mark_sym_for_renaming, call update_stmt.
12262         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
12263         make_rename_temp.  Do not call mark_symbols_for_renaming, call
12264         update_stmt.
12265         (gen_def_assigns): Do not call mark_symbols_for_renaming or
12266         find_new_referenced_vars, call update_stmt.
12267         (gen_inbound_check): Use create_tmp_var and create ssa names manually
12268         instead of calling make_rename_temp.  Do not call
12269         find_new_referenced_vars or mark_symbols_for_renaming, call
12270         update_stmt.
12271
12272 2009-04-21  Richard Guenther  <rguenther@suse.de>
12273
12274         PR tree-optimization/39827
12275         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
12276         (tree_ssa_phiprop): Pass the correct array size.
12277
12278 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
12279
12280         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
12281
12282 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12283
12284         PR 16202
12285         * c-typeck.c (lvalue_p): Move declaration ...
12286         * c-common.h (lvalue_p): ... to here.
12287         * c-common.c (candidate_equal_p): New.
12288         (add_tlist): Use it.
12289         (merge_tlist): Use it.
12290         (warn_for_collisions_1): Likewise.
12291         (warning_candidate_p): Accept more candidates.
12292         (verify_tree): A warning candidate can be an expression. Use
12293         candidate_equal_p.
12294
12295 2009-04-21  Ben Elliston  <bje@au.ibm.com>
12296
12297         PR target/5267
12298         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
12299         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
12300         options.  Remove -mcall-solaris documentation.
12301
12302 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12303
12304         PR c++/13358
12305         * doc/invoke.texi (-Wlong-long): Update description.
12306         * c-lex (interpret_integer): Only warn if there was no previous
12307         overflow and -Wlong-long is enabled.
12308         * c-decl.c (declspecs_add_type): Drop redundant flags.
12309         * c.opt (Wlong-long): Init to -1.
12310         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
12311         and front-end warn_long_long. Wlong-long only depends on other
12312         flags if it is uninitialized.
12313         * c-parser.c (disable_extension_diagnostics): warn_long_long is
12314         the same for CPP and FE.
12315         (restore_extension_diagnostics): Likewise.
12316
12317 2009-04-20  Ian Lance Taylor  <iant@google.com>
12318
12319         Fix enum conversions which are invalid in C++:
12320         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
12321         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
12322         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
12323         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
12324         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
12325         (dbxout_parms): Likewise.
12326         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
12327         (df_clear_flags): Likewise.
12328         * df-problems.c (df_rd_bb_local_compute_process_def): Change
12329         top_flag parameter to int.
12330         (df_chain_create_bb_process_use): Likewise.
12331         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
12332         Remove cast.
12333         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
12334         (df_ref_create_structure, df_def_record_1): Likewise.
12335         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
12336         (df_notes_rescan): Change 0 to VOIDmode in function call.
12337         (df_get_call_refs, df_insn_refs_collect): Likewise.
12338         (df_bb_regs_collect): Likewise.
12339         (df_entry_block_defs_collect): Likewise.
12340         (df_exit_block_uses_collect): Likewise.
12341         * df.h: Update declarations.
12342         * double-int.c (double_int_divmod): Add cast to enum type.
12343         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
12344         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
12345         (based_loc_descr): Likewise.
12346         (loc_descriptor_from_tree_1): Change first_op and second_op to
12347         enum dwarf_location_atom.  Add cast to enum type.
12348         * expmed.c (init_expmed): Change 0 to SET in function call.
12349         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
12350         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
12351         (do_store_flag): Likewise.
12352         * fixed-value.h (struct fixed_value): Change mode to enum
12353         machine_mode.
12354         * function.c (assign_parms): Change 0 to VOIDmode in function call.
12355         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
12356         function call.
12357         (insert_insn_decl, insert_decl, insert_state): Likewise.
12358         (automata_list_finish): Likewise.
12359         * genrecog.c (process_define_predicate): Add cast to enum type.
12360         * gensupport.c (init_predicate_table): Add cast to enum type.
12361         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
12362         function call.
12363         (gimple_build_call_1, gimple_build_label): Likewise.
12364         (gimple_build_goto, gimple_build_asm_1): Likewise.
12365         (gimple_build_switch_1, gimple_build_cdt): Likewise.
12366         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
12367         (enum fallback): Rename from enum fallback_t.
12368         (fallback_t): Typedef as int.
12369         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
12370         GSI_SAME_STMT in function call.
12371         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
12372         enum type.
12373         (setup_reg_class_relations): Likewise.
12374         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
12375         (setup_prohibited_class_mode_regs): Add cast to enum type.
12376         (setup_prohibited_mode_move_regs): Likewise.
12377         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
12378         (record_address_regs): Change i to enum reg_class.
12379         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
12380         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
12381         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
12382         (GET_MODE_2XWIDER_MODE): Likewise.
12383         (GET_CLASS_NARROWEST_MODE): Likewise.
12384         * omp-low.c (expand_omp_for): Add cast to enum type.
12385         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
12386         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
12387         * postreload.c (reload_cse_simplify_operands): Change rclass local
12388         to enum reg_class.
12389         * predict.c (combine_predictions_for_insn): Change best_predictor
12390         and predictor to enum br_predictor.
12391         (combine_predictions_for_bb): Likewise.
12392         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
12393         use SET_PREDICT_EXPR_OUTCOME.
12394         * real.c (real_arithmetic): Change icode to code in function call.
12395         * reginfo.c (init_move_cost): Add casts to enum type.
12396         (init_reg_sets_1, init_fake_stack_mems): Likewise.
12397         * regmove.c (regclass_compatible_p): Change class0 and class1 to
12398         enum reg_class.
12399         * reload.c (find_valid_class): Add casts to enum type.
12400         (push_reload): Change 0 to NO_REGS in function call.
12401         (find_reloads): Change this_alternative to array of enum
12402         reg_class.  Remove some now-unnecessary casts.
12403         (make_memloc): Change 0 to VOIDmode in function call.
12404         * reload1.c (reload): Change 0 to VOIDmode in function call.
12405         (eliminate_regs_1, elimination_effects): Likewise.
12406         (eliminate_regs_in_insn): Likewise.
12407         (emit_input_reload_insns): Add cast to enum type.
12408         (delete_output_reload): Change 0 to VOIDmode in function call.
12409         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
12410         to enum type in function call.
12411         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
12412         (SET_PREDICT_EXPR_OUTCOME): Define.
12413         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
12414         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
12415         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
12416         (dump_function): Likewise.
12417         * tree-dump.h: Update declarations.
12418         * tree-pass.h: Update declarations.
12419         * varasm.c (assemble_integer): Change mclass to enum mode_class.
12420         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
12421         enum type.
12422         (arm_rtx_costs_1): Correct parenthesization.
12423         (arm_rtx_costs): Add casts to enum type.
12424         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
12425         (vfp_emit_fstmd): Use add_rg_note.
12426         (emit_multi_reg_push, emit_sfm): Likewise.
12427         (thumb_set_frame_pointer): Likewise.
12428         (arm_expand_prologue): Likewise.
12429         (arm_regno_class): Change return type to enum reg_class.
12430         (thumb1_expand_prologue): Use add_reg_note.
12431         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
12432         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
12433         in function call.
12434         * config/arm/gentune.sh: Add cast to enum type.
12435         * config/arm/arm-tune.md: Rebuild.
12436         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
12437         (ix86_split_fp_branch, predict_jump): Likewise.
12438         (ix86_expand_multi_arg_builtin): Change sub_code from enum
12439         insn_code to enum rtx_code.
12440         (ix86_builtin_vectorized_function): Add cast to enum type.
12441         * config/i386/i386.md (truncdfsf2): Change slot to enum
12442         ix86_stack_slot.
12443         (truncxf<mode>2, isinf<mode>2): Likewise.
12444         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
12445         enum type.
12446         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
12447         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
12448         (insert_bundle_state): Change 1 to INSERT in function call.
12449         (ia64_add_bundle_selector_before): Likewise.
12450         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
12451         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
12452         (restore_stack_nonlocal): Likewise.
12453         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
12454         function call.
12455         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
12456         function call.
12457         (mips_rtx_costs): Likewise.
12458         (mips_override_options): Add casts to enum type.
12459         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
12460         in function call.
12461         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
12462         (store_reg, set_reg_plus_d): Likewise.
12463         (hppa_expand_prologue, hppa_profile_hook): Likewise.
12464         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
12465         cast to enum type.
12466         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
12467         function call.
12468         (emit_unlikely_jump): Use add_reg_note.
12469         (rs6000_emit_allocate_stack): Likewise.
12470         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
12471         (output_toc): Change 1 to INSERT in function call.
12472         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
12473         (rs6000_initialize_trampoline): Likewise.
12474         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
12475         function call.
12476         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
12477         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
12478         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
12479         (save_gprs): Use add_reg_note.
12480         (s390_emit_prologue): Likewise.
12481         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12482         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
12483         (sparc_fold_builtin): Add cast to enum type.
12484         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
12485         enum insn_code.
12486         (spu_expand_prologue): Use add_reg_note.
12487         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
12488
12489 2009-04-20  Ian Lance Taylor  <iant@google.com>
12490
12491         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
12492         (c_parser_postfix_expression_after_primary): Get VEC for list of
12493         arguments.  Get original types of arguments.  Call
12494         build_function_call_vec.
12495         (cached_expr_list_1, cached_expr_list_2): New static variables.
12496         (c_parser_expr_list): Change return type to VEC *.  Add
12497         p_orig_types parameter.  Change all callers.
12498         (c_parser_release_expr): New static function.
12499         (c_parser_vec_to_tree_list): New static function.
12500         * c-typeck.c (build_function_call): Rewrite to build a VEC and
12501         call build_function_call_vec.
12502         (build_function_call_vec): New function, based on old
12503         build_function_call.
12504         (convert_arguments): Remove nargs and argarray parameters.  Change
12505         values to a VEC.  Add origtypes parameter.
12506         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
12507         (convert_for_assignment): Add origtype parameter.  Change all
12508         callers.  If warn_cxx_compat, check for conversion to an enum
12509         type when calling a function.
12510         (store_init_value): Add origtype parameter.  Change all callers.
12511         (digest_init): Likewise.
12512         (struct init_node): Add origtype field.
12513         (add_pending_init): Add origtype parameter.  Change all callers.
12514         (output_init_element): Likewise.
12515         (output_pending_init_elements): Pass origtype from init_node to
12516         output_init_element.
12517         (process_init_element): Pass origtype from c_expr to
12518         output_init_element.
12519         (c_finish_return): Add origtype parameter.  Change all callers.
12520         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
12521         caller.
12522         (sync_resolve_params): Likewise.
12523         (sync_resolve_return): Change params to first_param.  Change caller.
12524         (resolve_overloaded_builtins): Change params to VEC *.  Change
12525         callers.  Save first parameter around call to build_function_call_vec.
12526         * c-decl.c (finish_decl): Add origtype parameter.  Change all
12527         callers.  Call build_function_call_vec rather than
12528         build_function_call for cleanup.
12529         * c-tree.h: Update declarations.
12530         * c-common.h: Update declarations.
12531         * stub-objc.c (objc_rewrite_function_call): Change parameter from
12532         params to first_param.
12533         * target.h (struct gcc_target): Change resolve_overloaded_builtin
12534         params parameter from tree to void *.
12535         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12536         Change arglist parameter to have type void *, and to be a pointer
12537         to a VEC.
12538         * config/rs6000/rs6000-protos.h
12539         (altivec_resolve_overloaded_builtin): Update declaration.
12540         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
12541         fnargs parameter to have type void *, and to be a pointer to a
12542         VEC.  Call build_function_call_vec instead of
12543         build_function_call.
12544         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
12545
12546 2009-04-20  Joey Ye  <joey.ye@intel.com>
12547             Xuepeng Guo  <xuepeng.guo@intel.com>
12548             H.J. Lu  <hongjiu.lu@intel.com>
12549
12550         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
12551
12552         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
12553         (IX86_LEA_PRIORITY): Likewise.
12554         (distance_non_agu_define): New function.
12555         (distance_agu_use): Likewise.
12556         (ix86_lea_for_add_ok): Likewise.
12557         (ix86_dep_by_shift_count): Likewise.
12558
12559         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
12560         should split for LEA.
12561
12562         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
12563         function.
12564         (ix86_dep_by_shift_count): Likewise.
12565
12566 2009-04-20  Richard Guenther  <rguenther@suse.de>
12567
12568         * expr.c (handled_component_p): Move ...
12569         * tree.h (handled_component_p): ... here.
12570         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
12571         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
12572         and REALPART_EXPR to be in one group.
12573
12574 2009-04-20  Richard Guenther  <rguenther@suse.de>
12575
12576         * basic-block.h (get_all_dominated_blocks): Declare.
12577         * dominance.c (get_all_dominated_blocks): New function.
12578         * tree-cfg.c (get_all_dominated_blocks): Remove.
12579         (remove_edge_and_dominated_blocks): Adjust.
12580         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
12581         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
12582         instead of recursing.
12583
12584 2009-04-20  Doug Kwan  <dougkwan@google.com>
12585
12586         * cgraph.h (cgraph_node_ptr): New type for vector functions.
12587         (struct cgraph_node_set_def): New type.
12588         (cgraph_node_set) New type. Also declare vector functions.
12589         (struct cgraph_node_set_element_def): New type.
12590         (cgraph_node_set_element): Ditto.
12591         (cgraph_node_set_iterator): New iterator type.
12592         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
12593         cgraph_node_set_remove, dump_cgraph_node_set,
12594         debug_cgraph_node_set): New prototypes.
12595         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
12596         cgraph_node_set_size): New inlines.
12597         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
12598         including cgraph.h.
12599         (struct ipa_opt_pass): Add struct cgraph_node_set_def
12600         argument to function 'write_summary'.
12601         * ipa.c: Include ggc.h.
12602         (hash_cgraph_node_set_element,
12603         eq_cgraph_node_set_element, cgraph_node_set_new,
12604         cgraph_node_set_add, cgraph_node_set_remove,
12605         cgraph_node_set_find, dump_cgraph_node_set,
12606         debug_cgraph_node_set): New functions.
12607         * Makefile.in (ipa.o): Add dependency on GGC_H.
12608
12609 2009-04-20  Ira Rosen  <irar@il.ibm.com>
12610
12611         PR tree-optimization/39675
12612         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
12613         check of the return code of vect_schedule_slp. Check that
12614         stmt_vec_info still exists for the statement, before checking its
12615         vectorization type.
12616
12617 2009-04-20  Michael Matz  <matz@suse.de>
12618
12619         * Makefile.in (generated_files): Take out $(simple_generated_c).
12620
12621 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
12622
12623         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
12624         (UINTPTR_TYPE):  Likewise.
12625
12626 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
12627
12628         PR c/37481
12629         * c-typeck.c (digest_init): Check for initializing an array with a
12630         string literal.
12631
12632 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
12633
12634         PR c/19771
12635         * c-semantics.c (pop_stmt_list): Propagate
12636         STATEMENT_LIST_HAS_LABEL to parent statement list.
12637
12638 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
12639
12640         * config/mips/mips.h (mips_tune_attr): New macro.
12641         * config/mips/mips.md (cpu): Use it.
12642
12643 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
12644
12645         PR c/38243
12646         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
12647         declaring a tag.
12648
12649 2009-04-19  Diego Novillo  <dnovillo@google.com>
12650
12651         * toplev.c (compile_file): Move call to coverage_finish ...
12652         * cgraphunit.c (ipa_passes): ... here.
12653         Call cgraph_process_new_functions.
12654         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
12655         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
12656
12657 2009-04-19  Jan Hubicka  <jh@suse.cz>
12658
12659         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
12660         cfun.
12661         (dump_cgraph_node): Dump can throw external flag.
12662         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
12663
12664 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12665
12666         PR c/32061
12667         PR c++/36954
12668         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
12669         * common.opt (Wlogical-op): Move from here...
12670         * c.opt (Wlogical-op): ... to here.
12671         * c-typeck.c (parser_build_binary_op): Update call to
12672         warn_logical_operator.
12673         * c-opts.c (c_common_post_options): Enable warn_logical_op with
12674         extra_warnings.
12675         * c-common.c (warn_logical_op): Update.
12676         * c-common.h (warn_logical_op): Update declaration.
12677
12678 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
12679
12680         * tree.c (protected_set_expr_location): Fix formatting.
12681
12682 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
12683
12684         PR c/27676
12685         * c-typeck.c (readonly_warning): new.
12686         (build_unary_op, build_modify_expr): Use readonly_warning for
12687         storing into something readonly but not const-qualified.
12688
12689 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
12690
12691         PR c/22367
12692         * c-typeck.c (build_unary_op): Check for taking address of
12693         expression of type void.
12694
12695 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
12696
12697         PR c/35210
12698         * c-typeck.c (build_function_call): Check for calling a function
12699         with qualified void return types.  Call require_complete_type when
12700         generating a trap.
12701
12702 2009-04-18  Jan Hubicka  <jh@suse.cz>
12703
12704         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
12705         Set nothrow flag.
12706         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
12707         can_throw_external flag.
12708         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
12709         * ipa-pure-const.c (ignore_edge): New function.
12710         (propagate): Compute order for NOTHROW computation; set NOTHROWs
12711         only over can_throw_external edges.
12712         (local_pure_const): Add nothrow flag.
12713         * ipa-utils.c (searchc): Add ignore_edge callback.
12714         (ipa_utils_reduced_inorder): Add ignore_edge callback.
12715         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
12716         (set_nothrow_function_flags): Update cgraph.
12717         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
12718
12719 2009-04-18  Richard Guenther  <rguenther@suse.de>
12720
12721         PR middle-end/39804
12722         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
12723         (fold_stmt): ... this and ...
12724         (fold_stmt_inplace): ... this.
12725         (fold_stmt_1): Fold references in calls and asms.
12726         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
12727
12728 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
12729
12730         * tree-vrp.c (ssa_name_nonzero_p): Remove.
12731         * tree.h: Remove the prototype for ssa_name_nonzero_p.
12732
12733 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
12734
12735         * tree.c (function_args_count): Remove.
12736         * tree.h: Remove the prototype for function_args_count.
12737
12738 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
12739
12740         * tree-iterator.c (expr_only): Remove.
12741         * tree.h: Remove the prototype for expr_only.
12742
12743 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
12744
12745         * reginfo.c (cannot_change_mode_set_regs): Remove.
12746         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
12747
12748 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
12749
12750         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
12751         whether operands 0 and 1 overlaps.
12752
12753 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12754
12755         PR middle-end/36902
12756         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
12757         pointer. Use warning_at instead of warning.
12758         (search_for_addr_array): Likewise.
12759         (check_array_bounds): Likewise.
12760         (check_all_array_refs): Check that the incoming edge is not in the
12761         list of edges to be removed.
12762         (check_all_array_refs): Avoid the temporal pointer.
12763         (vrp_visit_cond_stmt): Fix typo.
12764         (simplify_switch_using_ranges): Handle the case where the switch
12765         index is an integer constant.
12766
12767 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
12768
12769         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
12770
12771 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
12772
12773         * doc/extend.texi, doc/invoke.texi: Fix typos.
12774
12775 2009-04-17  Cary Coutant  <ccoutant@google.com>
12776
12777         * tree-flow-inline.h (get_lineno): Fix inverted test.
12778
12779 2009-04-17  Diego Novillo  <dnovillo@google.com>
12780
12781         * tree-ssa-pre.c (create_expression_by_pieces): Remove
12782         assertion for AVAIL_OUT.
12783
12784 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
12785
12786         PR target/38627
12787         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
12788         * config/sh/linux-atomic.asm: Likewise.
12789
12790 2009-04-17  Diego Novillo  <dnovillo@google.com>
12791
12792         * except.c (debug_eh_tree): New.
12793         (struct eh_region, struct eh_status): Move ...
12794         * except.h: ... here.
12795         (add_type_for_runtime): Declare extern.
12796         (lookup_type_for_runtime): Likewise.
12797         (debug_eh_tree): Declare.
12798         * Makefile.in (GTFILES): List except.h before except.c
12799
12800 2009-04-17  Diego Novillo  <dnovillo@google.com>
12801
12802         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
12803         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
12804         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
12805         (find_vars_r): ... here.
12806         * tree-flow.h (find_referenced_vars_in): Declare.
12807         * tree-ssa-pre.c (create_expression_by_pieces): Assert
12808         that AVAIL_OUT exists for BLOCK.
12809         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
12810         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
12811         (tree-parloops.o): Likewise.
12812
12813 2009-04-17  Simon Baldwin  <simonb@google.com>
12814
12815         * toplev.c (default_tree_printer): Add handling for %E format.
12816
12817 2009-04-17  Diego Novillo  <dnovillo@google.com>
12818
12819         * tree-pretty-print.c (dump_generic_node): Add break after
12820         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
12821         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
12822         FUNCTION_TYPE together.  Call print_struct_decl when printing
12823         structures and TDF_SLIM is not given.
12824         (print_struct_decl): Fix logic for detecting recursion.
12825
12826 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
12827
12828         PR 31567
12829         * gcc.c (create_at_file): New.
12830         (compile_input_file_p): New.
12831         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
12832         * main.c (main): Update call to toplev_main.
12833         * toplev.c (toplev_main): Change signature. Call expandargv.
12834         * toplev.h (toplev_main): Change signature.
12835
12836 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
12837
12838         * dwarf2out.c (field_byte_offset): Use the type size as the field size
12839         if the latter is not constant.
12840
12841 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
12842
12843         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
12844
12845 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
12846
12847         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
12848         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
12849
12850 2009-04-17  Richard Guenther  <rguenther@suse.de>
12851
12852         * tree-ssa-structalias.c (get_constraint_for_component_ref):
12853         Handle component references view-converting an invariant address.
12854
12855 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
12856
12857         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
12858         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
12859         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
12860         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
12861         Use @deftypevr rather than @deftypevar.
12862
12863 2009-04-17  Richard Guenther  <rguenther@suse.de>
12864
12865         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
12866         (get_prop_source_stmt): Likewise.
12867         (can_propagate_from): Likewise.
12868
12869 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
12870
12871         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
12872         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
12873         (--with-multilib-list): Add default value.
12874         * configure: Regenerate.
12875         * Makefile.in (TM_ENDIAN_CONFIG): Define.
12876         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
12877         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
12878         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
12879         Don't add default cpu to multilib list unnecessarily, but do enable
12880         the relevant compiler option..
12881         Add support for --with-multilib-list=<blank> and
12882         --with-multilib-list=!<somelib> to supress unwanted multilibs.
12883         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
12884         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
12885         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
12886         TM_MULTILIB_CONFIG.
12887         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
12888         (MULTILIB_OSDIRNAMES): New variable.
12889         * config/sh/t-1e: Delete file.
12890         * config/sh/t-mlib-sh1: Delete file.
12891         * config/sh/t-mlib-sh2: Delete file.
12892         * config/sh/t-mlib-sh2a: Delete file.
12893         * config/sh/t-mlib-sh2a-nofpu: Delete file.
12894         * config/sh/t-mlib-sh2a-single: Delete file.
12895         * config/sh/t-mlib-sh2a-single-only: Delete file.
12896         * config/sh/t-mlib-sh2e: Delete file.
12897         * config/sh/t-mlib-sh3e: Delete file.
12898         * config/sh/t-mlib-sh4: Delete file.
12899         * config/sh/t-mlib-sh4-nofpu: Delete file.
12900         * config/sh/t-mlib-sh4-single: Delete file.
12901         * config/sh/t-mlib-sh4-single-only: Delete file.
12902         * config/sh/t-mlib-sh4a: Delete file.
12903         * config/sh/t-mlib-sh4a-nofpu: Delete file.
12904         * config/sh/t-mlib-sh4a-single: Delete file.
12905         * config/sh/t-mlib-sh4a-single-only: Delete file.
12906         * config/sh/t-mlib-sh4al: Delete file.
12907         * config/sh/t-mlib-sh5-32media: Delete file.
12908         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
12909         * config/sh/t-mlib-sh5-64media: Delete file.
12910         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
12911         * config/sh/t-mlib-sh5-compact: Delete file.
12912         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
12913         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
12914         * doc/install.texi (Options specification): Add
12915         --with-multilib-list and --with-endian.
12916
12917 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
12918
12919         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
12920         REVISION_c.
12921         (OBJS-common): Add plugin-version.o.
12922         (plugin-version.o): New.
12923         * gcc-plugin.h (plugin_gcc_version): New.
12924         (plugin_default_version_check): New.
12925         (plugin_init_func, plugin_init): Add version argument.
12926         * plugin-version.c: New.
12927         * plugin.c (str_plugin_gcc_version_name): New.
12928         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
12929         pass it to the init function.
12930         (plugin_default_version_check): New.
12931
12932 2009-04-17  Richard Guenther  <rguenther@suse.de>
12933
12934         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
12935         for decl-vs-decl disambiguation.
12936
12937 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
12938
12939         * config/s390/s390.h (s390_tune_attr): New macro definition.
12940         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
12941
12942 2009-04-17  Richard Guenther  <rguenther@suse.de>
12943
12944         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
12945         (fold_stmt_r): Likewise.
12946         (maybe_fold_reference): New function.
12947         (fold_gimple_assign): Handle cases fold_stmt_r did.
12948         (fold_stmt): Do not use fold_stmt_r.
12949         (fold_stmt_inplace): Likewise.
12950
12951 2009-04-17  Richard Guenther  <rguenther@suse.de>
12952
12953         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
12954         (record_equivalences_from_stmt): Remove useless checks and
12955         simplifications.
12956         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
12957         the type is already suitable.
12958
12959 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
12960
12961         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
12962
12963 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
12964
12965         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
12966         (CMPtype): Define as __gcc_CMPtype.
12967
12968 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
12969
12970         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
12971         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
12972
12973 2009-04-17  Richard Guenther  <rguenther@suse.de>
12974
12975         PR tree-optimization/39746
12976         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
12977         special-casing for builtins and static variable use/def.
12978         (call_may_clobber_ref_p_1): Likewise.
12979
12980 2009-04-16  Ian Lance Taylor  <iant@google.com>
12981
12982         * df.h: Include "timevar.h".
12983         (struct df_problem): Change tv_id field to timevar_id_t.
12984         * tree-pass.h: Include "timevar.h".
12985         (struct opt_pass): Change tv_id field to timevar_id_t.
12986         * timevar.h (timevar_id_t): Define TV_NONE.
12987         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
12988         TV_NONE rather than tv_id != 0.
12989         (execute_one_pass): Likewise.
12990         * Makefile.in (DF_H): Add $(TIMEVAR_H).
12991         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
12992         dependencies to $(TREE_PASS_H).
12993         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
12994         to TV_NONE.
12995         (pass_branch_target_load_optimize2): Likewise.
12996         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
12997         (pass_outof_cfg_layout_mode): Likewise.
12998         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
12999         (pass_rebuild_cgraph_edges): Likewise.
13000         (pass_remove_cgraph_callee_edges): Likewise.
13001         * df-core.c (pass_df_initialize_opt): Likewise.
13002         (pass_df_initialize_no_opt): Likewise.
13003         (pass_df_finish): Likewise.
13004         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
13005         * except.c (pass_set_nothrow_function_flags): Likewise.
13006         (pass_convert_to_eh_region_ranges): Likewise.
13007         * final.c (pass_compute_alignments): Likewise.
13008         * function.c (pass_instantiate_virtual_regs): Likewise.
13009         (pass_init_function): Likewise.
13010         (pass_leaf_regs): Likewise.
13011         (pass_match_asm_constraints): Likewise.
13012         * gimple-low.c (pass_lower_cf): Likewise.
13013         (pass_mark_used_blocks): Likewise.
13014         * init-regs.c (pass_initialize_regs): Likewise.
13015         * integrate.c (pass_initial_value_sets): Likewise.
13016         * ira.c (pass_ira): Likewise.
13017         * jump.c (pass_cleanup_barriers): Likewise.
13018         * omp-low.c (pass_expand_omp): Likewise.
13019         (pass_lower_omp): Likewise.
13020         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
13021         * recog.c (pass_split_all_insns): Likewise.
13022         (pass_split_after_reload): Likewise.
13023         (pass_split_before_regstack): Likewise.
13024         (pass_split_before_sched2): Likewise.
13025         (pass_split_for_shorten_branches): Likewise.
13026         * reginfo.c (pass_reginfo_init): Likewise.
13027         (pass_subregs_of_mode_init): Likewise.
13028         (pass_subregs_of_mode_finish): Likewise.
13029         * passes.c (pass_postreload): Likewise.
13030         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
13031         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
13032         (pass_warn_function_return): Likewise.
13033         (pass_warn_function_noreturn): Likewise.
13034         * tree-complex.c (pass_lower_complex): Likewise.
13035         (pass_lower_complex_O0): Likewise.
13036         * tree-if-conv.c (pass_if_conversion): Likewise.
13037         * tree-into-ssa.c (pass_build_ssa): Likewise.
13038         * tree-mudflap.c (pass_mudflap_1): Likewise.
13039         (pass_mudflap_2): Likewise.
13040         * tree-nomudflap.c (pass_mudflap_1): Likewise.
13041         (pass_mudflap_2): Likewise.
13042         * tree-nrv.c (pass_return_slot): Likewise.
13043         * tree-object-size.c (pass_object_sizes): Likewise.
13044         * tree-optimize.c (pass_all_optimizations): Likewise.
13045         (pass_early_local_passes): Likewise.
13046         (pass_all_early_optimizations): Likewise.
13047         (pass_cleanup_cfg): Likewise.
13048         (pass_cleanup_cfg_post_optimizing): Likewise.
13049         (pass_free_datastructures): Likewise.
13050         (pass_free_cfg_annotations): Likewise.
13051         (pass_fixup_cfg): Likewise.
13052         (pass_init_datastructures): Likewise.
13053         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
13054         (pass_late_warn_uninitialized): Likewise.
13055         (pass_update_address_taken): Likewise.
13056         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
13057         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
13058         (pass_cse_sincos): Likewise.
13059         (pass_convert_to_rsqrt): Likewise.
13060         * tree-ssa-structalias.c (pass_build_alias): Likewise.
13061         * tree-stdarg.c (pass_stdarg): Likewise.
13062         * tree-tailcall.c (pass_tail_recursion): Likewise.
13063         (pass_tail_calls): Likewise.
13064         * tree-vect-generic.c (pass_lower_vector): Likewise.
13065         (pass_lower_vector_ssa): Likewise.
13066         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
13067
13068 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
13069
13070         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
13071         XLR entry.
13072         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
13073         Handle -march=xlr.
13074         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
13075         logical and signext.
13076
13077 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
13078
13079         PR target/39767
13080         * config/sh/predicates.md (arith_operand): Check if the operand
13081         of TRUNCATE is a REG.
13082
13083 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13084
13085         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
13086         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
13087
13088 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13089
13090         * tree-iterator.c (tsi_split_statement_list_after,
13091         tsi_split_statement_list_before): Remove.
13092         * tree-iterator.h: Remove the prototypes for
13093         tsi_split_statement_list_after and tsi_split_statement_list_before.
13094
13095 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13096
13097         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
13098         * tree-ssa-propagate.h: Remove the prototype for
13099         stmt_makes_single_load.
13100
13101 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13102
13103         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
13104         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
13105
13106 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13107
13108         * tree-iterator.c (EXPR_LAST_BODY): Remove.
13109
13110 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13111
13112         * except.c (eh_region_outer_p): Remove.
13113         * except.h: Remove the prototype for eh_region_outer_p.
13114
13115 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13116
13117         * function.c (current_function_assembler_name): Remove.
13118         * function.h: Remove the prototype for
13119         current_function_assembler_name.
13120
13121 2009-04-16  Ian Lance Taylor  <iant@google.com>
13122
13123         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
13124         (add_reg_note): Call alloc_reg_note.
13125         * rtl.h (alloc_reg_note): Declare.
13126         * combine.c (try_combine): Use alloc_reg_note.
13127         (recog_for_combine, move_deaths): Likewise.
13128         (distribute_notes): Use alloc_reg_note and add_reg_note.
13129         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
13130         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
13131         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
13132
13133 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
13134
13135         PR rtl-optimization/39762
13136         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
13137         ira_may_move_out_cost): Add comments about way of their usage.
13138         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
13139
13140         * ira-conflicts.c (process_regs_for_copy): Use function
13141         ira_get_register_move_cost instead of global
13142         ira_register_move_cost.
13143
13144         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
13145         color_pass, move_spill_restore, update_curr_costs): Ditto.
13146
13147         * ira-lives.c (process_single_reg_class_operands): Ditto.
13148
13149         * ira-emit.c (emit_move_list): Ditto.
13150
13151         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
13152         (record_reg_classes): Ditto.  Use functions
13153         ira_get_register_move_cost and ira_get_may_move_cost instead of
13154         global vars ira_register_move_cost, ira_may_move_out_cost and
13155         ira_may_move_in_cost.
13156         (record_address_regs): Don't call ira_init_register_move_cost.
13157         Use function ira_get_may_move_cost instead of global
13158         ira_may_move_in_cost.
13159         (process_bb_node_for_hard_reg_moves): Use function
13160         ira_get_register_move_cost instead of global ira_register_move_cost.
13161         (ira_costs): Don't call ira_init_register_move_cost.
13162
13163 2009-04-16  Richard Guenther  <rguenther@suse.de>
13164
13165         * tree-cfg.c (verify_gimple_assign_binary):
13166         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
13167         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
13168         (create_general_new_stmt): Note that this function is broken.
13169
13170 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
13171
13172         * common.opt (fhelp): Add Var(help_flag).
13173         * gcc-plugin.h (plugin_info): Add help.
13174         * plugin.c (plugin_name_args): Add help.
13175         (register_plugin_info): Set plugin->help.
13176         (print_help_one_plugin): New.
13177         (print_plugins_help): New.
13178         * plugin.h (print_plugins_help): New.
13179         * toplev.c (toplev_main): Call print_plugins_help if needed.
13180
13181 2009-04-16  Richard Guenther  <rguenther@suse.de>
13182
13183         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
13184         (gimple_ior_addresses_taken_1): New function.
13185         (gimple_ior_addresses_taken): Likewise.
13186         * gimple.h (struct gimple_statement_with_ops_base): Remove
13187         addresses_taken member.
13188         (gimple_ior_addresses_taken): Declare.
13189         (gimple_addresses_taken, gimple_addresses_taken_ptr,
13190         gimple_set_addresses_taken): Remove.
13191         * ipa-reference.c (mark_address): New function.
13192         (scan_stmt_for_static_refs): Use it for marking addresses taken.
13193         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
13194         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
13195         (gimple_add_to_addresses_taken): Remove.
13196         (get_tmr_operands): Call mark_address_taken.
13197         (get_asm_expr_operands): Likewise.
13198         (get_expr_operands): Likewise.
13199         (build_ssa_operands): Do not clear the addresses_taken bitmap.
13200         (free_stmt_operands): Do not free it.
13201         * tree-ssa.c (delete_tree_ssa): Likewise.
13202         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
13203
13204 2009-04-16  Richard Guenther  <rguenther@suse.de>
13205
13206         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
13207         (walk_stmt_load_store_ops): Likewise.
13208         * gimple.c (get_base_loadstore): New function.
13209         (walk_stmt_load_store_addr_ops): Likewise.
13210         (walk_stmt_load_store_ops): Likewise.
13211         * ipa-pure-const.c (check_op): Simplify.
13212         (check_load, check_store): New functions.
13213         (check_stmt): Use walk_stmt_load_store_ops.
13214         * ipa-reference.c (mark_load): Adjust signature.
13215         (mark_store): Likewise.
13216         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
13217
13218 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
13219
13220         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
13221         (plugin_info): New.
13222         * opts.c (common_handle_option): Don't call print_version.
13223         * plugin.c (plugin_name_args): Add version.
13224         (register_plugin_info): New.
13225         (register_callback): Handle PLUGIN_INFO.
13226         (try_init_one_plugin): New.
13227         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
13228         if failed to init.
13229         (finalize_one_plugin): New.
13230         (finalize_plugins): New.
13231         (print_one_plugin): New.
13232         (print_plugins_versions): New.
13233         * plugin.h (print_plugins_versions): New.
13234         (finalize_plugins): New.
13235         * toplev.c (compile_file): Don't call initialize_plugins.
13236         (print_version): Call print_plugins_versions.
13237         (toplev_main): Call initialize_plugins. Print version if needed.
13238         Call finalize_plugins.
13239
13240 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
13241
13242         * common.opt (fversion): New.
13243         * gcc.c (print_version): New.
13244         (process_command): Don't print the version. Just set print_version.
13245         (main): Print version. Call subprocesses if print_version and
13246         verbose_flag are set.
13247         * opts.c (common_handle_option): Handle OPT_fversion.
13248
13249 2009-04-16  Richard Guenther  <rguenther@suse.de>
13250             Ira Rosen  <irar@il.ibm.com>
13251
13252         PR tree-optimization/39698
13253         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
13254         type of the reduction variable.  Only generate the def if
13255         it is needed.
13256
13257         * omp-low.c (expand_omp_for_generic): When converting to a pointer
13258         make sure to first convert to an integer of the same precision.
13259         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
13260         the type of the evolution correctly in computing the new
13261         induction variable base.
13262
13263 2009-04-16  Richard Guenther  <rguenther@suse.de>
13264
13265         PR middle-end/39625
13266         * tree-cfg.c (make_blocks): Split statements with to-be
13267         abnormal SSA names on the lhs.
13268
13269 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
13270
13271         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
13272         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
13273         * c-typeck.c (really_start_incremental_init): Likewise.
13274         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
13275         (TARGET_INITIALIZER): Remove it.
13276         * target.h (struct target): Remove vector_opaque_p.
13277         * tree.c (build_opaque_vector_type): New.
13278         * tree.h (TYPE_VECTOR_OPAQUE): New.
13279         (build_opaque_vector_type): Declare.
13280         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
13281         * config/rs6000/rs6000.c (build_opaque_vector_type,
13282         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
13283         (rs6000_init_builtins): Use build_opaque_vector_type for
13284         opaque_V4SI_type_node.
13285
13286 2009-04-15  Catherine Moore  <clm@codesourcery.com>
13287
13288         * debug.h (set_name):  Declare.
13289         * dwarf2out.c (dwarf2out_set_name): Declare.
13290         (dwarf2_debug_hooks): Add set_name.
13291         (find_AT_string): New.
13292         (add_AT_string): Call find_AT_string.
13293         (dwarf2out_set_name): New.
13294         * cp/decl.c (grokdeclarator): Call set_name.
13295         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
13296         * debug.c (do_nothing_debug_hooks):  Likewise.
13297         * dbxout.c (dbx_debug_hooks): Likewise.
13298         * sdbout.c (sdb_debug_hooks): Likewise.
13299
13300 2009-04-15  Michael Eager  <eager@eagercon.com>
13301
13302         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
13303         reg for single-precision FPU.
13304         * config/rs6000/rs6000.md (movsi_internal1): Only for
13305         !TARGET_SINGLE_FPU.
13306         (movsi_internal1_single): New. Add pattern to move SI values to/from
13307         single-precision FP regs.
13308
13309 2009-04-15  Richard Guenther  <rguenther@suse.de>
13310
13311         * omp-low.c (lower_rec_input_clauses): Build correct address
13312         expressions.
13313         (expand_omp_for_generic): Fix multiplication type.
13314         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
13315         (generate_memset_zero): Fix types.
13316         * tree-profile.c (prepare_instrumented_value): Correctly
13317         widen a pointer.
13318
13319 2009-04-15  Ian Lance Taylor  <iant@google.com>
13320
13321         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
13322         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
13323         for -Wall and for -Wc++-compat.
13324         (c_common_post_options): For C++, set warn_enum_compare if not
13325         already set.
13326         * c-tree.h (struct c_expr): Add field original_type.
13327         (build_external_ref): Update declaration.
13328         * c-parser.c (c_parser_braced_init): Set original_type.
13329         (c_parser_initelt): Likewise.
13330         (c_parser_expr_no_commas): Likewise.
13331         (c_parser_conditional_expression): Likewise.
13332         (c_parser_cast_expression): Likewise.
13333         (c_parser_unary_expression): Likewise.  Pull setting of
13334         original_code to top of function.
13335         (c_parser_sizeof_expression): Set original_type.
13336         (c_parser_alignof_expression): Likewise.
13337         (c_parser_postfix_expression): Likewise.  Pull setting of
13338         original_code to top of function.
13339         (c_parser_postfix_expression_after_paren_type): Set original_type.
13340         (c_parser_postfix_expression_after_primary): Likewise.
13341         (c_parser_expression): Likewise.
13342         * c-typeck.c (build_external_ref): Add type parameter.  Change all
13343         callers.
13344         (c_expr_sizeof_expr): Set original_type field.
13345         (parser_build_unary_op): Likewise.
13346         (parser_build_binary_op): Likewise.  Optionally warn about
13347         comparisons of enums of different types.
13348         (digest_init): Set original_type field.
13349         (really_start_incremental_init): Likewise.
13350         (push_init_level, pop_init_level): Likewise.
13351         * doc/invoke.texi (Warning Options): -Wenum-compare now
13352         supported in C.
13353
13354 2009-04-15  Richard Guenther  <rguenther@suse.de>
13355
13356         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
13357         out a necessary conversion.
13358         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
13359         names we didn't value number.
13360         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
13361
13362 2009-04-15  Richard Guenther  <rguenther@suse.de>
13363
13364         PR tree-optimization/39764
13365         * tree-ssa-ccp.c (get_value): Canonicalize value with
13366         canonicalize_float_value.
13367
13368 2009-04-15  Jan Hubicka  <jh@suse.cz>
13369
13370         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
13371         Wrong version of patch.
13372
13373 2009-04-15  Jan Hubicka  <jh@suse.cz>
13374
13375         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
13376
13377 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
13378
13379         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
13380         our distinct integral and vector types.
13381
13382 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
13383
13384         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
13385         * init.c (build_vtbl_address): Remove call to assemble_external.
13386
13387 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
13388
13389         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
13390         output for other floating point modes.
13391
13392 2009-04-14  Diego Novillo  <dnovillo@google.com>
13393
13394         * diagnostic.c (diagnostic_report_diagnostic): Do not
13395         warn about loaded plugins for DK_ERROR and DK_WARNING.
13396         * c-decl.c (declspecs_add_type): Move call to
13397         invoke_plugin_callbacks ...
13398         * c-parser.c (c_parser_declspecs): ... here.
13399         * plugin.c (dump_active_plugins): Tidy output.
13400
13401 2009-04-14  Diego Novillo  <dnovillo@google.com>
13402             Le-Chun Wu  <lcwu@google.com>
13403
13404         * configure.ac: Add --enable-plugin support.
13405         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
13406         * Makefile.in (PLUGIN_H): Define.
13407         Export ENABLE_PLUGIN and GMPINC to site.exp.
13408         Add PLUGINLIBS to link command.
13409         Add/modify dependencies for plugin.o and files including plugin.h.
13410         (plugin.o): New.
13411         * config.in: Regenerate.
13412
13413         * opts.c (common_handle_option): Handle OPT_fplugin_ and
13414         OPT_fplugin_arg_.
13415
13416 2009-04-14  Le-Chun Wu  <lcwu@google.com>
13417
13418         * tree-pass.h (register_one_dump_file): Add a prototype for
13419         register_one_dump_file.
13420         * toplev.c (compile_file): Call initialize_plugins.
13421         (do_compile): Call invoke_plugin_callbacks.
13422         (toplev_main): Call invoke_plugin_callbacks.
13423         * common.opt: Add -fplugin= and -fplugin-arg-.
13424         * gcc-plugin.h: New public header file for plugins to include.
13425         * plugin.c: New source file.
13426         * plugin.h: New internal header file.
13427         * passes.c (register_one_dump_file): Make it external.
13428
13429         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
13430
13431 2009-04-14  Diego Novillo  <dnovillo@google.com>
13432
13433         * doc/plugins.texi: New.
13434         * doc/gccint.texi: Add reference to Plugins chapter.
13435         * doc/invoke.texi: Document -fplugin and -fplugin-arg
13436         * diagnostic.c (diagnostic_report_diagnostic): Warn about
13437         loaded plugins, if any.
13438         * timevar.def (TV_PLUGIN_INIT): Define.
13439         (TV_PLUGIN_RUN): Define.
13440         * plugin.c: Include timevar.h
13441         (plugins_active_p): New.
13442         (dump_active_plugins): New.
13443         (debug_active_plugins): New.
13444
13445 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
13446
13447         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
13448         library paths.
13449         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
13450
13451 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
13452
13453         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
13454         the same as a minus without a shift.
13455
13456 2009-04-14  Nick Clifton  <nickc@redhat.com>
13457
13458         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
13459         comparisons with small integers will always produce a short
13460         branch.
13461
13462 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
13463
13464         Merge:
13465         2008-12-19  Diego Novillo  <dnovillo@google.com>
13466
13467         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
13468
13469 2009-04-14  Richard Guenther  <rguenther@suse.de>
13470
13471         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
13472         verification.
13473         (verify_gimple_assign_binary): Likewise.  Handle shifts and
13474         rotates correctly.
13475         (verify_gimple_phi): Print the mismatched argument position.
13476         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
13477         Fix types.
13478         (vect_update_init_of_dr): Likewise.
13479         * matrix-reorg.c (transform_access_sites): Do what the
13480         comment suggests.
13481         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
13482
13483 2009-04-13  Michael Eager  <eager@eagercon.com>
13484
13485         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
13486         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
13487         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
13488         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
13489         remove duplicate config
13490
13491 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
13492
13493         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
13494         file_name:line_number type locator of the call site.
13495
13496 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
13497
13498         * genautomata.c: Put blank after comma.
13499         (automaton_decls): New.
13500         (struct unit_usage): Add comments to member next.
13501         (store_alt_unit_usage): Keep the list ordered.
13502         (unit_present_on_list_p, equal_alternatives_p): New.
13503         (check_regexp_units_distribution): Check units distribution
13504         correctness correctly.
13505         (main): Don't write automata if error is found.  Return correct
13506         exit code.
13507
13508         * config/m68k/cf.md (cfv4_ds): Remove.
13509         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
13510         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
13511
13512         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
13513         power4-load-ext, power4-store, power4-store-update,
13514         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
13515         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
13516         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
13517         power4-sqrt, power4-isync): Modify reservation to make correct
13518         unit distribution to automata.
13519
13520         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
13521         power5-store-update, power5-two, power5-three, power5-lmul,
13522         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
13523
13524 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
13525
13526         * except.c (pass_set_nothrow_function_flags): Set name and add
13527         TODO_dump_func.
13528         (set_nothrow_function_flags): Mention in the dump file when
13529         changing a function to nothrow.
13530
13531 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
13532
13533         PR/39066
13534         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
13535         instead of unsigned long.
13536
13537 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13538
13539         * config/arm/arm.c (return_used_this_function): Remove.
13540         (arm_output_function_prologue): Remove use of
13541         return_used_this_function.
13542         (output_return_instruction): Replace use of
13543         return_used_this_function
13544         by cfun->machine->return_used_this_function.
13545         (arm_output_epilogue): Likewise.
13546         (arm_output_function_epilogue): Likewise.
13547         (thumb_unexpanded_epilogue): Likewise.
13548         * config/arm/arm.h (struct machine_function):
13549         New member return_used_this_function.
13550
13551 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
13552
13553         * doc/install.texi: Correct description of default directory for
13554         --with-gxx-include-dir.
13555
13556 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
13557
13558         * fold-const.c (build_range_check): Properly deal with enumeral and
13559         boolean base types.
13560
13561 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
13562
13563         * doc/invoke.texi (max_gcse_passes): Remove documentation.
13564         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
13565         * params.h (MAX_GCSE_PASSES): Remove.
13566         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
13567         in sequence.  Remove ability to run multiple passes.
13568         (bypass_jumps): Report run as third CPROP pass.
13569
13570 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
13571
13572         PR middle-end/39651
13573         * except.c (can_throw_external): Look at each insn in a SEQUENCE
13574         when deciding whether the whole SEQUENCE can throw.
13575
13576 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
13577
13578         PR target/39740
13579         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
13580         offseted label references.
13581
13582 2009-04-11  Jan Hubicka  <jh@suse.cz>
13583
13584         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
13585
13586 2009-04-11  Richard Guenther  <rguenther@suse.de>
13587
13588         PR middle-end/39732
13589         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
13590         return variables as TREE_ADDRESSABLE.
13591
13592 2009-04-11  Richard Guenther  <rguenther@suse.de>
13593
13594         PR tree-optimization/39713
13595         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
13596         reference trees have SSA_NAME operands.
13597
13598 2009-04-11  Richard Guenther  <rguenther@suse.de>
13599
13600         PR c/39712
13601         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
13602         address expressions.
13603
13604 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
13605
13606         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
13607         match changes in Cygwin 1.7
13608         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
13609         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
13610
13611 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
13612
13613         PR tree-optimization/39701
13614         * doc/invoke.texi (Optimization Options): Document change in
13615         meaning and initialization of -fdelete-null-pointer-checks.
13616
13617 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
13618
13619         PR middle-end/39701
13620         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
13621
13622         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
13623         here.
13624
13625         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
13626
13627 2009-04-10  Chao-ying Fu  <fu@mips.com>
13628
13629         * doc/tm.texi (Instruction Output): Document
13630         TARGET_ASM_FINAL_POSTSCAN_INSN.
13631         * target.h (final_postscan_insn): New field in asm_out.
13632         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
13633         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
13634         * final.c (final_scan_insn): Call
13635         targetm.asm_out.final_postscan_insn after outputting
13636         an asm macro and a normal instruction.
13637
13638         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
13639         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
13640         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
13641         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
13642         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
13643
13644 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
13645
13646         PR middle-end/39701
13647         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
13648         variables as non-NULL even with -fdelete-null-pointer-checks.
13649
13650 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
13651
13652         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
13653
13654 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
13655
13656         PR target/39678
13657         * config/i386/i386.c (classify_argument): Handle SCmode with
13658         (bit_offset % 64) != 0.
13659
13660 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
13661
13662         * doc/invoke.texi (Optimize Options): Add cross-reference to
13663         -Q --help=optimizers examples.
13664
13665 2009-04-10  Ben Elliston  <bje@au.ibm.com>
13666
13667         PR target/36800
13668         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
13669         regalign for the reg == fpr and TDmode case.
13670
13671 2009-04-09  David Ayers  <ayers@fsfe.org>
13672
13673         PR objc/29200
13674         * objc/objc-act.c (warn_with_method): Remove helper function.
13675         (check_duplicates): Call warning and inform directly.
13676         (really_start_method): Likewise.
13677
13678 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
13679
13680         * expmed.c (expand_divmod): Always use a comparison for a division
13681         by a large unsigned integer.
13682
13683         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
13684         for things others than variables or functions as nonzero.
13685
13686 2009-04-09  Nick Clifton  <nickc@redhat.com>
13687
13688         * unwind-compat.c: Change copyright header to refer to version
13689         3 of the GNU General Public License with version 3.1 of the
13690         GCC Runtime Library Exception and to point readers at the
13691         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
13692         * config/alpha/crtfastmath.c: Likewise.
13693         * config/alpha/linux-unwind.h: Likewise.
13694         * config/alpha/qrnnd.asm: Likewise.
13695         * config/alpha/vms-crt0-64.c: Likewise.
13696         * config/alpha/vms-crt0.c: Likewise.
13697         * config/alpha/vms-dwarf2.asm: Likewise.
13698         * config/alpha/vms-dwarf2eh.asm: Likewise.
13699         * config/alpha/vms-psxcrt0-64.c: Likewise.
13700         * config/alpha/vms-psxcrt0.c: Likewise.
13701         * config/alpha/vms_tramp.asm: Likewise.
13702         * config/arc/initfini.c: Likewise.
13703         * config/arc/lib1funcs.asm: Likewise.
13704         * config/arm/bpabi-v6m.S: Likewise.
13705         * config/arm/bpabi.S: Likewise.
13706         * config/arm/bpabi.c: Likewise.
13707         * config/arm/crti.asm: Likewise.
13708         * config/arm/crtn.asm: Likewise.
13709         * config/arm/ieee754-df.S: Likewise.
13710         * config/arm/ieee754-sf.S: Likewise.
13711         * config/arm/lib1funcs.asm: Likewise.
13712         * config/arm/libunwind.S: Likewise.
13713         * config/arm/linux-atomic.c: Likewise.
13714         * config/arm/mmintrin.h: Likewise.
13715         * config/arm/pr-support.c: Likewise.
13716         * config/arm/unaligned-funcs.c: Likewise.
13717         * config/arm/unwind-arm.c: Likewise.
13718         * config/arm/unwind-arm.h: Likewise.
13719         * config/avr/libgcc.S: Likewise.
13720         * config/bfin/crti.s: Likewise.
13721         * config/bfin/crtlibid.s: Likewise.
13722         * config/bfin/crtn.s: Likewise.
13723         * config/bfin/lib1funcs.asm: Likewise.
13724         * config/bfin/linux-unwind.h: Likewise.
13725         * config/cris/arit.c: Likewise.
13726         * config/cris/cris_abi_symbol.c: Likewise.
13727         * config/darwin-64.c: Likewise.
13728         * config/darwin-crt2.c: Likewise.
13729         * config/darwin-crt3.c: Likewise.
13730         * config/darwin.h: Likewise.
13731         * config/dbxelf.h: Likewise.
13732         * config/dfp-bit.c: Likewise.
13733         * config/dfp-bit.h: Likewise.
13734         * config/elfos.h: Likewise.
13735         * config/fixed-bit.c: Likewise.
13736         * config/fixed-bit.h: Likewise.
13737         * config/fp-bit.c: Likewise.
13738         * config/fp-bit.h: Likewise.
13739         * config/fr30/crti.asm: Likewise.
13740         * config/fr30/crtn.asm: Likewise.
13741         * config/fr30/lib1funcs.asm: Likewise.
13742         * config/freebsd-spec.h: Likewise.
13743         * config/frv/cmovd.c: Likewise.
13744         * config/frv/cmovh.c: Likewise.
13745         * config/frv/cmovw.c: Likewise.
13746         * config/frv/frvbegin.c: Likewise.
13747         * config/frv/frvend.c: Likewise.
13748         * config/frv/lib1funcs.asm: Likewise.
13749         * config/glibc-stdint.h: Likewise.
13750         * config/h8300/clzhi2.c: Likewise.
13751         * config/h8300/crti.asm: Likewise.
13752         * config/h8300/crtn.asm: Likewise.
13753         * config/h8300/ctzhi2.c: Likewise.
13754         * config/h8300/fixunssfsi.c: Likewise.
13755         * config/h8300/lib1funcs.asm: Likewise.
13756         * config/h8300/parityhi2.c: Likewise.
13757         * config/h8300/popcounthi2.c: Likewise.
13758         * config/i386/ammintrin.h: Likewise.
13759         * config/i386/att.h: Likewise.
13760         * config/i386/avxintrin.h: Likewise.
13761         * config/i386/biarch64.h: Likewise.
13762         * config/i386/bmmintrin.h: Likewise.
13763         * config/i386/cpuid.h: Likewise.
13764         * config/i386/cross-stdarg.h: Likewise.
13765         * config/i386/crtfastmath.c: Likewise.
13766         * config/i386/crtprec.c: Likewise.
13767         * config/i386/cygming-crtbegin.c: Likewise.
13768         * config/i386/cygming-crtend.c: Likewise.
13769         * config/i386/cygwin.asm: Likewise.
13770         * config/i386/emmintrin.h: Likewise.
13771         * config/i386/gmm_malloc.h: Likewise.
13772         * config/i386/gthr-win32.c: Likewise.
13773         * config/i386/i386.h: Likewise.
13774         * config/i386/immintrin.h: Likewise.
13775         * config/i386/linux-unwind.h: Likewise.
13776         * config/i386/linux64.h: Likewise.
13777         * config/i386/mm3dnow.h: Likewise.
13778         * config/i386/mmintrin-common.h: Likewise.
13779         * config/i386/mmintrin.h: Likewise.
13780         * config/i386/nmmintrin.h: Likewise.
13781         * config/i386/pmm_malloc.h: Likewise.
13782         * config/i386/pmmintrin.h: Likewise.
13783         * config/i386/smmintrin.h: Likewise.
13784         * config/i386/sol2-c1.asm: Likewise.
13785         * config/i386/sol2-ci.asm: Likewise.
13786         * config/i386/sol2-cn.asm: Likewise.
13787         * config/i386/sol2-gc1.asm: Likewise.
13788         * config/i386/tmmintrin.h: Likewise.
13789         * config/i386/unix.h: Likewise.
13790         * config/i386/w32-unwind.h: Likewise.
13791         * config/i386/wmmintrin.h: Likewise.
13792         * config/i386/x86-64.h: Likewise.
13793         * config/i386/x86intrin.h: Likewise.
13794         * config/i386/xmmintrin.h: Likewise.
13795         * config/ia64/crtbegin.asm: Likewise.
13796         * config/ia64/crtend.asm: Likewise.
13797         * config/ia64/crtfastmath.c: Likewise.
13798         * config/ia64/crti.asm: Likewise.
13799         * config/ia64/crtn.asm: Likewise.
13800         * config/ia64/fde-glibc.c: Likewise.
13801         * config/ia64/lib1funcs.asm: Likewise.
13802         * config/ia64/linux-unwind.h: Likewise.
13803         * config/ia64/quadlib.c: Likewise.
13804         * config/ia64/unwind-ia64.c: Likewise.
13805         * config/linux.h: Likewise.
13806         * config/m32c/m32c-lib1.S: Likewise.
13807         * config/m32c/m32c-lib2-trapv.c: Likewise.
13808         * config/m32c/m32c-lib2.c: Likewise.
13809         * config/m32r/initfini.c: Likewise.
13810         * config/m68hc11/larith.asm: Likewise.
13811         * config/m68hc11/m68hc11-crt0.S: Likewise.
13812         * config/m68k/cf.md: Likewise.
13813         * config/m68k/crti.s: Likewise.
13814         * config/m68k/crtn.s: Likewise.
13815         * config/m68k/lb1sf68.asm: Likewise.
13816         * config/m68k/linux-unwind.h: Likewise.
13817         * config/mcore/crti.asm: Likewise.
13818         * config/mcore/crtn.asm: Likewise.
13819         * config/mcore/lib1.asm: Likewise.
13820         * config/mips/linux-unwind.h: Likewise.
13821         * config/mips/loongson.h: Likewise.
13822         * config/mips/mips16.S: Likewise.
13823         * config/mmix/crti.asm: Likewise.
13824         * config/mmix/crtn.asm: Likewise.
13825         * config/pa/fptr.c: Likewise.
13826         * config/pa/hpux-unwind.h: Likewise.
13827         * config/pa/lib2funcs.asm: Likewise.
13828         * config/pa/linux-atomic.c: Likewise.
13829         * config/pa/linux-unwind.h: Likewise.
13830         * config/pa/milli64.S: Likewise.
13831         * config/pa/quadlib.c: Likewise.
13832         * config/pa/stublib.c: Likewise.
13833         * config/picochip/libgccExtras/adddi3.asm: Likewise.
13834         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
13835         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
13836         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
13837         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
13838         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
13839         * config/picochip/libgccExtras/divmod15.asm: Likewise.
13840         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
13841         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
13842         * config/picochip/libgccExtras/longjmp.asm: Likewise.
13843         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
13844         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
13845         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
13846         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
13847         * config/picochip/libgccExtras/setjmp.asm: Likewise.
13848         * config/picochip/libgccExtras/subdi3.asm: Likewise.
13849         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
13850         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
13851         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
13852         * config/rs6000/750cl.h: Likewise.
13853         * config/rs6000/altivec.h: Likewise.
13854         * config/rs6000/biarch64.h: Likewise.
13855         * config/rs6000/crtresfpr.asm: Likewise.
13856         * config/rs6000/crtresgpr.asm: Likewise.
13857         * config/rs6000/crtresxfpr.asm: Likewise.
13858         * config/rs6000/crtresxgpr.asm: Likewise.
13859         * config/rs6000/crtsavfpr.asm: Likewise.
13860         * config/rs6000/crtsavgpr.asm: Likewise.
13861         * config/rs6000/darwin-asm.h: Likewise.
13862         * config/rs6000/darwin-fallback.c: Likewise.
13863         * config/rs6000/darwin-fpsave.asm: Likewise.
13864         * config/rs6000/darwin-ldouble.c: Likewise.
13865         * config/rs6000/darwin-tramp.asm: Likewise.
13866         * config/rs6000/darwin-unwind.h: Likewise.
13867         * config/rs6000/darwin-vecsave.asm: Likewise.
13868         * config/rs6000/darwin-world.asm: Likewise.
13869         * config/rs6000/e500crtres32gpr.asm: Likewise.
13870         * config/rs6000/e500crtres64gpr.asm: Likewise.
13871         * config/rs6000/e500crtres64gprctr.asm: Likewise.
13872         * config/rs6000/e500crtrest32gpr.asm: Likewise.
13873         * config/rs6000/e500crtrest64gpr.asm: Likewise.
13874         * config/rs6000/e500crtresx32gpr.asm: Likewise.
13875         * config/rs6000/e500crtresx64gpr.asm: Likewise.
13876         * config/rs6000/e500crtsav32gpr.asm: Likewise.
13877         * config/rs6000/e500crtsav64gpr.asm: Likewise.
13878         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
13879         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
13880         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
13881         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
13882         * config/rs6000/eabi-ci.asm: Likewise.
13883         * config/rs6000/eabi-cn.asm: Likewise.
13884         * config/rs6000/eabi.asm: Likewise.
13885         * config/rs6000/linux-unwind.h: Likewise.
13886         * config/rs6000/linux64.h: Likewise.
13887         * config/rs6000/paired.h: Likewise.
13888         * config/rs6000/paired.md: Likewise.
13889         * config/rs6000/ppc64-fp.c: Likewise.
13890         * config/rs6000/ppu_intrinsics.h: Likewise.
13891         * config/rs6000/rs6000.h: Likewise.
13892         * config/rs6000/si2vmx.h: Likewise.
13893         * config/rs6000/sol-ci.asm: Likewise.
13894         * config/rs6000/sol-cn.asm: Likewise.
13895         * config/rs6000/spe.h: Likewise.
13896         * config/rs6000/spu2vmx.h: Likewise.
13897         * config/rs6000/sysv4.h: Likewise.
13898         * config/rs6000/tramp.asm: Likewise.
13899         * config/rs6000/vec_types.h: Likewise.
13900         * config/s390/linux-unwind.h: Likewise.
13901         * config/s390/tpf-unwind.h: Likewise.
13902         * config/score/crti.asm: Likewise.
13903         * config/score/crtn.asm: Likewise.
13904         * config/sh/crt1.asm: Likewise.
13905         * config/sh/crti.asm: Likewise.
13906         * config/sh/crtn.asm: Likewise.
13907         * config/sh/divtab-sh4-300.c: Likewise.
13908         * config/sh/divtab-sh4.c: Likewise.
13909         * config/sh/divtab.c: Likewise.
13910         * config/sh/lib1funcs-4-300.asm: Likewise.
13911         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
13912         * config/sh/lib1funcs.asm: Likewise.
13913         * config/sh/lib1funcs.h: Likewise.
13914         * config/sh/linux-atomic.asm: Likewise.
13915         * config/sh/linux-unwind.h: Likewise.
13916         * config/sh/shmedia.h: Likewise.
13917         * config/sh/sshmedia.h: Likewise.
13918         * config/sh/ushmedia.h: Likewise.
13919         * config/sparc/crtfastmath.c: Likewise.
13920         * config/sparc/linux-unwind.h: Likewise.
13921         * config/sparc/sol2-c1.asm: Likewise.
13922         * config/sparc/sol2-ci.asm: Likewise.
13923         * config/sparc/sol2-cn.asm: Likewise.
13924         * config/spu/divmodti4.c: Likewise.
13925         * config/spu/divv2df3.c: Likewise.
13926         * config/spu/float_disf.c: Likewise.
13927         * config/spu/float_unsdidf.c: Likewise.
13928         * config/spu/float_unsdisf.c: Likewise.
13929         * config/spu/float_unssidf.c: Likewise.
13930         * config/spu/mfc_multi_tag_release.c: Likewise.
13931         * config/spu/mfc_multi_tag_reserve.c: Likewise.
13932         * config/spu/mfc_tag_release.c: Likewise.
13933         * config/spu/mfc_tag_reserve.c: Likewise.
13934         * config/spu/mfc_tag_table.c: Likewise.
13935         * config/spu/multi3.c: Likewise.
13936         * config/spu/spu_internals.h: Likewise.
13937         * config/spu/spu_intrinsics.h: Likewise.
13938         * config/spu/spu_mfcio.h: Likewise.
13939         * config/spu/vec_types.h: Likewise.
13940         * config/spu/vmx2spu.h: Likewise.
13941         * config/stormy16/stormy16-lib2.c: Likewise.
13942         * config/svr4.h: Likewise.
13943         * config/sync.c: Likewise.
13944         * config/v850/lib1funcs.asm: Likewise.
13945         * config/vxlib-tls.c: Likewise.
13946         * config/vxlib.c: Likewise.
13947         * config/vxworks-dummy.h: Likewise.
13948         * config/xtensa/crti.asm: Likewise.
13949         * config/xtensa/crtn.asm: Likewise.
13950         * config/xtensa/ieee754-df.S: Likewise.
13951         * config/xtensa/ieee754-sf.S: Likewise.
13952         * config/xtensa/lib1funcs.asm: Likewise.
13953         * config/xtensa/lib2funcs.S: Likewise.
13954         * config/xtensa/linux-unwind.h: Likewise.
13955         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
13956         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
13957         * coretypes.h: Likewise.
13958         * crtstuff.c: Likewise.
13959         * defaults.h: Likewise.
13960         * dwarf2.h: Likewise.
13961         * emutls.c: Likewise.
13962         * gbl-ctors.h: Likewise.
13963         * gcov-io.h: Likewise.
13964         * ginclude/float.h: Likewise.
13965         * ginclude/iso646.h: Likewise.
13966         * ginclude/stdarg.h: Likewise.
13967         * ginclude/stdbool.h: Likewise.
13968         * ginclude/stddef.h: Likewise.
13969         * ginclude/stdfix.h: Likewise.
13970         * ginclude/stdint-gcc.h: Likewise.
13971         * ginclude/tgmath.h: Likewise.
13972         * gthr-aix.h: Likewise.
13973         * gthr-dce.h: Likewise.
13974         * gthr-gnat.c: Likewise.
13975         * gthr-gnat.h: Likewise.
13976         * gthr-lynx.h: Likewise.
13977         * gthr-mipssde.h: Likewise.
13978         * gthr-nks.h: Likewise.
13979         * gthr-posix.c: Likewise.
13980         * gthr-posix.h: Likewise.
13981         * gthr-posix95.h: Likewise.
13982         * gthr-rtems.h: Likewise.
13983         * gthr-single.h: Likewise.
13984         * gthr-solaris.h: Likewise.
13985         * gthr-tpf.h: Likewise.
13986         * gthr-vxworks.h: Likewise.
13987         * gthr-win32.h: Likewise.
13988         * gthr.h: Likewise.
13989         * libgcc2.c: Likewise.
13990         * libgcc2.h: Likewise.
13991         * libgcov.c: Likewise.
13992         * tsystem.h: Likewise.
13993         * typeclass.h: Likewise.
13994         * unwind-c.c: Likewise.
13995         * unwind-compat.h: Likewise.
13996         * unwind-dw2-fde-compat.c: Likewise.
13997         * unwind-dw2-fde-darwin.c: Likewise.
13998         * unwind-dw2-fde-glibc.c: Likewise.
13999         * unwind-dw2-fde.c: Likewise.
14000         * unwind-dw2-fde.h: Likewise.
14001         * unwind-dw2.c: Likewise.
14002         * unwind-dw2.h: Likewise.
14003         * unwind-generic.h: Likewise.
14004         * unwind-pe.h: Likewise.
14005         * unwind-sjlj.c: Likewise.
14006         * unwind.inc: Likewise.
14007         * config/arm/neon-gen.ml: Change generated copyright header to
14008         refer to version 3 of the GNU General Public License with
14009         version 3.1 of the GCC Runtime Library Exception and to point
14010         readers at the COPYING3 and COPYING3.RUNTIME files and the
14011         FSF's license web page.
14012         * config/arm/arm_neon.h: Regenerate.
14013
14014 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
14015
14016         * config/cris/cris.md: Change copyright header to refer to version
14017         3 of the GNU General Public License.
14018         * doc/install.texi2html: Change copyright header to refer to version
14019         3 of the GNU General Public License and to point readers at the
14020         COPYING3 file and the FSF's license web page.
14021         * config/vax/linux.h: Likewise.
14022
14023 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
14024
14025         * config/i386/i386.md (cmpcc): New.
14026         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
14027         (sync_compare_and_swap_cc*): Delete.
14028
14029         * config/s390/s390.c (s390_compare_emitted): Remove.
14030         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
14031         s390_compare_emitted used to be handled.  Assert that modes match.
14032         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
14033         refer to sync_compare_and_swap_ccsi.
14034         * config/s390/s390.h (s390_compare_emitted): Remove.
14035         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
14036         instead of s390_compare_emitted.
14037         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
14038         instead of s390_compare_emitted.
14039         * config/s390/s390.md (cmpcc): New.
14040         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
14041         CC_REGNUM, do not pretend it's set.
14042         (sync_compare_and_swap_cc*): Delete.
14043         * config/s390/predicates.md (cc_reg_operand): New.
14044
14045         * expr.c (sync_compare_and_swap_cc): Delete.
14046         * optabs.h (sync_compare_and_swap_cc): Delete.
14047         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
14048         is being used with can_compare_p.
14049         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
14050         (find_cc_set): New.
14051         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
14052         look for a MODE_CC set instead.  Use emit_store_flag.
14053         (expand_compare_and_swap_loop): Likewise, with some additional
14054         complication to avoid a force_reg when useless.  Use
14055         emit_cmp_and_jump_insns.
14056         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
14057         * doc/md.texi (sync_compare_and_swap_cc): Merge with
14058         sync_compare_and_swap documentation.
14059
14060 2009-04-09  Jan Hubicka  <jh@suse.cz>
14061
14062         * except.c (find_prev_try): Break out from ....
14063         (duplicate_eh_regions): ... here; properly update prev_try pointers
14064         when duplication part of tree.
14065         (dump_eh_tree): Improve dumping.
14066         (verify_eh_region): New.
14067         (verify_eh_tree): Use it.
14068
14069 2009-04-06  Richard Guenther  <rguenther@suse.de>
14070
14071         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
14072         &ARRAY addresses by adjusting their types and prepending
14073         a conversion.
14074         * tree-cfg.c (verify_gimple_assign_single): Verify that
14075         addresses are correct.
14076
14077 2009-04-09  Richard Guenther  <rguenther@suse.de>
14078
14079         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
14080         indices into an array reference if possible.
14081         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14082         Fold POINTER_PLUS_EXPR statements with invariant address.
14083
14084 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
14085
14086         PR target/39634
14087         * config.gcc (powerpc64-*-linux*): Always build biarch.
14088
14089 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
14090
14091         PR c/39613
14092         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
14093         it and pedwarn if this results in an INTEGER_CST.
14094
14095 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14096
14097         * doc/install.texi: Update minimum GMP version.  Remove obsolete
14098         text in MPFR section.
14099
14100 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
14101
14102         * dwarf2out.c (class_scope_p): New static inline.
14103         (class_or_namespace_scope_p): Use it.
14104         (gen_variable_die): Use DW_TAG_member tag for static data member
14105         declarations instead of DW_TAG_variable.
14106
14107         PR middle-end/39573
14108         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
14109         variables.
14110
14111 2009-04-08  Richard Guenther  <rguenther@suse.de>
14112
14113         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
14114         valueize random data.
14115
14116 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
14117
14118         * config.gcc (aix tm_file):  Add aix-stdint.h.
14119         (aix tm clause use_gcc_stdint):  Set to wrap.
14120         * config/rs6000/aix-stdint.h:  New file.
14121
14122 2009-04-08  Richard Guenther  <rguenther@suse.de>
14123
14124         PR middle-end/36291
14125         * tree-dfa.c (add_referenced_var): Do not recurse into
14126         global initializers.
14127         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
14128         exposed variables.
14129         (fold_const_aggregate_ref): Likewise.
14130
14131 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
14132
14133         * recog.c (ordered_comparison_operator): New.
14134         * gensupport.c (std_preds): Add it.
14135         * doc/md.texi (Machine-Independent Predicates): Document it.
14136
14137 2009-04-08  Jan Hubicka  <jh@suse.cz>
14138
14139         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
14140         * function.h (rtl_eh): Remove exception_handler_label_map.
14141         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
14142         remove_exception_handler_label, for_each_eh_label_1): Remove.
14143         (rtl_remove_unreachable_regions): Remove.
14144         (convert_from_eh_region_ranges): Do not remove unreachable regions.
14145         (find_exception_handler_labels): Don't build the hashtable.
14146         (maybe_remove_eh_handler): Remove.
14147         (for_each_eh_label): Rewrite to walk the tree.
14148         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
14149         * except.h (maybe_remove_eh_handler): Remove.
14150         * passes.c (init_optimization_passes): Schedule second EH cleanup
14151         before out-of-ssa.
14152         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
14153         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
14154
14155 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
14156
14157         * genoutput.c (validate_optab_operands): New.
14158         (gen_insn, gen_expand): Call it.
14159
14160         * genflags.c (gen_insn): Detect misused iterators.
14161         (main): Pass line_no to gen_insn, exit with status 1 on error.
14162
14163         * genextract.c (line_no): Make global.
14164         (VEC_safe_set_locstr): Change assertion to error message.
14165         (main): Exit with status 1 on error.
14166
14167 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
14168
14169         PR c/39614
14170         PR c/39673
14171         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14172         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14173         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
14174         * c-convert.c (convert): Do not call fold on results of conversion
14175         functions when the result is a C_MAYBE_CONST_EXPR.
14176         * c-parser.c (c_parser_postfix_expression): Do not fold condition
14177         of __builtin_choose_expr.
14178         * c-typeck.c (remove_c_maybe_const_expr): New.
14179         (build_unary_op, build_conditional_expr, build_compound_expr,
14180         build_binary_op, c_objc_common_truthvalue_conversion): Call
14181         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
14182         integer operands.
14183
14184 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
14185
14186         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
14187         CODE to produce a new one. Add a prototype to use fold_convert_const
14188
14189 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
14190
14191         PR bootstrap/39660
14192         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
14193         mix declarations and code.
14194
14195 2009-04-08  Ben Elliston  <bje@au.ibm.com>
14196
14197         * gcc.c: Replace `CC' with `GCC' throughout.
14198
14199 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
14200
14201         * doc/invoke.texi: Document Atom support.
14202
14203 2009-04-07  Jason Merrill  <jason@redhat.com>
14204
14205         PR c++/25185
14206         * c-common.h, c-common.c: Add flag_pretty_templates.
14207         * c-opts.c (c_common_handle_option): Set it.
14208         * c.opt: Add -fno-pretty-templates.
14209         * doc/invoke.texi (C++ Dialect Options): Likewise.
14210
14211 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
14212
14213         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
14214         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
14215         (ia64_expand_builtin): Likewise.
14216
14217 2009-04-07  Martin Jambor  <mjambor@suse.cz>
14218
14219         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
14220         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
14221         ADDR_EXPRS are include too.
14222
14223 2009-04-07  Richard Guenther  <rguenther@suse.de>
14224
14225         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
14226         decls are only used if passes as parameters or if they are
14227         local statics and the call is not to a builtin.
14228         (call_may_clobber_ref_p_1): Likewise.
14229
14230 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14231
14232         * expr.c (do_store_flag): Remove last argument.  Simplify code
14233         to avoid duplication of tests already done by can_compare_p.
14234         (expand_expr_real_1): Adjust caller.
14235
14236 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14237
14238         * optabs.c (can_compare_p): Test the predicate of a
14239         cbranch and cstore pattern.
14240
14241 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14242
14243         * expr.c (convert_move): Use emit_store_flag instead of
14244         "emulating" it.
14245
14246 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14247
14248         * config/i386/i386.c (ix86_compare_emitted): Remove.
14249         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
14250         ix86_compare_op0 like ix86_compare_emitted used to be handled.
14251         * config/i386/i386.h (ix86_compare_emitted): Remove.
14252         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
14253         instead of ix86_compare_emitted.
14254         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
14255
14256 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
14257
14258         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
14259         Add t-sysroot-suffix to tmake_file.
14260         * config/print-sysroot-suffix.sh: New file.
14261         * config/t-sysroot-suffix: New file.
14262
14263 2009-04-07  Ben Elliston  <bje@au.ibm.com>
14264
14265         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
14266         as the latter produces a warning when the target does not support
14267         infinity.
14268
14269 2009-04-07  Ben Elliston  <bje@au.ibm.com>
14270
14271         * dfp.c: Replace type punning assignments with memcpy throughout.
14272         * Makefile.in (dfp.o-warn): Remove.
14273
14274 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
14275
14276         PR target/39634
14277         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
14278         Include soft-fp/t-softfp after rs6000/t-linux64.
14279
14280 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14281
14282         * stor-layout.c (set_sizetype): Use the full precision of their
14283         machine mode for bitsize types.
14284
14285 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
14286
14287         * config/i386/i386.md: Revert 2 accidental checkins.
14288
14289 2009-04-06  Joey Ye  <joey.ye@intel.com>
14290             Xuepeng Guo  <xuepeng.guo@intel.com>
14291             H.J. Lu  <hongjiu.lu@intel.com>
14292
14293         Atom pipeline model, tuning and insn selection.
14294         * config.gcc (atom): Add atom config options and target.
14295
14296         * config/i386/atom.md: New.
14297
14298         * config/i386/i386.c (atom_cost): New cost.
14299         (m_ATOM): New macro flag.
14300         (initial_ix86_tune_features): Set m_ATOM.
14301         (x86_accumulate_outgoing_args): Likewise.
14302         (x86_arch_always_fancy_math_387): Likewise.
14303         (processor_target): Add Atom cost.
14304         (cpu_names): Add Atom cpu name.
14305         (override_options): Set Atom ISA.
14306         (ix86_issue_rate): New case PROCESSOR_ATOM.
14307         (ix86_adjust_cost): Likewise.
14308
14309         * config/i386/i386.h (TARGET_ATOM): New target macro.
14310         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
14311         (TARGET_OPT_AGU): New target option.
14312         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
14313         (processor_type): Add PROCESSOR_ATOM.
14314
14315         * config/i386/i386.md (cpu): Add new value "atom".
14316         (use_carry, movu): New attr.
14317         (atom.md): Include atom.md.
14318         (adddi3_carry_rex64): Set attr "use_carry".
14319         (addqi3_carry): Likewise.
14320         (addhi3_carry): Likewise.
14321         (addsi3_carry): Likewise.
14322         (*addsi3_carry_zext): Likewise.
14323         (subdi3_carry_rex64): Likewise.
14324         (subqi3_carry): Likewise.
14325         (subhi3_carry): Likewise.
14326         (subsi3_carry): Likewise.
14327         (x86_movdicc_0_m1_rex64): Likewise.
14328         (*x86_movdicc_0_m1_se): Likewise.
14329         (x86_movsicc_0_m1): Likewise.
14330         (*x86_movsicc_0_m1_se): Likewise.
14331         (*adddi_1_rex64): Emit add insn as much as possible.
14332         (*addsi_1): Likewise.
14333         (return_internal): Set atom_unit.
14334         (return_internal_long): Likewise.
14335         (return_pop_internal): Likewise.
14336         (*rcpsf2_sse): Set atom_sse_attr attr.
14337         (*qrt<mode>2_sse): Likewise.
14338         (*prefetch_sse): Likewise.
14339
14340         * config/i386/i386-c.c (ix86_target_macros_internal): New case
14341         PROCESSOR_ATOM.
14342         (ix86_target_macros_internal): Likewise.
14343
14344         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
14345         (*prefetch_sse_rex): Likewise.
14346         (sse_rcpv4sf2): Likewise.
14347         (sse_vmrcpv4sf2): Likewise.
14348         (sse_sqrtv4sf2): Likewise.
14349         (<sse>_vmsqrt<mode>2): Likewise.
14350         (sse_ldmxcsr): Likewise.
14351         (sse_stmxcsr): Likewise.
14352         (*sse_sfence): Likewise.
14353         (sse2_clflush): Likewise.
14354         (*sse2_mfence): Likewise.
14355         (*sse2_lfence): Likewise.
14356         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
14357         (<sse>_movup<ssemodesuffixf2c>): Likewise.
14358         (avx_movdqu<avxmodesuffix>): Likewise.
14359         (avx_lddqu<avxmodesuffix>): Likewise.
14360         (sse2_movntv2di): Change attr "type" to "ssemov".
14361         (sse2_movntsi): Likewise.
14362         (rsqrtv8sf2): Change attr "type" to "sseadd".
14363         (sse3_addsubv2df3): Set attr "atom_unit".
14364         (sse3_h<plusminus_insn>v4sf3): Likewise.
14365         (*sse2_pmaddwd): Likewise.
14366         (*vec_extractv2di_1_rex64): Likewise.
14367         (*vec_extractv2di_1_avx): Likewise.
14368         (sse2_psadbw): Likewise.
14369         (ssse3_phaddwv8hi3): Likewise.
14370         (ssse3_phaddwv4hi3): Likewise.
14371         (ssse3_phadddv4si3): Likewise.
14372         (ssse3_phadddv2si3): Likewise.
14373         (ssse3_phaddswv8hi3): Likewise.
14374         (ssse3_phaddswv4hi3): Likewise.
14375         (ssse3_phsubwv8hi3): Likewise.
14376         (ssse3_phsubwv4hi3): Likewise.
14377         (ssse3_phsubdv4si3): Likewise.
14378         (ssse3_phsubdv2si3): Likewise.
14379         (ssse3_phsubswv8hi3): Likewise.
14380         (ssse3_phsubswv4hi3): Likewise.
14381         (ssse3_pmaddubsw128): Likewise.
14382         (sse3_pmaddubsw: Likewise.
14383         (ssse3_palignrti): Likewise.
14384         (ssse3_palignrdi): Likewise.
14385
14386 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
14387
14388         * doc/install.texi (Specific): Fix two cross-references to MinGW.
14389
14390 2009-04-06  Richard Guenther  <rguenther@suse.de>
14391
14392         PR tree-optimization/28868
14393         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
14394         of which PHI results we inserted.
14395         (insert_into_preds_of_block): Record inserted PHIs.
14396         (eliminate): Eliminate redundant PHI nodes.
14397         (init_pre): Init inserted_phi_names.
14398
14399 2009-04-06  Richard Guenther  <rguenther@suse.de>
14400
14401         PR tree-optimization/39643
14402         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
14403         IMAGPART_EXPRs of complex constants.
14404         (execute_fold_all_builtins): If we folded a call queue
14405         TODO_update_address_taken.
14406
14407 2009-04-06  Jan Hubicka  <jh@suse.cz>
14408
14409         PR middle-end/39659
14410         * except.c (remove_unreachable_regions): Propagate may_contain_throw
14411         flag.
14412
14413 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
14414
14415         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
14416         delay slot.
14417         (ic_invalidate_array): Likewise.
14418
14419 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
14420
14421         * calls.c (emit_library_call_value_1): Fix a problem with parameter
14422         alignment for library calls.
14423
14424 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
14425
14426         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
14427         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
14428         * config/i386/mingw-stdint.h:  New file.
14429
14430 2009-04-05  Richard Guenther  <rguenther@suse.de>
14431
14432         PR tree-optimization/39648
14433         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
14434         our &A vs. &A[0] IL deficiencies.
14435
14436 2009-04-04  Jan Hubicka  <jh@suse.cz>
14437
14438         * except.c (sjlj_find_directly_reachable_regions): Be ready for
14439         removed toplevel regions.
14440         (sjlj_mark_call_sites): Likewise.
14441
14442 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
14443
14444         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
14445         (cygwin tm clause use_gcc_stdint):  Set to wrap.
14446         * config/i386/cygwin-stdint.h:  New file.
14447
14448 2009-04-04  Richard Guenther  <rguenther@suse.de>
14449
14450         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
14451         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
14452         single-argument PHIs if we are in loop-closed SSA form.
14453         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
14454         for the pre-condition.
14455         (slpeel_tree_peel_loop_to_edge): Likewise.
14456         (vect_build_loop_niters): Take an optional sequence to append stmts.
14457         (vect_generate_tmps_on_preheader): Likewise.
14458         (vect_do_peeling_for_loop_bound): Take extra guards for the
14459         pre-condition.
14460         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
14461         the cost model check.
14462         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
14463         guards if we are going to peel.  Do not apply versioning in that case.
14464         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
14465         (vect_do_peeling_for_loop_bound): Likewise.
14466         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
14467         loop bound only record extra pre-conditions, do not apply loop
14468         versioning.
14469
14470 2009-04-04  Richard Guenther  <rguenther@suse.de>
14471
14472         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
14473         renaming code.
14474
14475 2009-04-04  Jan Hubicka  <jh@suse.cz>
14476
14477         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
14478         last_basic_block for size of bb->index indexed array.
14479         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
14480         compute_out, link_btr_uses, build_btr_def_use_webs,
14481         build_btr_def_use_webs, migrate_btr_defs): Likewise.
14482
14483 2009-04-04  Jan Hubicka  <jh@suse.cz>
14484
14485         * except.c (remove_eh_handler_and_replace): Break out from ...
14486         (remove_eh_handler): ... here.
14487         (bring_to_root): New function.
14488         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
14489         handled ones, bring others to root of tree.
14490
14491 2009-04-04  Jan Hubicka  <jh@suse.cz>
14492
14493         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
14494         (all_phis_safe_to_merge): New function.
14495         (update_info): New structure.
14496         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
14497         (cleanup_empty_eh): Update SSA if possible.
14498
14499 2009-04-04  Richard Guenther  <rguenther@suse.de>
14500
14501         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
14502         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
14503         (append_vuse): Likewise.
14504
14505 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
14506
14507         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
14508         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
14509         instead of REG_UNSAVED for DW_CFA_undefined.
14510         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
14511         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
14512         outermost frame.
14513
14514 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
14515
14516         PR target/39501
14517         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
14518         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
14519         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
14520
14521 2009-04-04  Richard Guenther  <rguenther@suse.de>
14522
14523         PR tree-optimization/8781
14524         PR tree-optimization/37892
14525         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
14526         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
14527         (valueize_refs): Call it for *& valueizations.
14528         (shared_reference_ops_from_ref): Rename to ...
14529         (valueize_shared_reference_ops_from_ref): ... this and valueize.
14530         (shared_reference_ops_from_call): Rename to ...
14531         (valueize_shared_reference_ops_from_call): ... this and valueize.
14532         (vn_reference_lookup): Update.
14533         (visit_reference_op_call): Likewise.
14534         * tree-ssa-pre.c (phi_translate_1): Fold *&.
14535         (eliminate): Value-replace the call address in call statements.
14536
14537 2009-04-04  Richard Guenther  <rguenther@suse.de>
14538
14539         PR tree-optimization/39636
14540         * tree-ssa-forwprop.c
14541         (forward_propagate_addr_into_variable_array_index): Check for
14542         GIMPLE_ASSIGN before accessing the rhs code.
14543
14544 2009-04-03  Jason Merrill  <jason@redhat.com>
14545
14546         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
14547
14548 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
14549
14550         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
14551         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
14552         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
14553         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
14554         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
14555         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
14556         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
14557         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
14558         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
14559         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
14560         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
14561         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
14562         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
14563         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
14564         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
14565         Use fr_reg_or_fp01_operand instead of fr_register_operand
14566
14567         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
14568         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
14569         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
14570
14571 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
14572
14573         PR rtl-optimization/39607
14574         PR rtl-optimization/39631
14575
14576         Revert:
14577
14578         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
14579         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
14580         instead of DF_LR_OUT.
14581         * ira-lives.c (process_bb_node_lives): Ditto.
14582         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
14583         instead of DF_LR_{OUT,IN}.
14584         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
14585         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
14586
14587 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
14588
14589         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
14590         (execute_lower_omp): Always run but take the short way out if -fopenmp
14591         is not given.
14592         (gate_lower_omp): Remove, forcing the pass manager to always run the
14593         pass and always set PROP_gimple_lomp.
14594         (pass_lower_omp): Remove gate function.
14595         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
14596         PROP_trees.  Instead, require it.
14597         * ipa-cp.c (pass_ipa_cp): Likewise.
14598         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
14599         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
14600         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
14601         and PROP_gimple_leh.
14602
14603 2009-04-03  Richard Guenther  <rguenther@suse.de>
14604
14605         PR middle-end/13146
14606         PR tree-optimization/23940
14607         PR tree-optimization/33237
14608         PR middle-end/33974
14609         PR middle-end/34093
14610         PR tree-optimization/36201
14611         PR tree-optimization/36230
14612         PR tree-optimization/38049
14613         PR tree-optimization/38207
14614         PR tree-optimization/38230
14615         PR tree-optimization/38301
14616         PR tree-optimization/38585
14617         PR middle-end/38895
14618         PR tree-optimization/38985
14619         PR tree-optimization/39299
14620         * tree-ssa-structalias.h: Remove.
14621         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
14622         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
14623         (struct vuse_element_d): Remove.
14624         (struct vuse_vec_d): Likewise.
14625         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
14626         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
14627         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
14628         VUSE_ELEMENT_VAR): Likewise.
14629         (struct voptype_d): Likewise.
14630         (NUM_VOP_FREE_BUCKETS): Likewise.
14631         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
14632         (struct stmt_operands_d): Remove.
14633         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
14634         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
14635         VDEF_NUM, VDEF_VECT): Likewise.
14636         (copy_virtual_operands): Remove.
14637         (operand_build_cmp): Likewise.
14638         (create_ssa_artificial_load_stmt): Likewise.
14639         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
14640         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
14641         vuse_index and mayuse_index members.  Pack and move done and iter_type
14642         members to the front.
14643         (SSA_OP_VMAYUSE): Remove.
14644         (SSA_OP_VIRTUAL_USES): Adjust.
14645         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
14646         (unlink_stmt_vdef): Declare.
14647         (add_to_addressable_set): Remove.
14648         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
14649         (vrp_visit_stmt): Likewise.
14650         * doc/tree-ssa.texi (Alias analysis): Update.
14651         * doc/invoke.texi (max-aliased-vops): Remove docs.
14652         (avg-aliased-vops): Likewise.
14653         * tree-into-ssa.c (syms_to_rename): Remove.
14654         (need_to_update_vops_p): Likewise.
14655         (need_to_initialize_update_ssa_p): Rename to ...
14656         (update_ssa_initialized_fn): ... this.  Track function we are
14657         initialized for.
14658         (symbol_marked_for_renaming): Simplify.
14659         (add_new_name_mapping): Do not set need_to_update_vops_p.
14660         (dump_currdefs): Use SYMS_TO_RENAME.
14661         (rewrite_update_stmt): Always walk all uses/defs.
14662         (dump_update_ssa): Adjust.
14663         (init_update_ssa): Take function argument.  Track what we are
14664         initialized for.
14665         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
14666         (create_new_def_for): Initialize for cfun, assert we are initialized
14667         for cfun.
14668         (mark_sym_for_renaming): Simplify.
14669         (mark_set_for_renaming): Do not initialize update-ssa.
14670         (need_ssa_update_p): Simplify.  Take function argument.
14671         (name_mappings_registered_p): Assert we ask for the correct function.
14672         (name_registered_for_update_p): Likewise.
14673         (ssa_names_to_replace): Likewise.
14674         (release_ssa_name_after_update_ssa): Likewise.
14675         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
14676         (dump_decl_set): Do not print a newline.
14677         (debug_decl_set): Do it here.
14678         (dump_update_ssa): And here.
14679         * tree-ssa-loop-im.c (move_computations): Adjust.
14680         (movement_possibility): Likewise.
14681         (determine_max_movement): Likewise.
14682         (gather_mem_refs_stmt): Likewise.
14683         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
14684         or NAME_MEMORY_TAG.
14685         * tree-complex.c (update_all_vops): Remove.
14686         (expand_complex_move): Adjust.
14687         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
14688         Simplify test for memory referencing statement.  Exclude
14689         non-invariant ADDR_EXPRs.
14690         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
14691         * tree-loop-distribution.c (generate_memset_zero): Adjust.
14692         (rdg_flag_uses): Likewise.
14693         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
14694         related code.
14695         (tree_optimize_tail_calls_1): Also split the
14696         edge from the entry block if we have degenerate PHI nodes in
14697         the first basic block.
14698         * tree.c (init_ttree): Remove memory-tag related code.
14699         (tree_code_size): Likewise.
14700         (tree_node_structure): Likewise.
14701         (build7_stat): Re-write to be build6_stat.
14702         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
14703         (SSA_VAR_P): Adjust.
14704         (struct tree_memory_tag): Remove.
14705         (struct tree_memory_partition_tag): Likewise.
14706         (union tree_node): Adjust.
14707         (build7): Re-write to be build6.
14708         * tree-pass.h (pass_reset_cc_flags): Remove.
14709         (TODO_update_address_taken): New flag.
14710         (pass_simple_dse): Remove.
14711         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
14712         * params.h (MAX_ALIASED_VOPS): Remove.
14713         (AVG_ALIASED_VOPS): Likewise.
14714         * omp-low.c (expand_omp_taskreg): Update SSA form.
14715         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
14716         aliases the lhs in a copy stmt.
14717         * tree-ssa-dse.c (struct address_walk_data): Remove.
14718         (memory_ssa_name_same): Likewise.
14719         (memory_address_same): Likewise.
14720         (get_kill_of_stmt_lhs): Likewise.
14721         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
14722         unused stores.  Look through PHI nodes into post-dominated regions.
14723         (dse_optimize_stmt): Simplify.  Properly remove stores.
14724         (tree_ssa_dse): Compute dominators.
14725         (execute_simple_dse): Remove.
14726         (pass_simple_dse): Likewise.
14727         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
14728         gimple_loaded_syms and gimple_stored_syms computation.
14729         * toplev.c (dump_memory_report): Dump alias and pta stats.
14730         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
14731         (vn_reference_eq): Likewise.
14732         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
14733         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
14734         valueize_vuses): Remove.
14735         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
14736         (get_def_ref_stmt_vuse): ... this.
14737         (vn_reference_lookup_2): New function.
14738         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
14739         walking equivalent vuses.  Simplify.
14740         (vn_reference_lookup): Likewise.
14741         (vn_reference_insert): Likewise.
14742         (vn_reference_insert_pieces): Likewise.
14743         (visit_reference_op_call): Simplify.
14744         (visit_reference_op_load): Likewise.
14745         (visit_reference_op_store): Likewise.
14746         (init_scc_vn): Remove shared_lookup_vuses initialization.
14747         (free_scc_vn): Remove shared_lookup_vuses freeing.
14748         (sort_vuses, sort_vuses_heap): Remove.
14749         (get_ref_from_reference_ops): Export.
14750         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
14751         vector with single vuse pointer.
14752         (vn_reference_lookup_pieces, vn_reference_lookup,
14753         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
14754         (shared_vuses_from_stmt): Remove.
14755         (get_ref_from_reference_ops): Declare.
14756         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
14757         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
14758         memory-tag related code.
14759         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
14760         (likely_value): Add comment, skip static-chain of call statements.
14761         (surely_varying_stmt_p): Adjust.
14762         (gimplify_and_update_call_from_tree): Likewise.
14763         (execute_fold_all_builtins): Do not rebuild alias info.
14764         (gimplify_and_update_call_from_tree): Properly update VOPs.
14765         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
14766         (copy_ref_info): Remove memory-tag related code.
14767         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
14768         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
14769         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
14770         computation.
14771         * tree-ssa-dom.c (gimple_p): Remove typedef.
14772         (eliminate_redundant_computations): Adjust.
14773         (record_equivalences_from_stmt): Likewise.
14774         (avail_expr_hash): Likewise.
14775         (avail_expr_eq): Likewise.
14776         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
14777         (stmt_makes_single_load): Likewise.
14778         (stmt_makes_single_store): Likewise.
14779         * tree-ssa-alias.c: Rewrite completely.
14780         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
14781         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
14782         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
14783         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
14784         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
14785         Remove public functions.
14786         (pass_reset_cc_flags): Remove.
14787         (pass_build_alias): Move ...
14788         * tree-ssa-structalias.c (pass_build_alias): ... here.
14789         * tree-ssa-alias.c (may_be_aliased): Move ...
14790         * tree-flow-inline.h (may_be_aliased): ... here.
14791         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
14792         count_uses_and_derefs): Move ...
14793         * gimple.c: ... here.
14794         * gimple.h (count_uses_and_derefs): Declare.
14795         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
14796         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
14797         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
14798         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
14799         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
14800         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
14801         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
14802         New functions.
14803         * tree-dfa.c (refs_may_alias_p): Move ...
14804         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
14805         * tree-ssa-alias.h: New file.
14806         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
14807         (statement_sink_location): Likewise.
14808         * opts.c (decode_options): Do not adjust max-aliased-vops or
14809         avg-aliased-vops values.
14810         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
14811         (TV_CALL_CLOBBER): Likewise.
14812         (TV_FLOW_SENSITIVE): Likewise.
14813         (TV_FLOW_INSENSITIVE): Likewise.
14814         (TV_MEMORY_PARTITIONING): Likewise.
14815         (TV_ALIAS_STMT_WALK): New timevar.
14816         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
14817         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
14818         (get_address_description): Remove memory-tag related code.
14819         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
14820         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
14821         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
14822         and immediate uses in statements.  Document.
14823         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
14824         (dump_symbols): Remove.
14825         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
14826         * alias.c (get_deref_alias_set): New function split out from ...
14827         (get_alias_set): ... here.
14828         * alias.h (get_deref_alias_set): Declare.
14829         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
14830         type parameter.  Remove restrict pointer handling.  Create a
14831         ref-all pointer in case type-based alias sets do not conflict.
14832         (vect_analyze_data_refs): Remove SMT related code.
14833         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
14834         (vectorizable_load): Likewise.
14835         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
14836         (DR_SYMBOL_TAG, DR_VOPS): Remove.
14837         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
14838         Ignore vops and SMTs.
14839         (dr_analyze_alias): Likewise..
14840         (free_data_ref): Likewise.
14841         (create_data_ref): Likewise.
14842         (analyze_all_data_dependences): Likewise.
14843         (get_references_in_stmt): Adjust.
14844         * tree-flow-inline.h (gimple_aliases_computed_p,
14845         gimple_addressable_vars, gimple_call_clobbered_vars,
14846         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
14847         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
14848         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
14849         gimple_mem_ref_stats): Remove.
14850         (gimple_vop): New function.
14851         (op_iter_next_use): Remove vuses and mayuses cases.
14852         (op_iter_next_def): Remove vdefs case.
14853         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
14854         (clear_and_done_ssa_iter): Do not set removed fields.
14855         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
14856         Assert we are not iterating over vuses or vdefs if not also
14857         iterating over uses or defs.
14858         (op_iter_init_use): Likewise.
14859         (op_iter_init_def): Likewise.
14860         (op_iter_next_vdef): Remove.
14861         (op_iter_next_mustdef): Likewise.
14862         (op_iter_init_vdef): Likewise.
14863         (compare_ssa_operands_equal): Likewise.
14864         (link_use_stmts_after): Handle vuse operand.
14865         (is_call_used): Use is_call_clobbered.
14866         (is_call_clobbered): Global variables are always call clobbered,
14867         query the call-clobbers bitmap.
14868         (mark_call_clobbered): Ignore global variables.
14869         (clear_call_clobbered): Likewise.
14870         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
14871         virtual operands sanity check.
14872         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
14873         Remove.
14874         (TARGET_MEM_REF): Remove TMR_TAG operand.
14875         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
14876         Remove call-clobber related code.
14877         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
14878         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
14879         partitions or escape reason.
14880         (get_single_def_stmt, get_single_def_stmt_from_phi,
14881         get_single_def_stmt_with_phi): Remove.
14882         (dump_referenced_vars): Tidy.
14883         (get_ref_base_and_extent): Allow bare decls.
14884         (collect_dfa_stats): Adjust.
14885         * graphite.c (rename_variables_in_stmt): Adjust.
14886         (graphite_copy_stmts_from_block): Likewise.
14887         (translate_clast): Likewise.
14888         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
14889         (EXPR_DIES): New.
14890         (translate_vuse_through_block): Use the oracle.
14891         (phi_translate_1): Adjust.
14892         (value_dies_in_block_x): Use the oracle.  Cache the outcome
14893         in EXPR_DIES.
14894         (valid_in_sets): Check if the VUSE for
14895         a REFERENCE is available.
14896         (eliminate): Do not remove stmts during elimination,
14897         instead queue and remove them afterwards.
14898         (do_pre): Do not rebuild alias info.
14899         (pass_pre): Run TODO_rebuild_alias before PRE.
14900         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
14901         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
14902         (mark_all_v_defs_stmt): Remove.
14903         (mark_all_v_defs_seq): Adjust.
14904         (sra_replace): Likewise.
14905         (scalarize_use): Likewise.
14906         (scalarize_copy): Likewise.
14907         (scalarize_init): Likewise.
14908         (scalarize_ldst): Likewise.
14909         (todoflags): Remove.
14910         (tree_sra): Do not rebuild alias info.
14911         (tree_sra_early): Adjust.
14912         (pass_sra): Run TODO_update_address_taken before SRA.
14913         * tree-predcom.c (set_alias_info): Remove.
14914         (prepare_initializers_chain): Do not call it.
14915         (mark_virtual_ops_for_renaming): Adjust.
14916         (mark_virtual_ops_for_renaming_list): Remove.
14917         (initialize_root_vars): Adjust.
14918         (initialize_root_vars_lm): Likewise.
14919         (prepare_initializers_chain): Likewise.
14920         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
14921         (may_propagate_copy_into_stmt): Likewise.
14922         (merge_alias_info): Do nothing for now.
14923         (propagate_tree_value_into_stmt): Adjust.
14924         (stmt_may_generate_copy): Likewise.
14925         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
14926         not mark symbols for renaming.
14927         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
14928         with the same statement, make sure to update the new pointed-to one.
14929         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
14930         call statements, do not mark symbols for renaming.
14931         (mark_operand_necessary): Dump something.
14932         (ref_may_be_aliased): New function.
14933         (mark_aliased_reaching_defs_necessary_1): New helper function.
14934         (mark_aliased_reaching_defs_necessary): Likewise.
14935         (mark_all_reaching_defs_necessary_1): Likewise.
14936         (mark_all_reaching_defs_necessary): Likewise.
14937         (propagate_necessity): Do not process virtual PHIs.  For
14938         non-aliased loads mark all reaching definitions as necessary.
14939         For aliased loads and stores mark the immediate dominating
14940         aliased clobbers as necessary.
14941         (visited): New global static.
14942         (perform_tree_ssa_dce): Free visited bitmap after propagating
14943         necessity.
14944         (remove_dead_phis): Perform simple dead virtual PHI removal.
14945         (remove_dead_stmt): Properly unlink virtual operands when
14946         removing stores.
14947         (eliminate_unnecessary_stmts): Schedule PHI removal after
14948         stmt removal.
14949         * tree-ssa-ter.c (is_replaceable_p): Adjust.
14950         (process_replaceable): Likewise.
14951         (find_replaceable_in_bb): Likewise.
14952         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
14953         based on the single gimple vop.
14954         (verify_flow_insensitive_alias_info): Remove.
14955         (verify_flow_sensitive_alias_info): Likewise.
14956         (verify_call_clobbering): Likewise.
14957         (verify_memory_partitions): Likewise.
14958         (verify_alias_info): Likewise.
14959         (verify_ssa): Adjust..
14960         (execute_update_addresses_taken): Export.  Update SSA
14961         manually.  Optimize only when optimizing.  Use a local bitmap.
14962         (pass_update_address_taken): Remove TODO_update_ssa, add
14963         TODO_dump_func.
14964         (pass_update_address_taken): Just use TODO_update_address_taken.
14965         (init_tree_ssa): Do not initialize addressable_vars.
14966         (verify_ssa): Verify new VUSE / VDEF properties.
14967         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
14968         Do not call verify_alias_info.
14969         (delete_tree_ssa): Clear the VUSE, VDEF operands.
14970         Do not free the loaded and stored syms bitmaps.  Reset the escaped
14971         and callused solutions.  Do not free addressable_vars.
14972         Remove memory-tag related code.
14973         (warn_uninitialized_var): Aliases are always available.
14974         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
14975         * lambda-code.c (can_put_in_inner_loop): Adjust.
14976         (can_put_after_inner_loop): Likewise.
14977         (perfect_nestify): Likewise.
14978         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
14979         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
14980         (vectorizable_conversion): Do not mark symbols for renaming.
14981         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
14982         (expand_call_inline): Unlink the calls virtual operands before
14983         replacing it.
14984         (tree_function_versioning): Do not call update_ssa if we are not
14985         updating clones.  Simplify.
14986         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
14987         (propagate_with_phi): Likewise..
14988         * tree-outof-ssa.c (create_temp): Remove memory tag and call
14989         clobber code.  Assert we are not aliased or global.
14990         * tree-flow.h: Include tree-ssa-alias.h
14991         (enum escape_type): Remove.
14992         (struct mem_sym_stats_d): Likewise.
14993         (struct mem_ref_stats_d): Likewise.
14994         (struct gimple_df): Add vop member.  Remove global_var,
14995         call_clobbered_vars, call_used_vars, addressable_vars,
14996         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
14997         escaped and callused members.
14998         (struct ptr_info_def): Remove all members, add points-to solution
14999         member pt.
15000         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
15001         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
15002         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
15003         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
15004         (tree-ssa-alias.o): Likewise.
15005         (toplev.o): Add tree-ssa-alias.h
15006         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
15007         * gimple.c (gimple_set_bb): Fix off-by-one error.
15008         (is_gimple_reg): Do not handle memory tags.
15009         (gimple_copy): Also copy virtual operands.
15010         Delay updating the statement.  Do not reset loaded and stored syms.
15011         (gimple_set_stored_syms): Remove.
15012         (gimple_set_loaded_syms): Likewise.
15013         (gimple_call_copy_skip_args): Copy the virtual operands
15014         and mark the new statement modified.
15015         * tree-ssa-structalias.c (may_alias_p): Remove.
15016         (set_uids_in_ptset): Take the alias set to prune with as
15017         parameter.  Fold in the alias test of may_alias_p.
15018         (compute_points_to_sets): Compute whether a ptr is dereferenced
15019         in a local sbitmap.
15020         (process_constraint): Deal with &ANYTHING on the lhs, reject all
15021         other ADDRESSOF constraints on the lhs.
15022         (get_constraint_for_component_ref): Assert that we don't get
15023         ADDRESSOF constraints from the base of the reference.
15024         Properly generate UNKNOWN_OFFSET for DEREF if needed.
15025         (struct variable_info): Remove collapsed_to member.
15026         (get_varinfo_fc): Remove.
15027         (new_var_info): Do not set collapsed_to.
15028         (dump_constraint): Do not follow cycles.
15029         (dump_constraint_graph): Likewise.
15030         (build_pred_graph): Likewise.
15031         (build_succ_graph): Likewise.
15032         (rewrite_constraints): Likewise.
15033         (do_simple_structure_copy): Remove.
15034         (do_rhs_deref_structure_copy): Remove.
15035         (do_lhs_deref_structure_copy): Remove.
15036         (collapse_rest_of_var): Remove.
15037         (do_structure_copy): Re-implement.
15038         (pta_stats): New global variable.
15039         (dump_pta_stats): New function.
15040         (struct constraint_expr): Make offset signed.
15041         (UNKNOWN_OFFSET): Define special value.
15042         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
15043         (solution_set_expand): New helper function split out from ...
15044         (do_sd_constraint): ... here.
15045         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
15046         (do_ds_constraint): Likewise.
15047         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
15048         and CALLUSED = *CALLUSED.
15049         (set_union_with_increment): Make inc argument signed.
15050         (type_safe): Remove.
15051         (get_constraint_for_ptr_offset): Handle unknown and negative
15052         constant offsets.
15053         (first_vi_for_offset): Handle offsets before start.  Bail
15054         out early for offsets beyond the variable extent.
15055         (first_or_preceding_vi_for_offset): New function.
15056         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
15057         Together with ESCAPED = *ESCAPED this properly computes reachability.
15058         (find_what_var_points_to): New function.
15059         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
15060         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
15061         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
15062         pt_solutions_intersect): New functions.
15063         (compute_call_used_vars): Remove.
15064         (compute_may_aliases): New main entry into PTA computation.
15065         * gimple.h (gimple_p): New typedef.
15066         (struct gimple_statement_base): Remove references_memory_p.
15067         (struct gimple_statement_with_memory_ops_base): Remove
15068         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
15069         members.
15070         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
15071         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
15072         gimple_set_references_memory): Remove.
15073         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
15074         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
15075         New functions.
15076         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
15077         (verify_expr): Allow RESULT_DECL.
15078         (gimple_duplicate_bb): Do not copy virtual operands.
15079         (gimple_duplicate_sese_region): Adjust.
15080         (gimple_duplicate_sese_tail): Likewise.
15081         (mark_virtual_ops_in_region): Remove.
15082         (move_sese_region_to_fn): Do not call it.
15083         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
15084         and pass_simple_dse.
15085         (execute_function_todo): Handle TODO_update_address_taken,
15086         call execute_update_addresses_taken for TODO_rebuild_alias.
15087         (execute_todo): Adjust.
15088         (execute_one_pass): Init dump files early.
15089         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
15090         call-clobbered.
15091         (create_general_new_stmt): Clear vops.
15092         * tree-ssa-reassoc.c (get_rank): Adjust.
15093         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
15094         symbols for renaming.
15095         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
15096         (PARAM_AVG_ALIASED_VOPS): Likewise.
15097         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
15098         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
15099         * tree-ssa-operands.c: Simplify for new virtual operand representation.
15100         (operand_build_cmp, copy_virtual_operands,
15101         create_ssa_artificial_load_stmt, add_to_addressable_set,
15102         gimple_add_to_addresses_taken): Remove public functions.
15103         (unlink_stmt_vdef): New function.
15104
15105 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
15106
15107         * config.gcc (powerpc-*-linux*): Merge variants.
15108
15109 2009-04-02  Chao-ying Fu  <fu@mips.com>
15110             James Grosbach  <james.grosbach@microchip.com>
15111
15112         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
15113         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
15114         cop0_sp_offset.
15115         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
15116         keep_interrupts_masked_p, use_debug_exception_return_p.
15117         (mips_attribute_table): Add interrupt, use_shadow_register_set,
15118         keep_interrupts_masked, use_debug_exception_return.
15119         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
15120         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
15121         New functions.
15122         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
15123         (mips_print_operand): Process COP0 registers to print $0 .. $31
15124         correctly for GAS to process.
15125         (mips_interrupt_extra_call_saved_reg_p): New function.
15126         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
15127         extra registers.
15128         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
15129         (mips_compute_frame_info): Add supports for interrupt context that
15130         includes doubleword accumulators and COP0 registers.
15131         (mips_for_each_saved_acc): New function.
15132         (mips_for_each_saved_gpr_and_fpr): Change the function name from
15133         mips_for_each_saved_reg.
15134         (mips_save_reg): Save accumulators.
15135         (mips_kernel_reg_p): A new for_each_rtx callback.
15136         (mips_expand_prologue): Support interrupt handlers.
15137         (mips_restore_reg): Restore accumulators.
15138         (mips_expand_epilogue): Support interrupt handlers.
15139         (mips_can_use_return_insn): Return false for interrupt handlers.
15140         (mips_epilogue_uses): New function.
15141         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
15142         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
15143         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
15144         cop0_move): New instructions.
15145         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
15146         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
15147         defines.
15148         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
15149         New defines.
15150         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
15151         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
15152         interrupt handlers, we use K0 as the temporary register.
15153         (EPILOGUE_USES): Change to a function call.
15154         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
15155         handlers, we use K0 as the temporary register.
15156
15157         * doc/extend.texi (Function Attributes): Document interrupt,
15158         use_shadow_register_set, keep_interrupts_masked,
15159         use_debug_exception_return for MIPS attributes.
15160
15161 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
15162
15163         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
15164         Remove a number of t-files from tmake_file.
15165         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
15166         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
15167         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
15168         target_prototype, not TARGET_PROTOTYPE.
15169         (LINK_OS_GNU_SPEC): Define.
15170         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
15171         and darwin-ldoubdle.c.
15172
15173 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15174
15175         PR driver/39293
15176         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
15177         (cpp_options): Ditto.
15178         (default_compilers): Ditto.
15179         (display_help): Ditto.
15180         (process_command): Ditto.
15181         (do_spec_1): Ditto.
15182         (set_input): Use lbasename instead of duplicate code.
15183         (save_temps_prefix): New static for -save-temps=obj.
15184         (save_temps_length): Ditto.
15185
15186         * doc/invoke.texi (-save-temps=obj): Document new variant to
15187         -save-temps switch.
15188
15189 2009-04-02  Jeff Law  <law@redhat.com>
15190
15191         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
15192         variable.
15193
15194 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
15195
15196         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
15197         * configure: Regenerated.
15198
15199 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
15200
15201         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
15202         share the argument list.
15203
15204 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
15205
15206         Merge
15207
15208         2009-02-12  Diego Novillo  <dnovillo@google.com>
15209
15210         * varpool.c (debug_varpool): New.
15211         * cgraph.h (debug_varpool): Declare.
15212
15213 2009-04-02  Jan Hubicka  <jh@suse.cz>
15214
15215         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
15216         pass.
15217
15218 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
15219
15220         * config/i386/i386.c (ix86_abi): Move initialization to ...
15221         (override_options): Here.
15222
15223 2009-04-02  Christian Bruel  <christian.bruel@st.com>
15224
15225         * config/sh/sh.c (sh_dwarf_register_span): New function.
15226         (TARGET_DWARF_REGISTER_SPAN): Define.
15227         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
15228
15229 2009-04-02  Ira Rosen  <irar@il.ibm.com>
15230
15231         PR tree-optimization/39595
15232         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
15233         interleaved loads group is not  greater than the SLP group size.
15234
15235 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
15236
15237         * builtins.c (is_builtin_name): New.
15238         (called_as_built_in): Use is_builtin_name.
15239         * tree.h (is_builtin_name): New.
15240         * varasm.c (incorporeal_function_p): Use is_builtin_name
15241
15242 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
15243
15244         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
15245
15246 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
15247
15248         PR c++/26693
15249         * c-decl.c (clone_underlying_type): Move this ...
15250         * c-common.c (set_underlying_type): ... here.
15251         Also, make sure the function properly sets TYPE_STUB_DECL() on
15252         the newly created typedef variant type.
15253         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
15254         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
15255         points.
15256
15257 2009-04-02  Richard Guenther  <rguenther@suse.de>
15258
15259         PR tree-optimization/37221
15260         * tree-flow.h (degenerate_phi_result): Declare.
15261         * tree-ssa-dom.c (degenerate_phi_result): Export.
15262         * tree-scalar-evolution.c (analyze_initial_condition): If
15263         the initial condition is defined by a degenerate PHI node
15264         use the degenerate value.
15265
15266 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
15267
15268         PR rtl-optimization/39588
15269         * combine.c (merge_outer_ops): Do not set the constant when this
15270         is not necessary.
15271         (simplify_shift_const_1): Do not modify it either in this case.
15272
15273 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
15274
15275         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
15276         tuning is deprecated if -mtune value is set to an Itanium1 variant.
15277
15278 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
15279
15280         PR c/29027
15281         * c-lex.c (interpret_float): Default (no suffix) is double.
15282
15283 2009-04-1  Xinliang David Li  <davidxl@google.com>
15284
15285         * config/i386/i386.c (legitimate_constant_p): Recognize
15286         all one vector constant.
15287
15288 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15289
15290         * config/vax/vax.c: Add #includes to silence warnings.
15291         Change #include order to silence two warnings.
15292
15293 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15294
15295         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
15296         (ASM_SPEC): Pass -k to the assembler for PIC code.
15297
15298 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15299
15300         * config.gcc: Add vax-*-linux* to the switch.
15301         * config/vax/linux.h: New file. (TARGET_VERSION,
15302         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
15303
15304 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15305
15306         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
15307         Use predicate macros instead of GET_CODE() == foo.
15308         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
15309         ashlsi3, rotrsi3, <unnamed>): Likewise.
15310
15311 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15312
15313         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
15314         jbbccihi, jbbccisi): Remova trailing whitespace.
15315         * config/vax/constraints.md: Likewise.
15316         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15317         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
15318         * config/vax/predicates.md: Likewise.
15319         * config/vax/vax.c (print_operand_address, vax_output_int_move,
15320         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
15321         * config/vax/vax.h: Likewise.
15322         * config/vax/vax.md (nonlocal_goto): Likewise.
15323
15324 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15325
15326         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
15327         (indirectable_address_p, adjacent_operands_p): Add spaces around
15328         braces.
15329         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
15330
15331 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15332
15333         * config/vax/vax.c (legitimate_constant_address_p,
15334         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
15335         index_term_p, reg_plus_index_p, legitimate_address_p,
15336         vax_mode_dependent_address_p): Update comments to match functions
15337         modified by the recent int->bool conversion.
15338
15339 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15340
15341         * config/vax/builtins.md: Update copyright message.
15342         * config/vax/constraints.md: Likewise.
15343         * config/vax/netbsd-elf.h: Likewise.
15344         * config/vax/predicates.md: Likewise.
15345         * config/vax/vax-protos.h: Likewise.
15346         * config/vax/vax.c: Likewise.
15347         * config/vax/vax.h: Likewise.
15348         * config/vax/vax.md: Likewise.
15349         * config/vax/vax.opt: Likewise.
15350
15351 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15352
15353         * config/vax/builtins.md (ffssi2, ffssi2_internal,
15354         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
15355         * config/vax/constraints.md (B, R): Likewise.
15356         * config/vax/predicates.md (external_memory_operand,
15357         nonimmediate_addsub_di_operand): Likewise.
15358         * config/vax/vax.c (vax_output_int_add): Likewise.
15359         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
15360         untyped_call): Likewise.
15361
15362 2009-04-01  Matt Thomas  <matt@3am-software.com>
15363
15364         * config/vax/predicates.md: New file.
15365         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
15366         external_const_operand, nonsymbolic_operand, external_memory_operand,
15367         indirect_memory_operand, indexed_memory_operand,
15368         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
15369         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
15370         predicate.
15371         * config/vax/constraints.md: New file.
15372         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
15373         New constraint.
15374         * config/vax/builtins.md: New file.
15375         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
15376         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
15377         jbbccisi): Define.
15378         * config/vax/vax.opt (mqmath): Add option.
15379         * config/vax/vax.md (isfx): Extend with DI.
15380         (VAXintQH, VAXintQHSD): Define.
15381         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
15382         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
15383         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
15384         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
15385         (movdi): Update constraints and use vax_output_int_move().
15386         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
15387         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
15388         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
15389         nonlocal_goto): New.
15390         (mov<mode>): Extend accepted operand types.
15391         (subdi3_old): Rename from subdi3, change update constraints and use
15392         a new implementation.
15393         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
15394         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
15395         MOVE_RATIO, CLEAR_RATIO): Define.
15396         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
15397         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
15398         (PRINT_OPERAND): Redefine using a function instead of inlined code.
15399         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
15400         (split_quadword_operands): Make static and really allow variable
15401         splitting.
15402         (print_operand_address): Update for PIC generation.
15403         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
15404         indexable_address_p, fixup_mathdi_operand,
15405         vax_expand_addsub_di_operands, adjacent_operands_p): New.
15406         (vax_float_literal, legitimate_constant_p,
15407         indirectable_constant_address_p, index_term_p,
15408         reg_plus_index_p): Return bool instead of int.
15409         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
15410         where needed.
15411         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
15412         generation.
15413         (vax_output_conditional_branch): Indent.
15414         (legitimate_constant_address_p, indirectable_constant_address_p,
15415         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
15416         vax_mode_dependent_address_p): Return bool instead of int, update for
15417         PIC generation.
15418         * config/vax/vax-protos.h (legitimate_constant_address_p,
15419         legitimate_constant_p, legitimate_address_p,
15420         vax_mode_dependent_address_p): Change declaration to bool.
15421         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
15422         vax_expand_addsub_di_operands, vax_output_int_subtract,
15423         vax_output_movmemsi): Declare.
15424         (split_quadword_operands, vax_float_literal): Delete declaration.
15425         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
15426         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
15427         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
15428         ASM_OUTPUT_DWARF_PCREL): Define.
15429         (ASM_SPEC): Change definition to allow PIC generation.
15430
15431 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
15432
15433         * doc/sourcebuild.texi: Update front-end requirements.
15434
15435 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
15436
15437         PR target/39226
15438         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
15439         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
15440         (booldi3_internal3): Use boolean_or_operator instead of
15441         boolean_operator.
15442
15443 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
15444
15445         PR c/39605
15446         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
15447         declarator whose size is not an integer constant expression but
15448         folds to an integer constant, then treat it as a constant
15449         subsequently.
15450
15451 2009-04-01  Richard Guenther  <rguenther@suse.de>
15452
15453         * fold-const.c (fold_plusminus_mult_expr): Do not fold
15454         i * 4 + 2 to (i * 2 + 1) * 2.
15455
15456 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
15457
15458         PR c/37772
15459         * c-parser.c (c_parser_asm_statement): Skip until close paren and
15460         return if c_parser_asm_string_literal returned NULL.
15461
15462 2009-04-01  Nick Clifton  <nickc@redhat.com>
15463
15464         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
15465         already defined.
15466         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
15467         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
15468         other typedefs to avoid conflicts with libgcc2.c.  Define labels
15469         to gain 16-bit bit-manipulation functions from libgcc2.c and then
15470         include it.
15471         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
15472         to gain 16-bit trapping arithmetic functions from libgcc2.c and
15473         then include it.
15474
15475 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
15476
15477         * varasm.c (default_function_rodata_section): Declare DOT as
15478         const char*.
15479
15480 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
15481             Andrey Galkin  <agalkin@hypercom.com>
15482
15483         PR/39492
15484         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
15485         Make object_name unique for each process.
15486
15487 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
15488
15489         PR other/39591
15490         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
15491         addressable variables in the parallel that could go out of scope while
15492         running queued tasks.
15493
15494 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
15495
15496         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
15497         (CASE_VALUES_THRESHOLD): Redefine.
15498         * config/avr/avr.c (avr_override_options): Remove initialization of
15499         avr_case_values_threshold variable.
15500         (avr_case_values_threshold): Remove variable. Add new function.
15501         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
15502         * config/avr/avr.opt (mno-tablejump): Remove option.
15503         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
15504
15505 2009-04-01  DJ Delorie  <dj@redhat.com>
15506
15507         * varasm.c (default_function_rodata_section): Don't assume
15508         anything about where the first '.' in the section name is.
15509
15510 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
15511
15512         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
15513         rs6000_emit_stack_tie.
15514
15515 2009-03-31  Ian Lance Taylor  <iant@google.com>
15516
15517         * tree-eh.c (tree_remove_unreachable_handlers): Compare
15518         gimple_code with GIMPLE_RESX, not RESX.
15519
15520 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
15521
15522         * c-common.c (c_get_ident): New.
15523         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
15524
15525 2009-04-01  Ben Elliston  <bje@au.ibm.com>
15526
15527         * config/rs6000/sysv4.opt (msdata): Improve option description.
15528
15529 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
15530
15531         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
15532         (divdf3_internal_lat): Remove.
15533         (divxf3_internal_lat): Remove.
15534         (divxf3_internal_thr): Remove.
15535         (divxf): Use divxf3_internal.
15536         * config/ia64/div.md (divsf3_internal_lat): New.
15537         (divdf3_internal_lat): New.
15538         (divxf3_internal): New.
15539
15540 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
15541
15542         PR c/448
15543         * Makefile.in (USE_GCC_STDINT): Define.
15544         (stmp-int-hdrs): Install stdint.h if applicable.
15545         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
15546         if known.
15547         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
15548         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
15549         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
15550         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
15551         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
15552         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
15553         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
15554         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
15555         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
15556         (c_common_nodes_and_builtins): Initialize
15557         underlying_wchar_type_node.  Do not initialize
15558         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
15559         nodes for new types.
15560         (c_stddef_cpp_builtins): Define macros for new types.
15561         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
15562         Remove.
15563         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
15564         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
15565         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
15566         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
15567         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
15568         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
15569         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
15570         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
15571         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
15572         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
15573         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
15574         int16_type_node, int32_type_node, int64_type_node,
15575         uint8_type_node, uint16_type_node, c_uint32_type_node,
15576         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
15577         int_least32_type_node, int_least64_type_node,
15578         uint_least8_type_node, uint_least16_type_node,
15579         uint_least32_type_node, uint_least64_type_node,
15580         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
15581         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
15582         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
15583         uintptr_type_node): Define.
15584         * c-cppbuiltin.c (builtin_define_constants,
15585         builtin_define_type_minmax): New.
15586         (builtin_define_stdint_macros): Define more macros.
15587         (c_cpp_builtins): Define more limit macros.
15588         (type_suffix): New.
15589         (builtin_define_type_max): Define in terms of
15590         builtin_define_type_minmax.  Remove is_long parameter.  All
15591         callers changed.
15592         * config.gcc (use_gcc_stdint): Define.
15593         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
15594         Add newlib-stdint.h for generic targets.
15595         * config/glibc-stdint.h, config/newlib-stdint.h,
15596         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
15597         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
15598         * config/score/score.h (UINTPTR_TYPE): Define.
15599         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
15600         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
15601         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
15602         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
15603         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
15604         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
15605         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
15606         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
15607         * config/spu/spu.h (STDINT_LONG32): Define.
15608         * configure.ac (use_gcc_stdint): Substitute.
15609         * configure: Regenerate.
15610         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
15611         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
15612         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
15613         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
15614         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
15615         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
15616         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
15617         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
15618         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
15619         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
15620         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
15621         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
15622         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
15623         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
15624         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
15625         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
15626         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
15627         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
15628         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
15629         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
15630         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
15631         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
15632         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
15633         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
15634         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
15635         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
15636         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
15637         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
15638         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
15639
15640 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
15641
15642         * loop-iv.c (suitable_set_for_replacement): Renamed from
15643         simplify_using_assignment; changed to return bool and to accept new
15644         args DEST and SRC.  Return true iff we find a source/destination pair
15645         that can be used to make a replacement, and fill SRC and DEST if so.
15646         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
15647         changed.
15648         (simplify_using_initial_values): Deal with altered regs here and track
15649         more precisely the effect they have on the validity of our expression.
15650
15651         * loop-iv.c (simplify_using_condition): A condition of the form
15652         (EQ REG CONST) can be used to simply make a substitution.
15653         (simplify_using_initial_values): Keep track of conditions we have seen
15654         and keep using them to simplify new expressions, while applying the
15655         same substitutions to them as to the expression.
15656
15657         * simplify-rtx.c (simplify_relational_operation_1): Simplify
15658         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
15659         GEU/LTU reversed.
15660
15661         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
15662         changed.  Use this when trying to improve the upper bound.
15663         Generate the comparison by using simplify_gen_relational.
15664
15665         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
15666
15667         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
15668         functions.
15669         (simplify_using_assignment, simplify_using_initial_values): Call
15670         replace_in_expr to make replacements.  Call replace_single_def_regs
15671         once on the initial version of the expression.
15672
15673 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15674
15675         PR target/27237
15676         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
15677
15678 2009-03-31  Richard Guenther  <rguenther@suse.de>
15679
15680         PR middle-end/31029
15681         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
15682         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
15683
15684 2009-03-31  Richard Guenther  <rguenther@suse.de>
15685
15686         * tree.h (div_if_zero_remainder): Declare.
15687         * fold-const.c (div_if_zero_remainder): Export.
15688         * tree-ssa-forwprop.c
15689         (forward_propagate_addr_into_variable_array_index): Handle
15690         constant array index addition outside of the variable index.
15691
15692 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
15693
15694         PR target/39592
15695         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
15696         define_splits, floatunssi<mode>2): Require x87 conversions from
15697         DImode to be permitted.
15698
15699 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
15700
15701         PR preprocessor/15638
15702         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
15703
15704 2009-03-31  Richard Guenther  <rguenther@suse.de>
15705
15706         PR middle-end/23401
15707         PR middle-end/27810
15708         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
15709         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
15710         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
15711         a separate statement.
15712         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
15713         (lookup_tmp_var): Likewise.
15714         (is_gimple_formal_tmp_or_call_rhs): Remove.
15715         (is_gimple_reg_or_call_rhs): Rename to ...
15716         (is_gimple_reg_rhs_or_call): ... this.
15717         (is_gimple_mem_or_call_rhs): Rename to ...
15718         (is_gimple_mem_rhs_or_call): ... this.
15719         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
15720         DECL_GIMPLE_REG_P only if is_formal is true.
15721         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
15722         for non-proper post-modify expression gimplification.
15723         (gimplify_self_mod_expr): For post-modify expressions gimplify
15724         the lvalue to a minimal lvalue.
15725         (rhs_predicate_for): Remove formal temp case.
15726         (gimplify_modify_expr_rhs): Likewise.
15727         (gimplify_addr_expr): Use is_gimple_reg.
15728         (gimplify_expr): Remove formal temp cases.
15729         (gimple_regimplify_operands): Likewise.
15730         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
15731         and FILTER_EXPR like constants.
15732         * gimple.c (walk_gimple_op): Fix val_only initialization, use
15733         is_gimple_reg.
15734         (is_gimple_formal_tmp_rhs): Remove.
15735         (is_gimple_reg_rhs): Remove special casing.
15736         (is_gimple_mem_rhs): Fix.
15737         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
15738         (is_gimple_formal_tmp_var): Remove.
15739         (is_gimple_formal_tmp_reg): Likewise.
15740         (is_gimple_min_lval): Allow invariant component ref parts.
15741         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
15742         is_gimple_formal_tmp_reg): Remove declarations.
15743         * tree-cfg.c (verify_expr): Verify that variables with address
15744         taken do not have DECL_GIMPLE_REG_P set.
15745         * tree-mudflap.c (mf_build_check_statement_for): Use
15746         force_gimple_operand instead of gimplify_expr.
15747
15748 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
15749
15750         * modulo-sched.c (sms_schedule_by_order): Pass the actual
15751         schedulable rows to compute_split_row.
15752
15753 2009-03-31  Ben Elliston  <bje@au.ibm.com>
15754
15755         PR target/31635
15756         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
15757         OPT_mvrsave.
15758
15759 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
15760
15761         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
15762         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
15763         * configure: Regenerate.
15764         * config.in: Regenerate.
15765         * config/rs6000/rs6000.opt (mtls-markers): Add.
15766         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
15767         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
15768         (tls_ld_aix, tls_ld_sysv): Likewise.
15769         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
15770         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
15771
15772 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
15773
15774         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
15775
15776 2009-03-30  Jan Hubicka  <jh@suse.cz>
15777
15778         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
15779         out of RESX.
15780         (tree_remove_unreachable_handlers): Cleanup EH predecestor
15781         detection and label handling.
15782
15783 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15784
15785         * ira-int.h (ira_allocno): Rename left_conflicts_num to
15786         left_conflicts_size.
15787         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
15788         ALLOCNO_LEFT_CONFLICTS_SIZE.
15789
15790         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
15791         remove_allocno_from_bucket_and_push,
15792         allocno_spill_priority_compare, push_allocnos_to_stack,
15793         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
15794         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
15795         (setup_allocno_left_conflicts_num): Ditto.  Rename to
15796         setup_allocno_left_conflicts_size.
15797         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
15798         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
15799         setup_allocno_left_conflicts_size instead of
15800         setup_allocno_left_conflicts_num.
15801
15802         * ira-build.c (ira_create_allocno): Use
15803         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
15804         ALLOCNO_LEFT_CONFLICTS_NUM.
15805
15806 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15807
15808         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
15809         instead of DF_LR_OUT.
15810
15811         * ira-lives.c (process_bb_node_lives): Ditto.
15812
15813         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
15814         instead of DF_LR_{OUT,IN}.
15815
15816         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
15817
15818         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
15819
15820 2009-03-30  Jan Hubicka  <jh@suse.cz>
15821
15822         * except.c (label_to_region_map): Fix thinko.
15823
15824 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
15825
15826         PR middle-end/38237
15827         * tree.h (tree_find_value): New declaration.
15828         * tree.c (tree_find_value): New function.
15829         * varasm.c (assemble_external): Avoid duplicate entries on lists.
15830
15831 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
15832
15833         PR debug/39563
15834         * c-decl.c (struct c_binding): Add locus field.
15835         (bind): Add locus argument, set locus field from it.
15836         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
15837         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
15838         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
15839         implicitly_declare, undeclared_variable, lookup_label,
15840         declare_label, c_make_fname_decl, c_builtin_function,
15841         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
15842         bind callers.
15843
15844 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
15845
15846         PR target/38781
15847         * config/i386/i386.c (classify_argument): Check total size of
15848         structure.
15849
15850 2009-03-30  Martin Jambor  <mjambor@suse.cz>
15851
15852         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
15853         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
15854         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
15855         respectively.
15856
15857         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
15858         seen_variable_array_ref while also traversing a union.
15859
15860         * tree-inline.c (optimize_inline_calls): Do not call
15861         cgraph_node_remove_callees.
15862         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
15863         (pass_remove_cgraph_callee_edges): New variable.
15864         * passes.c (init_optimization_passes): Add
15865         pass_remove_cgraph_callee_edges after early inlining and before all
15866         late intraprocedural passes.
15867
15868         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
15869
15870 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
15871
15872         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
15873         Fix typos in names.
15874
15875 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
15876
15877         * combine.c (simplify_comparison): Use have_insn_for.
15878         * dojump.c (do_jump): Likewise.
15879
15880 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
15881
15882         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
15883         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
15884         sparc_compare_op0 like sparc_compare_emitted used to be handled.
15885         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
15886         instead of sparc_compare_emitted.
15887         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
15888         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
15889         instead of sparc_compare_emitted.
15890
15891 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
15892
15893         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
15894         enter/exit cfglayout mode.
15895         (pass_partition_block): Require it.
15896         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
15897         (combine_instructions): Track basic blocks instead of labels.
15898         (update_cfg_for_uncondjump): New.
15899         (try_combine): Use it.  Update jumps after rescanning.
15900         (pass_combine): Require PROP_cfglayout.
15901         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
15902
15903 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
15904
15905         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
15906         Provide/destroy PROP_cfglayout respectively.
15907         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
15908         * tree-pass.h (PROP_cfglayout): New.
15909
15910 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
15911
15912         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
15913         fold_convert_const_fixed_from_fixed,
15914         fold_convert_const_fixed_from_int,
15915         fold_convert_const_fixed_from_real, fold_negate_const): Do not
15916         set TREE_CONSTANT_OVERFLOW.
15917         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
15918         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
15919
15920 2009-03-30  Ira Rosen  <irar@il.ibm.com>
15921
15922         * tree-vect-loop-manip.c: New file.
15923         * tree-vectorizer.c: Update documentation and included files.
15924         (vect_loop_location): Make extern.
15925         (rename_use_op): Move to tree-vect-loop-manip.c
15926         (rename_variables_in_bb, rename_variables_in_loop,
15927         slpeel_update_phis_for_duplicate_loop,
15928         slpeel_update_phi_nodes_for_guard1,
15929         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
15930         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
15931         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
15932         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
15933         find_loop_location): Likewise.
15934         (new_stmt_vec_info): Move to tree-vect-stmts.c.
15935         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
15936         get_vectype_for_scalar_type, vect_is_simple_use,
15937         supportable_widening_operation, supportable_narrowing_operation):
15938         Likewise.
15939         (bb_in_loop_p): Move to tree-vect-loop.c.
15940         (new_loop_vec_info, destroy_loop_vec_info,
15941         reduction_code_for_scalar_code, report_vect_op,
15942         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
15943         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
15944         (vect_supportable_dr_alignment): Likewise.
15945         * tree-vectorizer.h (tree-data-ref.h): Include.
15946         (vect_loop_location): Declare.
15947         Reorganize function declarations according to the new file structure.
15948         * tree-vect-loop.c: New file.
15949         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
15950         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
15951         * tree-vect-data-refs.c: New file.
15952         * tree-vect-patterns.c (timevar.h): Don't include.
15953         * tree-vect-stmts.c: New file.
15954         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
15955         tree-vect-slp.c, tree-vect-loop.c.
15956         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
15957         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
15958         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
15959         (tree-vect-analyze.o): Remove.
15960         (tree-vect-transform.o): Likewise.
15961         (tree-vect-data-refs.o): Add rule.
15962         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
15963         tree-vect-slp.o): Likewise.
15964         (tree-vect-patterns.o): Remove redundant dependencies.
15965         (tree-vectorizer.o): Likewise.
15966         * tree-vect-slp.c: New file.
15967
15968 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
15969
15970         * optc-gen.awk: Warn if an option flag has multiple different
15971         help strings.
15972
15973 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
15974
15975         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
15976         -floop-block): Document dependences on PPL, CLooG and Graphite.
15977
15978 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
15979
15980         PR rtl-optimization/323
15981         * c-common.c (c_fully_fold, convert_and_check,
15982         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
15983         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
15984         * c-common.def (EXCESS_PRECISION_EXPR): New.
15985         * c-cppbuiltin.c (builtin_define_float_constants): Define
15986         constants with enough digits for long double.
15987         * c-lex.c (interpret_float): Interpret constant with excess
15988         precision where appropriate.
15989         * c-opts.c (c_common_post_options): Set
15990         flag_excess_precision_cmdline.  Give an error for
15991         -fexcess-precision=standard for C++ for processors where the
15992         option is significant.
15993         * c-parser.c (c_parser_conditional_expression): Handle excess
15994         precision in condition.
15995         * c-typeck.c (convert_arguments): Handle arguments with excess
15996         precision.
15997         (build_unary_op): Move excess precision outside operation.
15998         (build_conditional_expr): Likewise.
15999         (build_compound_expr): Likewise.
16000         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
16001         (build_modify_expr): Handle excess precision in RHS.
16002         (convert_for_assignment): Handle excess precision in converted
16003         value.
16004         (digest_init, output_init_element, process_init_element): Handle
16005         excess precision in initializer.
16006         (c_finish_return): Handle excess precision in return value.
16007         (build_binary_op): Handle excess precision in operands and add
16008         excess precision as needed for operation.
16009         * common.opt (-fexcess-precision=): New option.
16010         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
16011         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16012         For standard excess precision, output explicit conversion to and
16013         truncation from XFmode.
16014         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
16015         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
16016         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
16017         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
16018         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
16019         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
16020         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
16021         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
16022         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
16023         define_splits, sqrt<mode>2): Disable where appropriate for
16024         standard excess precision.
16025         * convert.c (convert_to_real): Do not shorten arithmetic to type
16026         for which excess precision would be used.
16027         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
16028         * doc/invoke.texi (-fexcess-precision=): Document option.
16029         (-mfpmath=): Correct index entry.
16030         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
16031         flag_excess_precision): New.
16032         * langhooks.c (lhd_post_options): Set
16033         flag_excess_precision_cmdline.
16034         * opts.c (common_handle_option): Handle -fexcess-precision=.
16035         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
16036         init_excess_precision): New.
16037         (lang_dependent_init_target): Call init_excess_precision.
16038         * tree.c (excess_precision_type): New.
16039         * tree.h (excess_precision_type): Declare.
16040
16041 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
16042
16043         PR c/35235
16044         * c-typeck.c (build_component_ref): Do not copy qualifiers from
16045         non-lvalue to component.
16046
16047 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
16048
16049         PR preprocessor/34695
16050         * Makefile.in (c-opts.o): Depend on c-tree.h.
16051         * c-common.c: Move down include of diagnostic.h.
16052         (done_lexing, c_cpp_error): New.
16053         * c-common.h (done_lexing): Declare.
16054         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
16055         (parse_in).
16056         * c-opts.c: Include c-tree.h.
16057         (c_common_init_options): Set preprocessor error callback.
16058         (c_common_handle_option): Do not set preprocessor
16059         inhibit_warnings, warnings_are_errors, warn_system_headers,
16060         pedantic_errors or inhibit_warnings flags.
16061         (c_common_post_options): Do not check cpp_errors (parse_in).
16062         (c_common_finish): Do not output dependencies if there were
16063         errors.  Do not check return value of cpp_finish.
16064         * c-ppoutput.c (pp_file_change): Set input_location.
16065         * c-tree.h (c_cpp_error): Declare.
16066         * diagnostic.c (diagnostic_set_info_translated): Also initialize
16067         override_column.
16068         (diagnostic_build_prefix): Check override_column.
16069         * diagnostic.h (diagnostic_info): Add override_column field.
16070         (diagnostic_override_column): Define.
16071
16072 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
16073
16074         * c-common.c (c_expand_expr, c_staticp): Remove.
16075         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
16076         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
16077         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
16078         * c-gimplify.c (gimplify_compound_literal_expr,
16079         optimize_compound_literals_in_ctor): Remove.
16080         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
16081         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
16082         * c-semantics.c (emit_local_var): Remove.
16083
16084         * langhooks-def.h (lhd_expand_expr): Remove.
16085         * langhooks.c (lhd_expand_expr): Remove.
16086         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
16087
16088         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
16089         handling from c-semantics.c; don't call into langhook.
16090         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
16091         * gimplify.c (gimplify_compound_literal_expr,
16092         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
16093         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
16094         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
16095         as was done in c-gimplify.c.
16096         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
16097         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
16098         Move from c-common.h.
16099         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
16100
16101         * tree.c (staticp): Do not call langhook.
16102         * langhooks.c (lhd_staticp): Delete.
16103         * langhooks-def.h (lhd_staticp): Delete prototype.
16104         (LANG_HOOKS_STATICP): Delete.
16105         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
16106
16107         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
16108         instead of DECL_STMTs.
16109
16110 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
16111
16112         PR c/456
16113         PR c/5675
16114         PR c/19976
16115         PR c/29116
16116         PR c/31871
16117         PR c/35198
16118         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
16119         void_type_node.
16120         (fold_call_expr): Return a NOP_EXPR from folding rather than the
16121         contained expression.
16122         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
16123         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
16124         conditional expressions for C.
16125         (decl_constant_value_for_optimization): Move from
16126         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
16127         whether optimizing and that the expression is a VAR_DECL not of
16128         array type instead of doing such checks in the caller.  Do not
16129         check pedantic.  Call gcc_unreachable for C++.
16130         * c-common.def (C_MAYBE_CONST_EXPR): New.
16131         * c-common.h (c_fully_fold, c_save_expr,
16132         decl_constant_value_for_optimization): New prototypes.
16133         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
16134         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
16135         EXPR_INT_CONST_OPERANDS): Define.
16136         * c-convert.c (convert): Strip nops from expression.
16137         * c-decl.c (groktypename): Take extra parameters expr and
16138         expr_const_operands.  Update call to grokdeclarator.
16139         (start_decl): Update call to grokdeclarator.  Add statement for
16140         expressions used in type of decl.
16141         (grokparm): Update call to grokdeclarator.
16142         (push_parm_decl): Update call to grokdeclarator.
16143         (build_compound_literal): Add parameter non_const and build a
16144         C_MAYBE_COSNT_EXPR if applicable.
16145         (grokdeclarator): Take extra parameters expr and
16146         expr_const_operands.  Track expressions used in declaration
16147         specifiers and declarators.  Fold array sizes and track whether
16148         they are constant expressions and whether they are integer
16149         constant expressions.
16150         (parser_xref_tag): Set expr and expr_const_operands fields in
16151         return value.
16152         (grokfield): Update call to grokdeclarator.
16153         (start_function): Update call to grokdeclarator.
16154         (build_null_declspecs): Set expr and expr_const_operands fields in
16155         return value.
16156         (declspecs_add_type): Handle expressions in typeof specifiers.
16157         * c-parser.c (c_parser_declspecs): Set expr and
16158         expr_const_operands fields for declaration specifiers.
16159         (c_parser_enum_specifier): Likewise.
16160         (c_parser_struct_or_union_specifier): Likewise.
16161         (c_parser_typeof_specifier): Likewise.  Update call to
16162         groktypename.  Fold expression as needed.  Return expressions with
16163         type instead of adding statements.
16164         (c_parser_attributes): Update calls to c_parser_expr_list.
16165         (c_parser_statement_after_labels): Fold expression before passing
16166         to objc_build_throw_stmt.
16167         (c_parser_condition): Fold expression.
16168         (c_parser_asm_operands): Fold expression.
16169         (c_parser_conditional_expression): Use c_save_expr.  Update call
16170         to build_conditional_expr.
16171         (c_parser_alignof_expression): Update call to groktypename.
16172         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
16173         original_code.  Fold expression argument of va_arg.  Create
16174         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
16175         argument to va_arg.  Update calls to groktypename.  Fold array
16176         index for offsetof.  Verify that first argument to
16177         __builtin_choose_expr has integer type.
16178         (c_parser_postfix_expression_after_paren_type): Update calls to
16179         groktypename and build_compound_literal.  Handle expressions with
16180         side effects in type name.
16181         (c_parser_postfix_expression_after_primary): Update call to
16182         c_parser_expr_list.  Set original_code for calls to
16183         __builtin_constant_p.
16184         (c_parser_expr_list): Take extra parameter fold_p.  Fold
16185         expressions if requested.
16186         (c_parser_objc_type_name): Update call to groktypename.
16187         (c_parser_objc_synchronized_statement): Fold expression.
16188         (c_parser_objc_receiver): Fold expression.
16189         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
16190         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
16191         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
16192         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
16193         (struct c_typespec): Add elements expr and expr_const_operands.
16194         (struct c_declspecs): Add elements expr and expr_const_operands.
16195         (groktypename, build_conditional_expr, build_compound_literal):
16196         Update prototypes.
16197         (in_late_binary_op): Declare.
16198         * c-typeck.c (note_integer_operands): New function.
16199         (in_late_binary_op): New variable.
16200         (decl_constant_value_for_broken_optimization): Move to c-common.c
16201         and rename to decl_constant_value_for_optimization.
16202         (default_function_array_conversion): Do not strip nops.
16203         (default_conversion): Do not call
16204         decl_constant_value_for_broken_optimization.
16205         (build_array_ref): Do not fold result.
16206         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
16207         result when operand is a VLA.
16208         (c_expr_sizeof_type): Update call to groktypename.  Handle
16209         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
16210         result when operand names a VLA type.
16211         (build_function_call): Update call to build_compound_literal.
16212         Only fold result for calls to __builtin_* functions.  Strip
16213         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
16214         the function designator.
16215         (convert_arguments): Fold arguments.  Update call to
16216         convert_for_assignment.
16217         (build_unary_op): Handle increment and decrement of
16218         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
16219         decrement earlier.  Fold operand of increment and decrement.
16220         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
16221         built for integer operand.  Wrap returns that are INTEGER_CSTs
16222         without being integer constant expressions or that have integer
16223         constant operands without being INTEGER_CSTs.
16224         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
16225         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
16226         result is an integer constant expression or can be used in
16227         unevaluated parts of one and avoid folding and wrap as
16228         appropriate.  Fold operands before possibly doing -Wsign-compare
16229         warnings.
16230         (build_compound_expr): Wrap result for C99 if operands can be used
16231         in integer constant expressions.
16232         (build_c_cast): Update call to digest_init.  Do not ignore
16233         overflow from casting floating-point constants to integers.  Wrap
16234         results that could be confused with integer constant expressions,
16235         null pointer constants or floating-point constants.
16236         (c_cast_expr): Update call to groktypename.  Handle expressions
16237         included in type name.
16238         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
16239         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
16240         Update calls to convert_for_assignment.
16241         (convert_for_assignment): Take new parameter
16242         null_pointer_constant.  Do not strip nops or call
16243         decl_constant_value_for_broken_optimization.  Set
16244         in_late_binary_op for conversions to boolean.
16245         (store_init_value): Update call to digest_init.
16246         (digest_init): Take new parameter null_pointer_constant.  Do not
16247         call decl_constant_value_for_broken_optimization.  pedwarn for
16248         initializers not constant expressions.  Update calls to
16249         convert_for_assignment.
16250         (constructor_nonconst): New.
16251         (struct constructor_stack): Add nonconst element.
16252         (really_start_incremental_init, push_init_level, pop_init_level):
16253         Handle constructor_nonconst and nonconst element.
16254         (set_init_index): Call constant_expression_warning for array
16255         designators.
16256         (output_init_element): Fold value.  Set constructor_nonconst as
16257         applicable.  pedwarn for initializers not constant expressions.
16258         Update call to digest_init.  Call constant_expression_warning
16259         where constant initializers are required.
16260         (process_init_element): Use c_save_expr.
16261         (c_finish_goto_ptr): Fold expression.
16262         (c_finish_return): Fold return value.  Update call to
16263         convert_for_assignment.
16264         (c_start_case): Fold switch expression.
16265         (c_process_expr_stmt): Fold expression.
16266         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
16267         ensure statement expression is not evaluated in constant expression.
16268         (build_binary_op): Track whether results are integer constant
16269         expressions or may occur in such, disable folding and wrap results
16270         as applicable.  Fold operands for -Wsign-compare warnings unless
16271         in_late_binary_op.
16272         (c_objc_common_truthvalue_conversion): Handle results folded to
16273         integer constants that are not integer constant expressions.
16274         * doc/extend.texi: Document when typeof operands are evaluated,
16275         that condition of __builtin_choose_expr is an integer constant
16276         expression, and more about use of __builtin_constant_p in
16277         initializers.
16278
16279 2009-03-29  Richard Guenther  <rguenther@suse.de>
16280
16281         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
16282         propagate addresses of array references.
16283
16284 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
16285
16286         * regmove.c (perhaps_ends_bb_p): Remove.
16287         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
16288         from INSN and check that the main loop stays within that basic block.
16289         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
16290         (regmove_forward_pass): Split out from regmove_optimize.  Use
16291         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
16292         (regmove_backward_pass): Split out from regmove_optimize.  Use
16293         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
16294         (regmove_optimize): Simplify.
16295
16296 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
16297
16298         PR target/39545
16299         * config/i386/i386.c (classify_argument): Ignore flexible array
16300         member in struct and warn ABI change.
16301
16302 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
16303
16304         * config/i386/i386-protos.h (ix86_agi_dependent): New.
16305
16306         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
16307         (ix86_adjust_cost): Updated.
16308
16309 2009-03-29  Jan Hubicka  <jh@suse.cz>
16310
16311         PR middle-end/28850
16312         * tree-pass.h (pass_cleanup_eh): New function.
16313         (remove_unreachable_regions): Break code handling RTL
16314         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
16315         that can not be reached by runtime.
16316         (can_be_reached_by_runtime): New function.
16317         (label_to_region_map): New function.
16318         (num_eh_regions): New function.
16319         (rtl_remove_unreachable_regions): New function.
16320         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
16321         (remove_eh_region): New function.
16322         * except.h: Include sbitmap and vecprim.
16323         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
16324         num_eh_regions): Declare.
16325         * passes.c (init_optimization_passes): Schedule cleanup_eh.
16326         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
16327         * tree-eh.c (tree_remove_unreachable_handlers): New function.
16328         (tree_empty_eh_handler_p): New function.
16329         (cleanup_empty_eh): New function.
16330         (cleanup_eh): New function.
16331         (pass_cleanup_eh): New function.
16332
16333 2009-03-29  Jan Hubicka  <jh@suse.cz>
16334
16335         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
16336         for removed regions.
16337
16338 2009-03-29  Jan Hubicka  <jh@suse.cz>
16339
16340         * except.c (dump_eh_tree): Dump all datastructures.
16341
16342 2009-03-29  Jan Hubicka  <jh@suse.cz>
16343
16344         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
16345         (duplicate_eh_regions_1): Likewise.
16346         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
16347         vector; call EH verification.
16348         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
16349         Be ready for region being removed.
16350
16351 2009-03-29  Jan Hubicka  <jh@suse.cz>
16352
16353         * bitmap.c (bitmap_last_set_bit): New function.
16354         * bitmap.h (bitmap_last_set_bit): Declare.
16355
16356 2009-03-29  David Ayers  <ayers@fsfe.org>
16357
16358         PR objc/27377
16359         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
16360         by calling objc_compare_types and surpress warnings about
16361         incompatible C pointers that are compatible ObjC pointers.
16362
16363 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
16364
16365         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
16366         call initialize_inline_failed.
16367         (initialize_inline_failed): Move it from here ...
16368         * cgraph.c (initialize_inline_failed): ... to here.
16369         (cgraph_create_edge): Call initialize_inline_failed rather than
16370         setting inline_failed directly.
16371
16372 2009-03-29  Ben Elliston  <bje@au.ibm.com>
16373
16374         PR target/32542
16375         * sysv4.opt (msdata): Improve comment.
16376         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
16377         * sysv4.h (SVR4_ASM_SPEC): Likewise.
16378
16379 2009-03-29  Ben Elliston  <bje@au.ibm.com>
16380
16381         PR target/30451
16382         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
16383         load and store attributes.
16384
16385 2009-03-29  Ben Elliston  <bje@au.ibm.com>
16386
16387         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
16388         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
16389         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
16390         * doc/extend.texi (X86 Built-in Functions): Add index entries for
16391         __builtin_infq and __builtin_huge_valq.
16392
16393 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
16394
16395         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
16396         atmega8m1 devices.
16397         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16398         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
16399
16400 2009-03-28  Xinliang David Li  <davidxl@google.com>
16401
16402         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
16403         (do_dbg_cnt): New function.
16404
16405 2009-03-28  Jan Hubicka  <jh@suse.cz>
16406
16407         Merge from pretty-ipa:
16408
16409         2009-03-27  Jan Hubicka  <jh@suse.cz>
16410
16411         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
16412         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
16413         * passes.c (function_called_by_processed_nodes_p): New.
16414         * ipa-pure-const.c (check_call): Fix handling of operands.
16415         (analyze_function): Dump debug output for skipped bodies.
16416         (local_pure_const): Use function_called_by_processed_nodes_p.
16417         * dwarf2out.c (reference_to_unused): Use output.
16418         * passes.c (do_per_function_toporder): Likewise.
16419
16420         2008-11-12  Jan Hubicka  <jh@suse.cz>
16421
16422         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
16423         * ipa-pure-const.c (funct_state_d): Add can throw field; make
16424         state_set_in_source enum
16425         (check_decl): Ignore memory tags; do not set fake looping flags;
16426         dump diagnostics.
16427         (check_operand, check_tree, check_rhs_var, check_lhs_var,
16428         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
16429         (check_call, analyze_function): Rewrite.
16430         (check_stmt): New.
16431         (add_new_function): Update call of analyze_function.
16432         (generate_summary): Add call of analyze_function.
16433         (propagate): Propagate can_throw; handle state_set_in_source correctly.
16434         (local_pure_const): New function.
16435         (pass_local_pure_const): New pass.
16436         * ipa-inline.c (inline_transform): Set after_inlining.
16437         * tree-eh.c (stmt_can_throw_external): New.
16438         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
16439         work with aliasing built.
16440         * tree-flow.h (stmt_can_throw_external): New.
16441         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
16442         and local pure/const pass in early and late optimization queue.
16443
16444 2009-03-28  Martin Jambor  <mjambor@suse.cz>
16445
16446         * fold-const.c (get_pointer_modulus_and_residue): New parameter
16447         allow_func_align.
16448         (fold_binary): Allow function decl aligment consideration is the
16449         second argument is integer constant one.
16450         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
16451         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
16452         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
16453
16454 2009-03-28  Jan Hubicka  <jh@suse.cz>
16455
16456         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
16457         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
16458         * function.h (rtl_data): Add nothrow flag.
16459         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
16460         set DECL_NOTHROW for AVAILABLE functions.
16461
16462 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
16463
16464         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
16465         following vector keyword has expansion starting with pixel or bool
16466         keyword, expand vector to __vector and pixel or bool to __pixel or
16467         __bool.
16468
16469         PR c++/39554
16470         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
16471         warn_if_disallowed_function_p): Removed.
16472         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
16473         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
16474         warning_if_disallowed_function_p.
16475         * flags.h (warn_if_disallowed_function_p,
16476         warn_disallowed_functions): Removed.
16477         * common.opt (Wdisallowed-function-list=): Removed.
16478         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
16479
16480 2009-03-28  Richard Guenther  <rguenther@suse.de>
16481
16482         PR tree-optimization/38723
16483         * tree-ssa-pre.c (compute_avail): Add all default definitions to
16484         the entry block.
16485
16486 2009-03-28  Jan Hubicka  <jh@suse.cz>
16487
16488         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
16489         test introduced by my previous patch.
16490
16491 2009-03-28  Richard Guenther  <rguenther@suse.de>
16492
16493         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
16494         the PHIs value undefined.
16495
16496 2009-03-28  Jan Hubicka  <jh@suse.cz>
16497
16498         * tree-pass.h (pass_fixup_cfg): New pass.
16499         * ipa-inline.c (inline_transform): Set
16500         always_inline_functions_inlined/after_inlining.
16501         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
16502         (pass_fixup_cfg): New pass.
16503         * passes.c (init_optimization_passes): Add fixup_cfg.
16504
16505 2009-03-28  Richard Guenther  <rguenther@suse.de>
16506
16507         PR tree-optimization/38458
16508         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
16509         argument use the arguments copy-of value.
16510
16511 2009-03-28  Richard Guenther  <rguenther@suse.de>
16512
16513         PR tree-optimization/38180
16514         * tree-ssa-ccp.c (get_default_value): Simplify.
16515         (likely_value): Likewise.
16516         (surely_varying_stmt_p): Properly handle VOP case.
16517         (ccp_initialize): Likewise.
16518         (ccp_fold): Handle propagating through *&.
16519         (fold_const_aggregate_ref): Also handle decls.
16520
16521 2009-03-28  Jan Hubicka  <jh@suse.cz>
16522
16523         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
16524         * cgraph.h (cgraph_node): Likewise.
16525         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
16526         (cgraph_reset_node): Use process flag.
16527         (cgraph_mark_functions_to_output): Likewise.
16528         (cgraph_expand_function): Likewise.
16529         (cgraph_expand_all_functions): Likewise.
16530         (cgraph_output_in_order): Likewise.
16531         * dwarf2out.c (reference_to_unused): Likewise.
16532         * passes.c do_per_function_toporder): Likewise.
16533
16534 2009-03-28  Jan Hubicka  <jh@suse.cz>
16535
16536         Bring from lto-branch:
16537
16538         2008-09-03  Doug Kwan  <dougkwan@google.com>
16539
16540         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
16541         enums instead of reason strings.
16542         * cgraph.c (cgraph_create_edge): Same.
16543         (cgraph_inline_failed_string): New function.
16544         * cgraph.h (cgraph_inline_failed_t): New enum type.
16545         (cgraph_inline_failed_string): New prototype.
16546         (struct cgraph_edge): Change type of INLINED_FAILED from constant
16547         char pointer to cgraph_inline_failed_t.
16548         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
16549         (cgraph_default_inline_p): Ditto.
16550         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
16551         to cgraph_inline_failed_t pointer.
16552         * cif-code.def: New file.
16553         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
16554         reason string.
16555         (cgraph_check_inline_limits): Change type of REASON to pointer to
16556         cgraph_inline_failed_t.  Replace reason strings with enums.
16557         (cgraph_default_inline_p): Ditto.
16558         (cgraph_recursive_inlining_p): Ditto.
16559         (update_caller_keys): Change type of FAILED_REASON to
16560         cgraph_inline_failed_t.
16561         (cgraph_set_inline_failed): Change type of REASON to pointer to
16562         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
16563         convert enums to strings for text output.
16564         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
16565         to be of type cgraph_inline_failed_t.  Replace reason strings with
16566         enums.  Call cgraph_inline_failed_string to covert enums
16567         to strings for text output.
16568         (cgraph_decide_inlining): Replace reason strings with enums.
16569         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
16570         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
16571         for text output.
16572         * tree-inline.c (expand_call_inline): Change type of REASON
16573         to cgraph_inline_failed_t.  Replace reason strings with enums.
16574         Call cgraph_inline_failed_string for text output.
16575         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
16576         (cgraph.o): Ditto.
16577
16578 2009-03-28  Jan Hubicka  <jh@suse.cz>
16579
16580         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
16581         cgraph_clone_node): Remove master clone handling.
16582         (cgraph_is_master_clone, cgraph_master_clone): Remove.
16583         * cgraph.h (master_clone): Remove.
16584         (cgraph_is_master_clone, cgraph_master_clone): Remove.
16585         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
16586         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
16587
16588 2009-03-28  Jan Hubicka  <jh@suse.cz>
16589
16590         * cgraph.c (cgraph_function_body_availability): Functions declared
16591         inline are always safe to assume that it is not going to be replaced.
16592
16593 2009-03-28  Richard Guenther  <rguenther@suse.de>
16594
16595         PR tree-optimization/38513
16596         * tree-ssa-pre.c (eliminate): Remove redundant stores.
16597         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
16598         EXC_PTR_EXPR and FILTER_EXPR.
16599         (get_ref_from_reference_ops): Likewise.
16600
16601 2009-03-28  Richard Guenther  <rguenther@suse.de>
16602
16603         PR tree-optimization/38968
16604         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
16605         Use FLOOR_MOD_EXPR to compute misalignment.
16606
16607 2009-03-28  Richard Guenther  <rguenther@suse.de>
16608
16609         PR tree-optimization/37795
16610         * tree.h (combine_comparisons): Declare.
16611         * fold-const.c (combine_comparisons): Export.
16612         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
16613         comparisons.
16614         (ifcombine_iforif): Use combine_comparisons.
16615
16616 2009-03-28  Jan Hubicka  <jh@suse.cz>
16617
16618         * tree-eh.c (inlinable_call_p): New function.
16619         (make_eh_edges): Use it.
16620         (verify_eh_edges): Use it.
16621         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
16622         * except.c (reachable_next_level): Add inlinable_function argument
16623         (sjlj_find_directly_reachable_regions): Update.
16624         (add_reachable_handler): Do not set saw_any_handlers.
16625         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
16626         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
16627         Add new inlinable call parameter.
16628         (can_throw_internal, can_throw_external): Update.
16629         * except.h (can_throw_internal_1, can_throw_external_1,
16630         foreach_reachable_handler): Update declaration.
16631
16632 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
16633
16634         * config/arm/t-arm-coff, config/h8300/coff.h,
16635         config/i386/i386-aout.h, config/i386/i386-coff.h,
16636         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
16637         config/pdp11/2bsd.h, config/rs6000/aix41.h,
16638         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
16639         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
16640         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
16641         sys-types.h: Remove.
16642         * Makefile.in: Remove protoize and fixproto support and references
16643         in comments.
16644         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
16645         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
16646         Remove.
16647         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
16648         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
16649         unprotoize$(exeext).
16650         (rest.encap): Don't depend on $(STMP_FIXPROTO)
16651         (.PHONY): Don't depend on proto.
16652         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
16653         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
16654         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
16655         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
16656         build/gen-protos.o, build/scan.o, xsys-protos.h,
16657         build/fix-header$(build_exeext), build/fix-header.o,
16658         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
16659         stmp-install-fixproto): Remove.
16660         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
16661         SYSCALLS.c or fixproto files.
16662         (install-common): Don't install protoize.
16663         (install-headers-tar, install-headers-cpio, install-headers-cp):
16664         Don't depend on $(STMP_FIXPROTO).
16665         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
16666         install fixproto files or write out fixproto settings.
16667         (uninstall): Don't uninstall protoize.
16668         * config.gcc (use_fixproto): Remove.
16669         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
16670         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
16671         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
16672         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
16673         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
16674         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
16675         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
16676         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
16677         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
16678         * config/t-vxworks (STMP_FIXPROTO): Remove.
16679         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
16680         STMP_FIXPROTO): Remove.
16681         * config.in, configure: Regenerate.
16682         * crtstuff.c (gid_t, uid_t): Don't undefine.
16683         * doc/install.texi: Change m68k-coff to m68k-elf in example.
16684         (arm-*-coff, arm-*-aout: Remove target entries.
16685         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
16686         Remove mention of AIX 4.1.
16687         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
16688         * doc/invoke.texi (Running Protoize): Remove.
16689         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
16690         (Protoize Caveats): Remove.
16691         * tsystem.h: Update comments on headers assumed to exist.
16692
16693 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
16694
16695         * genautomata.c: Add a new year to the copyright.  Add a new
16696         reference.
16697         (struct insn_reserv_decl): Add comments for member bypass_list.
16698         (find_bypass): Remove.
16699         (insert_bypass): New.
16700         (process_decls): Use insert_bypass.
16701         (output_internal_insn_latency_func): Output all bypasses with the
16702         same input insn in one switch case.
16703
16704         * rtl.def (define_bypass): Describe bypass choice.
16705         * doc/md.texi (define_bypass): Ditto.
16706
16707 2009-03-27  Richard Guenther  <rguenther@suse.de>
16708
16709         * gimplify.c (mark_addressable): Export.
16710         * tree-flow.h (mark_addressable): Declare.
16711         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
16712         * tree-ssa.c (verify_phi_args): Verify that address taken
16713         variables have TREE_ADDRESSABLE set.
16714
16715 2009-03-27  Richard Guenther  <rguenther@suse.de>
16716
16717         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
16718         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
16719         Do not mark decls TREE_ADDRESSABLE.
16720         (build_fold_addr_expr): Adjust.
16721         (fold_addr_expr): Remove.
16722         (fold_unary): Use build_fold_addr_expr.
16723         (fold_comparison): Likewise.
16724         (split_address_to_core_and_offset): Likewise.
16725         * coverage.c (tree_coverage_counter_addr): Mark the array decl
16726         TREE_ADDRESSABLE.
16727         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
16728         (gimplify_modify_expr_to_memcpy): Mark source and destination
16729         addressable.
16730         * omp-low.c (create_omp_child_function): Mark the object decl
16731         TREE_ADDRESSABLE.
16732         (lower_rec_input_clauses): Mark the var we take the address of
16733         TREE_ADDRESSABLE.
16734         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
16735
16736 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16737
16738         PR middle-end/39315
16739         * cfgexpand.c (expand_one_stack_var_at): Change alignment
16740         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
16741
16742 2009-03-27  Richard Guenther  <rguenther@suse.de>
16743
16744         PR tree-optimization/39120
16745         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
16746         constraints.
16747         (handle_lhs_call): Process return constraints.  Add escape
16748         constraints if necessary.
16749         (handle_const_call): Fill out return constraints.  Make nested
16750         case more precise.  Avoid consttmp if possible.
16751         (handle_pure_call): Fill out return constraints.  Avoid
16752         callused if possible.
16753         (find_func_aliases): Simplify call handling.
16754
16755 2009-03-27  Richard Guenther  <rguenther@suse.de>
16756
16757         PR tree-optimization/39120
16758         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
16759         as a representative.
16760         (solve_graph): Do propagate CALLUSED.
16761         (handle_pure_call): Use a scalar constraint from CALLUSED for
16762         the return value.
16763         (find_what_p_points_to): CALLUSED shall not appear in poins-to
16764         solutions.
16765
16766 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16767
16768         PR c/39323
16769         * c-common.c (handle_aligned_attribute): Properly check alignment
16770         overflow.  Use (1U << i) instead of (1 << i).
16771
16772         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
16773
16774         * expr.h (get_mem_align_offset): Updated.
16775
16776         * tree.h (tree_decl_common): Change align to "unsigned int" and
16777         move it before pointer_alias_set.
16778
16779 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16780             Jakub Jelinek  <jakub@redhat.com>
16781
16782         PR target/38034
16783         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
16784         gr_register_operand with gr_reg_or_0_operand.
16785         (cmpxchg_rel_di): Likewise.
16786         (sync_lock_test_and_set<mode>): Likewise.
16787
16788 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16789
16790         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
16791         (true_regnum): Likewise.
16792
16793         * rtlanal.c (subreg_info): Moved to ...
16794         * rtl.h (subreg_info): Here.  New.
16795         (subreg_get_info): New.
16796
16797         * rtlanal.c (subreg_get_info): Make it extern.
16798
16799 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16800
16801         PR target/39472
16802         * config/i386/i386.c (ix86_abi): New.
16803         (override_options): Handle -mabi=.
16804         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
16805         (ix86_call_abi_override): Likewise.
16806         (init_cumulative_args): Likewise.
16807         (function_arg_advance): Likewise.
16808         (function_arg_64): Likewise.
16809         (function_arg): Likewise.
16810         (ix86_pass_by_reference): Likewise.
16811         (ix86_function_value_regno_p): Likewise.
16812         (ix86_build_builtin_va_list_abi): Likewise.
16813         (setup_incoming_varargs_64): Likewise.
16814         (is_va_list_char_pointer): Likewise.
16815         (ix86_init_machine_status): Likewise.
16816         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
16817         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
16818         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
16819         (ix86_function_abi): Make it static and return enum calling_abi.
16820         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
16821         with ix86_abi.
16822         (ix86_fn_abi_va_list): Updated.
16823
16824         * config/i386/i386.h (ix86_abi): New.
16825         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
16826         (CONDITIONAL_REGISTER_USAGE): Likewise.
16827         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
16828         (machine_function): Likewise.
16829
16830         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
16831         with ix86_abi.
16832         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
16833         (STACK_BOUNDARY): Likewise.
16834         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
16835
16836         * config/i386/i386.opt (mabi=): New.
16837
16838         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
16839         return enum calling_abi.
16840         (ix86_function_type_abi): Likewise.
16841         (ix86_function_abi): Removed.
16842
16843         * doc/invoke.texi: Document -mabi= option for x86.
16844
16845 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16846
16847         * builtins.c (real_dconstp): Delete.
16848         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
16849
16850 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
16851             Jakub Jelinek  <jakub@redhat.com>
16852
16853         PR debug/37959
16854         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
16855         (gen_subprogram_die): When a function is explicit, generate the
16856         DW_AT_explicit attribute.
16857         * langhooks.h (struct lang_hooks_for_decls): Add
16858         function_decl_explicit_p langhook.
16859         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
16860         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
16861
16862 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
16863
16864         * builtins.c (fold_builtin_memory_op): Optimize memmove
16865         into memcpy if we can prove source and destination don't overlap.
16866
16867         * tree-inline.c: Include gt-tree-inline.h.
16868         (clone_fn_id_num): New variable.
16869         (clone_function_name): New function.
16870         (tree_function_versioning): Use it.
16871         * Makefile.in (GTFILES): Add tree-inline.c.
16872
16873 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
16874
16875         * BASE-VER: Change to 4.5.0.
16876
16877 2009-03-27  Xinliang David Li  <davidxl@google.com>
16878
16879         PR tree-optimization/39557
16880         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
16881
16882 2009-03-27  Xinliang David Li  <davidxl@google.com>
16883
16884         PR tree-optimization/39548
16885         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
16886         candidate check.
16887
16888 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16889
16890         * c-common.c (pointer_int_sum): Use %wd on return from
16891         tree_low_cst.
16892
16893 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
16894
16895         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
16896         on return from tree_low_cst.
16897
16898 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16899
16900         PR c++/36799
16901         * ginclude/stdarg.h (va_copy): Define also for
16902         __GXX_EXPERIMENTAL_CXX0X__.
16903
16904 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
16905
16906         PR c++/35652
16907         * builtins.h (c_strlen): Do not warn here.
16908         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
16909         * c-common.c (pointer_int_sum): Take an explicit location.
16910         Warn about offsets out of bounds.
16911         * c-common.h (pointer_int_sum): Adjust declaration.
16912
16913 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16914
16915         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
16916         markup glitch.
16917
16918 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
16919
16920         PR c++/39554
16921         * opts.c (warn_if_disallowed_function_p): Don't assume
16922         get_callee_fndecl must return non-NULL.
16923
16924 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
16925
16926         PR rtl-optimization/39522
16927         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
16928         when reg_reloaded_valid is set.
16929
16930 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16931
16932         * config/spu/divv2df3.c: New file.
16933         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
16934         (DPBIT_FUNCS): Filter out _div_df.
16935
16936 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
16937
16938         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
16939         a jump insn, count that jump in the distance to the loop start.
16940
16941 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
16942
16943         PR target/39523
16944         * config/sh/sh.c (calc_live_regs): Fix condition for global
16945         registers except PIC_OFFSET_TABLE_REGNUM.
16946
16947 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
16948
16949         PR/39518
16950         * doc/invoke.texi (-mconsole): New.
16951         (-mcygwin): New.
16952         (-mno-cygwin): New.
16953         (-mdll): New.
16954         (-mnop-fun-dllimport): New.
16955         (-mthread): New.
16956         (-mwin32): New.
16957         (-mwindows): New.
16958         (sub section "i386 and x86-64 Windows Options"): New.
16959
16960 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
16961
16962         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
16963         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
16964
16965 2009-03-25  Richard Guenther  <rguenther@suse.de>
16966
16967         PR middle-end/39497
16968         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
16969         of -Wno-error.
16970
16971 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
16972
16973         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
16974         neither of haifa/selective schedulers are working.
16975
16976 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16977
16978         * doc/invoke.texi (Debugging Options): Fix description of
16979         -fno-merge-debug-strings.
16980
16981 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
16982
16983         * config/cris/libgcc.ver: New version-script.
16984         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
16985
16986         * configure.ac <GAS features, nop mnemonic>: Add pattern
16987         crisv32-*-* for "nop".
16988         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
16989         * configure: Regenerate.
16990
16991 2009-03-24  Ira Rosen  <irar@il.ibm.com>
16992
16993         PR tree-optimization/39529
16994         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
16995         mark_sym_for_renaming for the tag copied to the new vector
16996         pointer.
16997
16998 2009-03-24  Arthur Loiret  <aloiret@debian.org>
16999
17000         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
17001         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
17002         EXTRA_SPEC_FUNCTIONS.
17003         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
17004         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
17005         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
17006         -march and -mtune options.
17007
17008 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
17009
17010         * config/m68k/t-rtems: Add m5329 multilib.
17011
17012 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
17013             Jakub Jelinek  <jakub@redhat.com>
17014
17015         PR debug/39524
17016         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
17017         nodes.
17018
17019 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
17020
17021         PR c/39495
17022         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
17023         instead of c_parser_expression_conv, if original_code isn't one of the
17024         4 allowed comparison codes, fail.
17025
17026 2009-03-23  Richard Guenther  <rguenther@suse.de>
17027
17028         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
17029         * tree.h (struct tree_type): Likewise.
17030         * reload.h (struct insn_chain): Likewise.
17031         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
17032         * function.h (struct function): Likewise.
17033         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
17034
17035 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
17036
17037         PR tree-optimization/39516
17038         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
17039
17040 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
17041
17042         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
17043         should be set true if BITS_PER_WORD of target is bigger than 32
17044
17045 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
17046
17047         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
17048         Translate -B-options to -rpath-link.  Correct existing
17049         rpath-link and conditionalize on !nostdlib.
17050
17051 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17052
17053         * doc/extend.texi (Function Attributes, Variable Attributes):
17054         Fix typos.
17055         * doc/invoke.texi (Debugging Options, Optimize Options)
17056         (i386 and x86-64 Options, MCore Options): Likewise.
17057
17058 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
17059
17060         PR debug/37890
17061         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
17062         it for block local namespace aliases.
17063         (gen_decl_die): Pass context_die to gen_namespace_die.
17064
17065 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
17066
17067         PR c/39495
17068         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
17069         minimum or maximum value.
17070
17071 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
17072
17073         * reginfo.c (globalize_reg): Recompute derived reg sets.
17074
17075 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
17076
17077         PR target/39063
17078         * libgcc2.c (mprotect): Do not use signed arguments for
17079         VirtualProtect, use DWORD arguments.  Also fix the 'may
17080         be used uninitialized' warning for the np variable.
17081
17082 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
17083
17084         PR target/39496
17085         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
17086         functions using regparm calling conventions when not optimizing.
17087         (ix86_function_sseregparm): Similarly for sseregparm calling
17088         conventions.
17089
17090 2009-03-19  Li Feng  <nemokingdom@gmail.com>
17091
17092         PR middle-end/39500
17093         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
17094         dependence if the first conflict is after niter iterations.
17095
17096 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
17097
17098         PR middle-end/38609
17099         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
17100         functions with dynamic stack-pointer adjustments.
17101
17102 2009-03-19  Ben Elliston  <bje@au.ibm.com>
17103
17104         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
17105         option; change to -msdata=data.
17106
17107 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17108
17109         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
17110         and -fopenmp.
17111
17112 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
17113
17114         PR target/35180
17115         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
17116
17117 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
17118
17119         * doc/invoke.texi (Code Gen Options): Expand discussion of
17120         -fno-common.
17121
17122 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
17123
17124         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
17125         * matrix-reorg.c (struct matrix_info): Likewise.
17126         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
17127         * rtl.h (struct mem_attrs): Likewise.
17128         * df.h (struct df): Likewise.
17129         * tree-data-ref.h (struct data_dependence_relation): Likewise.
17130         * ira-int.h (struct ira_allocno): Likewise.
17131         * df-scan.c (struct df_collection_rec): Likewise.
17132         * ira.c (struct equivalence): Likewise.
17133         * function.c (struct temp_slot): Likewise.
17134         * cfgloop.h (struct loop): Likewise.
17135
17136         PR debug/39485
17137         * function.c (use_register_for_decl): When not optimizing, disregard
17138         register keyword for variables with types containing methods.
17139
17140 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
17141
17142         PR middle-end/39447
17143         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
17144         (is_simple_operand): Call contains_component_ref_p before calling data
17145         reference analysis that would fail on COMPONENT_REFs.
17146
17147         * tree-vrp.c (search_for_addr_array): Fix formatting.
17148
17149 2009-03-18  Richard Guenther  <rguenther@suse.de>
17150
17151         * tree-vect-transform.c (vect_loop_versioning): Fold the
17152         generated comparisons.
17153         * tree-vectorizer.c (set_prologue_iterations): Likewise.
17154         (slpeel_tree_peel_loop_to_edge): Likewise.
17155
17156 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17157
17158         PR middle-end/37805
17159         * opts.c (print_specific_help): In addition to `undocumented',
17160         accept `separate' and `joined' flags if passed alone.  Describe
17161         output by the first matched one of those.
17162         (common_handle_option): Skip over empty strings.
17163         * gcc.c (display_help): Fix help string for `--help='.
17164         * doc/invoke.texi (Option Summary, Overall Options): With
17165         `--help=', classes and qualifiers can both be repeated, but
17166         only the latter can be negated.  One should not pass only
17167         negated qualifiers.  Fix markup and examples.
17168
17169         Revert
17170         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
17171         PR middle-end/37805
17172         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
17173         and -fhelp=separate.
17174
17175 2009-03-17  Jing Yu  <jingyu@google.com>
17176
17177         PR middle-end/39378
17178         * function.h (struct rtl_data): Move is_thunk from here...
17179         (struct function): ...to here.
17180         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
17181         * varasm.c (assemble_start_function): Change is_thunk from crtl to
17182         cfun.
17183         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
17184         cfun.
17185         (alpha_does_function_need_gp, alpha_start_function): Likewise.
17186         (alpha_output_function_end_prologue): Likewise.
17187         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
17188         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
17189         (rs6000_output_function_epilogue): Likewise.
17190         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
17191
17192 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
17193
17194         PR target/39482
17195         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
17196         from different units in a single alternative.
17197         (*truncdfsf_i387): Ditto.
17198         (*truncxfsf2_mixed): Ditto.
17199         (*truncxfdf2_mixed): Ditto.
17200
17201 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
17202
17203         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
17204         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
17205
17206         PR debug/39474
17207         * tree-ssa-live.c (remove_unused_locals): Don't remove local
17208         unused non-artificial variables when not optimizing.
17209
17210         PR debug/39471
17211         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
17212         DW_TAG_imported_module even if decl is IMPORTED_DECL with
17213         NAMESPACE_DECL in its DECL_INITIAL.
17214
17215         PR middle-end/39443
17216         * optabs.c (set_user_assembler_libfunc): New function.
17217         * expr.h (set_user_assembler_libfunc): New prototype.
17218         * c-common.c: Include libfuncs.h.
17219         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
17220         for memcmp, memset, memcpy, memmove and abort.
17221         * Makefile.in (c-common.o): Depend on libfuncs.h.
17222
17223         PR debug/39412
17224         * dwarf2out.c (gen_inlined_enumeration_type_die,
17225         gen_inlined_structure_type_die, gen_inlined_union_type_die,
17226         gen_tagged_type_instantiation_die): Removed.
17227         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
17228         do nothing.
17229
17230 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
17231
17232         PR testsuite/38526
17233         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
17234         its use.
17235         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
17236         (check-parallel-%): Ditto.
17237         (check-consistency): Ditto.
17238
17239 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
17240
17241         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
17242         local variable rhs by NULL_TREE.
17243
17244 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17245
17246         PR target/39477
17247         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
17248
17249 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17250
17251         PR target/39476
17252         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
17253
17254 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17255
17256         PR target/39473
17257         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
17258         for ms->sysv ABI calls only in 64bit mode.
17259
17260         * config/i386/i386.md (untyped_call): Support 32bit.
17261
17262 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
17263
17264         * doc/extend.texi: Replace x86_65 with x86_64.
17265
17266 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
17267
17268         PR tree-optimization/39455
17269         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
17270         mismatches for POINTER_TYPE_P (type).
17271         (number_of_iterations_le): Likewise.
17272
17273 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
17274
17275         * config/picochip/picochip.c: Removed profiling support.
17276         * config/picochip/picochip.md: Removed profiling instruction.
17277         * config/picochip/picochip.h: Removed profiling builtin.
17278
17279 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
17280
17281         * doc/install.texi (--with-host-libstdcxx): Document.
17282
17283 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
17284
17285         PR target/34299
17286         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
17287         generate a warning if the function name does not begin with
17288         "__vector" and the function has either the 'signal' or 'interrupt'
17289         attribute, from here to ...
17290         (avr_declare_function_name): ...here. New function.
17291         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
17292         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
17293
17294 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
17295
17296         PR bootstrap/39454
17297         * cse.c (fold_rtx): Don't modify original const_arg1 when
17298         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
17299         separate variable instead.
17300         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
17301         from out of range shift counts.
17302         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
17303
17304 2009-03-13  Catherine Moore  <clm@codesourcery.com>
17305
17306         * config/i386/x-mingw32 (host-mingw32.o): Replace
17307         diagnostic.h with $(DIAGNOSTIC_H).
17308
17309 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
17310
17311         PR target/39431
17312         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
17313         predicate.
17314         * config/i386/sync.md (sync_compare_and_swap<mode>,
17315         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
17316         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
17317         into a register.
17318         (sync_double_compare_and_swapdi_pic,
17319         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
17320         cmpxchg8b_pic_memory_operand instead of just memory_operand.
17321
17322 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
17323
17324         PR target/39445
17325         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
17326
17327 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
17328
17329         PR target/39327
17330         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
17331         (avx_addsubv4df3): Likewise.
17332         (*avx_addsubv4sf3): Likewise.
17333         (sse3_addsubv4sf3): Likewise.
17334
17335 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
17336
17337         PR target/38824
17338         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
17339
17340 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
17341
17342         PR debug/39432
17343         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
17344         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
17345         registers for allocnos created from user-defined variables.
17346
17347 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17348
17349         PR target/39181
17350         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
17351         of non-integer mode as well.
17352
17353 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
17354
17355         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
17356         for functions for which the parameter types are unknown.
17357
17358 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
17359
17360         PR target/39137
17361         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
17362         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
17363         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
17364         * config/i386/i386.c (ix86_local_alignment): For
17365         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
17366         long long variables on the stack to avoid dynamic realignment.
17367         Allow the first argument to be a decl rather than type.
17368         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
17369
17370 2009-03-11  Nick Clifton  <nickc@redhat.com>
17371
17372         PR target/5362
17373         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
17374         options.
17375         Add description to mno-lsim option.
17376         * config/mcore/mcore.h: Remove comment about deprecated m4align
17377         option.
17378         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
17379         * doc/invoke.texi: Add description of mno-lsim and
17380         mstack-increment options.
17381
17382         * config/fr30/fr30.opt: Document the -mno-lsim option.
17383         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
17384         and -mno-lsim options.
17385
17386 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17387
17388         * fold-const.c (fold_comparison): Only call fold_inf_compare
17389         if the mode supports infinities.
17390
17391 2009-03-11  Jason Merrill  <jason@redhat.com>
17392
17393         PR debug/39086
17394         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
17395         end already did.  Notice GIMPLE_CALL modifications of the result.
17396         Don't copy debug information from an ignored decl or a decl from
17397         another function.
17398
17399 2009-03-10  Richard Guenther  <rguenther@suse.de>
17400             Nathan Froyd  <froydnj@codesourcery.com>
17401
17402         PR middle-end/37850
17403         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
17404         (__divMODE3): Likewise.
17405
17406 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
17407
17408         PR tree-optimization/39394
17409         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
17410         DECL_SIZE_UNIT of variable length FIELD_DECLs.
17411
17412 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17413
17414         * recog.c (verfiy_changes): Disallow renaming of hard regs in
17415         inline asms for register asm ("") declarations.
17416
17417 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
17418
17419         * fold-const.c (fold_unary): Fix comment.
17420
17421 2009-03-07  Jan Hubicka  <jh@suse.cz>
17422
17423         PR target/39361
17424         * tree-inline.c (setup_one_parameter): Do replacement of const
17425         argument by constant in SSA form.
17426
17427 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17428
17429         PR middle-end/38028
17430         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
17431         determine alignment passed to assign_stack_local.
17432         (assign_parms_unsplit_complex): Likewise.
17433         * except.c (sjlj_build_landing_pads): Likewise.
17434
17435 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
17436
17437         PR middle-end/39360
17438         * tree-flow.h (add_referenced_var): Return bool instead of void.
17439         * tree-dfa.c (add_referenced_var): Return result of
17440         referenced_var_check_and_insert call.
17441         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
17442         of referenced_var_check_and_insert.
17443
17444         PR debug/39372
17445         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
17446         (gen_variable_die): Emit DW_AT_location on abstract static variable's
17447         DIE, don't emit it if abstract origin already has it.
17448         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
17449         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
17450
17451 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17452
17453         * genpreds.c (needs_variable): Fix parentheses at variable name
17454         detection.
17455         (write_tm_constrs_h): Indent generated code.
17456
17457 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17458
17459         * doc/extend.texi (Function Attributes): Add documentation
17460         for isr attributes.
17461
17462 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
17463
17464         PR debug/39387
17465         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
17466         take locus from its DECL_SOURCE_LOCATION instead of input_location.
17467
17468 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
17469
17470         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
17471         the loop as bad.
17472
17473 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
17474
17475         PR debug/39379
17476         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
17477         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
17478
17479 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
17480
17481         * config/i386/i386.md (R8_REG, R9_REG): New constants.
17482         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
17483         constants instead of magic numbers.
17484         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
17485         (QI_REG_P): Ditto.
17486         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
17487         (x86_64_ms_abi_int_parameter_registers): Ditto.
17488         (x86_64_int_return_registers): Ditto.
17489         (ix86_maybe_switch_abi): Ditto.
17490         (ix86_expand_call): Ditto for clobbered_registers array.
17491         (ix86_hard_regno_mode_ok): Ditto.
17492         (x86_extended_QIreg_mentioned_p): Ditto.
17493
17494 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
17495
17496         PR tree-optimization/39349
17497         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
17498
17499         * combine.c (gen_lowpart_for_combine): Use omode when generating
17500         clobber.
17501
17502 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
17503
17504         PR rtl-optimization/39235
17505         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
17506
17507 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
17508
17509         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
17510
17511 2009-03-04  Richard Guenther  <rguenther@suse.de>
17512
17513         PR tree-optimization/39362
17514         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
17515         that occur in abnormal PHIs should be varying.
17516
17517 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
17518
17519         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
17520         Extend comments.
17521         (simple_iv):  Take loop as an argument instead of statement.
17522         * tree-scalar-evolution.h (simple_iv): Declaration changed.
17523         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
17524         to simple_iv.
17525         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
17526         Ditto.
17527         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
17528         * matrix-reorg.c (analyze_transpose): Ditto.
17529         * tree-data-ref.c (dr_analyze_innermost): Ditto.
17530         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
17531         * tree-predcom.c (ref_at_iteration): Ditto.
17532         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
17533
17534 2009-03-04  Richard Guenther  <rguenther@suse.de>
17535
17536         PR tree-optimization/39358
17537         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
17538         escaped_id and callused_id.
17539         (solve_graph): Likewise.
17540
17541 2009-03-04  Richard Guenther  <rguenther@suse.de>
17542
17543         PR tree-optimization/39339
17544         * tree-sra.c (try_instantiate_multiple_fields): Make it
17545         no longer ICE on the above.
17546
17547 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
17548
17549         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
17550         that fits within Pmode.
17551
17552 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
17553
17554         PR middle-end/10109
17555         * tm.texi (LIBCALL_VALUE): Update description.
17556
17557 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
17558
17559         PR middle-end/34443
17560         * doc/extend.texi (section): Update description.
17561
17562 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
17563
17564         PR middle-end/39345
17565         * tree-inline.c (remapped_type): New.
17566         (can_be_nonlocal): Call remapped_type instead of remap_type.
17567
17568 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
17569
17570         PR fortran/39354
17571         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
17572         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
17573
17574 2009-03-03  Richard Guenther  <rguenther@suse.de>
17575
17576         PR middle-end/39272
17577         * tree.c (tree_nonartificial_location): New function.
17578         * tree.h (tree_nonartificial_location): Declare.
17579         * builtins.c (expand_builtin_memory_chk): Provide location
17580         of the call location for artificial function pieces.
17581         (maybe_emit_chk_warning): Likewise.
17582         (maybe_emit_sprintf_chk_warning): Likewise.
17583         (maybe_emit_free_warning): Likewise.
17584         * expr.c (expand_expr_real_1): Likewise.
17585
17586 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
17587
17588         PR tree-optimization/39343
17589         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
17590         COMPONENT_REF t has ARRAY_TYPE.
17591
17592 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
17593
17594         PR middle-end/39335
17595         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
17596         when the type precision of the induction variable should be
17597         larger than the type precision of nit.
17598         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
17599         * graphite.c (graphite_loop_normal_form): Same.
17600         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
17601
17602 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
17603
17604         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
17605         (*call_1_rex64_ms_sysv): Use named constants instead of magic
17606         numbers to describe clobbered registers.
17607         (*call_value_0_rex64_ms_sysv): Ditto.
17608         * config/i386/mmx.md (mmx_emms): Ditto.
17609         (mmx_femms): Ditto.
17610
17611 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
17612
17613         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
17614         of ABI_64.
17615
17616 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17617
17618         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
17619         (spu_section_type_flags): New function.
17620
17621 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
17622
17623         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
17624         reg_class_contents of FLOAT_REGS into a temporary.
17625
17626 2009-03-02  Richard Guenther  <rguenther@suse.de>
17627             Ira Rosen  <irar@il.ibm.com>
17628
17629         PR tree-optimization/39318
17630         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
17631         information to the vectorized statement.
17632
17633 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
17634
17635         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
17636         variable.  Use defined names instead of magic constants for REX SSE
17637         registers.
17638
17639 2009-03-01  Richard Guenther  <rguenther@suse.de>
17640
17641         PR tree-optimization/39331
17642         * omp-low.c (lower_send_shared_vars): Do not receive new
17643         values for the reference of DECL_BY_REFERENCE parms or results.
17644
17645 2009-03-01  Jan Hubicka  <jh@suse.cz>
17646
17647         PR debug/39267
17648         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
17649         BLOCK_NONLOCALIZED_VAR): New macros.
17650         (tree_block): Add nonlocalized_vars.
17651         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
17652         gen_decl_die): Add origin argument.  Allow generation of die with
17653         origin at hand only.
17654         (gen_member_die, gen_type_die_with_usage, force_decl_die,
17655         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
17656         of gen_*.
17657         (gen_block_die): Fix checking for unused blocks.
17658         (process_scope_var): Break out from .... ; work with origins only.
17659         (decls_for_scope) ... here; process nonlocalized list.
17660         (dwarf2out_ignore_block): Look for nonlocalized vars.
17661         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
17662         vars.
17663         (dump_scope_block): Dump them.
17664         * tree-inline.c (remap_decls): Handle nonlocalized vars.
17665         (remap_block): Likewise.
17666         (can_be_nonlocal): New predicate.
17667         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
17668
17669 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17670
17671         * configure: Regenerate.
17672
17673 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17674
17675         * optc-gen.awk: No need to duplicate option flags twice.
17676         Reuse help texts for duplicate options which do not have any.
17677
17678         * gcc.c (display_help): Document --version.
17679
17680         * gcc.c (main): If print_help_list and verbose_flag, ensure
17681         driver output comes before subprocess output.
17682
17683         * optc-gen.awk: Assign all remaining fields to help string,
17684         space-separated, for multi-line help in *.opt.
17685
17686         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
17687         -Wno-pedantic-ms-format is for MinGW targets only.
17688
17689         * doc/options.texi (Option file format): Fix bad indentation,
17690         restoring dropped sentence.
17691
17692 2009-02-28  Jan Hubicka  <jh@suse.cz>
17693
17694         * tree-inline.c (tree_function_versioning): Output debug info.
17695
17696 2009-02-28  Jan Hubicka  <jh@suse.cz>
17697
17698         PR debug/39267
17699         * tree-inline.c (setup_one_parameter): Do not copy propagate
17700         arguments when not optimizing.
17701
17702 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
17703
17704         PR target/39327
17705         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
17706         (avx_addsubv4df3): Likewise.
17707         (*avx_addsubv4sf3): Likewise.
17708         (sse3_addsubv4sf3): Likewise.
17709         (*avx_addsubv2df3): Likewise.
17710         (sse3_addsubv2df3): Likewise.
17711         (avx_unpckhps256): Correct item selectors.
17712         (avx_unpcklps256): Likewise.
17713         (avx_unpckhpd256): Likewise.
17714         (avx_unpcklpd256): Likewise.
17715
17716 2009-02-28  Jan Hubicka  <jh@suse.cz>
17717
17718         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
17719         static vars.
17720         (copy_arguments_for_versioning): If var is declared don't declare it.
17721         (tree_function_versioning): First setup substitutions and then copy
17722         args.
17723
17724 2009-02-27  Jan Hubicka  <jh@suse.cz>
17725
17726         PR debug/39267
17727         * cgraph.h (varpool_output_debug_info): Remove.
17728         * cgraphunit.c (varpool_output_debug_info): Remove.
17729         * dwarf2out.c (deferred_locations_struct): New struct
17730         (deferred_locations): New type.
17731         (deferred_locations_list): New static var.
17732         (deffer_location): New function.
17733         (gen_variable_die): Use it.
17734         (decls_for_scope): Output info on local static vars.
17735         (dwarf2out_finish): Process deferred locations.
17736         * varpool.c (varpool_output_debug_info): Remove.
17737
17738 2009-02-27  Jan Hubicka  <jh@suse.cz>
17739
17740         PR debug/39267
17741         * tree.h (TREE_PROTECTED): Fix comment.
17742         (BLOCK_HANDLER_BLOCK): Remove.
17743         (struct tree_block): Remove handler_block add body_block.
17744         (inlined_function_outer_scope_p): New.
17745         (is_body_block): Remove.
17746         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
17747         * dwarf2out.c (is_inlined_entry_point): Remove.
17748         (add_high_low_attributes): Use inlined_function_outer_scope_p.
17749         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
17750         code.
17751         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
17752         * gimplify.c (gimplify_expr): Gimplify body blocks.
17753         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
17754         block with multiple subblocks.
17755         (dump_scope_block): Prettier output; dump more flags and info.
17756         (dump_scope_blocks): New.
17757         (remove_unused_locals): Use dump_scope_blocks.
17758         * tree-flow.h (dump_scope_blocks): Declare.
17759         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
17760         * stmt.c (is_body_block): Remove.
17761         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
17762         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
17763
17764 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
17765
17766         PR middle-end/39308
17767         * graphite.c (graphite_loop_normal_form): Do not call
17768         number_of_iterations_exit from a gcc_assert.
17769
17770 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17771
17772         * config/s390/s390.c (s390_swap_cmp): Look for conditional
17773         jumps if COND is NULL.
17774         (find_cond_jump): New function.
17775         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
17776         * config/s390/s390.md: Remove z10_cobra attribute value.
17777
17778 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
17779
17780         * config/alpha/alpha.h (alpha_expand_mov): Return false if
17781         force_const_mem returns NULL_RTX.
17782
17783 2009-02-26  Jan Hubicka  <jh@suse.cz>
17784
17785         PR debug/39267
17786         * cgraph.h (varpool_output_debug_info): Remove.
17787         * cgraphunit.c (varpool_output_debug_info): Remove.
17788         * dwarf2out.c (deferred_locations_struct): New struct
17789         (deferred_locations): New type.
17790         (deferred_locations_list): New static var.
17791         (deffer_location): New function.
17792         (gen_variable_die): Use it.
17793         (decls_for_scope): Output info on local static vars.
17794         (dwarf2out_finish): Process deferred locations.
17795         * varpool.c (varpool_output_debug_info): Remove.
17796
17797 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
17798
17799         PR rtl-optimization/39241
17800         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
17801         to subreg_offset_representable_p.
17802
17803 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
17804
17805         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
17806         execute function prototype.  Get f and nregs from max_reg_num
17807         and get_insns.  Remove the first backward pass as it's dead,
17808         guard the forward pass by flag_expensive_optimizations.
17809         (rest_of_handle_regmove): Delete.
17810         (pass_regmove): Replace it with regmove_optimize.
17811
17812 2009-02-25  Martin Jambor  <mjambor@suse.cz>
17813
17814         PR tree-optimization/39259
17815         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
17816         calls_alloca function flags.
17817         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
17818         calls are detected.
17819
17820 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
17821
17822         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
17823         flags_set_1_rtx, flags_set_1_set): Delete.
17824         (regmove_optimize): Do not call mark_flags_life_zones.
17825
17826 2009-02-24  Julian Brown  <julian@codesourcery.com>
17827
17828         PR target/35965
17829         * config/arm/arm.c (require_pic_register): Only set
17830         cfun->machine->pic_reg once per function.
17831
17832 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
17833
17834         * doc/invoke.texi (Link Options): Document an easier way to pass
17835         options that take arguments to the GNU linker using -Xlinker and -Wl.
17836
17837 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
17838
17839         PR target/33785
17840         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
17841
17842 2009-02-24  Richard Guenther  <rguenther@suse.de>
17843
17844         PR debug/39285
17845         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
17846
17847 2009-02-24  Richard Guenther  <rguenther@suse.de>
17848             Zdenek Dvorak  <ook@ucw.cz>
17849
17850         PR tree-optimization/39233
17851         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
17852         from converting them to a generic type.
17853
17854 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
17855
17856         PR tree-optimization/39260
17857         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
17858         contains a condition with a real type.
17859         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
17860
17861 2009-02-23  Jason Merrill  <jason@redhat.com>
17862
17863         PR c++/38880
17864         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
17865         narrowing_initializer_constant_valid_p.
17866         (narrowing_initializer_constant_valid_p): Don't return
17867         null_pointer_node for adding a pointer to itself.
17868
17869 2009-02-23  Jan Hubicka  <jh@suse.cz>
17870
17871         PR c/12245
17872         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
17873         resizing.
17874
17875 2009-02-23  Jan Hubicka  <jh@suse.cz>
17876
17877         PR tree-optimization/37709
17878         * tree.c (block_ultimate_origin): Move here from dwarf2out.
17879         * tree.h (block_ultimate_origin): Declare.
17880         * dwarf2out.c (block_ultimate_origin): Move to tree.c
17881         * tree-ssa-live.c (remove_unused_scope_block_p):
17882         Eliminate blocks containig no instructions nor live variables nor
17883         nested blocks.
17884         (dump_scope_block): New function.
17885         (remove_unused_locals): Enable removal of dead blocks by default;
17886         enable dumping at TDF_DETAILS.
17887
17888 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
17889
17890         * config/i386/i386.c (classify_argument): Don't allow COImode
17891         and OImode.
17892         (function_arg_advance_32): Don't allow OImode.
17893         (function_arg_32): Likewise.
17894         (function_value_32): Likewise.
17895         (return_in_memory_32): Likewise.
17896         (function_arg_64): Remove OImode comment.
17897
17898 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
17899
17900         PR target/39261
17901         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
17902         ix86_expand_vector_set for V4DImode in 64bit mode only.
17903         (ix86_expand_vector_init_one_var): Likewise.
17904
17905 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
17906
17907         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
17908
17909 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
17910
17911         PR bootstrap/39257
17912         * loop-iv.c: Revert last change.
17913         * emit-rtl.c: Likewise.
17914
17915 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
17916
17917         PR target/39256
17918         * config/i386/i386.c (type_natural_mode): Remove an extra
17919         space in the warning message.
17920         (function_value_32): Handle 32-byte vector modes.
17921         (return_in_memory_32): Likewise.
17922
17923 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
17924
17925         * loop-iv.c (truncate_value): New function.
17926         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
17927         of lowpart_subreg.
17928         (lowpart_subreg): Move to...
17929         * emit-rtl.c: ...here.
17930
17931 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
17932
17933         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
17934         accidental and undocumented change at revision 140860.
17935
17936 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
17937
17938         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
17939         take gimple_seq * arguments.
17940         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
17941         types_compatible_p langhook.
17942
17943 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
17944             Joseph Myers  <joseph@codesourcery.com>
17945
17946         * config/arm/arm.c (arm_builtin_va_list): New function.
17947         (arm_expand_builtin_va_start): Likewise.
17948         (arm_gimplify_va_arg_expr): Likewise.
17949         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
17950         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
17951         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
17952         (va_list_type): New variable.
17953         (arm_mangle_type): Mangle va_list_type appropriately.
17954
17955 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
17956
17957         PR middle-end/39157
17958         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
17959         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
17960         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
17961         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
17962         parameter to 1000 for -O1 by default.
17963         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
17964         parameter.
17965         * loop-invariant.c: Include params.h.
17966         (move_loop_invariants): Don't call move_single_loop_invariants on
17967         very large loops.
17968
17969 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
17970
17971         * calls.c (emit_library_call_value_1): Use slot_offset instead of
17972         offset when calculating bounds for indexing stack_usage_map.  Fixes
17973         a buffer overflow with certain target setups.
17974
17975 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
17976
17977         PR target/39240
17978         * calls.c (expand_call): Clear try_tail_call if caller and callee
17979         disagree in promotion of function return value.
17980
17981 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
17982
17983         PR target/39175
17984         * c-common.c (c_determine_visibility): If visibility changed and
17985         DECL_RTL has been already set, call make_decl_rtl to update symbol
17986         flags.
17987
17988 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
17989
17990         PR c++/39188
17991         * varasm.c (assemble_variable): Don't check DECL_NAME when
17992         globalizing a variable.
17993
17994 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
17995
17996         PR c/38483
17997         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
17998         expression before any __builtin_trap call.
17999         * c-typeck.c (build_function_call): Convert and check function
18000         arguments before generating a call to a trap.  Evaluate the
18001         function arguments before the trap.
18002
18003 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
18004
18005         PR target/39228
18006         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
18007         (UNSPEC_FXAM_MEM): New unspec.
18008         (fxam<mode>2_i387_with_temp): New insn and split pattern.
18009         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
18010         memory using fxam<mode>2_i387_with_temp to remove excess precision.
18011
18012 2009-02-19  Richard Guenther  <rguenther@suse.de>
18013
18014         PR tree-optimization/39207
18015         PR tree-optimization/39074
18016         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
18017         storedanything_tree): New.
18018         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
18019         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
18020         (build_succ_graph): Add edges from STOREDANYTHING to all
18021         non-direct nodes.
18022         (init_base_vars): Initialize STOREDANYTHING.
18023         (compute_points_to_sets): Free substitution info after
18024         building the succ graph.
18025         (ipa_pta_execute): Likewise.
18026
18027         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
18028         field.
18029         (do_ds_constraint): Do not add to special var or non-pointer
18030         field solutions.
18031         (type_could_have_pointers): Split out from ...
18032         (could_have_pointers): ... here.  For arrays use the element type.
18033         (create_variable_info_for): Initialize may_have_pointers.
18034         (new_var_info): Likewise.
18035         (handle_lhs_call): Make the HEAP variable unknown-sized.
18036         (intra_create_variable_infos): Use a type with pointers for
18037         PARM_NOALIAS, make it unknown-sized.
18038
18039 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18040
18041         PR target/39224
18042         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
18043
18044 2009-02-18  Jason Merrill  <jason@redhat.com>
18045
18046         PR target/39179
18047         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
18048         value if DECL_EXTERNAL.
18049         * tree-sra.c (sra_walk_gimple_assign): Likewise.
18050         * target.h (gcc_target::binds_local_p): Clarify "module".
18051         * tree.h (TREE_PUBLIC): Clarify "module".
18052
18053 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
18054
18055         PR target/38891
18056         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
18057         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
18058
18059 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
18060
18061         PR target/39082
18062         * c.opt (Wabi): Support C and ObjC.
18063         (Wpsabi): New.
18064
18065         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
18066
18067         * config/i386/i386.c (classify_argument): Warn once about the ABI
18068         change when passing union with long double.
18069
18070         * doc/invoke.texi: Update -Wabi for warning psABI changes.
18071
18072 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
18073
18074         PR c/35447
18075         * c-parser.c (c_parser_compound_statement): Always enter and leave
18076         a scope.
18077
18078 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18079
18080         PR target/34587
18081         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
18082
18083 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
18084
18085         PR tree-optimization/36922
18086         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
18087         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
18088         Likewise.
18089
18090 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
18091
18092         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
18093         to 0 for EABI64.
18094
18095 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
18096
18097         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
18098
18099 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
18100
18101         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
18102         tree sharing.
18103
18104 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
18105             Richard Sandiford  <rdsandiford@googlemail.com>
18106
18107         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
18108         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
18109         (loongson_biadd): ...this.
18110
18111 2009-02-17  Richard Guenther  <rguenther@suse.de>
18112
18113         PR tree-optimization/39202
18114         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
18115         a var make sure to follow existing collapses.
18116
18117 2009-02-17  Richard Guenther  <rguenther@suse.de>
18118
18119         PR middle-end/39214
18120         * langhooks.c (lhd_print_error_function): Check for NULL block.
18121
18122 2009-02-17  Richard Guenther  <rguenther@suse.de>
18123
18124         PR tree-optimization/39204
18125         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
18126         of the PHI arg.
18127
18128 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
18129
18130         * config/soft-fp/double.h: Update from glibc CVS.
18131
18132 2009-02-17  Richard Guenther  <rguenther@suse.de>
18133
18134         PR tree-optimization/39207
18135         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
18136         strict-aliasing warnings for pointers pointing to NULL.
18137
18138 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
18139
18140         PR c/35446
18141         * c-parser.c (c_parser_braced_init): Call pop_init_level when
18142         skipping until next close brace.
18143
18144 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
18145
18146         PR target/37049
18147         * config/i386/i386.c (ix86_expand_push): Set memory alignment
18148         to function argument boundary.
18149
18150 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
18151
18152         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
18153         in the lea_add. Reload eventually constraints it properly.
18154         * config/picochip/constraints.md: Remove the target constraint
18155         "b", since it is not needed anymore.
18156
18157 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
18158
18159         * gthr-dce.h: Uglify function parameter and local variable names.
18160         * gthr-gnat.h: Likewise.
18161         * gthr-mipssde.h: Likewise.
18162         * gthr-nks.h: Likewise.
18163         * gthr-posix95.h: Likewise.
18164         * gthr-posix.h: Likewise.
18165         * gthr-rtems.h: Likewise.
18166         * gthr-single.h: Likewise.
18167         * gthr-solaris.h: Likewise.
18168         * gthr-tpf.h: Likewise.
18169         * gthr-vxworks.h: Likewise.
18170         * gthr-win32.h: Likewise.
18171
18172 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
18173
18174         PR target/39196
18175         * config/i386/i386.md: Restrict the new peephole2 to move
18176         between MMX/SSE registers.
18177
18178 2009-02-15  Richard Guenther  <rguenther@suse.de>
18179
18180         Revert
18181         2009-02-13  Richard Guenther  <rguenther@suse.de>
18182
18183         * configure.ac: Enable LFS.
18184         * configure: Re-generate.
18185         * config.in: Likewise.
18186
18187 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18188
18189         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
18190         spu_srqwbyte, spu_srqwbytebc): Define.
18191         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
18192         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
18193         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
18194         "shrqby_<mode>"): New insn-and-split patterns.
18195         * config/spu/spu.c (expand_builtin_args): Determine and return
18196         number of operands using spu_builtin_description data.
18197         (spu_expand_builtin_1): Use it.
18198
18199 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
18200
18201         PR target/38056
18202         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
18203         TARGET_CONST_GP.
18204
18205 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18206
18207         PR target/39149
18208         * config/i386/i386.c (override_options): Correct warning
18209         messages for -malign-loops, -malign-jumps and -malign-functions.
18210
18211 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18212
18213         PR target/39152
18214         * config/i386/i386.md: Restrict the new peephole2 to move
18215         between the general purpose registers.
18216
18217 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18218
18219         PR target/39162
18220         * config/i386/i386.c (type_natural_mode): Add a new argument.
18221         Return the original mode and warn ABI change if vector size is 32byte.
18222         (function_arg_advance): Updated.
18223         (function_arg): Likewise.
18224         (ix86_function_value): Likewise.
18225         (ix86_return_in_memory): Likewise.
18226         (ix86_sol10_return_in_memory): Likewise.
18227         (ix86_gimplify_va_arg): Likewise.
18228         (function_arg_32): Don't warn ABX ABI change here.
18229         (function_arg_64): Likewise.
18230
18231 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
18232
18233         * loop-iv.c (implies_p): In the final case, test that operands 0
18234         of the two comparisons match.
18235
18236         * config/bfin/bfin.c (find_prev_insn_start): New function.
18237         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
18238         (find_next_insn_start): Move.
18239
18240 2009-02-13  Richard Guenther  <rguenther@suse.de>
18241
18242         * configure.ac: Enable LFS.
18243         * configure: Re-generate.
18244         * config.in: Likewise.
18245
18246 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
18247
18248         PR c/35444
18249         * c-parser.c (c_parser_parms_list_declarator): Discard pending
18250         sizes on syntax error after some arguments have been parsed.
18251
18252 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
18253
18254         * doc/invoke.texi (-fira): Remove.
18255
18256 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18257
18258         * caller-save.c: Replace regclass.c with reginfo.c in comments.
18259         * recog.c: Likewise.
18260         * rtl.h: Likewise.
18261
18262 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
18263
18264         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
18265         (umul_ppmm): Likewise.
18266         (count_leading_zeros): Likewise.
18267         (count_trailing_zeros): Likewise.
18268         (UMUL_TIME): Likewise.
18269
18270 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18271
18272         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
18273         soft-fp/t-softfp to tmake_file.
18274
18275         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
18276         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
18277         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
18278         IA64_BUILTIN_INFQ]: New.
18279         (ia64_init_builtins): Initialize __builtin_infq,
18280         __builtin_fabsq and __builtin_copysignq if not HPUX.
18281         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
18282         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
18283
18284         * config/ia64/lib1funcs.asm (__divtf3): Define only if
18285         SHARED is defined.
18286         (__fixtfti): Likewise.
18287         (__fixunstfti): Likewise.
18288         (__floattitf): Likewise.
18289
18290         * config/ia64/libgcc-glibc.ver: New.
18291         * config/ia64/t-fprules-softfp: Likewise.
18292         * config/ia64/sfp-machine.h: Likewise.
18293
18294         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
18295         (LIBGCC2_TF_CEXT): Likewise.
18296         (TF_SIZE): Likewise.
18297         (TARGET_INIT_LIBFUNCS): Likewise.
18298
18299         * config/ia64/t-glibc (SHLINB_MAPFILES):
18300         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
18301
18302 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18303
18304         * config/i386/i386.c (construct_container): Rewrite processing
18305         BLKmode with X86_64_SSE_CLASS.
18306
18307 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
18308
18309         PR target/39152
18310         * config/i386/i386.md: Replace simplify_replace_rtx with
18311         replace_rtx in the new peephole2.
18312
18313 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
18314
18315         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
18316         loop unrolling do not happen at -O2.
18317
18318 2009-02-12  Michael Matz  <matz@suse.de>
18319
18320         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
18321
18322 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
18323
18324         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
18325         for -g3.
18326
18327 2009-02-12  Ben Elliston  <bje@au.ibm.com>
18328
18329         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
18330         patterns when updating the back chain.  Missed in the 2009-02-10
18331         change.
18332
18333 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
18334
18335         * doc/extend.texi (Decimal Floating Types): Update identifier of
18336         draft TR and list of missing support.
18337
18338 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
18339
18340         PR middle-end/39154
18341         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
18342         bit to variable length decl's flags, add it also to its
18343         pointer replacement variable.
18344
18345 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
18346             Jakub Jelinek  <jakub@redhat.com>
18347
18348         PR target/39118
18349         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
18350         (memory_blockage): New expander.
18351         (*memory_blockage): New insn pattern.
18352         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
18353         instead of general blockage at the end of function prologue when
18354         frame pointer is used to access red zone area.  Do not emit blockage
18355         when profiling, it is emitted in generic code.
18356         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
18357         function epilogue when frame pointer is used to access red zone area.
18358
18359 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
18360
18361         PR target/38824
18362         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
18363         by arithmetic with memory operands.
18364         * config/i386/predicates.md (commutative_operator): New.
18365
18366 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
18367
18368         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
18369         bulleted lists.
18370
18371 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
18372
18373         * alias.h (record_alias_subset): Declare.
18374         * alias.c (record_alias_subset): Make global.
18375
18376 2009-02-10  Nick Clifton  <nickc@redhat.com>
18377
18378         * tree-parloops.c: Change license to GPLv3.
18379         * ipa-struct-reorg.c: Change license to GPLv3.
18380         * ipa-struct-reorg.h: Change license to GPLv3.
18381
18382 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
18383
18384         PR c/39084
18385         * c-decl.c (start_struct): Return NULL on error.
18386
18387 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
18388
18389         PR middle-end/39124
18390         * cfgloopmanip.c (remove_path): Call remove_bbs after
18391         cancel_loop_tree, not before it.
18392
18393         PR target/39139
18394         * function.h (struct function): Add has_local_explicit_reg_vars bit.
18395         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
18396         VAR_DECLs were seen.
18397         * tree-ssa-live.c (remove_unused_locals): Recompute
18398         cfun->has_local_explicit_reg_vars.
18399         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
18400         copies or clearings if cfun->has_local_explicit_reg_vars.
18401
18402 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
18403
18404         PR target/39118
18405         * config/i386/i386.c (expand_prologue): Emit blockage at the end
18406         of function prologue when frame pointer is used to access
18407         red zone area.
18408
18409 2009-02-10  Richard Guenther  <rguenther@suse.de>
18410
18411         PR middle-end/39127
18412         * gimplify.c (gimple_regimplify_operands): Always look if
18413         we need to create a temporary.
18414
18415 2009-02-10  Richard Guenther  <rguenther@suse.de>
18416
18417         PR tree-optimization/39132
18418         * tree-loop-distribution.c (todo): New global var.
18419         (generate_memset_zero): Trigger TODO_rebuild_alias.
18420         (tree_loop_distribution): Return todo.
18421
18422 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
18423
18424         PR target/39119
18425         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
18426         (x86_64_reg_class_name): Removed.
18427         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
18428         first one isn't X86_64_SSE_CLASS or any other ones aren't
18429         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
18430         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
18431         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
18432         and 3 X86_64_SSEUP_CLASS.
18433         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
18434         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
18435
18436 2009-02-10  Ben Elliston  <bje@au.ibm.com>
18437
18438         * config/rs6000/rs6000.md (allocate_stack): Always use an update
18439         form instruction to update the stack back chain word, even if the
18440         user has disabled the generation of update instructions.
18441         (movdi_<mode>_update_stack): New.
18442         (movsi_update_stack): Likewise.
18443         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
18444         always use an update form instruction to update the stack back
18445         chain word.
18446
18447 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
18448
18449         PR middle-end/38953
18450         * graphite.c (if_region_set_false_region): After moving a region in
18451         the false branch of a condition, remove the empty dummy basic block.
18452         (gloog): Remove wrong fix for PR38953.
18453
18454 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18455
18456         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
18457         generation due to implicit sign extension.
18458
18459 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
18460
18461         PR middle-end/38981
18462         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
18463         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
18464
18465 2009-02-09  Richard Guenther  <rguenther@suse.de>
18466
18467         PR middle-end/35202
18468         * convert.c (convert_to_real): Disable (float)fn((double)x)
18469         to fnf(x) conversion if errno differences may occur and
18470         -fmath-errno is set.
18471
18472 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
18473
18474         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
18475         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
18476         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
18477
18478 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
18479
18480         PR c/35434
18481         * c-common.c (handle_alias_attribute): Disallow attribute for
18482         anything not a FUNCTION_DECL or VAR_DECL.
18483
18484 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
18485
18486         PR c/39035
18487         * real.c (do_compare): Special-case compare of zero against
18488         decimal float value.
18489
18490 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
18491
18492         PR c/36432
18493         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
18494         as indicating flexible array members unless the field itself is
18495         being declarared as the incomplete array.
18496
18497 2009-02-06  Jan Hubicka  <jh@suse.cz>
18498
18499         PR tree-optimization/38844
18500         * ipa-inline.c (try_inline): Stop inlining recursion when edge
18501         is already inlined.
18502
18503 2009-02-06  Richard Guenther  <rguenther@suse.de>
18504
18505         PR middle-end/38977
18506         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
18507         fork because we may expand it as __gcov_fork.
18508
18509 2009-02-06  Nick Clifton  <nickc@redhat.com>
18510
18511         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
18512
18513 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
18514
18515         PR tree-optimization/35659
18516         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
18517         vn_phi_eq): Shortcut if hashcode does not match.
18518         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
18519         NULL operands.
18520         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
18521         and avoid iterative_hash_expr.
18522         (FOR_EACH_VALUE_ID_IN_SET): New.
18523         (value_id_compare): Remove.
18524         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
18525         sort expressions by value id.
18526
18527 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18528
18529         PR target/38991
18530         * config/sh/predicates.md (general_movsrc_operand): Don't check
18531         the subreg of system registers here.
18532
18533 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
18534
18535         PR c++/39106
18536         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
18537         on the copied decl.
18538
18539 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
18540
18541         PR rtl-optimization/39110
18542         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
18543         addresses, not aligned ones.
18544
18545 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
18546             Richard Guenther  <rguenther@suse.de>
18547
18548         PR tree-optimization/39100
18549         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
18550         comment says and add edges.
18551
18552 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
18553
18554         PR c/35435
18555         * c-common.c (handle_tls_model_attribute): Ignore attribute for
18556         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
18557
18558 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
18559
18560         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
18561         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
18562         register_bb_in_sese, new_sese, free_sese): Moved.
18563         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
18564         outermost_loop_in_scop, build_scop_iteration_domain,
18565         expand_scalar_variables_ssa_name, get_vdef_before_scop,
18566         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
18567         Use loop_in_sese_p instead of loop_in_scop_p.
18568         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
18569         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
18570         (scopdet_basic_block_info): Fix bug in scop detection.
18571         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
18572         eq_loop_to_cloog_loop): Remove.
18573         (nb_loops_around_loop_in_scop, nb_loop
18574         ref_nb_loops): Moved here...
18575         * graphite.h (ref_nb_loops): ... from here.
18576         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
18577         (loop_domain_dim, loop_iteration_vector_dim): Remove.
18578         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
18579         * testsuite/gcc.dg/graphite/scop-19.c: New
18580
18581 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
18582             Hans-Peter Nilsson  <hp@axis.com>
18583
18584         PR rtl-optimization/37889
18585         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
18586         Move offset handling from PLUS to before the switch.  Use new
18587         arguments when considering SYMBOL_REFs too.
18588         (rtx_addr_can_trap_p): Pass dummy offset and size.
18589         (enum may_trap_p_flags): Remove.
18590         (may_trap_p_1): Pass size from MEM_SIZE.
18591
18592         PR rtl-optimization/38921
18593         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
18594         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
18595         * rtlanal.c (may_trap_after_code_motion_p): Delete.
18596         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
18597
18598 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
18599
18600         AVX Programming Reference (January, 2009)
18601         * config/i386/sse.md (*vpclmulqdq): New.
18602
18603 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
18604
18605         PR tree-optimization/38977
18606         PR gcov-profile/38292
18607         * calls.c (special_function_p): Disregard __builtin_ prefix.
18608
18609 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
18610
18611         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
18612         non-indexable addresses even before reload.
18613
18614 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
18615
18616         PR c/29129
18617         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
18618         as having variable size.  Do not give an error for unnamed
18619         parameters with [*] declarators.  Give a warning for type names
18620         with [*] declarators and mark them as variable size.
18621         * c-parser.c (c_parser_sizeof_expression): Do not give an error
18622         for sizeof applied to [*] type names.
18623
18624 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
18625
18626         PR C++/36607
18627         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
18628
18629 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
18630
18631         * gcc.c (process_command): Update copyright notice dates.
18632         * gcov.c (print_version): Likewise.
18633         * gcov-dump.c (print_version): Likewise.
18634         * mips-tfile.c (main): Likewise.
18635         * mips-tdump.c (main): Likewise.
18636
18637 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
18638
18639         PR c/35433
18640         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
18641         for composite type involving a zero-length array type.
18642
18643 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
18644
18645         PR target/35318
18646         * function.c (match_asm_constraints_1): Skip over
18647         initial optional % in the constraint.
18648
18649         PR inline-asm/39059
18650         * c-parser.c (c_parser_postfix_expression): If fixed point is not
18651         supported, don't accept FIXED_CSTs.
18652         * c-decl.c (finish_declspecs): Error if fixed point is not supported
18653         and _Sat is used without _Fract/_Accum.  Set specs->type to
18654         integer_type_node for cts_fract/cts_accum if fixed point is not
18655         supported.
18656
18657 2009-02-02  Catherine Moore  <clm@codesourcery.com>
18658
18659         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
18660
18661 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
18662
18663         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
18664         (ABI_HAS_64BIT_SYMBOLS): Use it.
18665         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
18666
18667 2009-02-02  Paul Brook  <paul@codesourcery.com>
18668
18669         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
18670
18671 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
18672
18673         PR inline-asm/39058
18674         * recog.h (asm_operand_ok): Add constraints argument.
18675         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
18676         recurse on matching constraint.
18677         (check_asm_operands): Pass constraints as 3rd argument to
18678         asm_operand_ok.  Don't look up matching constraint here.
18679         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
18680         to asm_operand_ok.
18681
18682 2009-02-02  Ben Elliston  <bje@au.ibm.com>
18683
18684         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
18685         TARGET_NARROW_VOLATILE_BITFIELD macro names.
18686
18687 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18688
18689         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
18690         information.  Remove some obsolete information.  Reorganize.
18691
18692         * config/pa/fptr.c: Revert license to GPL 2.
18693         * config/pa/milli64.S: Likewise.
18694
18695 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
18696
18697         PR target/38904
18698         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
18699         LIBRARY name in, instead of hard-coding it.
18700         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
18701         extra target make frag to tmake_files according to EH model.
18702         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
18703         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
18704         frags that define makefile variable EH_MODEL appropriately.
18705         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
18706         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
18707         to "-sjlj" according to type of EH configured.
18708         (LIBGCC_SONAME):  Concatenate it to shared library base name.
18709         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
18710         to "_sjlj" according to type of EH configured.
18711         (LIBGCC_SONAME):  Concatenate it to shared library base name.
18712         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
18713         (SHLIB_LINK):  Add missing semicolon to if-else construct.
18714         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
18715         string value of "pe_dll" command-line option.
18716         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
18717         (SHLIB_SONAME):  Use it when overriding t-cygming default.
18718         (SHLIB_IMPLIB):  Override t-cygming default.
18719         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
18720         string value of "pe_dll" command-line option.
18721
18722 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
18723
18724         PR target/38952
18725         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
18726         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
18727
18728 2009-01-31  Richard Guenther  <rguenther@suse.de>
18729
18730         PR tree-optimization/38937
18731         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
18732         computing the transitive closure.
18733
18734 2009-01-30  Richard Guenther  <rguenther@suse.de>
18735
18736         PR tree-optimization/39041
18737         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
18738         Propagate variable indices only if the types match for this stmt.
18739
18740 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
18741
18742         PR target/39013
18743         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
18744         inline but never defined.
18745
18746 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
18747
18748         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
18749         (*insv_h_di_reg_extimm): New insn.
18750         (*insv_l<mode>_reg_extimm): New insn.
18751
18752 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
18753
18754         * config/picochip/picochip.c (flag_conserve_stack): set
18755         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
18756         fconserve-stack. Reduce call-overhead used by inliner.
18757
18758 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
18759
18760         PR/38157
18761         * common.opt (flag_conserve_stack): Initialised to zero.
18762
18763 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
18764
18765         PR/39002
18766         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
18767         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
18768         method.
18769
18770 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
18771
18772         * ira-color.c (allocno_reload_assign): Update comments.
18773         * regmove.c (regmove_optimize): Likewise.
18774
18775         * ra.h: Removed.
18776
18777 2009-01-29  Robert Millan  <rmh@aybabtu.com>
18778
18779         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
18780         * config/i386/kopensolaris-gnu.h: New file.  Undefine
18781         `MD_UNWIND_SUPPORT'.
18782         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
18783
18784 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
18785
18786         PR tree-optimization/39007
18787         * tree-loop-distribution.c (generate_builtin): Use
18788         recompute_dominator to compute the immediate dominator of the
18789         basic block just after the loop.
18790
18791 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
18792
18793         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
18794         (ASM_OUTPUT_DWARF_PCREL): Define.
18795
18796 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
18797
18798         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
18799         * doc/passes.texi: Remove entries about regclass, local-alloc, and
18800         global.  Modify entries about regmove and IRA.
18801
18802         * ra-conflict.c: Remove the file.
18803
18804         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
18805
18806         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
18807         (pass_regclass_init): Rename to pass_reginfo_init.
18808
18809         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
18810
18811         * toplev.h (flag_ira): Remove.
18812
18813         * caller-save.c (setup_save_areas): Remove flag_ira.
18814
18815         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
18816
18817         * global.c: Remove the file.
18818
18819         * opts.c (decode_options): Remove flag_ira.
18820
18821         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
18822
18823         * regmove.c: Modify file description.
18824         (find_use_as_address, try_auto_increment): Define them only if
18825         AUTO_INC_DEC is defined.
18826         (replacement_quality, replace_in_call_usage, fixup_match_1,
18827         stable_and_no_regs_but_for_p): Remove.
18828         (reg_set_in_bb): Make it static.
18829         (regmove_optimize): Remove flag_ira and code which worked for
18830         !flag_ira.
18831
18832         * local-alloc.c: Remove the file.
18833
18834         * common.opt (fira): Remove.
18835
18836         * ira.c: Include except.h.
18837         (eliminable_regset): Move from global.c.
18838         (mark_elimination): Ditto.  Remove flag_ira.
18839         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
18840         equiv_mem_modified, validate_equiv_mem_from_store,
18841         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
18842         contains_replace_regs, memref_referenced_p, memref_used_between_p,
18843         no_equiv, recorded_label_ref): Move from local-alloc.c.
18844         (update_equiv_regs): Ditto.  Make it static.
18845         (print_insn_chain, print_insn_chains): Move it from global.c.
18846         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
18847         (build_insn_chain): Ditto.  Make it static.
18848         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
18849         Rename to init_live_subregs.
18850         (gate_ira): Remove flag_ira.
18851
18852         * regclass.c: Rename reginfo.c.  Change file description.
18853         (FORBIDDEN_INC_DEC_CLASSES): Remove.
18854         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
18855         (init_reg_sets_1): Remove code for evaluation of
18856         reg_class_superclasses and losing_caller_save_reg_set.
18857         (init_regs): Remove init_reg_autoinc.
18858         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
18859         ok_for_base_p_nonstrict): Remove.
18860         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
18861         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
18862         corresponding entries.
18863         (dump_regclass, record_operand_costs, scan_one_insn,
18864         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
18865         record_address_regs, auto_inc_dec_reg_p): Remove.
18866         (gt-regclass.h): Rename to gt-reginfo.h.
18867
18868         * rtl.h (dump_global_regs, retry_global_alloc,
18869         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
18870
18871         * Makefile.in (RA_H): Remove.
18872         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
18873         Rename regclass.o to reginfo.o.
18874         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
18875         gt-reginfo.h.
18876         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
18877         (GTFILES): Rename regclass.c to reginfo.c.
18878
18879         * passes.c (init_optimization_passes): Remove pass_local_alloc and
18880         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
18881
18882         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
18883         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
18884         Remove flag_ira.
18885         (finish_spills): Ditto.  Remove code for !flag_ira.
18886
18887 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
18888
18889         PR middle-end/35854
18890         * doc/invoke.texi (rtl debug options): Complete rewrite.
18891         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
18892         to auto_inc_dec".
18893         * mode-switching.c (pass_mode_switching): Rename pass from
18894         "mode-sw" to "mode_sw".
18895         * except.c (pass_convert_to_eh_ranges): Rename pass from
18896         "eh-ranges" to "eh_ranges".
18897         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
18898         to "subreg1".
18899
18900
18901 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
18902             Alexander Monakov  <amonakov@ispras.ru>
18903
18904         PR middle-end/38857
18905         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
18906         register.
18907         (move_exprs_to_boundary): Change return type and pass through
18908         should_move from move_op.  Relax assert.  Update usage ...
18909         (schedule_expr_on_boundary): ... here.  Use should_move instead of
18910         cant_move.
18911         (move_op_orig_expr_found): Indicate that insn was disconnected from
18912         stream.
18913         (code_motion_process_successors): Do not call after_merge_succs
18914         callback if original expression was not found when traversing any of
18915         the branches.
18916         (code_motion_path_driver): Change return type.  Update prototype.
18917         (move_op): Update comment.  Add a new parameter (should_move).  Update
18918         prototype.  Set *should_move based on indication provided by
18919         move_op_orig_expr_found.
18920
18921 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
18922
18923         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
18924         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
18925         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
18926         * config/rs6000/rs6000.c (rs6000_override_options): Default
18927         avoid-indexed-addresses on for Power6, off for everything else.
18928         (avoiding_indexed_address_p): New function.
18929         (rs6000_legitimize_address): Use it.
18930         (rs6000_legitimate_address): Likewise.
18931         * config/rs6000/rs6000.md (movXX_updateX): Likewise
18932
18933 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
18934
18935         PR tree-optimization/38997
18936         * tree-loop-distribution.c (generate_memset_zero): Use
18937         POINTER_PLUS_EXPR for a pointer addition.
18938
18939 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
18940
18941         * config/s390/s390.md (bswap<mode>2): New pattern added.
18942
18943 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
18944
18945         * config/s390/s390.md (*tls_load_31): Added type attribute.
18946
18947 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
18948
18949         * config/s390/s390.md: Fix a few comments.
18950
18951 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
18952
18953         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
18954         (*tm<mode>_full): Fixed z10prop attribute.
18955         (*tst<mode>_extimm): Fixed z10prop attribute.
18956         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
18957         (*tstqiCCT_cconly): Fixed z10prop attribute.
18958         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
18959         (*movsi_larl): Fixed z10prop attribute.
18960         (*movsi_zarch): Fixed z10prop attribute.
18961         (*movsi_eas): Fixed z10prop attribute.
18962         (*movhi): Fixed z10prop attribute.
18963         (*movqi): Fixed z10prop attribute.
18964         (*movstrictqi): Fixed z10prop attribute.
18965         (*mov<mode>): Fixed z10prop attribute.
18966         (*movcc): Fixed z10prop attribute.
18967         (*sethighpartdi_64): Fixed z10prop attribute.
18968         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
18969         (*negdi2_sign_cc): Fixed z10prop attribute.
18970         (*negdi2_sign): Fixed z10prop attribute.
18971         (*absdi2_sign_cc): Fixed z10prop attribute.
18972         (*absdi2_sign): Fixed z10prop attribute.
18973         (*negabsdi2_sign_cc): Fixed z10prop attribute.
18974         (*negabsdi2_sign): Fixed z10prop attribute.
18975         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
18976         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
18977         (doloop_si64): Fixed z10prop attribute.
18978         (doloop_si31): Fixed z10prop attribute.
18979         (doloop_long): Fixed z10prop attribute.
18980         (indirect_jump): Fixed z10prop attribute.
18981         (nop): Fixed z10prop attribute.
18982         (main_base_64): Fixed z10prop attribute.
18983         (reload_base_64): Fixed z10prop attribute.
18984
18985 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
18986
18987         PR rtl-optimization/38740
18988         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
18989         if !optimize.
18990         * config/mips/mips.c (mips_reorg): Likewise.
18991
18992 2009-01-28  Richard Guenther  <rguenther@suse.de>
18993
18994         PR tree-optimization/38926
18995         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
18996         with the correct value id to a value.
18997         (do_regular_insertion): Use the value number of edoubleprime
18998         for the value number of the expr.
18999
19000         Revert
19001         2008-08-21  Richard Guenther  <rguenther@suse.de>
19002
19003         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
19004         a PHI ask VN if it is already available.
19005         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
19006         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
19007
19008 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
19009
19010         PR middle-end/38934
19011         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
19012         set to varying whenever max has TREE_OVERFLOW set, similarly
19013         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
19014
19015 2009-01-28  Richard Guenther  <rguenther@suse.de>
19016
19017         PR middle-end/38908
19018         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
19019         uninitialized aggregate uses in call arguments.
19020
19021 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
19022
19023         PR tree-optimization/38984
19024         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
19025         the nothing_id variable if -fno-delete-null-pointer-checks.
19026
19027 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
19028
19029         PR target/38988
19030         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
19031         (set_got_offset_rex64): Ditto.
19032
19033 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
19034
19035         PR target/38941
19036         * doc/extend.texi: Improve local variable with asm reg.
19037
19038 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
19039
19040         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
19041         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
19042         was not supplied then set warn_packed_bitfield_compat to the
19043         default value of 1.
19044         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
19045         against 1.
19046
19047 2009-01-27  Richard Guenther  <rguenther@suse.de>
19048
19049         PR tree-optimization/38503
19050         * cfgexpand.c (expand_gimple_basic_block): Ignore
19051         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
19052         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
19053         variables that cannot have TBAA applied.
19054         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
19055         statements.
19056
19057 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
19058
19059         PR middle-end/38969
19060         * calls.c (initialize_argument_information): Do not wrap complex
19061         arguments in SAVE_EXPR.
19062
19063 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
19064
19065         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
19066         (INSTALL_LIBGCC): Revert typo commit.
19067
19068 2009-01-26  Richard Guenther  <rguenther@suse.de>
19069
19070         PR tree-optimization/38745
19071         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
19072         from special handling.
19073
19074 2009-01-26  Richard Guenther  <rguenther@suse.de>
19075
19076         PR tree-optimization/38745
19077         * tree-ssa.c (execute_update_addresses_taken): Do not include
19078         variables that cannot possibly be a register in not_reg_needs.
19079         Do not clear TREE_ADDRESSABLE on vars that may not become
19080         registers.
19081         * tree-ssa.c (update_alias_info_1): Include those in the set
19082         of addressable vars.
19083
19084 2009-01-26  Richard Guenther  <rguenther@suse.de>
19085
19086         PR middle-end/38851
19087         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
19088         * tree-ssa-dse.c: Include langhooks.h
19089         (execute_simple_dse): Remove stores with zero size.
19090
19091 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
19092
19093         PR c/38957
19094         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
19095         as PLUS_EXPR.
19096
19097 2009-01-24  Julian Brown  <julian@codesourcery.com>
19098
19099         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
19100         config/arm/linux-atomic.c.
19101         * config/arm/linux-atomic.c: New.
19102
19103 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
19104
19105         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
19106         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
19107         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
19108
19109 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19110
19111         PR c/38938
19112         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
19113         properly.
19114
19115 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
19116
19117         PR tree-optimization/38953
19118         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
19119         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
19120         (gloog): Split the exit of the scop when the scop exit is a loop exit.
19121         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
19122         changed the CFG.
19123
19124 2009-01-24  Paul Brook  <paul@codesourcery.com>
19125
19126         * config/arm/neon.md (neon_type): Move to arm.md.
19127         (neon_mov<VSTRUCT>): Add neon_type attribute.
19128         * config/arm/arm.md (neon_type): Move to here.
19129         (conds): Add "unconditioal" and use as default for NEON insns.
19130
19131 2009-01-24  Ben Elliston  <bje@au.ibm.com>
19132
19133         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
19134         void *' warning from -Wc++-compat.
19135         * Makefile.in (dominance.o-warn): Remove.
19136
19137 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
19138
19139         PR tree-optimization/38932
19140         * fold-const.c (fold_unary_ignore_overflow): New.
19141         * tree.h (fold_unary_ignore_overflow): Declare.
19142         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
19143         * tree-ssa-sccvn.c (visit_reference_op_load,
19144         simplify_unary_expression): Likewise.
19145
19146 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
19147
19148         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
19149         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
19150         regardless of their type.
19151         * c-common.c (handle_packed_attribute): Don't ignore packed on
19152         bitfields.
19153         * c.opt (Wpacked-bitfield-compat): New warning option.
19154         * stor-layout.c (place_field): Warn if offset of a field changed.
19155         * doc/extend.texi (packed): Mention the ABI change.
19156         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
19157         (Warning Options): Add it to the list.
19158
19159 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19160
19161         * c-opts.c (c_common_post_options): Fix a typo in comments.
19162
19163 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
19164
19165         PR middle-end/38615
19166         * gimplify.c (gimplify_init_constructor): Fix promotion of const
19167         variables to static.
19168         * doc/invoke.texi (-fmerge-all-constants): Update description.
19169
19170 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
19171
19172         PR target/38931
19173         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
19174         (*movdi_1_rex64): Use type "mmx" for alternative 5.
19175
19176 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
19177
19178         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
19179         a word boundary.
19180         (LOCAL_ALIGNMENT): Similarly.
19181
19182 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
19183             Joseph Myers  <joseph@codesourcery.com>
19184
19185         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
19186         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
19187         * config/arm/arm-tune.md: Regenerate.
19188         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
19189         -march=iwmmxt2.
19190
19191 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
19192
19193         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
19194         version number to five.
19195
19196 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
19197
19198         PR c++/38930
19199         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
19200         * c-common.c (set_underlying_type): Likewise.
19201         (is_typedef_decl ): Likewise
19202         * tree.h: Likewise
19203         (set_underlying_type): Likewise.
19204         (is_typedef_type): Likewise.
19205
19206 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
19207
19208         PR middle-end/38587
19209         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
19210         crossing setjmps.
19211
19212 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
19213
19214         PR bootstrap/37660
19215         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
19216         (LIBGCC_SPEC):  Don't define.
19217         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
19218
19219 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
19220
19221         PR rtl-optimization/38879
19222         * alias.c (base_alias_check): Unaligned access via AND address can
19223         alias all surrounding object types except those with sizes equal
19224         or wider than the size of unaligned access.
19225
19226 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
19227
19228         PR c++/26693
19229         * c-decl.c (clone_underlying_type): Move this ...
19230         * c-common.c (set_underlying_type): ... here.
19231         Also, make sure the function properly sets TYPE_STUB_DECL() on
19232         the newly created typedef variant type.
19233         (is_typedef_decl ): New entry point.
19234         * tree.h: Added a new member member_types_needing_access_check to
19235         struct tree_decl_non_common.
19236         (set_underlying_type): New entry point.
19237         (is_typedef_type): Likewise.
19238
19239 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
19240
19241         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
19242         Check whether two instructions have memory references that
19243         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
19244         are helper functions for traversing.
19245         * alias.h (insn_alias_sets_confilict_p): New prototypes.
19246         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
19247         not to draw dependency edge for instructions with non-conflicting
19248         alias sets.
19249
19250 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
19251
19252         PR other/38758
19253         * longlong.h: Update copyright years.  Use soft-fp license notice.
19254         Sync __clz_tab declaration with glibc.
19255
19256 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
19257
19258         PR target/30687
19259         * doc/extend.texi (syscall_linkage): New.
19260         (version_id): Modify.
19261
19262 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19263             Richard Guenther  <rguenther@suse.de>
19264
19265         PR tree-optimization/38747
19266         PR tree-optimization/38748
19267         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
19268         conversion if the base address is an indirect reference and the
19269         aliasing sets could cause issues.
19270
19271 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
19272
19273         * common.opt (fgraphite, fgraphite-identity): Add comment for
19274         explaining why these options are not documented.
19275
19276 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
19277
19278         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
19279         gimple_call_lhs is NULL.
19280
19281 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
19282
19283         PR target/38868
19284         * emit-rtl.c (adjust_address_1): Make sure memref is never
19285         overwritten.
19286
19287 2009-01-20  Ben Elliston  <bje@au.ibm.com>
19288
19289         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
19290         const qualifier from arg parameter. Remove unnecessary cast to char *.
19291         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
19292         const qualifier from arg 2.
19293
19294 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
19295
19296         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
19297
19298 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19299
19300         PR c/38869
19301         * rtl.h (reinit_regs): New prototype.
19302         * regclass.c: Include ira.h.
19303         (reinit_regs): New.
19304         * Makefile.in (regclass.o): Add ira.h.
19305         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
19306
19307 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
19308
19309         PR target/38736
19310         * c-common.c (handle_aligned_attribute): Use
19311         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
19312         default alignment value.
19313
19314         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
19315
19316         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
19317         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
19318
19319         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
19320         __BIGGEST_ALIGNMENT__.
19321
19322         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
19323
19324 2009-01-18  Richard Guenther  <rguenther@suse.de>
19325
19326         PR tree-optimization/38819
19327         * tree-flow.h (operation_could_trap_helper_p): Declare.
19328         * tree-eh.c (operation_could_trap_helper_p): Export.
19329         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
19330         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
19331         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
19332         are about to insert a possibly trapping instruction and fail
19333         in this case.
19334
19335 2009-01-18  Andreas Schwab  <schwab@suse.de>
19336
19337         * doc/install.texi (Configuration): Remove obsolete paragraph
19338         about use of --with-gnu-ld with --with-gnu-as.
19339
19340 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
19341
19342         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
19343         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
19344         Follow spelling conventions.
19345
19346 2009-01-18  Ben Elliston  <bje@au.ibm.com>
19347
19348         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
19349         C++ warning about implicit conversion from void * to struct
19350         bitmap_head_def *.
19351         (bitmap_obstack_free): Likewise for bitmap_element *.
19352         * Makefile.in (bitmap.o-warn): Remove.
19353
19354 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
19355
19356         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
19357
19358 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
19359             Tobias Grosser  <tobi.grosser@amd.com>
19360
19361         * graphite.c (graphite_trans_scop_block): Do not block single
19362         nested loops.
19363
19364 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
19365
19366         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
19367         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
19368         test with assertion.
19369
19370 2009-01-16  Richard Guenther  <rguenther@suse.de>
19371
19372         PR tree-optimization/38835
19373         PR middle-end/36227
19374         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
19375         and INT + PTR -> (INT)(PTR p+ INT) folding.
19376         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
19377
19378 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
19379
19380         PR target/38554
19381         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
19382         the subreg from a lowpart subreg if it is also casting the value.
19383
19384 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19385             Tobias Grosser  <tobi.grosser@amd.com>
19386
19387         * graphite.c (compare_prefix_loops): New.
19388         (build_scop_canonical_schedules): Rewritten.
19389         (graphite_transform_loops): Move build_scop_canonical_schedules
19390         after build_scop_iteration_domain.
19391
19392 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19393             Tobias Grosser  <tobi.grosser@amd.com>
19394
19395         * graphite.c (add_conditions_to_domain): Add the loops to
19396         the dimension of the iteration domain.  Do copy the domain
19397         only when it exists.
19398         (build_scop_conditions_1): Do not call add_conditions_to_domain.
19399         (add_conditions_to_constraints): New.
19400         (can_generate_code_stmt, can_generate_code): Removed.
19401         (gloog): Do not call can_generate_code.
19402         (graphite_transform_loops): Call add_conditions_to_constraints
19403         after building the iteration domain.
19404
19405 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
19406
19407         PR tree-optimization/38789
19408         * tree-ssa-threadedge.c
19409         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
19410         __builtin_constant_p.
19411
19412 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
19413
19414         * dce.c (delete_unmarked_insns): Reversed the order that insns are
19415         examined before deleting them.
19416
19417 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
19418
19419         * function.c (aggregate_value_p): Correctly extract the function
19420         type from CALL_EXPR_FN lookup.
19421
19422 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
19423
19424         * config/picochip/picochip.c (picochip_override_options): Revert
19425         CFI asm flag disable commited previously.
19426
19427 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
19428             Tobias Grosser  <tobi.grosser@amd.com>
19429             Jan Sjodin  <jan.sjodin@amd.com>
19430
19431         * graphite.c (scan_tree_for_params): On substractions negate
19432         all the coefficients of the term.
19433         (clast_to_gcc_expression_red): New.  Handle reduction expressions
19434         of more than two operands.
19435         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
19436         (get_vdef_before_scop): Handle also the case of default definitions.
19437
19438 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
19439
19440         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
19441         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
19442         Also use them when walking CALL_INSN_FUNCTION_USAGE.
19443
19444 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
19445             Joey Ye  <joey.ye@intel.com>
19446
19447         PR middle-end/37843
19448         * cfgexpand.c (expand_stack_alignment): Don't update stack
19449         boundary nor check incoming stack boundary here.
19450         (gimple_expand_cfg): Update stack boundary and check incoming
19451         stack boundary here.
19452
19453 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
19454
19455         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
19456
19457 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
19458
19459         PR rtl-optimization/38245
19460         * calls.c (expand_call): Add stack arguments to
19461         CALL_INSN_FUNCTION_USAGE even for pure calls (when
19462         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
19463         in regs and partially in memory or BLKmode arguments.
19464         (emit_library_call_value_1): Add stack arguments to
19465         CALL_INSN_FUNCTION_USAGE even for pure calls (when
19466         ACCUMULATE_OUTGOING_ARGS).
19467         * dce.c: Include tm_p.h.
19468         (find_call_stack_args): New function.
19469         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
19470         argument.
19471         (mark_insn): Call find_call_stack_args for CALL_Ps.
19472         (prescan_insns_for_dce): Walk insns backwards in bb rather than
19473         forwards.  Allocate and free arg_stores bitmap if needed, pass it
19474         down to deletable_insn_p, don't mark stores set in arg_stores
19475         bitmap, clear the bitmap at the beginning of each bb.
19476         * Makefile.in (dce.o): Depend on $(TM_P_H).
19477
19478 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
19479
19480         PR target/22599
19481         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
19482         to make sure the insn is a conditional test (bug 22599).  Reformat a
19483         few long lines.
19484
19485 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
19486
19487         PR middle-end/38431
19488         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
19489         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
19490         (gloog): Do not call cleanup_tree_cfg.
19491         (graphite_transform_loops): Call cleanup_tree_cfg after all
19492         scops have been code generated.
19493
19494 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
19495         * doc/gty.texi (Invoking the garbage collector): Added new node
19496         and section documenting ggc_collect.
19497
19498 2009-01-14  Richard Guenther  <rguenther@suse.de>
19499
19500         PR tree-optimization/38826
19501         PR middle-end/38477
19502         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
19503         initialization notes only if we actually emitted a warning.
19504         (intra_create_variable_infos): Add constraints for a result decl
19505         that is passed by hidden reference.
19506         (build_pred_graph): Mark all related variables non-direct on
19507         address-taking.
19508
19509 2009-01-14  Nick Clifton  <nickc@redhat.com>
19510
19511         * ira-conflicts.c: Include addresses.h for the definition of
19512         base_reg_class.
19513         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
19514         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
19515
19516 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19517
19518         PR target/38811
19519         * Makefile.in (ira-lives.o): Add except.h.
19520
19521         * ira-lives.c: Include except.h.
19522         (process_bb_node_lives): Process can_throw_internal.
19523
19524 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
19525
19526         PR rtl-optimization/38774
19527         * combine.c (simplify_set): When undoing cc_use change, don't do
19528         PUT_CODE on the newly created comparison, but instead put back the
19529         old comparison.
19530
19531 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
19532
19533         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
19534         values.  Remove duplicate arm8 entry.
19535
19536 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
19537
19538         PR tree-optimization/38786
19539         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
19540         the SSA_NAME case of expand_scalar_variables_expr.
19541         Set the type of an expression to the type of its assign statement.
19542         (expand_scalar_variables_expr): Also gather the scalar computation
19543         used to index the memory access.  Do not pass loop_p.
19544         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
19545         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
19546         the gimple_stmt_iterator where it inserts new code.
19547         Do not pass loop_p.
19548         (copy_bb_and_scalar_dependences): Do not pass loop_p.
19549         (translate_clast): Update call to copy_bb_and_scalar_dependences.
19550
19551 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
19552
19553         * graphite.h (debug_value): Removed.
19554         * graphite.c (debug_value): Removed.
19555
19556 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
19557
19558         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
19559         ldrd/strd with two 32-bit instructions.
19560
19561 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
19562
19563         * config/arm/arm.c (struct processors): Pass for speed down into
19564         cost helper functions.
19565         (const_ok_for_op): Handle COMPARE and inequality nodes.
19566         (arm_rtx_costs_1): Rewrite.
19567         (arm_size_rtx_costs): Update prototype.
19568         (arm_rtx_costs): Pass speed down to helper functions.
19569         (arm_slowmul_rtx_costs): Rework cost calculations.
19570         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
19571         (arm_9e_rtx_costs): Likewise.
19572
19573 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
19574
19575         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
19576         relocations of local symbols wider than UNITS_PER_WORD are not valid.
19577         (alpha_legitimize_address): Do not split local symbols wider than
19578         UNITS_PER_WORD into HIGH/LO_SUM parts.
19579
19580 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
19581
19582         PR bootstrap/38580
19583         * gcc.c (process_command): Replace call to execvp with calls
19584         to pex_one and exit.
19585
19586 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
19587
19588         PR target/29141
19589         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
19590         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
19591         variant for devices with 3-byte PC.
19592         (__tablejump_elpm__): New.
19593
19594 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
19595
19596         PR c/32041
19597         * c-parser.c (c_parser_postfix_expression): Allow `->' in
19598         offsetof member-designator, handle it as `[0].'.
19599
19600 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19601
19602         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
19603         function when not using named sections on targets with named sections
19604         if branch distance is less than 262132.
19605
19606 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
19607
19608         * combine.c (combine_instructions):  Recompute
19609         optimize_this_for_speed_p  for each BB in the main combine loop.
19610
19611 2009-01-12  Tomas Bily  <tbily@suse.cz>
19612
19613         PR middlend/38385
19614         * tree-loop-distribution.c (prop_phis): New function.
19615         (generate_builtin): Call prop_phis.
19616         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
19617
19618 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
19619
19620         PR tree-optimization/38807
19621         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
19622         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
19623
19624 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
19625
19626         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
19627         subreg of op0 to the original op0.
19628
19629 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
19630
19631         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
19632
19633 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
19634
19635         PR debug/7055
19636         * mips-tfile.c (parse_def): Fix parsing of def strings
19637         starting with digits.
19638
19639 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
19640
19641         PR target/38695
19642         * config/arm/arm.c (arm_is_long_call_p): Don't call
19643         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
19644
19645 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
19646
19647         * regrename.c (regrename_optimize): Fix dumping.
19648         (find_oldest_value_reg): Preserve REG_POINTER.
19649         (copy_hardreg_forward_1): Likewise.
19650
19651 2009-01-09  Diego Novillo  <dnovillo@google.com>
19652
19653         * gimple.h (struct gimple_statement_base) <uid>: Document
19654         the restrictions on its use.
19655         (gimple_uid): Tidy.
19656         (gimple_set_uid): Tidy.
19657
19658 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
19659
19660         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
19661         zero guard even if align_bytes != 0 and count is smaller than
19662         size_needed.
19663
19664 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
19665
19666         PR rtl-optimization/38495
19667         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
19668         (add_range_and_copies_from_move_list): Print all added ranges.
19669         Add ranges to memory optimized destination.
19670
19671 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
19672
19673         PR target/38686
19674         PR target/38708
19675         * config/i386/i386.c (override_options): Reject
19676         -mstringop-strategy=rep_8byte with -m32.
19677         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
19678         to 1.  Do count comparison against epilogue_size_needed at compile
19679         time even when count_exp was constant forced into register.  For
19680         size_needed don't jump to epilogue, instead just avoid aligning
19681         and invoke the body algorithm.  If need_zero_guard, add zero guard
19682         even if count is non-zero, but smaller than size_needed + number of
19683         bytes that could be stored for alignment.
19684         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
19685         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
19686         but smaller than size_needed + number of bytes that could be stored
19687         for alignment.  Compare size_needed with epilogue_size_needed instead
19688         of desired_align - align, don't adjust size_needed, pass
19689         epilogue_size_needed to the epilogue expanders.
19690
19691         PR c/35742
19692         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
19693
19694 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19695
19696         * pa.c (last_address): Change to unsigned.
19697         (update_total_code_bytes): Change argument to unsigned.  Don't
19698         check if insn addresses are set.
19699         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
19700         addresses are not set.
19701         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
19702
19703 2009-01-09  Nick Clifton  <nickc@redhat.com>
19704
19705         * config/sh/symbian.c: Replace uses of DECL_INLINE with
19706         DECL_DECLARED_INLINE_P.
19707
19708 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
19709
19710         PR middle-end/38347
19711         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
19712         GET_MODE (op0) in operand_subword_force calls.
19713
19714         PR middle-end/38771
19715         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
19716         fold_convert arg0 operands to TREE_TYPE (op0) first.
19717
19718 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
19719
19720         * params.def (ira-max-conflict-table-size): Decrease default value
19721         to 1000.
19722
19723 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
19724
19725         PR tree-optimization/37031
19726         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
19727         on parameter_set.
19728         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
19729         allocate it using gc instead of heap, use VEC_quick_push instead of
19730         VEC_safe_push.
19731         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
19732         instead of heap, use VEC_quick_push instead of VEC_safe_push.
19733         * tree-data-ref.h (struct access_matrix): Change matrix to gc
19734         allocated vector from heap allocated.
19735         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
19736         * tree-loop-linear.c (linear_transform_loops): Allocate nest
19737         vector only after perfect_loop_nest_depth call.
19738
19739 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
19740             Jan Sjodin  <jan.sjodin@amd.com>
19741
19742         PR tree-optimization/38559
19743         * graphite.c (debug_value, copy_constraint,
19744         swap_constraint_variables, scale_constraint_variable, ): New.
19745         (get_lower_bound, get_upper_bound): Removed.
19746         (graphite_trans_bb_strip_mine): Clean up this code that works
19747         only for constant number of iterations.  Fully copy upper and
19748         lower bound constraints, not only the constant part of them.
19749         * graphite.h (debug_value): Declared.
19750
19751 2009-01-08  Ira Rosen  <irar@il.ibm.com>
19752
19753         PR tree-optimization/37194
19754         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
19755         Don't add the cost of cost model guard in prologue to scalar
19756         outside cost in case of known number of iterations.
19757
19758 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
19759             Alan Modra  <amodra@bigpond.net.au>
19760
19761         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
19762         non-word-aligned REG+CONST addressing.
19763
19764 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
19765
19766         PR target/38706
19767         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
19768         free_after_compilation when outputting a thunk.
19769         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
19770         Do not call free_after_compilation here.
19771
19772 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
19773
19774         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
19775         (ix86_valid_target_attribute_inner_p): Ditto.
19776
19777 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
19778
19779         PR tree-optimization/38492
19780         PR tree-optimization/38498
19781         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
19782         * tree-chrec.h (scev_is_linear_expression): Declared.
19783         * graphite.c (graphite_cannot_represent_loop_niter): New.
19784         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
19785         (graphite_loop_normal_form): Use gcc_assert.
19786         (scan_tree_for_params): Use CASE_CONVERT.
19787         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
19788         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
19789         Use gcc_assert.  Discard scops that contain unhandled cases.
19790         (build_scop_conditions): Return a boolean status for unhandled cases.
19791         (strip_mine_profitable_p): Print the loop number, not its depth.
19792         (is_interchange_valid): Pass the depth of the loop nest, don't
19793         recompute it wrongly.
19794         (graphite_trans_bb_block): Same.
19795         (graphite_trans_bb_block): Print tentative of loop blocking.
19796         (graphite_trans_scop_block): Do not print that the loop has been
19797         blocked.
19798         (graphite_transform_loops): Do not handle scops that contain condition
19799         scalar phi nodes.
19800
19801 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
19802
19803         AVX Programming Reference (December, 2008)
19804         * config/i386/avxintrin.h (_mm256_stream_si256): New.
19805         (_mm256_stream_pd): Likewise.
19806         (_mm256_stream_ps): Likewise.
19807
19808         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
19809         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
19810         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
19811         (bdesc_special_args): Add __builtin_ia32_movntdq256,
19812         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
19813         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
19814         (ix86_expand_special_args_builtin): Likewise.
19815
19816         * config/i386/sse.md (AVXMODEDI): New.
19817         (avx_movnt<mode>): Likewise.
19818         (avx_movnt<mode>): Likewise.
19819         (<sse>_movnt<mode>): Remove AVX support.
19820         (sse2_movntv2di): Likewise.
19821
19822 2009-01-07  Richard Guenther  <rguenther@suse.de>
19823
19824         PR middle-end/38751
19825         * fold-const.c (extract_muldiv): Remove obsolete comment.
19826         (fold_plusminus_mult_expr): Undo MINUS_EXPR
19827         to PLUS_EXPR canonicalization for the canonicalization.
19828
19829 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
19830
19831         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
19832         hosted cross-compilers generating less efficient code.
19833
19834 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
19835
19836         * function.h (rtl_data): Add a dbr_scheduled_p field.
19837         * reorg.c (dbr_schedule): Set it.
19838         (gate_handle_delay_slots): Check it.
19839         * config/mips/mips.c (mips_base_delayed_branch): Delete.
19840         (mips_reorg): Check flag_delayed_branch instead of
19841         mips_base_delayed_branch.
19842         (mips_override_options): Don't set mips_base_delayed_branch
19843         or flag_delayed_branch.
19844
19845 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
19846
19847         PR rtl-optimization/38426.
19848         * ira.c (ira): Set current_function_is_leaf earlier.
19849
19850 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
19851
19852         PR rtl-optimization/38722
19853         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
19854         too early, only set a flag and modify after last possible
19855         undo_all point.
19856
19857 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
19858
19859         PR c/34252
19860         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
19861         * real.c (decimal_single_format): Correct values of emin and emax.
19862         (decimal_double_format): Ditto.
19863         (decimal_quad_format): Ditto.
19864         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
19865         computation of DECnn_MIN and DECnn_MAX for corrected values of
19866         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
19867         __DECnn_MIN__, and adjust its computation for the corrected value
19868         of emin.
19869
19870 2009-01-06  Jan Hubicka  <jh@suse.cz>
19871
19872         PR target/38744
19873         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
19874
19875 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
19876
19877         * doc/contrib.texi (Contributors): Slightly adjust the end note.
19878         Add Robert Clark to the list of testers.
19879
19880 2009-01-06  Jan Hubicka  <jh@suse.cz>
19881             Kai Tietz  <kai.tietz@onevision.com>
19882
19883         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
19884         * config/i386/i386.c (ix86_expand_call): Add clobbers.
19885
19886 2009-01-06  Jan Hubicka  <jh@suse.cz>
19887             Kai Tietz  <kai.tietz@onevision.com>
19888
19889         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
19890         for w64 ABI.
19891         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
19892         (ix86_nsaved_regs): Count only general purpose regs.
19893         (ix86_nsaved_sseregs): New.
19894         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
19895         to 16 for w64; compute padding and size of sse reg save area.
19896         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
19897         general purpose regs.
19898         (ix86_emit_save_sse_regs_using_mov): New.
19899         (ix86_expand_prologue): Save SSE regs if needed.
19900         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
19901         (ix86_emit_restore_sse_regs_using_mov): New.
19902         (ix86_expand_epilogue): Save SSE regs if needed.
19903
19904 2009-01-06  Jan Hubicka  <jh@suse.cz>
19905             Kai Tietz  <kai.tietz@onevision.com>
19906
19907         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
19908         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
19909         functions when accumulate outgoing args is off.
19910
19911 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
19912
19913         PR bootstrap/38742
19914         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
19915         before using pseudos_have_intersected_live_ranges_p.
19916
19917         * ira-int.h (ira_assert): Always define.
19918
19919 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
19920
19921         AVX Programming Reference (December, 2008)
19922         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
19923         (_mm256_permute2_pd): Likewise.
19924         (_mm_permute2_ps): Likewise.
19925         (_mm256_permute2_ps): Likewise.
19926         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
19927         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
19928
19929         * config/i386/i386.c (ix86_builtins): Remove
19930         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
19931         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
19932         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
19933         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
19934         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
19935         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
19936         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
19937         __builtin_ia32_vpermil2ps256.
19938         (ix86_init_mmx_sse_builtins): Updated.
19939         (ix86_expand_args_builtin): Likewise.
19940
19941 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19942
19943         * pa.c (output_call): Relocate non-jump insns in the delay slot of
19944         long absolute calls when generating PA 2.0 code.
19945
19946 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
19947
19948         PR rtl-optimization/38583
19949         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
19950
19951         * params.def (ira-max-conflict-table-size): New.
19952
19953         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
19954
19955         * ira.h (ira_conflicts_p): New external definition.
19956
19957         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
19958         table.  Report this.  Return result of building.
19959         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
19960         building conflict table.
19961
19962         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
19963         (ira_color): Use ira_conflicts_p.
19964
19965         * global.c: Include ira.h.
19966         (pseudo_for_reload_consideration_p, build_insn_chain): Use
19967         ira_conflicts_p.
19968
19969         * Makefile.in (global.o): Add ira.h.
19970
19971         * ira-build.c (mark_all_loops_for_removal,
19972         propagate_some_info_from_allocno): New.
19973         (remove_unnecessary_allocnos): Call
19974         propagate_some_info_from_allocno.
19975         (remove_low_level_allocnos): New.
19976         (remove_unnecessary_regions): Add parameter.  Call
19977         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
19978         parameter to remove_unnecessary_regions.
19979         (ira_build): Remove all regions but root if the conflict table was
19980         not built.  Update conflict hard regs for allocnos crossing calls.
19981
19982         * ira.c (ira_conflicts_p): New global.
19983         (ira): Define and use ira_conflicts_p.
19984
19985         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
19986         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
19987         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
19988
19989 2009-01-06  Ben Elliston  <bje@au.ibm.com>
19990
19991         * gengtype-lex.l (YY_NO_INPUT): Define.
19992
19993 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19994
19995         PR c/34911
19996         * c-common.c (handle_vector_size_attribute): Also reject
19997         BOOLEAN_TYPE types.
19998
19999 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
20000
20001         PR tree-optimization/38492
20002         * graphite.c (rename_map_elt, debug_rename_elt,
20003         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
20004         rename_map_elt_info, eq_rename_map_elts,
20005         get_new_name_from_old_name, bb_in_sese_p): Moved around.
20006         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
20007         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
20008         (sese_build_livein_liveouts): New.
20009         (new_sese, free_sese): New.
20010         (new_scop): Call new_sese.
20011         (free_scop): Call free_sese.
20012         (rename_variables_from_edge, rename_phis_end_scop): Removed.
20013         (register_old_new_names): Renamed register_old_and_new_names.
20014         (register_scop_liveout_renames, add_loop_exit_phis,
20015         insert_loop_close_phis, struct igp,
20016         default_liveout_before_guard, add_guard_exit_phis,
20017         insert_guard_phis, copy_renames): New.
20018         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
20019         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
20020         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
20021         (scop_adjust_phis_for_liveouts): New.
20022         (gloog): Call scop_adjust_phis_for_liveouts.
20023
20024         * graphite.h (struct sese): Documented.  Added fields liveout,
20025         num_ver and livein.
20026         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
20027         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
20028         (struct scop): Added field liveout_renames.
20029         (SCOP_LIVEOUT_RENAMES): New.
20030
20031 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
20032
20033         PR tree-optimization/38510
20034         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
20035         (translate_clast): Call recompute_all_dominators before
20036         graphite_verify.
20037         (gloog): Call recompute_all_dominators before graphite_verify.
20038
20039 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
20040             Jan Sjodin  <jan.sjodin@amd.com>
20041
20042         PR tree-optimization/38500
20043         * graphite.c (create_sese_edges): Call fix_loop_structure after
20044         splitting blocks.
20045
20046 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
20047
20048         * config.gcc: Add m32r*-*-rtems*.
20049         * config/m32r/rtems.h: New file.
20050
20051 2009-01-05  Ben Elliston  <bje@au.ibm.com>
20052
20053         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
20054         (.po.pox): Likewise.
20055         (po/gcc.pot): Likewise.
20056
20057 2009-01-04  David S. Miller  <davem@davemloft.net>
20058
20059         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
20060         (STARTING_FRAME_OFFSET): Always set to zero.
20061
20062 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
20063
20064         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
20065         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
20066         fixed-point types, and vectors of the same.
20067
20068 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
20069
20070         * config/mips/sync.md (*mb_barrier): Rename to...
20071         (*memory_barrier): ...this.
20072
20073 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
20074
20075         * doc/extend.texi (Function Attributes): Move @cindex after @item
20076         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
20077         and put in alphabetical order. Fix 'target' name and put in order.
20078         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
20079         typos.
20080
20081 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
20082
20083         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
20084         (memory_barrier): Expand as unspec instead of unspec_volatile.
20085         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20086         (*memory_barrier): Define as unspec instead of unspec_volatile.
20087         Use (match_dup 0) as input operand.
20088
20089         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
20090         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
20091         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
20092         scratch register.  Remove operand 1.
20093         (*stbar): Define as unspec instead of unspec_volatile.
20094         Use (match_dup 0) as input operand, remove (const_int 8).
20095         (*membar): Define as unspec instead of unspec_volatile.
20096         Use (match_dup 0) as input operand, remove input operand 2.
20097
20098         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
20099         (memory_barrier): Expand as unspec instead of unspec_volatile.
20100         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20101         (*memory_barrier): Define as unspec instead of unspec_volatile.
20102         Use (match_dup 0) as input operand.
20103
20104         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
20105         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20106         Set volatile flag on operand 0.
20107         (*memory_barrier): New insn pattern.
20108
20109         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
20110         insn operands.
20111         (*memory_barrier): Use (match_dup 0) as input operand.
20112
20113         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
20114         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20115         Set volatile flag on operand 0.
20116         (*mb_internal): New insn pattern.
20117
20118         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
20119
20120 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
20121
20122         PR middle-end/38586
20123         * function.c (struct temp_slot): Move to the section of the file
20124         that deals with temp slots.  Remove field 'address'.
20125         (temp_slot_address_table): New hash table of address -> temp slot.
20126         (struct temp_slot_address_entry): New struct, items for the table.
20127         (temp_slot_address_compute_hash, temp_slot_address_hash,
20128         temp_slot_address_eq, insert_temp_slot_address): Support functions
20129         for the new table.
20130         (find_temp_slot_from_address): Rewrite to use the new hash table.
20131         (remove_unused_temp_slot_addresses): Remove addresses of temp
20132         slots that have been made available.
20133         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
20134         worker function for remove_unused_temp_slot_addresses.
20135         (assign_stack_temp_for_type): Don't clear the temp slot address list.
20136         Add the temp slot address to the address -> temp slot map.
20137         (update_temp_slot_address): Update via insert_temp_slot_address.
20138         (free_temp_slots): Call remove_unused_temp_slot_addresses.
20139         (pop_temp_slots): Likewise.
20140         (init_temp_slots): Allocate the address -> temp slot map, or empty
20141         the map if it is already allocated.
20142         (prepare_function_start): Initialize temp slot processing.
20143
20144 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
20145
20146         PR middle-end/38584
20147         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
20148         Calculate the size of all stack vars assuming no packing of stack
20149         vars will happen, replacing a quadratic algorithm with a linear one.
20150
20151 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
20152
20153         PR target/38707
20154         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
20155         can't be used.
20156
20157 2009-01-03  Diego Novillo  <dnovillo@google.com>
20158
20159         * doc/contrib.texi: Update contributions.
20160
20161 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
20162
20163         PR c++/38705
20164         * builtins.c (fold_builtin_memory_op): Give up if either operand
20165         is volatile.  Set srctype or desttype to non-qualified version
20166         of the other type.
20167
20168         PR c/38700
20169         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
20170         and FUNCTION_DECLs.
20171
20172 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
20173
20174         PR rtl-optimization/35805
20175         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
20176         problem if fast dce is able to remove any instructions.
20177         * dce.c (dce_process_block): Fix dump message.
20178
20179 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
20180
20181         PR 33649
20182         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
20183
20184 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
20185
20186         PR middle-end/38690
20187         * tree-flow.h (op_code_prio, op_prio): New prototypes.
20188         * tree-pretty-print.c (op_code_prio): New function.
20189         (op_prio): No longer static.  Use op_code_prio.
20190         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
20191         Use op_prio and op_code_prio to determine if () should be
20192         printed around operand(s) or not.
20193
20194         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
20195         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
20196         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
20197         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
20198         pp_character instead of pp_string for single letter printing.
20199
20200 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
20201
20202         * doc/extend.texi: Fix '#pragma GCC option' typo.
20203
20204 2009-01-02  Richard Guenther  <rguenther@suse.de>
20205
20206         * doc/install.texi (--enable-checking): Mention different
20207         default for stage1.
20208         (--enable-stage1-checking): Document.
20209
20210 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
20211
20212         PR middle-end/30142
20213         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
20214         case to be an error.
20215
20216 2009-01-02  Ben Elliston  <bje@au.ibm.com>
20217
20218         * config/fp-bit.h (pack_d): Constify argument.
20219         * config/fp-bit.c (makenan): Constify return type. Remove casts.
20220         (isnan): Constify argument.
20221         (isinf): Likewise.
20222         (iszero): Likewise.
20223         (pack_d): Likewise.
20224         (_fpadd_parts): Constify return type.
20225         (_fpmul_parts): Likewise.
20226         (_fpdiv_parts): Likewise.
20227
20228 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
20229
20230         PR c/36489
20231         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
20232         warn about overwriting initializer with side-effects or
20233         -Woverride-init if !IMPLICIT.
20234         (output_init_element): Likewise.  Pass IMPLICIT down to
20235         add_pending_init.
20236         (process_init_element): Add IMPLICIT argument.  Pass it down
20237         to output_init_element.
20238         (push_init_element, pop_init_level, set_designator): Adjust
20239         process_init_element callers.
20240         (set_nonincremental_init, set_nonincremental_init_from_string):
20241         Adjust add_pending_init callers.
20242         (output_pending_init_elements): Adjust output_init_element callers.
20243         * c-tree.h (process_init_element): Adjust prototype.
20244         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
20245         process_init_element callers.
20246
20247 \f
20248 Copyright (C) 2009 Free Software Foundation, Inc.
20249
20250 Copying and distribution of this file, with or without modification,
20251 are permitted in any medium without royalty provided the copyright
20252 notice and this notice are preserved.