OSDN Git Service

cp/:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-25  Ian Lance Taylor  <iant@google.com>
2
3         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
4         (Link Options): Document -static-libstdc++.
5
6 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7
8         PR target/38731
9         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
10         DATA_ALIGNMENT instead.
11
12 2009-06-25  Richard Guenther  <rguenther@suse.de>
13
14         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
15         indirect references against the callused/escaped solutions.
16         (call_may_clobber_ref_p_1): Likewise.
17
18 2009-06-25  Martin Jambor  <mjambor@suse.cz>
19
20         PR tree-optimization/40493
21         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
22         (enum unscalarized_data_handling): New type.
23         (handle_unscalarized_data_in_subtree): Return what has been done.
24         (load_assign_lhs_subreplacements): Handle left flushes differently.
25         (sra_modify_assign): Use unscalarized_data_handling, simplified
26         condition determining whether to remove the statement.
27
28 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
29         * doc/plugins.texi (Building GCC plugins): Corrected typo in
30         Makefile excerpt - @ should be doubled for texinfo.
31
32 2009-06-24  Ian Lance Taylor  <iant@google.com>
33
34         * config/arc/arc.c: Include "df.h".
35         (arc_attribute_table): Make static.  Move higher in file.
36         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
37         (output_shift): Initialize n later to avoid warning.
38         * config/arm/arm.c (arm_attribute_table): Make static.  Move
39         higher in file.
40         * config/avr/avr.c (avr_attribute_table): Make static.  Move
41         higher in file.
42         (reg_class_tab): Change array type from int to enum reg_class.
43         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
44         LABEL_REF.
45         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
46         (lshrhi3_out): Likewise.
47         (class_likely_spilled_p): Change return type to bool.
48         (avr_rtx_costs): Use local code variable with enum type.
49         * config/avr/avr.md (movmemhi): Use add_reg_note.
50         (andhi3, andsi3): Don't use AS2 with "and".
51         (iorhi3, iorsi3): Don't use AS2 with "or".
52         * config/avr/avr-protos.h (class_likely_spilled_p): Update
53         declaration.
54         * config/crx/crx.c: Include "df.h".
55         (crx_attribute_table): Make static.
56         * config/m32r/m32r.c: Include "df.h".
57         (m32r_attribute_table): Make static.  Move higher in file.
58         (pop): Use add_reg_note.
59         (block_move_call): Change 0 to LCT_NORMAL in function call.
60         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
61         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
62         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
63         declare, not just when TREE_CODE is defined.
64         * config/m68hc11/m68hc11.c: Include "expr.h".
65         (m68hc11_attribute_table): Make static.  Move higher in file.
66         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
67         function call.
68         (m68hc11_register_indirect_p): Likewise.
69         (m68hc11_function_arg_padding): Change return type to enum
70         direction.
71         (emit_move_after_reload): Use add_reg_note.
72         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
73         (m68hc11_split_logical): Likewise.
74         (m68hc11_rtx_costs): Add local code_and outer_code variables with
75         enum type.
76         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
77         to VOIDmode in function call.
78         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
79         tree is defined.
80         (m68hc11_split_logical): Update declaration.
81         (m68hc11_function_arg_padding): Update declaration.
82         * config/mcore/mcore.c (regno_reg_class): Change form array of int
83         to array of enum reg_class.
84         (mcore_attribute_table): Make static.  Move higher in file.
85         (mcore_rtx_costs): Add cast to enum type.
86         * config/mcore/mcore.h (regno_reg_class): Update declaration.
87         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
88         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
89         in file.
90         * config/sh/predicates.md (trapping_target_operand): Rename and to
91         and_expr.
92         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
93         higher in file.
94         * config/spu/spu.c (spu_attribute_table): Make static.  Move
95         higher in file.
96         * config/v850/v850.c (v850_attribute_table): Make static.  Move
97         higher in file.
98         (v850_rtx_costs): Use local code with enum type.
99         (expand_epilogue): Add cast.
100         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
101
102 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
103
104         PR target/40515
105         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
106         -m2a-single-only and -m2a-nofpu.
107         * config/sh/sh.opt: Document m2a generates FPU code.  
108
109 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
110
111         * defaults.h (CAN_ELIMINATE): Provide default.
112         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
113         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
114         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
115         * config/spu/spu.h (CAN_ELIMINATE): Delete.
116         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
117         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
118         * config/cris/cris.h (CAN_ELIMINATE): Delete.
119         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
120         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
121         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
122
123 2009-06-24  DJ Delorie  <dj@redhat.com>
124
125         * mep-ext-cop.cpu: Fix copyright notice.
126         * mep-default: Fix copyright notice.
127         * mep-core: Fix copyright notice.
128         * mep: Fix copyright notice.
129         * mep-ivc2: Fix copyright notice.
130         * mep-c5: Fix copyright notice.
131
132 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
133
134         * doc/contrib.texi (Contributors): 
135
136 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
137         
138         PR middle-end/40501
139         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
140         src and dst operands if necessary.
141
142 2009-06-23  DJ Delorie  <dj@redhat.com>
143
144         Add MeP port.
145         * config.gcc: Add mep support.
146         * recog.c: Resurrect validate_replace_rtx_subexp().
147         * recog.h: Likewise.
148         * config/mep/: Add new port:
149         * config/mep/constraints.md: New file.
150         * config/mep/default.h: New file.
151         * config/mep/intrinsics.h: New file.
152         * config/mep/intrinsics.md: New file.
153         * config/mep/ivc2-template.h: New file.
154         * config/mep/mep-c5.cpu: New file.
155         * config/mep/mep-core.cpu: New file.
156         * config/mep/mep-default.cpu: New file.
157         * config/mep/mep-ext-cop.cpu: New file.
158         * config/mep/mep-intrin.h: New file.
159         * config/mep/mep-ivc2.cpu: New file.
160         * config/mep/mep-lib1.asm: New file.
161         * config/mep/mep-lib2.c: New file.
162         * config/mep/mep-pragma.c: New file.
163         * config/mep/mep-protos.h: New file.
164         * config/mep/mep-tramp.c: New file.
165         * config/mep/mep.c: New file.
166         * config/mep/mep.cpu: New file.
167         * config/mep/mep.h: New file.
168         * config/mep/mep.md: New file.
169         * config/mep/mep.opt: New file.
170         * config/mep/predicates.md: New file.
171         * config/mep/t-mep: New file.
172
173 2009-06-23  Ian Lance Taylor  <iant@google.com>
174
175         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
176         from loose_warn into c_loose_warn and from strict_warn into
177         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
178         --enable-build-with-cxx.  Set and substitute
179         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
180         * Makefile.in (CXXFLAGS): New variable.
181         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
182         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
183         the default is the same as $(STRICT_WARN).
184         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
185         (CXX): New variable.
186         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
187         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
188         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
189         (HOST_LIBS): New variable.
190         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
191         (ALL_CXXFLAGS): New variable.
192         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
193         * doc/install.texi (Configuration): Document
194         --enable-build-with-cxx, --with-stage1-ldflags,
195         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
196         * configure: Rebuild.
197
198 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
199
200         * config/arm/arm.c (arm_override_options): Fix braces and formatting
201         from previous commit.
202
203 2009-06-23  Ian Lance Taylor  <iant@google.com>
204
205         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
206
207 2009-06-23  Ian Lance Taylor  <iant@google.com>
208
209         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
210         with ATTRIBUTE_UNUSED.
211
212 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
213             Pat Haugen  <pthaugen@us.ibm.com>
214             Revital Eres  <eres@il.ibm.com>
215
216         * config.in (HAVE_AS_POPCNTD): Add default definition.
217         (HAVE_AS_LWSYNC): Ditto.
218
219         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
220         release number.
221         (gcc_cv_as_powerpc_cmpb): Ditto.
222         (gcc_cv_as_powerpc_dfp): Ditto.
223         (gcc_cv_as_powerpc_vsx): Ditto.
224         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
225         supporting the popcntd/lwsync instructions.
226         (gcc_cv_as_powerpc_lwsync): Ditto.
227         * configure: Regenerate.
228
229         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
230         -mcpu=native and -mcpu=power7.
231         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
232
233         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
234         a variable instead of a mask to reduce the number of mask bits.
235         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
236         (-mbit-word): Ditto.
237         (-mregnames): Ditto.
238         * config/rs6000/rs6000.opt (-mupdate): Ditto.
239         (-mfused-madd): Ditto.
240
241         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
242         2.06 instructions.
243         (-mvsx): New switch for VSX instructions.
244         (-misel): Move from a variable to a mask to allow it to be set by
245         -mcpu=.
246
247         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
248         function declaration to an array declaration.
249         (rs6000_hard_regno_nregs): New external array declaration.
250
251         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
252         files included by rs6000.md.
253
254         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
255         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
256
257         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
258         a target mask.
259         (rs6000_debug_reg): New -mdebug= variables.
260         (rs6000_debug_addr): Ditto.
261         (rs6000_debug_cost): Ditto.
262         (rs6000_pmode): New variable to hold Pmode.
263         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
264         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
265         calculated at compiler start.
266         (rs6000_hard_regno_nregs): Change function to an array which holds
267         HARD_REGNO_NREGS calculated at compiler start.
268         (rs6000_explicit_options): Delete isel field.
269         (rs6000_vector_unit): New array to hold which vector unit
270         supports arithmetic options for a given type.
271         (rs6000_vector_mem): New array to hold which vector unit supports
272         memory reference operations for a given type.
273         (rs6000_vector_align): New array to given the alignment of each
274         vector type.
275         (power7_cost): New basic costs for power7.
276         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
277         (rs6000_hard_regno_nregs_internal): New function, moved from
278         HARD_REGNO_NREGS, to calculate the number of registers each hard
279         register takes for each type.
280         (rs6000_debug_reg_print): New function for -mdebug=reg support.
281         (rs6000_debug_vector_unit): New array, map rs6000_vector to
282         string.
283         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
284         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
285         unit information here so it is calculated once at compiler startup
286         time.
287         (rs6000_override_options): Make -misel a target mask.  Add more
288         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
289         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
290         -mdebug=cost.
291         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
292         (rs6000_handle_option): Move -misel from variable to target mask.
293         (rs6000_builtin_mask_for_load): Add VSX support.
294         (rs6000_conditional_register_usage): Ditto.
295         (USE_ALTIVEC_FOR_ARG_P): Ditto.
296         (function_arg_boundary): Ditto.
297         (rs6000_expand_builtin): Ditto.
298         (def_builtin): Make abort message a little friendlier.
299         (rs6000_emit_int_cmove): Add support for 64-bit isel.
300
301         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
302         assembler support the popcntd instruction instead of a vsx
303         instruction to enable power7 support.
304         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
305         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
306         option to the assembler if -mcpu=native.
307         (ASM_CPU_NATIVE_SPEC): Ditto.
308         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
309         ISA 2.06 features.
310         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
311         the lwsync instruction.
312         (enum processor_type): Add PROCESSOR_POWER7.
313         (rs6000_debug_reg): New -mdebug= options.
314         (rs6000_debug_addr): Ditto.
315         (rs6000_debug_cost): Ditto.
316         (rs6000_isel): Delete.
317         (enum rs6000_vector): New enum to say what vector unit we have.
318         (VECTOR_UNIT_*): New macros to say which vector unit has
319         arithmetic operations for a given type.
320         (VECTOR_MEM_*): New macros to say which vector unit has memory
321         operations for a given type.
322         (TARGET_LDBRX): Whether the machine supports the ldbrx
323         instruction.
324         (TARGET_ISEL): Delete, -misel moved to be a mask.
325         (TARGET_ISEL64): New macro for 64-bit isel support.
326         (UNITS_PER_VSX_WORD): New macro.
327         (POINTER_SIZE): Move to be an external variable, rather than
328         calculating whether we are generating 32 ot 64-bit code.
329         (Pmode): Ditto.
330         (STACK_BOUNDARY): Add VSX support.
331         (LOCAL_ALIGNMENT): Ditto.
332         (SLOW_UNALIGNED_ACCESS): Ditto.
333         (VSX_REGNO_P): New macro for VSX support.
334         (VFLOAT_REGNO_P): Ditto.
335         (VINT_REGNO_P): Ditto.
336         (VLOGICAL_REGNO_P): Ditto.
337         (VSX_VECTOR_MODE): Ditto.
338         (VSX_SCALAR_MODE): Ditto.
339         (VSX_MODE): Ditto.
340         (VSX_MOVE_MODE): Ditto.
341         (VSX_REG_CLASS_P): Ditto.
342         (HARD_REGNO_NREGS): Instead of calling a function, use an array
343         lookup.
344         (UNITS_PER_SIMD_WORD): Add VSX support.
345         (MODES_TIEABLE_P): Ditto.
346         (STARTING_FRAME_OFFSET): Ditto.
347         (STACK_DYNAMIC_OFFSET): Ditto.
348         (EPILOGUE_USES): Ditto.
349         (REGNO_REG_CLASS): Move to array lookup.
350         (CLASS_MAX_NREGS): Ditto.
351         (rs6000_vector_reg_class): Add declaration.
352         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
353         overlap with the floating point and Altivec registers.
354
355         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
356
357         * config/rs6000/driver-rs6000.c (asm_names): New static array to
358         give the appropriate asm switches if -mcpu=native.
359         (host_detect_local_cpu): Add support for "asm".
360         (host_detect_local_cpu): Follow GNU code guidelines for name.
361
362         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
363         -mbit-word to a variable instead of being a target mask.
364
365         * config/rs6000/sync.md (lwsync): If the assembler supports it,
366         emit the lwsync instruction instead of emitting the instruction as
367         an integer constant.
368
369         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
370         fixuns_trundfsi2, move expander into rs6000.md.
371
372         * config/rs6000/rs6000.md (cpu): Add power7.
373         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
374         (logical predicate patterns): Change the single instruction
375         primitives that set CR0 to be fast_compare instead of compare.
376         (norsi*): Ditto.
377         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
378         (popcntddi2): Ditto.
379         (popcount<mode>): Ditto.
380         (floating multiply/add insns): Name the floating point
381         multiply/add insns.
382         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
383         (isel_unsigned_<mode>): Ditto.
384         (fixuns_trundfsi2): Move expander here from spe.md.
385         (smindi3): Define if we have -misel on 64-bit systems.
386         (smaxdi3): Ditto.
387         (umindi3): Ditto.
388         (umaxdi3): Ditto.
389
390 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
391
392         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
393         extra_objs.
394         * config/avr/avr.c (avr_current_device): New variable.
395         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
396         (avr_arch, mcu_type_s): Move to avr.h.
397         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
398         default_data_section_start fields.
399         (avr_arch): Moved from avr.c.
400         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
401         library_name fields.
402         (avr_current_device, avr_mcu_types, avr_arch_types,
403         avr_device_to_arch, avr_device_to_data_start,
404         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
405         (EXTRA_SPEC_FUNCTIONS): Define.
406         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
407         options mapping. Use device_to_arch and device_to_data_start insted.
408         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
409         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
410         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
411         * config/avr/driver-avr.c: New file.
412         * config/avr/avr-devices.c: New file.
413
414 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
415
416         * var-tracking.c (unshare_variable): Force initialized to
417         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
418         (set_variable_part): Likewise.
419         (struct variable_union_info): Remove pos_src field.
420         (vui_vec, vui_allocated): New variables.
421         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
422         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
423         == 1 use a simpler sorting algorithm.  Compute pos field right
424         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
425         Avoid quadratic comparison if !flag_var_tracking_uninit.
426         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
427         unshare_variable unconditionally.   
428         (dataflow_set_different_2): Removed.
429         (dataflow_set_different): Don't traverse second hash table.
430         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
431         unconditionally to var_reg_set or var_mem_set.
432         (emit_notes_in_bb): Likewise.
433         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
434         unshare_variable.
435         (emit_note_insn_var_location): Don't set initialized to
436         VAR_INIT_STATUS_INITIALIZED early.
437         (vt_finalize): Free vui_vec if needed, clear vui_vec and
438         vui_allocated.
439         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
440
441         * tree-object-size.c (addr_object_size): Instead of checking
442         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
443         are no FIELD_DECLs following it.
444
445 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
446
447         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
448         order to match bswaps with signed source operands.
449
450 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
451
452         * sdbout.c (sdbout_one_type): Fix braces in switch.
453
454 2009-06-23  Richard Guenther  <rguenther@suse.de>
455
456         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
457         member.
458         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
459         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
460         var_callused, callused_tree, var_storedanything, storedanything_tree,
461         var_integer, integer_tree): Remove global variables.
462         (new_var_info): Do not pass new id, append the new var to the
463         global variable vector.
464         (do_ds_constraint): Use is_global_var member of the variable-info.
465         (new_scalar_tmp_constraint_exp): Adjust.
466         (create_function_info_for): Likewise.
467         (create_variable_info_for): Likewise.
468         (find_what_var_points_to): Remove dead code.
469         (init_base_vars): Simplify.
470         (compute_points_to_sets): Adjust.
471
472 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
473
474         * combine.c (try_combine): Dump information about the insns we're
475         combining.
476
477 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
478
479         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
480         check when calling force_to_mode on TRUNCATE's operand.
481
482 2009-06-22  Ian Lance Taylor  <iant@google.com>
483
484         * config/rs6000/rs6000.opt: Move msched-epilog before
485         msched-prolog.
486
487 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
488
489         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
490
491 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
492
493         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
494         override library linkage flags such as -static-libgcc or
495         -shared-libgcc.
496
497 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
498
499         * config/m68k/m68k-devices.def: Add line for MCF5221x.
500
501 2009-06-22  Ian Lance Taylor  <iant@google.com>
502
503         * config/linux.opt: Put mglibc ahead of muclibc.
504
505         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
506         for duplicate decls.
507
508 2009-06-22  Matthias Klose  <doko@ubuntu.com>
509
510         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
511
512 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
513
514         PR objc/28050
515         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
516         instead of NULL if a parser error occurs.
517
518 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
519
520         * dwarf2out.c (dwarf2_debug_hooks): Initialize
521         non-DWARF2_DEBUGGING_INFO version.
522
523 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
524
525         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
526         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
527
528         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
529         (LIBGCC2_TF_CEXT): Define.
530         (TF_SIZE): Define.
531
532 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
533
534         PR target/40463
535         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
536
537 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
538
539         * config/arm/arm.c (arm_override_options): Disable
540         -mcaller-super-interworking and -mcallee-super-interworking.
541         * doc/invoke.texi (ARM Options): Document this.
542
543 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
544
545         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
546         * config/arm/constraints.md (j): New constraint for movw operands.
547         (N): Remove thumb2 meaning.
548         * config/arm/arm.md (*arm_movw): Delete.
549         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
550         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
551         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
552
553 2009-06-22  Martin Jambor  <mjambor@suse.cz>
554
555         PR tree-optimization/40492
556         * tree-sra.c (sra_modify_assign): Pass zero offsets to
557         build_ref_for_offset.
558
559 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
560
561         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
562         JUMP_TABLE_DATA_P predicates where applicable.
563         * auto-inc-dec.c: Ditto.
564         * builtins.c: Ditto.
565         * caller-save.c: Ditto.
566         * calls.c: Ditto.
567         * cfgcleanup.c: Ditto.
568         * cfglayout.c: Ditto.
569         * cfgrtl.c: Ditto.
570         * combine.c: Ditto.
571         * combine-stack-adj.c: Ditto.
572         * cse.c: Ditto.
573         * cselib.c: Ditto.
574         * dbxout.c: Ditto.
575         * df-scan.c: Ditto.
576         * dse.c: Ditto.
577         * dwarf2asm.c: Ditto.
578         * dwarf2out.c: Ditto.
579         * emit-rtl.c: Ditto.
580         * except.c: Ditto.
581         * explow.c: Ditto.
582         * expmed.c: Ditto.
583         * expr.c: Ditto.
584         * final.c: Ditto.
585         * function.c: Ditto.
586         * fwprop.c: Ditto.
587         * gcse.c: Ditto.
588         * genpreds.c: Ditto.
589         * genrecog.c: Ditto.
590         * ifcvt.c: Ditto.
591         * ira-costs.c: Ditto.
592         * ira-lives.c: Ditto.
593         * jump.c: Ditto.
594         * loop-iv.c: Ditto.
595         * lower-subreg.c: Ditto.
596         * modulo-sched.c: Ditto.
597         * optabs.c: Ditto.
598         * postreload.c: Ditto.
599         * print-rtl.c: Ditto.
600         * recog.c: Ditto.
601         * reginfo.c: Ditto.
602         * regmove.c: Ditto.
603         * reload1.c: Ditto.
604         * reload.c: Ditto.
605         * reorg.c: Ditto.
606         * rtlanal.c: Ditto.
607         * rtl.c: Ditto.
608         * sched-vis.c: Ditto.
609         * sdbout.c: Ditto.
610         * sel-sched-ir.c: Ditto.
611         * simplify-rtx.c: Ditto.
612         * targhooks.c: Ditto.
613         * var-tracking.c: Ditto.
614         * vmsdbgout.c: Ditto.
615
616 2009-06-22  Matthias Klose  <doko@ubuntu.com>
617
618         * Makefile.in (install-plugin): Always use DESTDIR.
619
620 2009-06-22  Olivier Hainque  <hainque@adacore.com>
621         
622         * config/pa/pa.c (output_call): Don't optimize post call jumps
623         into return address adjustments if the call may throw.
624
625 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
626
627         * arm.c (thumb1_output_casesi): New function.
628         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
629         optimizing for size or PIC.
630         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
631         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
632         (casesi): Handle Thumb-1 when optimizing for size or PIC.
633         (thumb1_casesi_internal_pic): New expand rule.
634         (thumb1_casesi_dispatch): New pattern.
635         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
636         thumb-1 mode.
637         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
638         in the text seciton when PIC or optimizing for size.
639         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
640         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
641         preservation properties of code.
642         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
643         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
644         (__gnu_thumb1_case_si): New function.
645         * t-arm (LIB1ASMSRC): Define here.
646         (LIB1ASMFUNCS): Add some common functions.
647         * t-arm-elf (LIB1ASMSRC): Delete.
648         (LIB1ASMFUNCS): Append to existing set.
649         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
650         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
651         * t-symbian (LIB1ASMFUNCS): Likewise.
652         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
653         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
654
655 2009-06-21  Richard Guenther  <rguenther@suse.de>
656
657         PR tree-optimization/38729
658         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
659         to loops with a single exit if -fno-expensive-optimizations.
660
661 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
662
663         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
664         (dataflow_set): Change vars type from htab_t to shared_hash.
665         (shared_hash_pool, empty_shared_hash): New variables.
666         (vars_clear): Removed.
667         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
668         shared_hash_find_slot_unshare, shared_hash_find_slot,
669         shared_hash_find_slot_noinsert, shared_hash_find): New
670         static inlines.
671         (shared_hash_unshare, shared_hash_destroy): New functions.
672         (unshare_variable): Unshare set->vars if shared, use
673         shared_hash_htab.
674         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
675         (get_init_value, find_src_set_src, dump_dataflow_set,
676         clobber_variable_part, emit_notes_for_differences): Use
677         shared_hash_htab.
678         (dataflow_set_init): Remove second argument, set vars to
679         empty_shared_hash instead of creating a new htab.
680         (dataflow_set_clear): Call shared_hash_destroy and set vars
681         to empty_shared_hash instead of calling vars_clear.
682         (dataflow_set_copy): Don't call vars_copy, instead just share
683         the src htab with dst.
684         (variable_union): Use shared_hash_*, use initially NO_INSERT
685         lookup if set->vars is shared.  Don't keep slot cleared before
686         calling unshare_variable.  Unshare set->vars if needed.
687         Even ->refcount == 1 vars must be unshared if set->vars is shared
688         and var needs to be modified.
689         (variable_canonicalize): New function.
690         (dataflow_set_union): If dst->vars is empty, just share src->vars
691         with dst->vars and traverse with variable_canonicalize to canonicalize
692         and unshare what is needed.
693         (dataflow_set_different): If old_set and new_set use the same shared
694         htab, they aren't different.  If number of htab elements is different,
695         htabs are different.  Use shared_hash_*.
696         (dataflow_set_destroy): Call shared_hash_destroy instead of
697         htab_delete.
698         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
699         second argument to dataflow_set_init.
700         (vt_initialize): Likewise.  Initialize shared_hash_pool and
701         empty_shared_hash, move bb in/out initialization afterwards.
702         Use variable_htab_free instead of NULL as changed_variables del hook.
703         (variable_was_changed): Change type of second argument to pointer to
704         dataflow_set.  When inserting var into changed_variables, bump
705         refcount.  Unshare set->vars if set is shared htab and slot needs to
706         be cleared.
707         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
708         lookup if set->vars is shared.  Unshare set->vars if needed.
709         Even ->refcount == 1 vars must be unshared if set->vars is shared
710         and var needs to be modified.  Adjust variable_was_changed caller.
711         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
712         vars must be unshared if set->vars is shared and var needs to be
713         modified.  Adjust variable_was_changed caller.
714         (emit_note_insn_var_location): Don't pool_free var.
715         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
716         instead of 1.
717         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
718         free_alloc_pool on shared_hash_pool.
719
720 2009-06-20  Anthony Green  <green@moxielogic.com>
721
722         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
723         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
724
725 2009-06-20  Richard Guenther  <rguenther@suse.de>
726
727         * tree-ssa-structalias.c (find_func_aliases): For memset use
728         a constraint from NULL if we memset to zero.
729         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
730         we explicitly handle that do not read from memory.
731         (call_may_clobber_ref_p_1): Properly handle builtins that may
732         set errno.
733
734 2009-06-20  Richard Guenther  <rguenther@suse.de>
735
736         PR tree-optimization/40495
737         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
738         (new_scalar_tmp_constraint_exp): New function.
739         (process_constraint): Do not create temporary decls.
740         (process_all_all_constraints): Likewise.
741         (handle_const_call): Likewise.
742         (create_function_info_for): Do not set decl.
743
744 2009-06-19  Ian Lance Taylor  <iant@google.com>
745
746         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
747         (rs6000_attribute_table): Make static; move before use.
748
749 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
750
751         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
752         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
753         Propagate the TREE_READONLY flag without overwriting it.
754         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
755         Propagate the TREE_READONLY flag onto the result.
756         (process_call_operands): Move around.  Use correct constant value.
757
758 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
759
760         PR target/40482
761         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
762         32 bits.
763         * config/arm/arm.md: Likewise.
764
765 2009-06-19  Ian Lance Taylor  <iant@google.com>
766
767         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
768         to GIMPLE_ERROR_MARK.
769
770         * c-typeck.c (build_conditional_expr): Add op1_original_type and
771         op2_original_type parameters.  Warn about using different enum
772         types.
773         * c-parser.c (c_parser_conditional_expression): Pass original
774         types to build_conditional_expr.
775         * c-tree.h (build_conditional_expr): Update declaration.
776
777 2009-06-19  Ian Lance Taylor  <iant@google.com>
778
779         * config/i386/i386.c (ix86_function_specific_save): Test that
780         fields match values, rather than testing the values are in a
781         certain range.
782
783 2009-06-19  Richard Guenther  <rguenther@suse.de>
784
785         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
786         ADDR_EXPR pointers.
787         (ptr_derefs_may_alias_p): Likewise.
788         (ptr_deref_may_alias_ref_p_1): New function.
789         (ptr_deref_may_alias_ref_p): Likewise.
790         (ref_maybe_used_by_call_p_1): Handle builtins that are not
791         covered by looking at the ESCAPED solution.
792         (call_may_clobber_ref_p_1): Likewise.
793         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
794         Handle NULL_TREE offset.  Do not produce redundant constraints.
795         (process_all_all_constraints): New helper function.
796         (do_structure_copy): Use it.
797         (handle_lhs_call): Likewise.
798         (find_func_aliases): Handle some builtins with pointer arguments
799         and/or return values explicitly.
800
801 2009-06-19  Ian Lance Taylor  <iant@google.com>
802
803         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
804
805 2009-06-19  Ian Lance Taylor  <iant@google.com>
806
807         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
808
809 2009-06-19  Ian Lance Taylor  <iant@google.com>
810
811         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
812         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
813         version.
814
815         * c-decl.c (finish_decl): If -Wc++-compat, warn about
816         uninitialized const.
817
818 2009-06-19  Ian Lance Taylor  <iant@google.com>
819
820         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
821         all uses.
822
823         * c-decl.c (in_struct, struct_types): Remove.
824         (struct c_binding): Add in_struct field.
825         (c_binding_ptr): Define type, along with VEC.
826         (struct c_struct_parse_info): Define.
827         (struct_parse_info): New static variable.
828         (bind): Initialize in_struct field.
829         (start_struct): Remove enclosing_in_struct and
830         enclosing_struct_types parameters.  Add
831         enclosing_struct_parse_info parameter.  Change all callers.  Set
832         struct_parse_info rather than in_struct and struct_types.
833         (grokfield): If -Wc++-compat and there is a symbol binding for the
834         field name, set the in_struct flag and push it on the
835         struct_parse_info->fields vector.
836         (warn_cxx_compat_finish_struct): New static function.
837         (finish_struct): Remove enclosing_in_struct and
838         enclosing_struct_types parameters.  Add
839         enclosing_struct_parse_info parameter.  Change all callers.  Don't
840         set C_TYPE_DEFINED_IN_STRUCT here.  Call
841         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
842         parameter.  Only push on struct_types if warn_cxx_compat.
843         (finish_enum): Only push on struct_types if warn_cxx_compat.
844         (declspecs_add_type): Add loc parameter.  Change all callers.
845         Change all error calls to error_at.  Pass loc, not input_location,
846         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
847         defined in a struct.  If -Wc++-compat and parsing a struct, record
848         that a typedef name was used.
849         * c-parser.c (c_parser_declspecs): Get location to pass to
850         declspecs_add_type.
851         (c_parser_struct_or_union_specifier): Update calls to start_struct
852         and finish_struct.
853         * c-tree.h (struct c_struct_parse_info): Declare.
854         (finish_struct, start_struct): Update declarations.
855         (declspecs_add_type): Update declaration.
856
857 2009-06-19  Ian Lance Taylor  <iant@google.com>
858
859         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
860         variable with an anonymous type.
861
862 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
863
864         * see.c: Remove for real.
865
866 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
867
868         * optabs.h (enum optab_index): Add new OTI_significand.
869         (significand_optab): Define corresponding macro.
870         * optabs.c (init_optabs): Initialize significand_optab.
871         * genopinit.c (optabs): Implement significand_optab using
872         significand?f2 patterns.
873         * builtins.c (expand_builtin_mathfn): Handle
874         BUILT_IN_SIGNIFICAND{,F,L}.
875         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
876         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
877
878         * config/i386/i386.md (significandxf2, significand<mode>2): New
879         expanders to implement significandf, significand and significandl
880         built-ins as inline x87 intrinsics.
881
882 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
883
884         * config/avr/avr.c (avr_override_options): Remove setting value of
885         PARAM_INLINE_CALL_COST.
886
887 2009-06-18  Richard Henderson  <rth@redhat.com>
888
889         PR 40488
890         * tree-pass.h (TDF_ASMNAME): New.
891         * tree-dump.c (dump_options): Add asmname.
892         * doc/invoke.texi: Document it.
893
894         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
895         (dump_decl_name): ...here.
896         (dump_function_name): New flags arg; mind TDF_ASMNAME.
897         (dump_generic_node): Update dump_function_name calls.
898         (print_call_name): New flags arg; update all dump calls.
899         * diagnostic.h (print_call_name): Update.
900         * gimple-pretty-print.c (dump_gimple_call): Update.
901
902 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
903
904         PR target/40470
905         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
906
907 2009-06-18  Diego Novillo  <dnovillo@google.com>
908
909         * doc/plugins.texi: Document plugin_is_GPL_compatible.
910         * plugin.c (str_license): Declare.
911         (try_init_one_plugin): Assert that the symbol
912         'plugin_is_GPL_compatible' exists.
913
914 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
915
916         * see.c: Remove.
917         * Makefile.in (OBJS-common): Remove see.o.
918         (see.o): Remove.
919         * common.opt (fsee): Mark as preserved for backward compatibility.
920         * opts.c (common_handle_option): Add OPT_fsee to the backward 
921         compatibility section.
922         * passes.c (init_optimization_passes, pass_see): Remove pass.
923         * timevar.def (TV_SEE): Remove.
924         * tree-pass.h (pass_see): Remove declaration.
925         * doc/invoke.texi (-fsee): Remove documentation.
926         
927 2009-06-18  Martin Jambor  <mjambor@suse.cz>
928
929         * tree-sra.c: Include statistics.h
930         (sra_stats): New variable.
931         (sra_initialize): Clear sra_stats.
932         (create_access_replacement): Increment sra_stats.replacements.
933         (get_access_replacement): Do not return twice.
934         (analyze_all_variable_accesses): Increment statistics counter by the
935         number of scalarized aggregates.
936         (generate_subtree_copies): Increment sra_stats.subtree_copies.
937         (sra_modify_expr): Increment sra_stats.exprs.
938         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
939         (sra_modify_assign): Increment sra_stats.exprs,
940         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
941         (perform_intra_sra): Update statistics counters.
942         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
943
944 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
945
946         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
947         (arm_scalar_mode_supported_p): New function.
948
949 2009-06-18  Paul Brook  <paul@codesourcery.com>
950             Sandra Loosemore  <sandra@codesourcery.com>
951
952         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
953         (__extendhfsf2, __truncsfhf2): Define.
954         * config/arm/fp16.c: New file.
955         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
956         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
957
958 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
959
960         * doc/extend.texi (Half-Precision): New section.
961         * doc/invoke.texi (Option Summary): List -mfp16-format.
962         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
963         * config/arm/arm.opt (mfp16-format=): New.
964         * config/arm/arm.c: Include intl.h.
965         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
966         (TARGET_INVALID_RETURN_TYPE): Redefine.
967         (TARGET_PROMOTED_TYPE): Redefine.
968         (TARGET_CONVERT_TO_TYPE): Redefine.
969         (arm_fp16_format): Define.
970         (all_fpus): Add entry for neon-fp16.
971         (fp_model_for_fpu): Likewise.
972         (struct fp16_format): Declare.
973         (all_fp16_formats): Define.
974         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
975         functions.
976         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
977         and no ldrh.
978         (arm_legitimate_index_p): Treat HFmode like HImode.
979         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
980         (coproc_secondary_reload_class): Special-case HFmode.
981         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
982         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
983         (arm_init_fp16_builtins): New.
984         (arm_init_builtins): Call it.
985         (arm_invalid_parameter_type): New.
986         (arm_invalid_return_type): New.
987         (arm_promoted_type): New.
988         (arm_convert_to_type).
989         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
990         format.
991         (arm_emit_fp16_const): New function.
992         (arm_mangle_type): Mangle __fp16 as "Dh".
993         * config/arm/arm.h (TARGET_VFPD32): Make it know about
994         FPUTYPE_NEON_FP16.
995         (TARGET_NEON_FP16): New.
996         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
997         (enum fputype): Add FPUTYPE_NEON_FP16.
998         (enum arm_fp16_format_type): Declare.
999         (arm_fp16_format): Declare.
1000         (LARGEST_EXPONENT_IS_NORMAL): Define.
1001         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
1002         * config/arm/arm-modes.def (HFmode): Define.
1003         * config/arm/vfp.md: (*movhf_vfp): New.
1004         (extendhfsf2): New.
1005         (truncsfhf2): New.
1006         * config/arm/arm.md: (fpu): Add neon_fp16.
1007         (floatsihf2, floatdihf2): New.
1008         (fix_trunchfsi2, fix_trunchfdi2): New.
1009         (truncdfhf2): New.
1010         (extendhfdf2): New.
1011         (movhf): New.
1012         (*arm32_movhf): New.
1013         (*thumb1_movhf): New.
1014         (consttable_2): Add check for HFmode constants.
1015         (consttable_4): Handle HFmode constants.
1016
1017 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
1018
1019         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
1020
1021 2009-06-17  Olivier Hainque  <hainque@adacore.com>
1022
1023         * collect2.c (main): Use CONST_CAST2 to perform char ** to
1024         const char ** conversion in AIX specific section.
1025         
1026 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
1027
1028         * config/i386/i386.c (ix86_special_builtin_type): Remove
1029         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
1030         (bdesc_special_args): Updated.
1031         (ix86_init_mmx_sse_builtins): Likewise.
1032         (ix86_expand_special_args_builtin): Likewise.
1033
1034 2009-06-17  Richard Henderson  <rth@redhat.com>
1035
1036         * tree-pretty-print.c (maybe_dump_asm_name): New.
1037         (dump_decl_name): Use it.
1038         (PRINT_FUNCTION_NAME): Merge into...
1039         (dump_function_name): ... here.  Use maybe_dump_asm_name.
1040
1041 2009-06-17  Cary Coutant  <ccoutant@google.com>
1042
1043         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
1044         Change caller.
1045         * debug.c (struct gcc_debug_hooks): Change placeholder for
1046         source_line hook.
1047         (debug_nothing_int_charstar_int): Replaced by...
1048         (debug_nothing_int_charstar_int_bool): ...this.
1049         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
1050         source_line prototype.
1051         (debug_nothing_int_charstar_int): Replaced by...
1052         (debug_nothing_int_charstar_int_bool): ...this.
1053         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
1054         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
1055         Output is_stmt operand when necessary.
1056         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
1057         (notice_source_line): Add is_stmt parameter.
1058         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
1059         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
1060         Change callers.
1061         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
1062         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
1063
1064 2009-06-17  Ian Lance Taylor  <iant@google.com>
1065
1066         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
1067         Change all uses.
1068         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
1069         call uses.
1070
1071 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
1072
1073         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
1074         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
1075         tree_strip_sign_nop_conversions and
1076         tree_ssa_strip_useless_type_conversions rather than stripping
1077         the operations here.
1078         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
1079         Declare them.
1080         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
1081         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
1082         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
1083         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
1084         functions.
1085
1086 2009-06-17  Michael Eager  <eager@eagercon.com>
1087
1088         * config/rs6000/constraints.md (register_constraint "d"): New.
1089         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
1090         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
1091         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
1092         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
1093         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
1094         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
1095         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
1096         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
1097         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
1098         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
1099         __fctiwz): Same.
1100         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
1101         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
1102         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
1103         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
1104         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
1105         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
1106         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
1107         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
1108         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
1109         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
1110         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
1111         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
1112         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
1113         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
1114
1115 2009-06-16  Ian Lance Taylor  <iant@google.com>
1116
1117         * profile.c (total_num_never_executed): Don't define.
1118         (compute_branch_probabilities): Don't count or print
1119         num_never_executed.
1120         (init_branch_prob): Don't set total_num_never_executed.
1121         (end_branch_prob): Don't print total_num_never_executed.
1122
1123 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
1124
1125         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
1126
1127 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
1128
1129         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
1130         (nabstd2_fpr): Same.
1131
1132 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
1133
1134         * expr.c (expand_assignment): Change complex type check.
1135
1136 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
1137
1138         * doc/plugins.texi (Building GCC plugins): Added new section. 
1139
1140 2009-06-17  Ian Lance Taylor  <iant@google.com>
1141
1142         * c-pch.c (get_ident): Don't set size of templ array.
1143         (pch_init): Don't set size of partial_pch array.
1144
1145         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
1146         string constant to intialize an array whose size is the length of
1147         the string.
1148
1149 2009-06-17  Richard Guenther  <rguenther@suse.de>
1150
1151         PR tree-optimization/40389
1152         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
1153         to addressable types.
1154         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
1155
1156 2009-06-17  Richard Guenther  <rguenther@suse.de>
1157
1158         PR middle-end/40460
1159         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
1160         if there is no evolution of left in the loop bail out.
1161         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
1162         chrec_fold_multiply.
1163
1164 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
1165             Janis Johnson  <janis187@us.ibm.com>
1166
1167         PR target/39254
1168         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
1169         for the symbol ref of a constant that is the source of a move
1170         - nor for any other not-obvious-label-ref constants.
1171
1172 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
1173
1174         * plugin.c (position_pass): Skip newly inserted pass during list
1175         traversal to avoid repeated insertion.
1176
1177 2009-06-16  Ian Lance Taylor  <iant@google.com>
1178
1179         * vec.h (VEC_stack_alloc): Define different version if
1180         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
1181         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
1182         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
1183         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
1184
1185 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
1186
1187         * config.gcc (extra_headers): Add ia32intrin.h for x86.
1188
1189         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
1190         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
1191         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
1192         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
1193         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
1194         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1195         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1196         (bdesc_special_args): Add __builtin_ia32_rdtsc and
1197         __builtin_ia32_rdtscp.
1198         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
1199         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
1200         and __builtin_ia32_rorhi.
1201         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
1202         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
1203         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
1204         (ix86_expand_args_builtin): Likewise.
1205         (ix86_expand_special_args_builtin): Likewise.
1206
1207         * config/i386/i386.md (UNSPECV_RDTSCP): New.
1208         (UNSPECV_RDTSC): Likewise.
1209         (UNSPECV_RDPMC): Likewise.
1210         (*bsr): Renamed to ...
1211         (bsr): This
1212         (*bsr_rex64): Renamed to ...
1213         (bsr_rex64): This.
1214         (rdpmc): New.
1215         (*rdpmc): Likewise.
1216         (*rdpmc_rex64): Likewise.
1217         (rdtsc): Likewise.
1218         (*rdtsc): Likewise.
1219         (*rdtsc_rex64): Likewise.
1220         (rdtscp): Likewise.
1221         (*rdtscp): Likewise.
1222         (*rdtscp_rex64): Likewise.
1223
1224         * config/i386/ia32intrin.h: New.
1225
1226         * config/i386/x86intrin.h: Include <ia32intrin.h>.
1227
1228 2009-06-16  Ian Lance Taylor  <iant@google.com>
1229
1230         * ira-build.c (copy_info_to_removed_store_destinations):
1231         Initialize parent_a.
1232
1233 2009-06-16  Ian Lance Taylor  <iant@google.com>
1234
1235         * c-decl.c (grokdeclarator): Change size_varies to bool.
1236
1237 2009-06-16  Ian Lance Taylor  <iant@google.com>
1238
1239         * sel-sched.c: Make forward declarations of move_op_hooks and
1240         fur_hooks explicitly extern.
1241
1242 2009-06-16  Ian Lance Taylor  <iant@google.com>
1243
1244         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
1245         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
1246
1247 2009-06-16  Ian Lance Taylor  <iant@google.com>
1248
1249         * resource.c (mark_referenced_resources): Change
1250         include_delayed_effects parameter to bool.  Change all callers.
1251         (mark_end_of_function_resources): Likewise.
1252         * reorg.c (insn_references_resource_p): Likewise.
1253         (insn_sets_resource_p): Likewise.
1254         * resource.h (mark_referenced_resources): Update declaration.
1255         (mark_end_of_function_resources): Update declaration.
1256
1257 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1258
1259         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
1260
1261 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
1262
1263         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
1264         GCC can bootstrap on AIX with GNU Binutils 2.20.
1265
1266 2009-06-16  Ian Lance Taylor  <iant@google.com>
1267
1268         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
1269
1270 2009-06-16  Ian Lance Taylor  <iant@google.com>
1271
1272         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
1273         inline, not extern inline.
1274         (exact_log2): Likewise.
1275         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
1276         test CLZ_HWI.
1277         (exact_log2): Likewise, but don't test CTZ_HWI.
1278
1279 2009-06-16  Ian Lance Taylor  <iant@google.com>
1280
1281         * bitmap.c (bitmap_clear): Don't declare as inline.
1282         * gimple.c (gimplify_assign): Likewise.
1283         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1284         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
1285         (sched_scan_info): Remove duplicate definition.
1286
1287 2009-06-16  Ian Lance Taylor  <iant@google.com>
1288
1289         * c-common.c (skip_evaluation): Don't define.
1290         (c_inhibit_evaluation_warnings): Define global variable.
1291         (overflow_warning): Check c_inhibit_evaluation_warnings rather
1292         than skip_evaluation.
1293         (convert_and_check, warn_for_div_by_zero): Likewise.
1294         * c-common.h (skip_evaluation): Don't declare.
1295         (c_inhibit_evaluation_warnings): Declare.
1296         * c-parser.c (c_parser_typeof_specifier): Set
1297         c_inhibit_evaluation_warnings rather than skip_evaluation.
1298         (c_parser_conditional_expression): Likewise.
1299         (c_parser_binary_expression): Likewise.
1300         (c_parser_sizeof_expression): Likewise.
1301         (c_parser_alignof_expression): Likewise.
1302         * c-typeck.c (build_indirect_ref): Check
1303         c_inhibit_evaluation_warnings rather than skip_evaluation.
1304         (build_conditional_expr, build_binary_op): Likewise.
1305
1306 2009-06-16  Richard Guenther  <rguenther@suse.de>
1307
1308         * tree-ssa-alias.c (is_escape_site): Remove.
1309         * tree-ssa-alias.h (enum escape_type): Remove.
1310         (is_escape_site): Likewise.
1311         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
1312         via casts and asms without deferring to is_escape_site.
1313
1314 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
1315
1316         PR middle-end/40446
1317         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
1318         use gen_lowpart if op0 has complex mode.
1319
1320 2009-06-16  Richard Guenther  <rguenther@suse.de>
1321
1322         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
1323         variables add them to ESCAPED.
1324         (find_func_aliases): Do not make all indirectly stored values escaped.
1325
1326 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
1327
1328         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
1329         make_decl_one_only.
1330
1331 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1332
1333         PR tree-optimization/40432
1334         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
1335         check whether we need to force gimple register operand.
1336
1337 2009-06-16  Martin Jambor  <mjambor@suse.cz>
1338
1339         PR tree-optimization/40413
1340         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
1341         build_ref_for_offset.
1342         (propagate_subacesses_accross_link): Fix a typo in a comment.
1343
1344 2009-06-16  Ira Rosen  <irar@il.ibm.com>
1345
1346         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
1347         with additional parameter.
1348         * tree-vectorizer.h (enum vect_def_type): Add new value
1349         vect_nested_cycle.
1350         (enum vect_relevant): Add comments.
1351         (vect_is_simple_reduction): Add new argument.
1352         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
1353         Detect nested cycles.
1354         (vect_is_simple_reduction): Update documentation, add an argument to
1355         distinguish inner-loop reduction from nested cycle, detect nested
1356         cycles, fix printings and indentation, don't swap operands in case
1357         of nested cycle.
1358         (get_initial_def_for_reduction): Handle subtraction.
1359         (vect_create_epilog_for_reduction): Add new argument to specify
1360         reduction variable.
1361         (vect_finalize_reduction): Handle subtraction, fix comments.
1362         (vectorizable_reduction): Handle nested cycles. In case of nested
1363         cycle keep track of the reduction variable position. Call 
1364         vect_is_simple_reduction with additional parameter. Use original 
1365         statement code in reduction epilogue for nested cycle. Call
1366         vect_create_epilog_for_reduction with additional parameter.
1367         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
1368         inner-loop vectorization.
1369         (vect_recog_widen_sum_pattern): Likewise.
1370         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
1371         and reductions.
1372         (vect_mark_stmts_to_be_vectorized): Likewise.
1373         (vect_get_vec_def_for_operand): Handle nested cycles.
1374
1375 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1376
1377         * doc/invoke.texi (Debugging Options): Fix option index entries
1378         for -fdump-statistics, -frandom-seed add entries for
1379         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
1380         (FRV Options): Fix entries for -mTLS, -mtls.
1381         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
1382         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
1383         (M68hc1x Options): Fix @itemx for -mnominmax.
1384         (MCore Options): Fix entry for -mno-lsim.
1385         (MMIX Options): Fix entry for -mabi=mmixware.
1386         (PDP-11 Options): Fix entry for -mbcopy-builtin.
1387
1388 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
1389
1390         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
1391         Mention the plugin mode of gengtype.
1392         * doc/gty.texi (Source Files Containing Type Information): Likewise.
1393         * gengtype.c: Updated copyright.
1394         (plugin_files, nb_plugin_files) Added new static variables.
1395         (measure_input_list) Care about plugin_files.
1396         (write_rtx_next): Added early return in plugin mode.
1397         (create_file): Updated copyright year in generated file. Added
1398         asserts.
1399         (oprintf): Added early return if NULL outf.
1400         (get_output_file_with_visibility): Care of plugin_files.
1401         (get_output_file_name): May return null.
1402         (write_local): Added early return.
1403         (put_mangled_filename): Ditto.
1404         (finish_root_table): Added check for base_files.
1405         (write_roots): Care about null when plugins.
1406         (main): Added plugin mode.
1407
1408 2009-06-15  Ian Lance Taylor  <iant@google.com>
1409
1410         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
1411         * gcov.c (read_count_file): Add braces around variables declared
1412         before label.
1413
1414         * c.opt (Wjump-misses-init): New warning.
1415         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
1416         -Wall and -Wc++-compat if not already set.
1417         (c_common_post_options): Clear warn_jump_misses_init if it was not
1418         set.
1419         * c-decl.c (struct c_binding): Change type field to a union with
1420         new label field.  Make it the first field in the struct.  Update
1421         references to type to use u.type instead.
1422         (struct c_spot_bindings): Define.
1423         (struct c_goto_bindings): Define.
1424         (c_goto_bindings_p): Define, along with VECs.
1425         (struct c_label_vars): Define.
1426         (struct c_scope): Add has_label_bindings field.
1427         (bind_label, set_spot_bindings): New static functions.
1428         (decl_jump_unsafe, update_spot_bindings): New static functions.
1429         (update_label_decls): New static function.
1430         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
1431         Update binding u.label field to shadowed field.
1432         (c_binding_start_stmt_expr): New function.
1433         (c_binding_end_stmt_expr): New function.
1434         (pushdecl): Don't call c_begin_vm_scope.
1435         (make_label): Add defining and p_label_vars parameters.  Change
1436         all callers.
1437         (lookup_label): Correct test for whether a label has not yet been
1438         defined.  Call bind_label rather than bind.
1439         (warn_about_goto): New static function.
1440         (lookup_label_for_goto): New function.
1441         (declare_label): Call bind_label rather than bind.
1442         (check_earlier_gotos): New static function.
1443         (define_label): Don't give errors about jumping into statement
1444         expressions or scopes of variably modified types.  Call
1445         set_spot_bindings and check_earlier_gotos.  Call bind_label
1446         instead of bind.  Don't set label_context_stack_se or
1447         label_context_stack_vm.
1448         (c_get_switch_bindings): New function.
1449         (c_release_switch_bindings): New function.
1450         (c_check_switch_jump_warnings): New function.
1451         (start_function): Don't set label_context_stack_se or
1452         label_context_stack_vm.
1453         (finish_function): Likewise.
1454         * c-typeck.c (label_context_stack_se): Don't define.
1455         (label_context_stack_vm): Don't define.
1456         (c_finish_goto_label): Call lookup_label_for_goto rather than
1457         lookup_label.  Don't give errors about jumping into a statement
1458         expression or the scope of a variably modified type.  Don't set
1459         label_context_stack_se or label_context_stack_vm.
1460         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
1461         fields.  Add bindings field.
1462         (c_start_case): Don't set deleted fields.  Set bindings field.
1463         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
1464         or blocked_vm.  Call c_check_switch_jump_warnings.
1465         (c_finish_case): Don't test blocked_stmt_expr field.  Call
1466         c_release_switch_bindings.
1467         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
1468         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1469         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
1470         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
1471         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
1472         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
1473         (c_begin_vm_scope, c_end_vm_scope): Don't define.
1474         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
1475         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
1476         (C_DECL_UNJUMPABLE_VM): Don't define.
1477         (C_DECL_UNDEFINABLE_VM): Don't define.
1478         (struct c_label_list): Don't define.
1479         (struct c_label_context_se): Don't define.
1480         (struct c_label_context_vm): Don't define.
1481         (struct c_spot_bindings): Declare.
1482         (c_bindings_start_stmt_expr): Declare.
1483         (c_bindings_end_stmt_expr): Declare.
1484         (lookup_label_for_goto): Declare.
1485         (c_get_switch_bindings, c_release_switch_bindings): Declare.
1486         (c_check_switch_jump_warnings): Declare.
1487         (label_context_stack_se, label_context_stack_vm): Don't declare.
1488         (c_finish_goto_label): Update declaration.
1489         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
1490         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
1491         (Warning Options): Document -Wjump-misses-init.
1492
1493 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
1494
1495         * tree-object-size.c (addr_object_size): Fix a pasto in the last
1496         change.
1497
1498 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1499
1500         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
1501
1502 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1503
1504         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
1505
1506 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
1507
1508         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
1509
1510 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
1511
1512         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
1513         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
1514         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
1515         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
1516         * dwarf2asm.c (dw2_force_const_mem): Update call to
1517         make_decl_one_only.
1518         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
1519         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
1520         * langhooks.c (lhd_comdat_group): Remove.
1521         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
1522         * tree.h (DECL_COMDAT_GROUP): New.
1523         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
1524         (tree_decl_with_vis): Add comdat_group. Remove one_only.
1525         (make_decl_one_only): Change signature.
1526         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
1527         make_decl_one_only.
1528         (make_decl_one_only): Change signature.
1529         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
1530
1531 2009-06-15  Richard Guenther  <rguenther@suse.de>
1532
1533         PR middle-end/40439
1534         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1535
1536 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1537
1538         * tree-ssa-math-opts.c: Remove extra divide.
1539
1540 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1541
1542         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1543
1544 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1545
1546         * passes.c: Add bswap pass.
1547         * tree-pass.h: Add pass_optimize_bswap declaration.
1548         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1549         Include rtl.h, expr.h and optabs.h for optab_handler check.
1550         (struct symbolic_number, pass_optimize_bswap): New definition.
1551         (do_shift_rotate, verify_symbolic_number_p): New functions.
1552         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1553         (gate_optimize_bswap): New function.
1554         * tree.c (widest_int_cst_value): New function.
1555         * tree.h (widest_int_cst_value): Prototype added.
1556
1557 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
1558
1559         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1560         REG_EQUAL/REG_EQUIV notes.
1561
1562 2009-06-14  Richard Guenther  <rguenther@suse.de>
1563
1564         PR middle-end/40389
1565         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1566         has its address taken if NRV was applied and it is addressable.
1567         * tree-ssa-structalias.c (get_constraint_for_address_of): New
1568         function split out from ...
1569         (get_constraint_for_1): ... here.
1570         (handle_rhs_call): Use it to mark the return slot escaped if
1571         it is addressable and NRV was applied.
1572
1573 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1574
1575         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1576         Change first argument type to location_t.
1577         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1578         Do not set input_location.
1579         Use loc instead of input_location throughout.
1580
1581 2009-06-13  Richard Guenther  <rguenther@suse.de>
1582
1583         PR tree-optimization/40421
1584         * tree-predcom.c (should_unroll_loop_p): Remove.
1585         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1586
1587 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1588
1589         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1590         Add location argument.
1591
1592 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1593
1594         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1595         build_decl.
1596         * config/s390/s390.c (s390_build_builtin_va_list): Same.
1597         (s390_gimplify_va_arg): Pass location to create_artificial_label.
1598         * config/spu/spu-protos.h: Add location to
1599         spu_resolve_overloaded_builtin.
1600         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1601         spu_build_builtin_va_list.
1602         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1603         argument.  Pass location to build_function_call_vec.
1604         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1605         build_decl.
1606         (emit_fpu_switch): Same.
1607         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1608         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1609         to build_decl and create_artificial_label.
1610         (xtensa_gimplify_va_arg_expr): Same.
1611         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1612         (xstormy16_gimplify_va_arg_expr): Same.
1613         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1614         * config/arm/arm.c (arm_build_builtin_va_list): Same.
1615         * config/mips/mips.c (mips_build_builtin_va_list): Same.
1616         (mips16_build_function_stub): Same.
1617         (mips16_build_call_stub): Same.
1618
1619 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
1620
1621         PR target/40327
1622         * arm/constraints.md (Pa, Pb): New constraints.
1623         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
1624         split pattern to deal with them.
1625
1626 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
1627
1628         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1629         fix index entry for -Xpreprocessor.
1630
1631 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1632
1633         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1634         Add location argument to build_decl call.
1635         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1636         (rs6000_init_builtins): Same.
1637         (spe_init_builtins): Same.
1638         (rs6000_gimplify_va_arg): Add location argument to
1639         create_artificial_label call.
1640
1641 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
1642
1643         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
1644         * combine-stack-adj.c (pass_stack_adjustments): Use it.
1645         * Makefile.in: Fix GGC dependency for gcse.o.
1646
1647 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1648
1649         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
1650         * gimple-pretty-print.c (dump_gimple_stmt): Same.
1651         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
1652         created.
1653         * c-parser.c (c_parser_binary_expression): Use current column while
1654         building binary operations.
1655         * common.opt (fshow-column): Enable by default.
1656         * tree-vrp.c (check_array_ref): Use warning_at.
1657         (check_array_bounds): Use location from call back if expr has no
1658         location.
1659         * tree.h: Add location argument to maybe_fold_*.
1660         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1661         (maybe_fold_offset_to_array_ref): Add location argument and use it.
1662         (maybe_fold_offset_to_component_ref): Same.
1663         (maybe_fold_offset_to_reference): Same.
1664         (maybe_fold_offset_to_address): Same.
1665         (maybe_fold_stmt_indirect): Same.
1666         (maybe_fold_stmt_addition): Same.
1667         (fold_stmt_r): Pass location to maybe_fold_*.
1668         (fold_gimple_assign): Same.
1669         * c-tree.h: Add location argument to finish_decl,
1670         default_function_array_conversion, store_init_value.
1671         * c-decl.c (define_label): Use error_at.
1672         (c_make_fname_decl): Pass location to finish_decl.
1673         (finish_decl): New location argument.
1674         (build_compound_literal): Pass location to store_init_value.
1675         (grokdeclarator): Pass location to finish_decl.
1676         (grokfield): Same.
1677         * c-typeck.c (array_to_pointer_conversion): New location argument.
1678         (function_to_pointer_conversion): Same.
1679         (default_function_array_conversion): Same.
1680         (parser_build_unary_op): Pass location to overflow_warning.
1681         (parser_build_binary_op): Same.  Use warning_at.
1682         (build_unary_op): Pass location to array_to_pointer_conversion.
1683         (build_c_cast): Pass location to digest_init.
1684         (build_modify_expr): New location argument.
1685         (convert_for_assignment): Same.
1686         (store_init_value): Same.
1687         (digest_init): Same.
1688         (output_init_element): Pass location to digest_init and
1689         array_to_pointer_conversion.
1690         (c_finish_return): Pass location to convert_for_assignment.
1691         * gimplify.c (gimplify_conversion): Pass location to
1692         maybe_fold_offset_to_address.
1693         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1694         to maybe_fold_stmt_addition.
1695         * c-omp.c (c_finish_omp_atomic): Pass new location to
1696         build_modify_expr.
1697         (c_finish_omp_for): Same.
1698         * c-common.c (overflow_warning): New argument.
1699         * c-common.h: New argument to build_modify_expr, overflow_warning.
1700         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1701         finish_decl.
1702         (c_parser_initializer): Pass location to
1703         default_function_array_conversion.
1704         (c_parser_initelt): Same.
1705         (c_parser_initval): Same.
1706         (c_parser_asm_operands): Same.
1707         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
1708         (c_parser_conditional_expression): Same.
1709         (c_parser_binary_expression): Add location info to stack.  Use it.
1710         (c_parser_unary_expression): Pass location to
1711         default_function_array_conversion, parser_build_unary_op,
1712         build_indirect_ref, c_parser_postfix_expression_after_primary.
1713         (c_parser_postfix_expression_after_primary): New location argument.
1714         Use it.
1715         (c_parser_expression_conv): Pass location to
1716         default_function_array_conversion.
1717         (c_parser_expr_list): Same.
1718         (c_parser_omp_atomic): Same.
1719         (c_parser_omp_for_loop): Same.
1720         * c-tree.h: (struct c_declarator): Add comment to id_loc.
1721         (build_array_declarator): New argument.
1722         * c-decl.c (build_array_declarator): Add location argument.
1723         (grokdeclarator): Set id_loc for cdk_array.
1724         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1725         build_array_declarator.
1726         * tree.c (build_omp_clause): Add location argument.
1727         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1728         (OMP_CLAUSE_LOCATION): New macro.
1729         (struct tree_omp_clause): Add location field.
1730         (build_omp_clause): Add argument.
1731         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1732         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1733         build_omp_clause.
1734         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1735         (cp_parser_omp_clause_collapse): Same.
1736         (cp_parser_omp_clause_default): Same.
1737         (cp_parser_omp_clause_if): Same.
1738         (cp_parser_omp_clause_nowait): Same.
1739         (cp_parser_omp_clause_num_threads): Same.
1740         (cp_parser_omp_clause_ordered): Same.
1741         (cp_parser_omp_clause_schedule): Same.
1742         (cp_parser_omp_clause_untied): Same.
1743         (cp_parser_omp_for_loop): Same.
1744         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1745         * c-tree.h (c_start_case): Add location argument.
1746         (c_process_expr_stmt): Same.
1747         (c_finish_goto_*): Same.
1748         * tree-parloops.c (initialize_reductions): Pass location to
1749         build_omp_clause.
1750         (create_parallel_loop): Same.
1751         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1752         (gfc_trans_omp_reduction_list): Same.
1753         (gfc_trans_omp_clauses): Same.
1754         (gfc_trans_omp_do): Same.
1755         * c-typeck.c (c_finish_goto_label): Same.
1756         (c_finish_goto_ptr): New location argument.
1757         (c_start_case): Same.
1758         (emit_side_effect_warnings): Same.
1759         (c_process_expr_stmt): Same.
1760         (c_finish_stmt_expr): Same.
1761         (c_finish_omp_clauses): Use error_at instead of error.
1762         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1763         build_omp_clause.
1764         * c-omp.c (c_split_parallel_clauses): New location argument.
1765         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1766         to build_omp_clause.
1767         (convert_local_reference_stmt): Same.
1768         (convert_gimple_call): Same.
1769         * c-common.h (c_split_parallel_clauses): New argument.
1770         * c-parser.c (c_parser_statement_after_labels): Pass location to
1771         c_finish_goto_label.
1772         (c_parser_switch_statement): Pass location to c_start_case.
1773         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1774         and c_process_expr_stmt.
1775         (c_parser_omp_variable_list): Add location argument.
1776         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
1777         (c_parser_omp_clause_default): Same.
1778         (c_parser_omp_clause_if): Same.
1779         (c_parser_omp_clause_num_threads): Same.
1780         (-c_parser_omp_clause_ordered): Same.
1781         (c_parser_omp_clause_reduction): Pass location to
1782         c_parser_omp_variable_list.
1783         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1784         (c_parser_omp_clause_untied): Same.
1785         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
1786         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1787
1788         * c-tree.h (check_for_loop_decls, undeclared_variable,
1789         build_component_ref, build_array_ref, build_external_ref,
1790         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1791         build_conditional_expr, build_compound_expr, c_cast_expr,
1792         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1793         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1794         argument.
1795         * c-semantics.c (build_stmt): Same.
1796         (build_case_label): Same.
1797         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1798         (undeclared_variable): New argument.
1799         (make_label): Same.
1800         (lookup_label): Pass location on down.
1801         (define_label): Same.
1802         (finish_decl): Same.
1803         (build_compound_literal): Same.
1804         (finish_struct): Same.
1805         (finish_function): Do not set location here.
1806         (check_for_loop_decls): New argument.
1807         * tree.c (save_expr): Set location.
1808         (build_empty_stmt): New argument.
1809         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1810         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1811         * builtins.c (gimplify_va_arg_expr): Use locations.
1812         (expand_builtin_sync_operation): Same.
1813         * c-typeck.c (build_component_ref): New argument.
1814         (build_array_ref): Same.
1815         (build_external_ref): Same.
1816         (c_expr_sizeof_expr): Same.
1817         (c_expr_sizeof_type): Same.
1818         (parser_build_unary_op): Same.
1819         (build_conditional_expr): Same.
1820         (build_compound_expr): Pass location on down.
1821         (build_compound_expr): New argument.
1822         (build_c_cast): Same.
1823         (c_cast_expr): Same.
1824         (build_asm_expr): Same.
1825         (c_finish_return): Same.
1826         (c_process_expr_stmt): Pass location on down.
1827         (c_finish_stmt_expr): New argument.
1828         (push_clenaup): Same.
1829         (c_finish_omp_parallel): Same.
1830         (c_finish_omp_task): Same.
1831         * gimplify.c (gimplify_call_expr): Pass location on down.
1832         * c-omp.c (c_finish_omp_master): New argument.
1833         (c_finish_omp_critical): Same.
1834         (c_finish_omp_ordered): Same.
1835         (c_finish_omp_barrier): Same.
1836         (-c_finish_omp_taskwait): Same.
1837         (c_finish_omp_atomic): Same.
1838         (c_finish_omp_flush): Same.
1839         * tree-inline.c (copy_tree_body_r): Pass location on down.
1840         (inline_forbidden_p): Remove use of input_location.
1841         * c-gimplify.c (c_build_bind_expr): New argument.
1842         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1843         (c_sizeof_or_alignof_type): New argument.
1844         (c_alignof_expr): Same.
1845         (build_va_arg): Same.
1846         (c_add_case_label): Same.
1847         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1848         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1849         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1850         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1851         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1852         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1853         New argument.
1854         * stub-objc.c (objc_build_selector_expr): Same.
1855         (objc_build_throw_stmt): Same.
1856         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1857         (c_parser_initelt): Same.
1858         (c_parser_compound_statement): Same.
1859         (c_parser_compound_statement_nostart): Same.
1860         (c_parser_label): Same.
1861         (c_parser_statement_after_labels): Same.
1862         (c_parser_if_body): Same.
1863         (c_parser_else_body): Same.
1864         (c_parser_if_statement): Same.
1865         (c_parser_switch_statement): Same.
1866         (c_parser_while_statement): Same.
1867         (c_parser_do_statement): Same.
1868         (c_parser_for_statement): Same.
1869         (c_parser_asm_statement): Same.
1870         (c_parser_conditional_expression): Same.
1871         (c_parser_binary_expression): Same.
1872         (c_parser_cast_expression): Same.
1873         (c_parser_unary_expression): Same.
1874         (c_parser_sizeof_expression): Same.
1875         (c_parser_alignof_expression): Same.
1876         (c_parser_postfix_expression): Same.
1877         (c_parser_expression): Same.
1878         (c_parser_objc_receiver): Same.
1879         (c_parser_omp_variable_list): Same.
1880         (c_parser_omp_structured_block): Same.
1881         (c_parser_omp_atomic): New argument.
1882         (c_parser_omp_barrier): Same.
1883         (c_parser_omp_critical): Same.
1884         (c_parser_omp_flush): Pass location on down.
1885         (c_parser_omp_for_loop): New argument.
1886         (c_parser_omp_for): Same.
1887         (c_parser_omp_master): Same.
1888         (c_parser_omp_ordered): Same.
1889         (c_parser_omp_sections_scope): Same.
1890         (c_parser_omp_sections): Same.
1891         (c_parser_omp_parallel): Same.
1892         (c_parser_omp_single): Same.
1893         (c_parser_omp_task): Same.
1894         (c_parser_omp_taskwait): Pass location on down.
1895         (c_parser_omp_construct): Same.
1896         (c_parser_omp_threadprivate): Same.
1897         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1898         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1899         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1900         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1901         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1902         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1903         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1904         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1905         config/i386/i386.c, stmt.c:
1906         Add location argument to the following function definitions and/or
1907         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1908         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1909         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1910         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1911         do_case, c_finish_bc_stmt, build_compound_literal,
1912         build_function_call.
1913         * c-decl.c (build_compound_literal): Add location argument.
1914         Make all diagnostic calls use location.
1915         (start_struct): Same.
1916         (finish_struct): Same.
1917         (start_enum): Same.
1918         (build_enumerator): Same.
1919         (start_function): Same.
1920         (grokdeclarator): Make all diagnostic calls use location.
1921         (store_parm_decls_oldstyle): Same.
1922         * c-typeck.c (build_function_call): Add location argument.
1923         Make all diagnostic calls use location.
1924         (do_case): Same.
1925         (c_finish_bc_stmt): Same.
1926         * tree-nested.c (get_trampoline_type): Add argument.
1927         Pass location to build_decl.
1928         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1929         * rtl.h (RTL_LOCATION): New.
1930         * c-common.c (c_add_case_label): Add location argument.
1931         Make all diagnostic calls use location.
1932         * c-common.h: Add location argument to make_fname_decl, do_case,
1933         c_add_case_label, build_function_call, resolve_overloaded_builtin.
1934         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1935         Set it appropriately for every case.  Pass enum_loc to start_enum
1936         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
1937         parser_xref_tag.
1938         (c_parser_struct_or_union_specifier): Save location.  Use it for
1939         start_struct, finish_struct, and parser_xref_tag.
1940
1941 2009-06-12  Ian Lance Taylor  <iant@google.com>
1942
1943         * fold-const.c (fold_unary): Rename local variable and to and_expr.
1944
1945         * c-opts.c (c_common_handle_option): For -Wc++-compat set
1946         cpp_opts->warn_cxx_operator_names.
1947
1948 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1949
1950         PR tree-opt/38865
1951         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1952         is returns NULL and OP is a VCE, look through the VCE.
1953
1954 2009-06-12  Ian Lance Taylor  <iant@google.com>
1955
1956         PR bootstrap/40430
1957         * collect2.c (main): Use CONST_CAST2 in code inside #if
1958         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1959
1960 2009-06-12  Joey Ye  <joey.ye@intel.com>
1961
1962         PR middle-end/39146
1963         * cfgexpand.c (get_decl_align_unit): Update
1964         max_used_stack_slot_alignment with align instead of
1965         stack_alignment_needed.
1966
1967         * function.c (assign_stack_local_1): Update
1968         max_used_stack_slot_alignment with alignment_in_bits instead
1969         of stack_alignment_needed.
1970         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1971         here.
1972
1973 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
1974
1975         * dwarf2out.c (last_var_location_insn): New variable.
1976         (dwarf2out_end_epilogue): Clear last_var_location_insn.
1977         (dwarf2out_var_location): Don't record anything after last real
1978         insn.  Only change labels if there were any real instructions
1979         in between last note and this one, or if changed sections.
1980
1981 2009-06-11  Richard Henderson  <rth@redhat.com>
1982
1983         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
1984         note when storing the frame pointer in a register.
1985         (FRP): Don't redefine to nothing for epilogue.
1986         (alpha_expand_epilogue): Mark register and sp restores.
1987         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1988
1989         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1990         when gen_lowpart is needed.
1991
1992 2009-06-11  Richard Henderson  <rth@redhat.com>
1993
1994         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1995
1996         * dwarf2out.c (need_data_align_sf_opcode): New.
1997         (div_data_align): Move earlier.
1998         (def_cfa_1, reg_save): Use it.
1999
2000 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
2001
2002         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
2003         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
2004         (ix86_handle_option): Handle OPT_mcrc32.
2005         (ix86_target_string): Add -mcrc32.
2006         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
2007
2008         * config/i386/i386.h (TARGET_CRC32): New.
2009
2010         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
2011         (sse4_2_crc32di): Likewise.
2012
2013         * config/i386/i386.opt (mcrc32): New.
2014
2015         * doc/invoke.texi: Document -mcrc32.
2016
2017 2009-06-11  Richard Henderson  <rth@redhat.com>
2018
2019         * common.opt (gdwarf-): Accept a version number.
2020         * doc/invoke.texi (gdwarf-): Update docs.
2021         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
2022         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
2023         version level, and record it.
2024
2025         * dwarf2.h (DW_CIE_VERSION): Remove.
2026         * dwarf2out.c (DWARF_VERSION): Remove.
2027         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
2028         (output_call_frame_info): Use CIE version 3 for dwarf3,
2029         or if the return register column is out of range for version 1.
2030         (dwarf_stack_op_name): Add all dwarf3 values.
2031         (DEBUG_PUBTYPES_SECTION): New.
2032         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
2033         encoding change for dwarf3.
2034         (output_die) [dw_val_class_die_ref]: Likewise.
2035         (output_compilation_unit_header): Emit correct version for dwarf3.
2036         (output_line_info): Likewise.
2037         (output_pubnames): Update for DWARF_VERSION removal.
2038         (output_aranges): Likewise.
2039         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
2040         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
2041         (dwarf2out_finish): Likewise.
2042
2043 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2044
2045         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
2046         in r148403.
2047
2048 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
2049
2050         PR c/39252
2051         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
2052         * builtins.c (expand_builtin_unreachable): New function.
2053         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
2054         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
2055         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
2056         successors.
2057         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
2058         searching for missing barriers.
2059
2060 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2061
2062         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
2063         when -fprofile-generate* was passed.
2064         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
2065
2066 2009-06-11  Anthony Green  <green@moxielogic.com>
2067
2068         * config/moxie/moxie.md: Define length attribute for all instructions.
2069         (rCC): Define.
2070         (*b<cond:code>): Support limited branch ranges for new PC-relative
2071         branch instructions.
2072         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
2073
2074 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
2075
2076         * config/i386/i386.c (min_insn_size): Use get_attr_length
2077         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
2078         For __asm return 0.
2079
2080         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
2081         instead of emit_insn_before.
2082
2083 2009-06-10  Ian Lance Taylor  <iant@google.com>
2084
2085         PR bootstrap/40408
2086         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
2087         GIMPLE_SWITCH.
2088
2089 2009-06-10  Revital Eres  <eres@il.ibm.com>
2090
2091         * passes.c (init_optimization_passes): Reschedule
2092         predictive-commoning pass before complete unroll pass.
2093
2094 2009-06-10  Martin Jambor  <mjambor@suse.cz>
2095
2096         * cgraph.c (cgraph_node_can_be_local_p): New function.
2097         (cgraph_make_node_local): New function.
2098         * cgraph.h (cgraph_node_can_be_local_p): Declare.
2099         (cgraph_make_node_local): Declare.
2100
2101 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
2102
2103         * tree.h (tree_base): Add packed_flag and user_align fields.
2104         Decrease size of spare field.
2105         (TYPE_USER_ALIGN): Use user_align from tree_base.
2106         (DECL_USER_ALIGN): Likewise.
2107         (TYPE_PACKED): Use packed_flag from tree_base.
2108         (DECL_PACKED): Likewise.
2109         (tree_type): Delete packed_flag and user_align fields.  Widen
2110         precision field.  Widen mode field and shuffle fields to align
2111         mode on an 8-bit boundary.
2112         (tree_decl_common): Delete decl_flag_1 and user_align fields.
2113         Renumber decl_flag_* fields.  Fix comments.  Widen
2114         decl_common_unused field.
2115         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
2116         (DECL_EXTERNAL): Likewise.
2117         (DECL_BIT_FIELD): Likewise.
2118         (DECL_NONADDRESSABLE_P): Likewise.
2119         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
2120         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
2121
2122 2009-06-10  Ian Lance Taylor  <iant@google.com>
2123
2124         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
2125         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
2126         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
2127         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
2128         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
2129         DEF_VEC_ALLOC_FUNC_P.
2130         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
2131         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
2132         DEF_VEC_ALLOC_FUNC_O.
2133         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
2134         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
2135         DEF_VEC_ALLOC_FUNC_I.
2136         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
2137         (vec_stack_p_reserve_exact_1): Declare.
2138         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
2139         (vec_stack_free): Declare.
2140         (VEC_stack_alloc): Define.
2141         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
2142         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
2143         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
2144         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
2145         for void_p.
2146         (stack_vecs): New static variable.
2147         (vec_stack_p_reserve_exact_1): New function.
2148         (vec_stack_o_reserve_1): New static function.
2149         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
2150         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
2151         (vec_stack_free): New function.
2152         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
2153         (VEC_df_ref_stack_alloc): Define.
2154         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
2155         DEF_VEC_ALLOC_P_STACK.
2156         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
2157         (struct df_collection_rec): Change _vec fields to VEC.  Remove
2158         _use fields.
2159         (df_free_collection_rec): Adjust for new fields.
2160         (df_insn_rescan): Use new df_collection_rec fields.
2161         (df_notes_rescan, df_canonize_collection_rec): Likewise.
2162         (df_ref_create_structure, df_ref_record): Likewise.
2163         (df_get_conditional_uses, df_get_call_refs): Likewise.
2164         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
2165         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
2166         (df_record_exit_block_uses, df_bb_verify): Likewise.
2167         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
2168         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
2169         Remove count parameter.  Change return type to void.  Change all
2170         callers.
2171         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
2172         Remove count parameter.  Change return type to void.  Change all
2173         callers.
2174         (df_install_refs): Change old_vec parameter to VEC.  Remove count
2175         parameter.  Change all callers.
2176         (df_install_mws): Change old_vec parameter to VEC.  Remove count
2177         parameter.  Change all callers.
2178         (df_refs_verify): Change new_rec parameter to VEC.  Change call
2179         callers.
2180         (df_mws_verify): Likewise.
2181
2182 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
2183
2184         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
2185
2186 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
2187
2188         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
2189
2190 2009-06-10  Anthony Green  <green@moxielogic.com>
2191
2192         * config/moxie/crti.asm: New file.
2193         * config/moxie/crtn.asm: New file.
2194         * config/moxie/moxie.c: New file.
2195         * config/moxie/moxie.h: New file.
2196         * config/moxie/sfp-machine.h: New file.
2197         * config/moxie/moxie-protos.h: New file.
2198         * config/moxie/t-moxie: Created.
2199         * config/moxie/t-moxie-softfp: Created.
2200         * config/moxie/moxie.md: Created.
2201         * config/moxie/constraints.md: Created.
2202         * config.gcc: Add moxie support.
2203         * doc/md.texi (Machine Constraints): Add moxie constraints.
2204         * doc/contrib.texi (Contributors): Mention moxie port.
2205         * doc/install.texi (Specific): Mention the moxie port.
2206
2207 2009-06-09  Ian Lance Taylor  <iant@google.com>
2208
2209         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
2210         compiling with C++.
2211         * optabs.c (optab_table): Only use designated initializers if
2212         HAVE_DESIGNATED_INITIALIZERS is defined.
2213         (convert_optab_table): Likewise.
2214         (init_optabs): Always call init_insn_codes if
2215         HAVE_DESIGNATED_INITIALIZERS is not defined.
2216
2217 2009-06-09  Ian Lance Taylor  <iant@google.com>
2218
2219         * targhooks.c (default_builtin_vectorized_function): Change fn
2220         parameter to unsigned int.
2221         (default_builtin_vectorized_conversion): Change code parameter to
2222         unsigned int.
2223         (default_builtin_reciprocal): Change fn parameter to unsigned int.
2224         * targhooks.h: Update declarations.
2225         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
2226         parameter to unsigned int.
2227
2228         * c-typeck.c (comptypes_check_enum_int): New static function.
2229         (comptypes_internal): Add enum_and_int_p parameter.  Change all
2230         callers.
2231         (comp_target_types): Add location parameter.  Change all callers.
2232         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
2233         Change all callers.
2234         (function_types_compatible_p, type_lists_compatible_p): Likewise.
2235         (build_conditional_expr): Add colon_loc parameter.  Change all
2236         callers.
2237         (convert_for_assignment): Add location parameter.  Change all callers.
2238         * c-parser.c (c_parser_conditional_expression): Pass location of
2239         colon to build_conditional_expr.
2240         * c-tree.h (build_conditional_expr): Update declaration.
2241
2242 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2243
2244         * graphite.c: Revert previous patch.
2245
2246 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
2247
2248         PR bootstrap/40103
2249         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
2250
2251 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2252
2253         * tree-ssa-loop-prefetch.c
2254         (loop_prefetch_arrays): Fixed a portability problem in printf format
2255         string.
2256
2257 2009-06-09  Martin Jambor  <mjambor@suse.cz>
2258
2259         PR tree-optimization/40351
2260         * tree-sra.c (propagate_subacesses_accross_link): Check that a
2261         refrence to a potential artifical subaccess can be constructed.
2262
2263 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2264
2265         * config/sh/sh-protos.h (sh_optimization_options): Declare.
2266         (sh_override_options): Likewise.
2267         * config/sh/sh.c: Include params.h.
2268         (sh_optimization_options): New.
2269         (sh_override_options): Likewise.
2270         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
2271         (OVERRIDE_OPTIONS): Use sh_override_options.
2272
2273 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2274
2275         * dwarf2out.c (emit_cfa_remember): New variable.
2276         (add_fde_cfi): If emit_cfa_remember, recurse to add
2277         DW_CFA_remember_state first.
2278         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
2279         instead just set emit_cfa_remember.
2280
2281 2009-06-08  Jan Hubicka  <jh@suse.cz>
2282
2283         PR debug/40126
2284         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
2285
2286 2009-06-08  Jan Hubicka  <jh@suse.cz>
2287
2288         PR middle-end/39834
2289         * cgraphunit.c (save_inline_function_body): Do not copy transform
2290         hooks for saved inline bodies.
2291         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
2292         for given function.
2293
2294 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
2295
2296         * jump.c (returnjump_p): Handle delayed branches.  Add missing
2297         function comment.
2298
2299 2009-06-08  Jan Hubicka  <jh@suse.cz>
2300
2301         PR middle-end/40102
2302         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
2303         original node might've been modified.
2304         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
2305
2306 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
2307
2308         * tree-object-size.c (addr_object_size): Add OSI argument.
2309         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
2310         (compute_builtin_object_size, expr_object_size): Adjust callers.
2311         (plus_stmt_object_size): Call addr_object_size instead of
2312         compute_builtin_object_size.
2313
2314 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2315             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2316         
2317         * tree-ssa-loop-prefetch.c 
2318         (gather_memory_references): Introduced a counter for the number of 
2319         memory references.
2320         (anything_to_prefetch_p): Introduced a counter for the number of 
2321         prefetches.
2322         (is_loop_prefetching_profitable): New function with a cost model 
2323         for prefetching.
2324         (loop_prefetch_arrays): Use the new cost model to determine if 
2325         prefetching is profitable.
2326         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
2327         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2328         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
2329         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2330         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
2331         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
2332         
2333 2009-06-08  Michael Matz  <matz@suse.de>
2334
2335         PR debug/40012
2336         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
2337         partitions use the same.
2338         (expand_one_var): Deal with DECL_RTL sometimes begin set also
2339         for basevars of SSA_NAMEs.
2340         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
2341         to not expand them twice.
2342         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
2343         multiple places.
2344
2345 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
2346
2347         * common.opt (fcompare-debug=, fcompare-debug-second): New.
2348         (fdump-final-insns=, gtoggle): New.
2349         * doc/invoke.texi: Document them.
2350         * final.c (rest_of_clean_state): Dump final insn stream.
2351         * gcc.c (invoke_as): Hook in -fcompare-debug.
2352         (static_spec_functions): Add compare-debug-dump-opt,
2353         compare-debug-self-opt and compare-debug-auxbase-opt.
2354         (compare_debug, compare_debug_second, compare_debug_opt): New.
2355         (switches_debug_check, n_switches_debug_check): New.
2356         (debug_auxbase_opt, debug_check_temp_file): New.
2357         (process_command): Handle -fno-compare-debug, -fcompare-debug and
2358         -fcompare-debug=*.
2359         (do_self_spec): Handle arguments after switches.
2360         (do_spec_1): Add .gk extension to temp file basenames for compare.
2361         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
2362         (cc1_options): Use it instead of normal auxbase computation for
2363         the second compare-debug compilation.
2364         (compare_files): New.
2365         (main): Set up and implement compare debug mode.
2366         (compare_debug_dump_opt_spec_function): New.
2367         (compare_debug_self_opt_spec_function): New.
2368         (compare_debug_auxbase_opt_spec_function): New.
2369         * toplev.c (process_options): Handle flag_gtoggle,
2370         flag_dump_final_insns.
2371         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
2372         during -fcompare-debug-second compilation.
2373
2374 2009-06-07  Ian Lance Taylor  <iant@google.com>
2375
2376         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
2377         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
2378
2379         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
2380         with no default node.  Change warning with %H to warning_at.
2381         Don't clear warn_switch around case checking.
2382         * doc/invoke.texi (Warning Options): Clarify distinction between
2383         -Wswitch and -Wswitch-enum.
2384
2385 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2386
2387         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
2388
2389 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2390
2391         * gbl-ctors.h: Add header guard.
2392
2393 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2394
2395         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
2396         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
2397         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
2398         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
2399         prototypes for removed functions.
2400         (expressions_equal_p): Move to ...
2401         * tree-ssa-sccvn.h: ... here and ...
2402         * matrix-reorg.c: ... adjust includes.
2403
2404 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2405
2406         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
2407
2408 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2409
2410         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
2411         (finish_function): Remove erroneous whitespace.
2412
2413 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2414
2415         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
2416         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
2417
2418 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2419
2420         * errors.c (internal_error): Commentary typo fix.
2421         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
2422         * tree-ssa-pre.c: Ditto.
2423
2424 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2425
2426         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
2427         them is supposed to hold actual statements.
2428
2429 2009-06-06  Ian Lance Taylor  <iant@google.com>
2430
2431         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
2432         empty statements can now have attributes.
2433
2434 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
2435
2436         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
2437         * config/mips/mips.md: Ditto.
2438
2439 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2440
2441         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
2442         _RELOCATABLE.
2443         (__eabi_uconvert): Likewise.
2444
2445 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
2446
2447         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
2448         CFI_* definitions with IN_GCC.
2449
2450 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
2451
2452         * xcoffout.h (xcoffout_source_line): Update prototype.
2453
2454 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2455
2456         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
2457         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
2458
2459 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2460
2461         PR middle-end/40340
2462         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
2463         inlined_function_outer_scope_p blocks for artificial inlines
2464         even at -g0/-g1.
2465         * tree.c (tree_nonartificial_location): Rewrite using
2466         block_nonartificial_location.
2467
2468 2009-06-05  Revital Eres  <eres@il.ibm.com>
2469             Leehod Baruch  <leehod@il.ibm.com>
2470
2471         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
2472         (expand_expr_real_1): Remove comment.
2473         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2474         Vectorize misaligned access when the target supports it.
2475         (vect_supportable_dr_alignment): Check for unaligned access support.
2476         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
2477         and remove asset.
2478
2479 2009-06-05  Julian Brown  <julian@codesourcery.com>
2480
2481         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
2482         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
2483
2484 2009-06-05  Richard Guenther  <rguenther@suse.de>
2485
2486         PR bootstrap/40350
2487         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
2488         as possibly unused.
2489
2490 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
2491
2492         * config/s390/s390.c (global_not_special_regno_p): New static inline.
2493         (save_gprs): Don't tell unwinder when a global register is saved.
2494         (s390_emit_epilogue): Emit needed epilogue unwind info.
2495
2496 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2497
2498         * dwarf2out.c (deferred_asm_name): New.
2499         (add_name_and_src_coords_attributes): Defer creation of
2500         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
2501         computed yet.
2502         (move_linkage_attr): New.
2503         (dwarf2out_finish): Revisit deferrals and emit attributes at the
2504         right place.
2505
2506 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
2507
2508         * tree-nested.c (finalize_nesting_tree_1): Declare the
2509         frame_decl in the binding tree.
2510
2511 2009-06-04  Cary Coutant  <ccoutant@google.com>
2512
2513         * basic-block.h (struct basic_block_def): Add discriminator field.
2514         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
2515         callers.
2516         * debug.c (do_nothing_debug_hooks): Add additional entry.
2517         (debug_nothing_int_charstar_int): New function.
2518         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
2519         (debug_nothing_int_charstar_int): New declaration.
2520         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
2521         discriminator value in .loc directive.
2522         * final.c (last_discriminator): New variable.
2523         (discriminator): New variable.
2524         (final_start_function): Initialize above variables, pass current
2525         discriminator to debug hook.
2526         (notice_source_line): Check for discriminator change.
2527         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
2528         * sdbout.c (sdbout_source_line): New parameter.
2529         * tree-cfg.c (struct locus_discrim_map): New structure type.
2530         (discriminator_per_locus): New hash table.
2531         (build_gimple_cfg): Allocate and free discriminator hash table.
2532         (make_edges): Call assign_discriminator.
2533         (locus_map_hash): New function.
2534         (locus_map_eq): New function.
2535         (next_discriminator_for_locus): New function.
2536         (same_line_p): New function.
2537         (assign_discriminator): New function.
2538         (make_cond_expr_edges): Call assign_discriminator.
2539         (make_gimple_switch_edges): Likewise.
2540         (first_non_label_stmt): New function.
2541         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
2542         all callers.
2543         * xcoffout.c (xcoffout_source_line): Add new parameter.
2544
2545         * configure.ac (gcc_cv_as_discriminator): New configury check for
2546         gas support for discriminator.
2547         * configure: Regenerate.
2548         * config.in: Regenerate.
2549
2550 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2551
2552         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2553         val after checking for integers.
2554
2555 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
2556
2557         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2558         X64_REGPARM_MAX.
2559         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2560         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2561         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2562         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2563         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
2564         X64_SSE_REGPARM_MAX.
2565         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2566         X64_SSE_REGPARM_MAX.
2567
2568 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2569
2570         * gcc.c (report_times_to_file): New.
2571         (execute): Implement it.
2572         (process_command): Support -time=.
2573         * doc/invoke.texi: Document it.
2574
2575 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2576
2577         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2578         that have value exprs.
2579
2580 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2581
2582         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2583         declarations for constants until...
2584         (dw2_output_indirect_constant_1): ... this point.
2585
2586 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
2587
2588         PR target/10242
2589         * arm.md (arm_addsi3): Don't try to split an add with an
2590         eliminable register until after reload has completed.
2591
2592 2009-06-03  Ian Lance Taylor  <iant@google.com>
2593
2594         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2595         * genattrtab.c (write_length_unit_log): Likewise.
2596         * genchecksum.c (dosum): Likewise.
2597         * gengtype.c (write_rtx_next): Likewise.
2598         (finish_root_table, write_roots): Likewise.
2599         * gimple.c (gimple_ops_offset_): Likewise.
2600         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2601         * config/arc/arc.c (arc_attribute_table): Likewise.
2602         * config/arm/arm.c (arm_attribute_table): Likewise.
2603         * config/avr/avr.c (avr_attribute_table): Likewise.
2604         * config/crx/crx.c (crx_attribute_table): Likewise.
2605         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2606         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2607         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2608         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2609         * config/sh/sh.c (sh_attribute_table): Likewise.
2610         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2611         * config/spu/spu.c (spu_attribute_table): Likewise.
2612         * config/v850/v850.c (v850_attribute_table): Likewise.
2613
2614         * config/alpha/alpha.c (vms_attribute_table): Make static.
2615         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2616         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2617         * config/mips/mips.c (mips_attribute_table): Likewise.
2618
2619         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2620         $(SYSTEM_H).
2621         (cc1-checksum.o): Likewise.
2622
2623 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
2624
2625         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2626
2627 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
2628
2629         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2630         insn if it is changing sp.  Use gen_add3_insn instead of
2631         conditionally gen_addsi3 and gen_adddi3.
2632         (offset_below_red_zone_p): New static inline function.
2633         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2634         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2635         * config/rs6000/ppc-asm.h: Include auto-host.h.
2636         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2637         CFI_RESTORE): Define.
2638         * config/rs6000/crtresxgpr.asm: Add unwind info.
2639         * config/rs6000/crtresxfpr.asm: Likewise.
2640         * config/rs6000/crtresgpr.asm: Likewise.
2641         * config/rs6000/crtresfpr.asm: Likewise.
2642         * config/rs6000/crtsavgpr.asm: Likewise.
2643         * config/rs6000/crtsavfpr.asm: Likewise.
2644
2645         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
2646         argument of DWARF2_FRAME_REG_OUT macros.
2647
2648 2009-06-03  Julian Brown  <julian@codesourcery.com>
2649
2650         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
2651         words or less (including TImode) in core registers.
2652
2653 2009-06-03  Richard Guenther  <rguenther@suse.de>
2654
2655         PR middle-end/40328
2656         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2657
2658 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
2659
2660         * statistics.c (statistics_counter_event): Do not record event 
2661         in pass dump if its number == -1.
2662         (curr_statistics_hash): Add assert that we never get passes 
2663         with static number == -1.
2664
2665 2009-06-03  Richard Guenther  <rguenther@suse.de>
2666             Andrey Belevantsev  <abel@ispras.ru>
2667
2668         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
2669         non-BLKmode arrays addressable.
2670
2671 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
2672
2673         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2674         * config/m68k/m68k.h: ... here.
2675         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2676         m68k and fido.
2677
2678 2009-06-03  Martin Jambor  <mjambor@suse.cz>
2679
2680         PR tree-optimization/40323
2681         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2682         assignment.
2683
2684 2009-06-03  Richard Guenther  <rguenther@suse.de>
2685
2686         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2687         consistently.
2688
2689 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
2690
2691         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2692         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2693         JUMP_TABLE_DATA_P where applicable.
2694         * config/sh/sh.c: Ditto.
2695         * config/sh/sh.h: Ditto.
2696         * config/sh/sh.md: Ditto.
2697         * config/sh/symbian.c: Ditto.
2698
2699 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
2700
2701         * config/i386/driver-i386.c (describe_cache): Optimize
2702         concatenation of strings.  Use snprintf instead of sprintf.
2703         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
2704         target when not compiling with GCC.
2705
2706 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2707
2708         * config/sh/sh.c: Revert last change.
2709         (sh_expand_epilogue): Emit a blockage insn before the frame
2710         pointer adjustment unconditionally.
2711
2712 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2713
2714         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2715         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2716         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2717         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2718         to COLLECT_GCC_OPTIONS.
2719
2720 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2721
2722         * collect2.c (target_system_root): New variable.
2723         (main): Handle --sysroot=.
2724         (ignore_library): Strip the sysroot from the library path.
2725
2726 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2727
2728         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2729         (collect2.o): Depend on collect2-aix.h.
2730         (collect2-aix.o): New rule.
2731         * collect2-aix.h: New file.
2732         * collect2-aix.c: Likewise.
2733         * collect2.c: Include collect2-aix.h.  Don't undefine
2734         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2735         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2736         Use TARGET_AIX_VERSION instead of _AIX51.
2737         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2738         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2739         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2740         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2741         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2742
2743 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2744
2745         * collect2.c (ignore_library): Avoid premature post-increment
2746         and null deference.
2747
2748 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2749
2750         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2751         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2752         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2753         CROSS_DIRECTORY_STRUCTURE too.
2754         (LINK_LIBG_SPEC): Likewise.
2755         (LIB_SPEC): Add %R to sysroot paths.
2756         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2757         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2758         * config/rs6000/aix51.h: As for aix43.h.
2759         * config/rs6000/aix52.h: Likewise.
2760         * config/rs6000/aix53.h: Likewise.
2761         * config/rs6000/aix61.h: Likewise.
2762         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2763         to the beginning of sysroot paths.
2764
2765 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2766
2767         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2768         INSN_LISTs that are out of the REG_NOTE range.
2769
2770 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2771
2772         * loop-unroll.c (struct iv_to_split): Add pointer to next.
2773         (struct var_to_expand): Likewise.
2774         (struct opt_info): Add head and tail for linked lists of the above.
2775         (analyze_insn_to_expand_var): Initialize next.
2776         (analyze_iv_to_split_insn): Likewise.
2777         (analyze_insns_in_loop): Create linked lists.
2778         (allocate_basic_variable): Simplify for use without hash table.
2779         (insert_var_expansion_initialization): Likewise, make it type-safer.
2780         (combine_var_copies_in_loop_exit): Likewise.
2781         (apply_opt_in_copies): Walk lists rather than hash tables.
2782         (release_var_copies): Simplified and inlined by hand into...
2783         (free_opt_info): ... this function.
2784
2785 2009-06-02  Richard Guenther  <rguenther@suse.de>
2786
2787         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2788         for field decls.
2789
2790 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2791
2792         * cfgexpand.c (gimple_expand_cfg): Discard the source location
2793         only for builtins that are not overridden.
2794
2795 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2796
2797         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2798         label string.
2799
2800 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2801
2802         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2803
2804 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2805
2806         * combine.c (move_deaths): Compare LUIDs within the same BB only.
2807
2808 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2809
2810         * common.opt (fdump-unnumbered-links): New.
2811         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2812         * print-rtl.c (flag_dump_unnumbered_links): New.
2813         (print_rtx): Test it.
2814
2815 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
2816
2817         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2818         push/pop multiple to 8-byte alignment.
2819
2820 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
2821
2822         * config/i386/i386.c (queued_cfa_restores): New static variable.
2823         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2824         functions.
2825         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2826         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2827         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2828         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2829         note unconditionally.
2830         (ix86_emit_restore_regs_using_mov): Likewise.
2831         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2832         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2833         it through to ix86_emit_restore_reg_using_pop.
2834         (ix86_emit_leave): Add RED_OFFSET argument.  Call
2835         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
2836         instead of adding REG_CFA_OFFSET note unconditionally.
2837         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2838         the above functions.  Call ix86_add_queued_cfa_restore_notes when
2839         needed.
2840
2841         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2842         force output of the label even for dwarf2out_do_cfi_asm.
2843         (add_fde_cfi): If -g2 and above and cfi might change CFA,
2844         force creation of CFI label and chain DW_CFA_set_loc jumping to it
2845         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
2846         caller.
2847         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2848         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2849         dwarf2out_cfi_label callers.
2850         * tree.h (dwarf2out_cfi_label): Adjust prototype.
2851         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2852         Adjust dwarf2out_cfi_label callers.
2853         * config/vax/vax.c (vax_output_function_prologue): Likewise.
2854
2855         * config/i386/i386.h (struct machine_cfa_state,
2856         struct machine_function): Guard with ifndef USED_FOR_TARGET
2857         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2858
2859         PR other/40024
2860         * emutls.c (__emutls_get_address): Change arr->size to mean number
2861         of allocated arr->data entries instead of # of slots + 1.
2862
2863         PR middle-end/40316
2864         * recog.c (peep2_reinit_state): New function.
2865         (peephole2_init_state): Use it at the end of a basic block and also
2866         when seeing a RTX_FRAME_RELATED_P insn.
2867
2868 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
2869
2870         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2871         fixuns_truncrfdi2): New.
2872         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2873         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2874         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2875         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2876         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2877         *recip_approx): Remove.
2878         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2879         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2880         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2881         move to div.md.
2882         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2883         setf_exp_rf): New.
2884
2885 2009-06-01  Ian Lance Taylor  <iant@google.com>
2886
2887         * attribs.c (register_attribute): Use CONST_CAST.
2888         * collect2.c (main): Use CONST_CAST2.
2889         (scan_prog_file): Likewise.
2890         * gcc.c (process_command, main): Likewise.
2891         * toplev.c (toplev_main): Likewise.
2892
2893         * c-typeck.c (handle_warn_cast_qual): New static function,
2894         partially broken out of build_c_cast.
2895         (build_c_cast): Call handle_warn_cast_qual.
2896         * doc/invoke.texi (Warning Options): Document new effect of
2897         -Wcast-qual.
2898
2899 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
2900
2901         * diagnostic.c (diagnostic_build_prefix): Always print columns.
2902         (diagnostic_report_current_module): Print columns.
2903         * common.opt (flag_show_column): Enable by default.
2904
2905 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
2906
2907         * alias.c (find_base_term): Check for NULL term before returning.
2908
2909 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2910
2911         Revert due to PR40320:
2912         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2913         * calls.c (emit_library_call_value_1): Don't force_operand for move
2914         and push insns.
2915
2916 2009-06-01  Olivier Hainque  <hainque@adacore.com>
2917             Eric Botcazou  <ebotcazou@adacore.com>
2918
2919         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2920         to be processed as a bitfield for constructor output purposes.
2921         * output.h (initializer_constant_valid_for_bitfield_p): Declare
2922         new function.
2923         * varasm.c (oc_local_state): New type, output_constructor
2924         local state to support communication with helpers.
2925         (oc_outer_state): New type, output_constructor outer state of
2926         relevance in recursive calls.
2927         (output_constructor_array_range): New output_constructor helper,
2928         extracted code for an array range element.
2929         (output_constructor_regular_field): New output_constructor helper,
2930         extracted code for an element that is not a bitfield.
2931         (output_constructor_bitfield): New output_constructor helper,
2932         extracted code for a bitfield element.  Accept an OUTER state
2933         argument for recursive processing.  Recurse on record or array
2934         CONSTRUCTOR values, possibly past noop conversions.
2935         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
2936         VALUE is a valid constant-valued expression for use in a static
2937         bit-field initializer.
2938         (output_constructor): Rework to use helpers.  Accept and honor an
2939         OUTER state argument for recursive calls.  Return total size.  Be
2940         prepared for nested constructors initializing bitfields.
2941         (output_constant): Feed OUTER in calls to output_constructor.
2942
2943 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2944
2945         * calls.c (emit_library_call_value_1): Don't force_operand for move
2946         and push insns.
2947
2948 2009-06-01  Nick Clifton  <nickc@redhat.com>
2949
2950         * doc/invoke.texi (IA-64 Options): Fix typo.
2951
2952 2009-06-01  Ira Rosen  <irar@il.ibm.com>
2953
2954         PR tree-optimization/39129
2955         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
2956         printed message.
2957         (vect_do_peeling_for_loop_bound): Use 
2958         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2959         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2960         (vect_loop_versioning): Likewise.
2961         (vect_create_cond_for_alias_checks): Fix indentation.
2962         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
2963         macros.
2964         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2965         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2966         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
2967         "control flow in loop".
2968         (vect_estimate_min_profitable_iters): Use 
2969         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2970         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2971         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2972         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2973         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
2974         statement belongs to a group of strided accesses with the exact code 
2975         check.
2976         (vectorizable_load): Likewise.
2977         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2978         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2979
2980 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
2981
2982         * config/freebsd-stdint.h: New file.
2983         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2984         Add freebsd-stdint.h to tm_file.
2985
2986 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
2987
2988         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2989         (thumb2_extendhidi2): Likewise.
2990
2991 2009-05-31  Ian Lance Taylor  <iant@google.com>
2992
2993         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
2994
2995 2009-05-31  Ian Lance Taylor  <iant@google.com>
2996
2997         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
2998         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2999         (ipa-reference.o): Depend upon gt-ipa-reference.h.
3000
3001 2009-05-31  Jason Merrill  <jason@redhat.com>
3002
3003         * tree-pretty-print.c (print_call_name): Take the callee, not the
3004         call itself.  Make non-static.  Use dump_function_name for functions.
3005         (dump_generic_node): Adjust.
3006         * diagnostic.h: Declare print_call_name.
3007         * gimple-pretty-print.c (dump_gimple_call): Use it.
3008
3009 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3010
3011         * config/sh/sh.md (ashldi3_std): New define_expand.
3012         (ashldi3): Use it.
3013
3014 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
3015
3016         PR target/40313
3017         * config/sh/sh.c: Include debug.h.
3018         (sh_expand_epilogue): Emit a blockage insn before the frame
3019         pointer adjustment also when dwarf2out_do_frame returns true.
3020
3021 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
3022
3023         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
3024         (thumb2_extendqidi2): New pattern.
3025
3026 2009-05-31  Ira Rosen  <irar@il.ibm.com>
3027
3028         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
3029         mark phis for renaming.
3030         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
3031         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
3032         Call mark_sym_for_renaming.
3033         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
3034         * tree-vect-loop.c (vect_transform_loop): Remove
3035         vect_memsyms_to_rename initialization and a call to
3036         mark_set_for_renaming.
3037
3038 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
3039
3040         PR middle-end/40304
3041         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
3042         frame related even if !set_cfa && style < 0.
3043
3044 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
3045
3046         * config/i386/mingw-tls.c: New file.
3047         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
3048         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
3049         defining _WIN32 but not __CYGWIN__.
3050
3051 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3052
3053         * configure.ac: Add MPC support.
3054         
3055         * config.in, configure: Regenerate.     
3056
3057 2009-05-29  Richard Henderson  <rth@redhat.com>
3058
3059         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
3060         NOTE_INSN_BASIC_BLOCK.
3061         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
3062         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
3063         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
3064         to be deleted.
3065         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
3066         add in_use field.
3067         (add_cfi): Disable check redefining cfa away from drap.
3068         (lookup_cfa_1): Add remember argument; handle remember/restore.
3069         (lookup_cfa): Pass remember argument.
3070         (cfa_remember): New.
3071         (compute_barrier_args_size_1): Remove sibcall check.
3072         (dwarf2out_frame_debug_def_cfa): New.
3073         (dwarf2out_frame_debug_adjust_cfa): New.
3074         (dwarf2out_frame_debug_cfa_offset): New.
3075         (dwarf2out_frame_debug_cfa_register): New.
3076         (dwarf2out_frame_debug_cfa_restore): New.
3077         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
3078         (dwarf2out_begin_epilogue): New.
3079         (dwarf2out_frame_debug_restore_state): New.
3080         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
3081         DW_CFA_restore_state.
3082         (output_cfi_directive): Likewise.
3083         (convert_cfa_to_fb_loc_list): Likewise.
3084         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
3085         * dwarf2out.h: Update.
3086         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
3087         (copy_insn_1): Early out for null.
3088         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
3089         and dwarf2out_frame_debug_restore_state.
3090         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
3091         (prologue_insn_hash, epilogue_insn_hash): New.
3092         (free_after_compilation): Adjust freeing accordingly.
3093         (record_insns): Create hash table if needed; push insns into
3094         hash instead of array.
3095         (maybe_copy_epilogue_insn): New.
3096         (contains): Search hash table instead of array.
3097         (sibcall_epilogue_contains): Remove.
3098         (thread_prologue_and_epilogue_insns): Split eh_return insns
3099         and mark them as epilogues.
3100         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
3101         scanning in terms of basic blocks.
3102         * insn-notes.def (CFA_RESTORE_STATE): New.
3103         * jump.c (returnjump_p_1): Accept EH_RETURN.
3104         (eh_returnjump_p_1, eh_returnjump_p): New.
3105         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
3106         CFA_REGISTER, CFA_RESTORE): New.
3107         * rtl.def (EH_RETURN): New.
3108         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
3109
3110         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
3111         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
3112
3113         * config/i386/i386.c (gen_push): Update cfa state.
3114         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
3115         add a CFA_ADJUST_CFA note.
3116         (ix86_dwarf_handle_frame_unspec): Remove.
3117         (ix86_expand_prologue): Update cfa state.
3118         (ix86_emit_restore_reg_using_pop): New.
3119         (ix86_emit_restore_regs_using_pop): New.
3120         (ix86_emit_leave): New.
3121         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
3122         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
3123         * config/i386/i386.h (struct machine_cfa_state): New.
3124         (ix86_cfa_state): New.
3125         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
3126         (eh_return_internal): Merge from eh_return_<mode>,
3127         use eh_return rtx, split w/ epilogue.
3128
3129 2009-05-29  Ian Lance Taylor  <iant@google.com>
3130
3131         * builtins.c (validate_gimple_arglist): Don't use va_arg with
3132         enum type.
3133         * calls.c (emit_library_call_value_1): Likewise.
3134
3135         * c-typeck.c (c_build_va_arg): New function.
3136         * c-tree.h (c_build_va_arg): Declare.
3137         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
3138         instead of build_va_arg.
3139
3140 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3141
3142         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
3143         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
3144         (ptr_difference_cost): Use affine combinations to compute it.
3145         (difference_cost): Likewise.
3146         (get_computation_cost_at): Compute more accurate cost for addresses
3147         if the ratio is a multiplier allowed in addresses.
3148         For non-addresses, consider that an additional offset or symbol is
3149         added only once.
3150
3151 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3152
3153         * config/i386/i386.c (ix86_decompose_address): Avoid useless
3154         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
3155
3156         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
3157         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
3158         (prefix_rex): For UNIT_MMX don't imply the prefix by default
3159         if MODE_DI.
3160         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
3161         to 1 for TYPE_SSE{IADD1,CVT1}.
3162         (prefix_vex_imm8): Removed.
3163         (length_vex): Only pass 1 as second argument to
3164         ix86_attr_length_vex_default if prefix_extra is 0.
3165         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
3166         (length): For prefix vex computation use length_immediate
3167         attribute instead of prefix_vex_imm8.
3168         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
3169         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
3170         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
3171         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
3172         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
3173         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
3174         a space in between the operands.
3175         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
3176         if one operand is 0xff and the other one si, di, bp or sp.
3177         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
3178         other one si, di, bp or sp.
3179         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
3180         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
3181         type and mode attributes.
3182         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
3183         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
3184         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
3185         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
3186         prefix_data16 attribute iff MODE_DF.
3187         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
3188         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
3189         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
3190         constm128_operand in length_immediate computation.
3191         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
3192         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
3193         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
3194         length_immediate attribute to 1.
3195         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
3196         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
3197         for certain alternatives.
3198         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
3199         prefix_data16 attribute if MODE_V1DF.
3200         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
3201         length_immediate to 1.
3202         (set_got_rex64, set_rip_rex64): Remove length attribute, set
3203         length_address to 4, set mode attribute to MODE_DI.
3204         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
3205         (fxam<mode>2_i387): Set length attribute to 4.
3206         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
3207         *prefetch_3dnow_rex): Override length_address attribute.
3208         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
3209         attributes.
3210         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
3211         (constm128_operand): Removed.
3212         * config/i386/i386.c (memory_address_length): For
3213         disp && !index && !base in 64-bit mode account for SIB byte if
3214         print_operand_address can't optimize disp32 into disp32(%rip)
3215         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
3216         for fs: or gs: segment.
3217         (ix86_attr_length_immediate_default): When checking if shortform
3218         is possible, truncate immediate to the length of the non-shortened
3219         immediate.
3220         (ix86_attr_length_address_default): Ignore MEM_P operands
3221         with X constraint.
3222         (ix86_attr_length_vex_default): Only check for DImode on
3223         GENERAL_REG_P operands.
3224         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
3225         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
3226         (sse_cvttps2pi): Clear prefix_rep attribute.
3227         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
3228         attribute.
3229         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
3230         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
3231         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
3232         iff operand 2 is const_int_operand.
3233         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
3234         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
3235         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
3236         instead of vex.
3237         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
3238         prefix_data16.
3239         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
3240         prefix_data16 attribute for movlpd and movhpd instructions.
3241         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
3242         length_immediate for shufpd instruction.
3243         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
3244         (avx_cmpp<avxmodesuffixf2c><mode>3,
3245         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
3246         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
3247         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
3248         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
3249         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
3250         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
3251         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
3252         prefix_data16 attribute for the first alternative to 1.
3253         (*avx_loadlps): Override length_immediate for the first alternative.
3254         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
3255         attributes for second alternative.
3256         (*vec_concatv2sf_sse4_1): Override length_immediate and
3257         prefix_data16 attributes for second alternative.
3258         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
3259         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
3260         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
3261         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
3262         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
3263         prefix_data16 and length_immediate to 1.
3264         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
3265         to 1.
3266         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
3267         prefix_extra attribute for variants that don't have 0f prefix alone.
3268         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
3269         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
3270         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
3271         *sse4_1_pextrd): Set length_immediate to 1.
3272         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
3273         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
3274         to 1.
3275         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
3276         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
3277         length_immediate to 1 for second alternative.
3278         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
3279         prefix_extra and length_immediate attributes for the first
3280         alternative.
3281         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
3282         first alternative.
3283         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
3284         to 1 for the first and third alternative.
3285         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
3286         alternative.
3287         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
3288         attribute.
3289         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
3290         attribute to 0.
3291         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
3292         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
3293         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
3294         *avx_psign<mode>3): Set prefix_extra attribute to 1.
3295         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
3296         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
3297         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
3298         ssse3_psign<mode>3): Override prefix_rex attribute.
3299         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
3300         (ssse3_palignrti): Override length_immediate to 1.
3301         (ssse3_palignrdi): Override length_immediate to 1, override
3302         prefix_rex attribute.
3303         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
3304         (sse4a_extrqi): Override length_immediate to 2.
3305         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
3306         (sse4a_insertq): Override prefix_data16 to 0.
3307         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
3308         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
3309         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
3310         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
3311         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
3312         and length_immediate to 1.
3313         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
3314         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
3315         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
3316         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
3317         and length_immediate to 1.
3318         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
3319         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
3320         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
3321         avx_ptest256): Override prefix_extra to 1.
3322         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
3323         Override prefix_data16 and length_immediate to 1.
3324         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
3325         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
3326         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
3327         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
3328         prefix_data16 to 0 and prefix_extra to 2.
3329         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
3330         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
3331         attribute.
3332         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
3333         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
3334         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
3335         and prefix_extra to 2.
3336         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
3337         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
3338         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
3339         avx_vpermilvar<mode>3,
3340         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
3341         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
3342         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
3343         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
3344         Override prefix_extra to 1.
3345         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
3346         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
3347         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
3348         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
3349         prefix_extra and length_immediate to 1.
3350         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
3351         modrm to 0.
3352         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
3353         to 1 for the first alternative.
3354         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
3355         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
3356         cases.
3357         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
3358         *movv2sf_internal_avx, *movv2sf_internal): Override
3359         prefix_rep attribute for certain alternatives.
3360         (*mov<mode>_internal): Override prefix_rep or prefix_data16
3361         attributes for certain alternatives.
3362         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
3363         attributes for certain alternatives.
3364         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
3365         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
3366         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
3367         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
3368         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
3369         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
3370         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
3371         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
3372         length_immediate to 1 if operand 2 is const_int_operand.
3373         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
3374         *vec_extractv2si_1): Set length_immediate attribute to 1.
3375         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
3376         using old 3DNOW insn rather than SSE/3DNOW_A.
3377         (mmx_emms, mmx_femms): Clear modrm attribute.
3378
3379 2009-05-29  Martin Jambor  <mjambor@suse.cz>
3380
3381         * tree-sra.c:  New implementation of SRA.
3382
3383         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
3384         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
3385         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
3386         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
3387         (SRA_MAX_STRUCTURE_COUNT): Removed.
3388         (SRA_FIELD_STRUCTURE_RATIO): Removed.
3389         * doc/invoke.texi (sra-max-structure-size): Removed.
3390         (sra-field-structure-ratio): Removed.
3391
3392 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3393
3394         PR middle-end/40291
3395         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
3396         before expansion.
3397
3398 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
3399
3400         PR rtl-optimization/40101
3401         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
3402         seqno.  Adjust comment.
3403         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
3404         inserting bookkeeping before a jump, the jump is not scheduled.
3405         When no positive seqno found, provide a value.  Add comment.
3406
3407 2009-05-29  Richard Guenther  <rguenther@suse.de>
3408
3409         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
3410         short-cutting on the first component.
3411
3412 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR middle-end/39958
3415         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
3416         for trees other than decls/types.
3417
3418 2009-05-29  Richard Guenther  <rguenther@suse.de>
3419
3420         * tree-ssa-operands.c (get_expr_operands): Do not handle
3421         INDIRECT_REFs in the handled-component case.  Remove
3422         unused get_ref_base_and_extent case.
3423         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
3424         tree_low_cst and host_integerp where possible.
3425         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
3426         codes for equivalence.
3427         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
3428
3429 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
3430
3431         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
3432         to tmake_file for i[34567]86-*-cygwin*. 
3433
3434 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
3435
3436         PR target/40017
3437         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
3438         (altivec_categorize_keyword, init_vector_keywords,
3439         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
3440         similar to bool.
3441
3442 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
3443
3444         * tree.c (handle_dll_attribute): Check if node is
3445         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
3446
3447 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
3448
3449         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
3450         component.
3451         (thumb2_zero_extendqidi2): Likewise.
3452
3453 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3454
3455         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
3456         instead of gen_movrt.
3457         * config/sh/sh.md (movrt): Remove.
3458
3459 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
3460
3461         * doc/invoke.texi (IA-64 Options):
3462         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
3463         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
3464         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
3465         -msched-prefer-non-control-spec-insns,
3466         -msched-stop-bits-after-every-cycle,
3467         -msched-count-spec-in-critical-path,
3468         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
3469         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
3470         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
3471         and -msched-spec-verbose.
3472
3473 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
3474
3475         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
3476         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
3477         error if used.
3478         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
3479
3480 2009-05-28  Richard Guenther  <rguenther@suse.de>
3481
3482         * tree-ssa-alias.c (ao_ref_init): New function.
3483         (ao_ref_base): Likewise.
3484         (ao_ref_base_alias_set): Likewise.
3485         (ao_ref_alias_set): Likewise.
3486         (refs_may_alias_p_1): Change signature.
3487         (refs_may_alias_p): Adjust.
3488         (refs_anti_dependent_p): Likewise.
3489         (refs_output_dependent_p): Likewise.
3490         (call_may_clobber_ref_p_1): Change signature.
3491         (call_may_clobber_ref_p): Adjust.
3492         (stmt_may_clobber_ref_p_1): New function split out from ...
3493         (stmt_may_clobber_ref_p): ... here.
3494         (maybe_skip_until): Adjust signature.
3495         (get_continuation_for_phi): Likewise.
3496         (walk_non_aliased_vuses): Likewise.
3497         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
3498         (ao_ref_init): Declare.
3499         (ao_ref_base): Likewise.
3500         (ao_ref_alias_set): Likewise.
3501         (stmt_may_clobber_ref_p_1): Likewise.
3502         (walk_non_aliased_vuses): Adjust.
3503         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
3504         (get_ref_from_reference_ops): remove.
3505         (vn_reference_lookup_2): Adjust signature.
3506         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
3507         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
3508         (vn_reference_lookup): Adjust.
3509         (vn_reference_insert): Likewise.
3510         (vn_reference_insert_pieces): Adjust signature.
3511         (visit_reference_op_call): Adjust.
3512         * tree-ssa-pre.c (get_expr_type): Simplify.
3513         (phi_translate_1): Adjust.
3514         (compute_avail): Likewise.
3515         (translate_vuse_through_block): Do not re-build trees.
3516         (value_dies_in_block_x): Likewise.
3517         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
3518         fields.
3519         (vn_reference_lookup_pieces): Adjust declaration.
3520         (vn_reference_insert_pieces): Likewise.
3521
3522 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
3523
3524         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
3525         with checking disabled.
3526
3527 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
3528
3529         PR target/37216
3530
3531         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
3532         macro definition for support of three-operand format aligned
3533         .comm directive in assembler on cygwin/pe/mingw target OS.
3534         * configure:  Regenerate.
3535         * config.h:  Regenerate.
3536
3537         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
3538         aligned form of .comm directive if -mpe-aligned-commons is in effect.
3539         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
3540
3541         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
3542         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
3543
3544 2009-05-28  Ira Rosen  <irar@il.ibm.com>
3545
3546         PR tree-optimization/40254
3547         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3548         in analysis of basic blocks.
3549
3550 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
3551
3552         PR middle-end/33699
3553         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
3554         * target-def.h (TARGET_CONST_ANCHOR): New macro.
3555         (TARGET_INITIALIZER): Use it.
3556         * cse.c (CHEAPER): Move it up to the other macros.
3557         (insert): Rename this ...
3558         (insert_with_costs): ... to this.  Add cost parameters.  Update
3559         function comment.
3560         (insert): New function.  Call insert_with_costs.
3561         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3562         find_reg_offset_for_const, try_const_anchors): New functions.
3563         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
3564         when using a const-anchor.  Call insert_const_anchors.
3565         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
3566         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3567
3568 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3569
3570         * tree-inline.c (remap_decls): Enable nonlocalized variables
3571         when not optimizing.
3572
3573 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3574
3575         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3576         Simplify other tests involving optimize.
3577
3578 2009-05-27  Tom Tromey  <tromey@redhat.com>
3579
3580         * unwind-dw2.c (_Unwind_DebugHook): New function.
3581         (uw_install_context): Call _Unwind_DebugHook.
3582
3583 2009-05-27  Tom Tromey  <tromey@redhat.com>
3584
3585         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3586
3587 2009-05-27  Ian Lance Taylor  <iant@google.com>
3588
3589         * Makefile.in (LINKER, LINKER_FLAGS): Define.
3590         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3591         (ALL_LINKERFLAGS): Define.
3592         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3593         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3594         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3595         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3596         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3597         $(LINKER_FOR_BUILD).
3598         (build/gcov-iov$(build_exeext)): Likewise.
3599
3600 2009-05-27  Julian Brown  <julian@codesourcery.com>
3601
3602         * gcse.c (target.h): Include.
3603         (can_assign_to_reg_without_clobbers_p): Check that the target allows
3604         copy of argument to a pseudo register.
3605
3606 2009-05-27  Diego Novillo  <dnovillo@google.com>
3607
3608         * tree-ssa-live.c (dump_scope_block): Document arguments.
3609         (dump_scope_blocks): Document.
3610         (debug_scope_blocks): New.
3611         * tree-flow.h (debug_scope_blocks): Declare.
3612
3613 2009-05-21  Denis Chertykov  <denisc@overta.ru>
3614
3615         * doc/contrib.texi (Contributors): Add myself to the list.
3616
3617 2009-05-27  Olivier Hainque  <hainque@adacore.com>
3618
3619         * expr.c (target_align): New function.  Alignment the TARGET of an
3620         assignment may be assume to have.
3621         (highest_pow2_factor_for_target): Use it instead of relying on
3622         immediate tree attributes of TARGET, not necessarily honored when
3623         intermediate bitfields are involved.
3624         
3625 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3626
3627         PR target/40266
3628         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3629         AVX, SSE4, AES, PCLMUL and POPCNT.
3630
3631 2009-05-27  Diego Novillo  <dnovillo@google.com>
3632
3633         * tree-pretty-print.c (dump_location): New.
3634         (dump_generic_node): Call it.
3635         Factor code to handle BLOCK nodes ...
3636         (dump_block_node): ... here.
3637
3638 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
3639
3640         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
3641         with it.
3642         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
3643         included.
3644         * gcc-plugin.h: Include config.h and system.h.
3645         (IN_GCC): Define if not defined.
3646
3647 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
3648
3649         PR middle-end/40249
3650         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
3651         with -fno-inline.
3652
3653 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
3654
3655         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3656         applicable.
3657         * config/m32r/m32r.h: Ditto.
3658         * config/m32r/m32r.md: Ditto.
3659         * config/m32r/predicates.md: Ditto.
3660
3661 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
3662
3663         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3664
3665 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
3666
3667         * doc/plugins.texi
3668         (Loading plugins): typo.
3669         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3670         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3671         (Interacting with the GCC Garbage Collector): Added new section.
3672         (Giving information about a plugin): Added new section for
3673         PLUGIN_INFO.
3674         * ggc.h (ggc_register_root_tab): Added declaration.
3675         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3676         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3677         (register_callback): Improved comment in declaration.
3678         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3679         (extra_root_vec) Added static variable for dynamic roots registration.
3680         (ggc_register_root_tab) Added new routine.
3681         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3682         PLUGIN_GGC_MARKING event.
3683         * ggc-zone.c: Include plugin.h.
3684         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3685         * ggc-page.c: Include plugin.h.
3686         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3687         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3688         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3689         (register_callback): check lack of callbacks for
3690         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3691         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3692         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3693         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3694         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3695         dependency on plugin.h.
3696         (plugin.o): Added dependency on ggc.h...
3697
3698 2009-05-26  Richard Guenther  <rguenther@suse.de>
3699
3700         PR middle-end/40248
3701         Revert
3702         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3703         with mismatched comparison modes.
3704
3705         * expr.c (expand_expr_real_1): Expand the operand of a
3706         VIEW_CONVERT_EXPR in its natural mode.
3707
3708 2009-05-26  Ian Lance Taylor  <iant@google.com>
3709
3710         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3711         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3712         (ALL_COMPILERFLAGS): Define.
3713         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3714         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3715         (collect2$(exeext), collect2.o): Likewise.
3716         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3717         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3718         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3719         (libbackend.o, intl.o, cppdefault.o): Likewise.
3720         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3721         (build/%.o): Use $(COMPILER_FOR_BUILD).
3722         (build/gen%$(build_exeext)): Likewise.
3723         (build/gcov-iov$(build_exeext)): LIkewise.
3724         * config/t-darwin (darwin.o): Use $(COMPILER).
3725         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3726         * config/t-sol2 (sol2-c.o): Likewise.
3727         (sol2.o): Likewise.
3728         * config/t-vxworks (vxworks.o): Likewise.
3729         * config/x-darwin (host-darwin.o): Likewise.
3730         * config/x-hpux (host-hpux.o): Likewise.
3731         * config/x-linux (host-linux.o): Likewise.
3732         * config/x-solaris (host-solaris.o): Likewise.
3733         * config/alpha/x-alpha (driver-alpha.o): Likewise.
3734         * config/arm/t-arm (arm-c.o): Likewise.
3735         * config/arm/t-pe (pe.o): Likewise.
3736         * config/arm/t-wince-pe (pe.o): Likewise.
3737         * config/i386/t-cygming (winnt.o): Likewise.
3738         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3739         * config/i386/t-cygwin (cygwin1.o): Likewise.
3740         (cygwin2.o): Likewise.
3741         * config/i386/t-i386 (i386-c.o): Likewise.
3742         * config/i386/t-interix (winnt.o): Likewise.
3743         * config/i386/t-netware (netware.o): Likewise.
3744         * config/i386/t-nwld (nwld.o): Likewise.
3745         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3746         * config/i386/x-i386 (driver-i386.o): Likewise.
3747         * config/i386/x-cygwin (host-cygwin.o): Likewise.
3748         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3749         * config/ia64/t-ia64 (ia64-c.o): Likewise.
3750         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3751         * config/mips/x-native (driver-native.o): Likewise.
3752         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3753         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3754         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3755         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3756         * config/score/t-score-elf (score7.o): Likewise.
3757         (score3.o): Likewise.
3758         * config/sh/t-sh (sh-c.o): Likewise.
3759         * config/sh/t-symbian (sh-c.o): Likewise.
3760         (symbian.o): Likewise.
3761         * config/spu/t-spu-elf (spu-c.o): Likewise.
3762         * config/v850/t-v850 (v850-c.o): Likewise.
3763         * config/v850/t-v850e (v850-c.o): Likewise.
3764
3765 2009-05-26  Richard Guenther  <rguenther@suse.de>
3766
3767         PR tree-optimization/40122
3768         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3769         VECTOR_CSTs if possible.
3770         (fold_gimple_assign): Likewise.
3771
3772 2009-05-26  Richard Guenther  <rguenther@suse.de>
3773
3774         PR middle-end/40252
3775         * fold-const.c (fold_binary): Use the correct types for building
3776         rotates.
3777
3778 2009-05-26  Richard Guenther  <rguenther@suse.de>
3779
3780         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3781         redundant calls to merge_alias_info.
3782         (bump_vector_ptr): Likewise.
3783         * tree-ssa-copy.c (merge_alias_info): Remove.
3784         (replace_exp_1): Remove call to merge_alias_info.
3785         (propagate_tree_value): Likewise.
3786         (fini_copy_prop): Propagate points-to info.
3787         * tree-flow.h (merge_alias_info): Remove.
3788
3789 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
3790
3791         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3792
3793 2009-05-25  Jan Hubicka  <jh@suse.cz>
3794
3795         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3796         * cgraph.h (struct inline_summary): New filed self_wize,
3797         size_inlining_benefit, self_time and time_inlining_benefit.
3798         (struct cgraph_global_info): Replace insns by time ans size fields.
3799         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3800         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3801         (ipcp_update_callgraph): Do not touch function bodies.
3802         * ipa-inline.c: Include except.h
3803         (MAX_TIME): New constant.
3804         (overall_insns): Remove.
3805         (leaf_node_p): New.
3806         (overall_size, max_benefit): New static variables.
3807         (cgraph_estimate_time_after_inlining): New function.
3808         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3809         (cgraph_clone_inlined_nodes): Update size.
3810         (cgraph_mark_inline_edge): Update size.
3811         (cgraph_estimate_growth): Use size info.
3812         (cgraph_check_inline_limits): Check size.
3813         (cgraph_default_inline_p): Likewise.
3814         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3815         (cgraph_decide_recursive_inlining): Check size.
3816         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3817         and times.
3818         (cgraph_decide_inlining): Likewise.
3819         (cgraph_decide_inlining_incrementally): Likewise; honor
3820         PARAM_EARLY_INLINING_INSNS.
3821         (likely_eliminated_by_inlining_p): New predicate.
3822         (estimate_function_body_sizes): New function.
3823         (compute_inline_parameters): Use it.
3824         * except.c (must_not_throw_labels): New function.
3825         * except.h (must_not_throw_labels): Declare.
3826         * tree-inline.c (init_inline_once): Kill inlining_weigths
3827         * tree-ssa-structalias.c: Avoid uninitialized warning.
3828         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3829         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3830         (PARAM_INLINE_CALL_COST): Remove.
3831         (PARAM_EARLY_INLINING_INSNS): New.
3832
3833 2009-05-25  Richard Guenther  <rguenther@suse.de>
3834
3835         PR tree-optimization/36327
3836         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
3837         callback for reference translation or lookup at the point of may-defs.
3838         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3839         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3840         for union COMPONENT_REFs.
3841         (vn_reference_lookup_3): New callback.  Lookup from memset
3842         and CONSTRUCTOR assignment, translate through struct copies.
3843         (vn_reference_lookup_pieces): Make sure to not free the
3844         passed operands array.  Adjust walk_non_aliased_vuses call.
3845         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3846         make sure we do not leak memory.
3847
3848 2009-05-25  Richard Guenther  <rguenther@suse.de>
3849
3850         * tree-ssa-alias.h (dump_points_to_solution): Declare.
3851         * tree-inline.c (expand_call_inline): Reset the escaped and
3852         callused solutions.
3853         * tree-ssa-structalias.c (pass_build_ealias): New.
3854         * tree-pass.h (pass_build_ealias): Declare.
3855         * passes.c (init_optimization_passes): Add PTA during 
3856         early optimizations.
3857         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3858         and CALLUSED solutions.
3859         (dump_points_to_solution): New function, split out from ...
3860         (dump_points_to_info_for): ... here.
3861         * tree-parloops.c (parallelize_loops): Reset the escaped and
3862         callused solutions.
3863
3864 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3865
3866         PR bootstrap/40027
3867         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3868         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3869
3870 2009-05-25  Ira Rosen  <irar@il.ibm.com>
3871
3872         PR tree-optimization/40238
3873         * tree-vect-stmts.c (vect_init_vector): Insert initialization
3874         statements after basic block's labels.
3875         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
3876         to free the allocated memory.
3877
3878 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3879
3880         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3881         return address with a USE.
3882
3883 2009-05-24  Richard Guenther  <rguenther@suse.de>
3884
3885         PR middle-end/40233
3886         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3887         array type from the main variant of the inner type.
3888
3889 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3890
3891         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3892         definition to bool (from int) to un-break build.
3893         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3894
3895 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
3896
3897         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3898         discard_stmt_changes): Delete.
3899         * tree-ssa-operands.c (scb_stack): Delete.
3900         (init_ssa_operands): Do not initialize it.
3901         (fini_ssa_operands): Do not free it.
3902         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3903
3904         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
3905         update_stmt, remove the others.  Fix comments.
3906         * tree-dfa.c (optimize_stack_restore): Likewise.
3907         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3908         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3909         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3910         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3911         Likewise.
3912         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3913         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3914         (dom_opt_finalize_block): Likewise, adjusting access to
3915         stmts_to_rescan.
3916         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3917         (stmts_to_rescan): Change item type to gimple.
3918         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3919
3920 2009-05-24  Ira Rosen  <irar@il.ibm.com>
3921
3922         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3923         * tree-pass.h (pass_slp_vectorize): New pass.
3924         * params.h (SLP_MAX_INSNS_IN_BB): Define.
3925         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3926         * tree-vectorizer.c (timevar.h): Include.
3927         (user_vect_verbosity_level): Declare.
3928         (vect_location): Fix comment.
3929         (vect_set_verbosity_level): Update user_vect_verbosity_level
3930         instead of vect_verbosity_level.
3931         (vect_set_dump_settings): Add an argument. Ignore user defined
3932         verbosity if dump flags require higher level of verbosity. Print to
3933         stderr only for loop vectorization.
3934         (vectorize_loops): Update call to vect_set_dump_settings.
3935         (execute_vect_slp): New function.
3936         (gate_vect_slp): Likewise.
3937         (struct gimple_opt_pass pass_slp_vectorize): New.
3938         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3939         access its members.
3940         (vec_info_for_bb): New function.
3941         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3942         (VECTORIZATION_ENABLED): New macro.
3943         (SLP_ENABLED, SLP_DISABLED): Likewise.
3944         (vect_is_simple_use): Add bb_vec_info argument.
3945         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3946         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3947         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3948         vect_schedule_slp, vect_analyze_slp): Likewise.
3949         (vect_analyze_stmt): Add slp_tree argument.
3950         (find_bb_location): Declare.
3951         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3952         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3953         (vect_analyze_loop_operations, vect_analyze_loop,
3954         get_initial_def_for_induction, vect_create_epilog_for_reduction,
3955         vect_finalize_reduction, vectorizable_reduction,
3956         vectorizable_live_operation, vect_transform_loop): Likewise.
3957         * tree-data-ref.c (dr_analyze_innermost): Update comment,
3958         skip evolution analysis if analyzing a basic block.
3959         (dr_analyze_indices): Likewise.
3960         (initialize_data_dependence_relation): Skip the test whether the
3961         object is invariant for basic blocks.
3962         (compute_all_dependences): Skip dependence analysis for data
3963         references in basic blocks.
3964         (find_data_references_in_stmt): Don't fail in case of invariant
3965         access in basic block.
3966         (find_data_references_in_bb): New function.
3967         (find_data_references_in_loop): Move code to
3968         find_data_references_in_bb and add a call to it.
3969         (compute_data_dependences_for_bb): New function.
3970         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3971         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3972         that STEP is 0.
3973         (vect_analyze_data_ref_dependence): Check for interleaving in case of
3974         unknown dependence in basic block and fail in case of dependence in
3975         basic block.
3976         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3977         dependence instances from either loop or basic block vectorization
3978         info.
3979         (vect_compute_data_ref_alignment): Check if it is loop vectorization
3980         before calling nested_in_vect_loop_p.
3981         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3982         dependence instances from either loop or basic block vectorization
3983         info.
3984         (vect_verify_datarefs_alignment): Likewise.
3985         (vect_enhance_data_refs_alignment): Adjust function calls.
3986         (vect_analyze_data_refs_alignment): Likewise.
3987         (vect_analyze_group_access): Fix printing. Skip different checks if
3988         DR_STEP is 0. Keep strided stores either in loop or basic block
3989         vectorization data structure. Fix indentation.
3990         (vect_analyze_data_ref_access): Fix comments, allow zero step in
3991         basic blocks.
3992         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3993         dependence instances from either loop or basic block vectorization
3994         info.
3995         (vect_analyze_data_refs): Update comment. Call
3996         compute_data_dependences_for_bb to analyze basic blocks.
3997         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3998         case of loop vectorization. In case of basic block vectorization use
3999         data-ref itself as a base.
4000         (vect_create_data_ref_ptr): In case of basic block vectorization:
4001         don't advance the pointer, add new statements before the current
4002         statement.  Adjust function calls.
4003         (vect_supportable_dr_alignment): Support only aligned accesses in
4004         basic block vectorization.
4005         * common.opt (ftree-slp-vectorize): New flag.
4006         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
4007         (vect_pattern_recog_1): Likewise.
4008         * tree-vect-stmts.c (process_use): Likewise.
4009         (vect_init_vector): Add new statements in the beginning of the basic
4010         block in case of basic block SLP.
4011         (vect_get_vec_def_for_operand): Adjust function calls.
4012         (vect_finish_stmt_generation): Likewise.
4013         (vectorizable_call): Add assert that it is loop vectorization, adjust
4014         function calls.
4015         (vectorizable_conversion, vectorizable_assignment): Likewise.
4016         (vectorizable_operation): In case of basic block SLP, take
4017         vectorization factor from statement's type and skip the relevance
4018         check. Adjust function calls.
4019         (vectorizable_type_demotion): Add assert that it is loop
4020         vectorization, adjust function calls.
4021         (vectorizable_type_promotion): Likewise.
4022         (vectorizable_store): Check for outer loop only in case of loop
4023         vectorization. Adjust function calls. For basic blocks, skip the
4024         relevance check and don't advance pointers.
4025         (vectorizable_load): Likewise.
4026         (vectorizable_condition): Add assert that it is loop vectorization,
4027         adjust function calls.
4028         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
4029         that it is not reduction, get vector type, call only supported
4030         functions, skip loop specific parts.
4031         (vect_transform_stmt): Check for outer loop only in case of loop
4032         vectorization.
4033         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
4034         (vect_is_simple_use): Fix comment, add new argument, fix conditions
4035         for external definition.
4036         * passes.c (pass_slp_vectorize): New pass.
4037         * tree-vect-slp.c (find_bb_location): New function.
4038         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
4039         check for patterns only in loops.
4040         (vect_build_slp_tree): Add argument, adjust function calls, fail in
4041         case of multiple types in basic block SLP.
4042         (vect_mark_slp_stmts_relevant): New function.
4043         (vect_supported_load_permutation_p): Fix comment.
4044         (vect_analyze_slp_instance): Add argument. In case of basic block
4045         SLP, take vectorization factor from statement's type, check that
4046         unrolling factor is 1. Adjust function call. Save SLP instance in
4047         either loop or basic block vectorization structure. Return FALSE,
4048         if SLP failed.
4049         (vect_analyze_slp): Add argument. Get strided stores groups from
4050         either loop or basic block vectorization structure. Return FALSE
4051         if basic block SLP failed.
4052         (new_bb_vec_info): New function.
4053         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
4054         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
4055         (vect_schedule_slp): Add argument. Get SLP instances from either
4056         loop or basic block vectorization structure. Set vectorization factor
4057         to be 1 for basic block SLP.
4058         (vect_slp_transform_bb): New function.
4059         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
4060
4061 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
4062
4063         * final.c (shorten_branches): Do not align labels for jump tables.
4064         (final_scan_insn): Use JUMP_TABLE_DATA_P.
4065
4066 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4067
4068         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
4069         Remove outdated reference to flow.c and fix nits.
4070         * doc/gccint.texi: Tweak RTL description.
4071         * doc/rtl.texi: Likewise.
4072
4073 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
4074
4075         * config/avr/avr.c: Change my email address.
4076         * config/avr/avr.h: Likewise.
4077         * config/avr/avr.md: Likewise.
4078         * config/avr/avr-protos.h: Likewise.
4079         * config/avr/libgcc.S: Likewise.
4080
4081 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
4082
4083         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
4084         (spu_split_load, spu_split_store): Change return type to int.
4085         (spu_split_convert): Declare.
4086         * config/spu/predicates.md (spu_mem_operand): Remove.
4087         (spu_mov_operand): Update.
4088         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
4089         * config/spu/spu.c (regno_aligned_for_load): Remove.
4090         (reg_aligned_for_addr, spu_expand_load): Define.
4091         (spu_expand_extv): Reimplement and handle MEM.
4092         (spu_expand_insv): Handle MEM.
4093         (spu_sched_reorder): Handle insn's with length 0.
4094         (spu_legitimate_address_p): Reimplement.
4095         (store_with_one_insn_p): Return TRUE for any mode with size
4096         larger than 16 bytes.
4097         (address_needs_split): Define.
4098         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
4099         operands.
4100         (spu_convert_move): Define.
4101         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
4102         (spu_split_store): Change all MEM's to TImode.
4103         (spu_init_expanders): Preallocate registers that correspond to
4104         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
4105         mark_reg_pointer.
4106         (spu_split_convert): Define.
4107         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
4108         (_move<mode>, _movdi, _movti): Update predicate and condition.
4109         (load, store): Change to define_split.
4110         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
4111         extend<mode>ti2.
4112         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
4113         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
4114         define_insn_and_split of lshr<mode>3.
4115         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
4116         (<v>ashr<mode>3_imm): Define.
4117         (extv, extzv, insv): Allow MEM operands.
4118         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
4119         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
4120         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
4121         (_spu_convert2): Change to define_insn_and_split and remove the
4122         corresponding define_peephole2.
4123         (stack_protect_set, stack_protect_test, stack_protect_test_si):
4124         Change predicates to memory_operand.
4125
4126 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
4127
4128         * config/arm/thumb2.md: Add 16-bit multiply instructions.
4129
4130 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
4131
4132         PR tree-optimization/40219
4133         * tree.c (iterative_hash_expr): Make sure the builtin function is
4134         a normal builtin function and not a front end or back end builtin
4135         before indexing into the built_in_decls array.
4136
4137 2009-05-22  Richard Guenther  <rguenther@suse.de>
4138
4139         PR middle-end/38964
4140         * alias.c (write_dependence_p): Do not use TBAA for answering
4141         anti-dependence or output-dependence.
4142         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4143         (emit_pointer_definition): Remove.
4144         (emit_alias_warning): Likewise.
4145         (find_what_var_points_to): Remove TBAA pruning code.
4146         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
4147         violations.
4148         (compute_points_to_sets): Remove code computing the set of
4149         dereferenced pointers.
4150         * tree-data-ref.c (dr_may_alias_p): Properly use the split
4151         oracle for querying anti and output dependencies.
4152         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
4153         if TBAA may be applied.
4154         (refs_anti_dependent_p): New function.
4155         (refs_output_dependent_p): Likewise.
4156         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
4157         (refs_output_dependent_p): Likewise.
4158         * doc/tree-ssa.texi (Memory model): New section.
4159         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4160         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4161         * cfgexpand.c (expand_gimple_basic_block): Do not handle
4162         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
4163         * expr.c (expand_expr_real_1): Likewise.
4164         * gimple-low.c (lower_stmt): Likewise.
4165         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
4166         (dump_gimple_cdt): Remove.
4167         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4168         (gimple_size): Likewise.
4169         (walk_gimple_op): Likewise.
4170         (is_gimple_stmt): Likewise.
4171         (walk_stmt_load_store_addr_ops): Likewise.
4172         (gimple_build_cdt): Remove.
4173         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
4174         * gimple.h (gimple_cdt_new_type): Remove.
4175         (gimple_cdt_new_type_ptr): Likewise.
4176         (gimple_cdt_set_new_type): Likewise.
4177         (gimple_cdt_location): Likewise.
4178         (gimple_cdt_location_ptr): Likewise.
4179         (gimple_cdt_set_location): Likewise.
4180         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4181         * tree-cfg.c (remove_useless_stmts_1): Do not handle
4182         GIMPLE_CHANGE_DYNAMIC_TYPE.
4183         (verify_types_in_gimple_stmt): Likewise.
4184         * tree-inline.c (estimate_num_insns): Likewise.
4185         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
4186         (copy_decl_to_var): Likewise.
4187         (copy_result_decl_to_var): Likewise.
4188         * tree-pretty-print.c (dump_generic_node): Do not handle
4189         CHANGE_DYNAMIC_TYPE_EXPR.
4190         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
4191         * tree-ssa-operands.c (get_expr_operands): Likewise.
4192         * tree-ssa-structalias.c (struct variable_info): Remove
4193         no_tbaa_pruning member.
4194         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
4195         (unify_nodes): Do not copy it.
4196         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
4197         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
4198         (set_uids_in_ptset): Do not check it.
4199         (find_what_var_points_to): Likewise.
4200         (compute_tbaa_pruning): Remove.
4201         (compute_points_to_sets): Do not call it.
4202         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
4203         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
4204         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
4205         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
4206         (DECL_NO_TBAA_P): Likewise.
4207         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
4208         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
4209         (expand_omp_atomic_pipeline): Do not set it.
4210         * print-tree.c (print_node): Do not dump it.
4211         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4212         redundant check.
4213
4214 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
4215
4216         PR target/39856
4217         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
4218         for clobber.
4219
4220 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
4221
4222         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
4223         non-external.
4224
4225 2009-05-22  Ben Elliston  <bje@au.ibm.com>
4226
4227         * Makefile.in (bversion.h, s-bversion): New targets.
4228         (TOPLEV_H): Add bversion.h.
4229         * toplev.h: Include "bversion.h".
4230         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
4231         the __format__ attribute only if compiling with the same version
4232         of GCC as the sources (the "build version").
4233
4234 2009-05-22  Ben Elliston  <bje@au.ibm.com>
4235
4236         * c-format.c (handle_format_attribute): Fix comment typo.
4237
4238 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
4239
4240         PR target/37846
4241         * config/ia64/ia64.opt (mfused-madd): New.
4242         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
4243         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4244         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
4245         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
4246         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
4247         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
4248         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
4249         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
4250         instruction if !TARGET_FUSED_MADD.
4251         (fpma, fpms): Remove colon from name.
4252
4253 2009-05-22  Richard Guenther  <rguenther@suse.de>
4254
4255         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
4256         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
4257         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
4258         TARGET_MEM_REF.
4259         (create_expression_by_pieces): Only convert if necessary.
4260         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
4261         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
4262
4263 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
4264
4265         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
4266         regular pattern from a template and rename it ...
4267         (*extzv_truncsi_exts): ... to this.
4268
4269 2009-05-21  Richard Guenther  <rguenther@suse.de>
4270
4271         * cgraph.h (struct cgraph_node): Remove inline_decl member.
4272         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
4273         (cgraph_default_inline_p): Likewise.
4274         (cgraph_decide_inlining_incrementally): Likewise.
4275
4276 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
4277             Uros Bizjak  <ubizjak@gmail.com>
4278
4279         * config/i386/cpuid.h (bit_MOVBE): New.
4280
4281         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
4282
4283         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
4284         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
4285         (ix86_handle_option): Handle OPT_mmovbe.
4286         (ix86_target_string): Add -mmovbe.
4287         (pta_flags): Add PTA_MOVBE.
4288         (processor_alias_table): Add PTA_MOVBE to "atom".
4289         (override_options): Handle PTA_MOVBE.
4290
4291         * config/i386/i386.h (TARGET_MOVBE): New.
4292
4293         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
4294         (*bswapsi_movbe): New.
4295         (*bswapdi_movbe): Likewise.
4296         (bswapdi2): Renamed to ...
4297         (*bswapdi_1): This.
4298         (bswapdi2): New expander.
4299
4300         * config/i386/i386.opt (mmovbe): New.
4301
4302         * doc/invoke.texi: Document -mmovbe.
4303
4304 2009-05-21  Taras Glek  <tglek@mozilla.com>
4305
4306         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
4307         * gcc-plugin.h (plugin_init): Updated signature.
4308         * gcc-plugin.h (plugin_name_args): Moved to this header.
4309         * doc/plugins.texi (plugin_init): Updated documention to reflect
4310         API change.
4311         * doc/plugins.texi (plugin_name_args): Added to documention.
4312
4313 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
4314
4315         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
4316         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
4317
4318 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
4319
4320         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
4321         JUMP_TABLE_DATA_P predicates where applicable.
4322         * config/i386/predicates.md: Ditto.
4323         * config/i386/sse.md: Ditto.
4324
4325 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
4326
4327         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
4328         operand2 -128 override length_immediate attribute to 1.
4329         * config/i386/predicates.md (constm128_operand): New predicate.
4330
4331         * config/i386/i386.c (memory_address_length): Handle %r12
4332         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
4333         also check REGNO.
4334         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
4335         mode look through optional ZERO_EXTEND and SUBREG.
4336         * config/i386/i386.md (R12_REG): New define_constant.
4337         (prefix_data16): For sse unit set also for MODE_TI insns.
4338         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
4339         insns set if operand 1 is ext_QIreg_operand.
4340         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
4341         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
4342         immediate.
4343         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
4344         mode from MODE_DI to MODE_SI.
4345         (movdi_1_rex64): Override modrm and length_immediate attributes
4346         only for movabs (TYPE_IMOV, alternative 2).
4347         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
4348         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
4349         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
4350         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
4351         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
4352         prefix_rex attribute if DImode.
4353         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
4354         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
4355         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
4356         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
4357         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
4358         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
4359         Likewise.  For TYPE_IMOV clear length_immediate attribute.
4360         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
4361         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
4362         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
4363         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
4364         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
4365         or one operand TYPE_ISHIFT.
4366         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
4367         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
4368         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
4369         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
4370         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
4371         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
4372         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
4373         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
4374         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
4375         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
4376         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
4377         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
4378         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
4379         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
4380         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
4381         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
4382         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
4383         set mode attribute, don't override length attribute.
4384         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
4385         to 1.
4386         (return_internal_long): Set length attribute to 2 instead of 1.
4387         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
4388         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
4389         prefix_rex attribute.
4390         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
4391         New predicates.
4392         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
4393
4394 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4395
4396         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
4397
4398 2009-05-20  Ian Lance Taylor  <iant@google.com>
4399
4400         * tree.c (build_tree_list_vec_stat): New function.
4401         (ctor_to_vec): New function.
4402         (build_nt_call_vec): New function.
4403         (build_call_array): Change args to be a const pointer.
4404         (build_call_vec): New function.
4405         * tree.h (build_nt_call_vec): Declare.
4406         (build_tree_list_vec_stat): Declare.
4407         (build_tree_list_vec): Define.
4408         (build_call_array): Update declaration.
4409         (build_call_vec): Declare.
4410         (ctor_to_vec): Declare.
4411         * c-common.c (tree_vector_cache): New static variable.
4412         (make_tree_vector): New function.
4413         (release_tree_vector): New function.
4414         (make_tree_vector_single): New function.
4415         (make_tree_vector_copy): New function.
4416         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
4417         (make_tree_vector_single, make_tree_vector_copy): Declare.
4418         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
4419         (c_parser_expr_list): Don't manage cache here, instead call
4420         make_tree_vector.
4421         (c_parser_release_expr_list): Remove static function.
4422         (c_parser_vec_to_tree_list): Remove static function.
4423         (c_parser_attributes): Call build_tree_list_vec instead of
4424         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
4425         c_parser_release_expr_list.
4426         (c_parser_postfix_expression_after_primary): Likewise.
4427         (c_parser_objc_keywordexpr): Likewise.
4428
4429 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
4430
4431         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
4432         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
4433         TARGET_CONVERT_TO_TYPE.
4434         * hooks.c (hook_tree_const_tree_null): Define.
4435         * hooks.h (hook_tree_const_tree_null): Declare.
4436         * target.h (struct gcc_target):  Add invalid_parameter_type,
4437         invalid_return_type, promoted_type, and convert_to_type fields.
4438         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
4439         (TARGET_INVALID_RETURN_TYPE): Define.
4440         (TARGET_PROMOTED_TYPE): Define.
4441         (TARGET_CONVERT_TO_TYPE): Define.
4442         (TARGET_INITIALIZER): Update for new fields.
4443         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
4444         (grokparms): Check targetm.invalid_parameter_type.
4445         * c-typeck.c (default_conversion): Check targetm.promoted_type.
4446         * c-convert.c (convert): Check targetm.convert_to_type.
4447
4448 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
4449
4450         * config/mips/mips.md (*extenddi_truncate<mode>,
4451         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
4452         defintions.
4453         (*extendhi_truncateqi): New define_insn_and_sptit.
4454
4455 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
4456
4457         PR middle-end/40204
4458         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
4459         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
4460
4461 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
4462
4463         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4464         the operand of VIEW_CONVERT_EXPR.
4465
4466 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
4467
4468         * config/i386/driver-i386.c (host_detect_local_cpu): Check
4469         extended family and model for Intel processors.  Support Intel Atom.
4470
4471 2009-05-20  Olivier Hainque  <hainque@adacore.com>
4472
4473         * gstab.h (stab_code_type): Define, to be used instead of the
4474         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
4475         notice.
4476         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
4477         occurrences by stab_code_type.
4478         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
4479
4480 2009-05-20  Martin Jambor  <mjambor@suse.cz>
4481
4482         * tree-flow.h (insert_edge_copies_seq): Undeclare.
4483         (sra_insert_before): Likewise.
4484         (sra_insert_after): Likewise.
4485         (sra_init_cache): Likewise.
4486         (sra_type_can_be_decomposed_p): Likewise.
4487         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
4488         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
4489         (sra_insert_before): Likewise.
4490         (sra_insert_after): Likewise.
4491         (sra_init_cache): Likewise.
4492         (insert_edge_copies_seq): Made static and moved upwards.
4493
4494         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
4495         case.
4496
4497         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
4498
4499         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
4500         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
4501         simple copies.
4502
4503 2009-05-20  Richard Guenther  <rguenther@suse.de>
4504
4505         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
4506         with mismatched comparison modes.
4507
4508 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4509
4510         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
4511         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
4512         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
4513         with shifts for Thumb2.
4514         (orsi_notsi): New for orn.
4515         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
4516         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
4517         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
4518         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
4519         Don't invert remainder for IOR.
4520         
4521 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
4522
4523         PR tree-optimization/40087
4524         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
4525         number_of_iterations_ne): Rename never_infinite argument.
4526         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
4527         number_of_iterations_le): Handle pointer-type ivs when
4528         exit_must_be_taken is false.
4529         (number_of_iterations_cond):  Do not always assume that
4530         exit_must_be_taken if the control variable is a pointer.
4531
4532 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4533
4534         * c-typeck.c (build_binary_op): Allow % on integal vectors.
4535         * doc/extend.texi (Vector Extension): Document that % is allowed too.
4536
4537 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
4538
4539         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
4540         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
4541
4542 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4543
4544         PR c/40172
4545         * c.opt (Wlogical-op): Disabled by default.
4546         * c-opt (c_common_post_options): Do not enable Wlogical-op with
4547         Wextra.
4548         * doc/invoke.texi (Wlogical-op): Likewise.
4549         
4550 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4551
4552         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
4553         into CASE_CONVERT.
4554         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
4555         Propagate the type of the first operand.
4556         <ASSERT_EXPR>: Simplify.
4557         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
4558         Rewrite using the RHS code as discriminant.
4559         <NOP_EXPR>: Turn into CASE_CONVERT.
4560         <PLUS_EXPR>: Propagate the type of the first operand.
4561
4562 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
4563
4564         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
4565         (ia64_dconst_0_375): New.
4566         * config/ia64/ia64.c (ia64_override_options): Remove
4567         -minline-sqrt-min-latency warning.
4568         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
4569         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
4570         * config/ia64/ia64.md (*sqrt_approx): Remove.
4571         (sqrtsf2): Remove #if 0.
4572         (sqrtsf2_internal_thr): Rewrite and move to div.md.
4573         (sqrtdf): Remove assert.
4574         (sqrtdf2_internal_thr): Rewrite and move to div.md.
4575         (sqrtxf2): Remove #if 0.
4576         (sqrtxf2_internal_thr): Rewrite and move to div.md.
4577         * div.md (sqrt_approx_rf): New.
4578         (sqrtsf2_internal_thr): New implementation.
4579         (sqrtsf2_internal_lat): New.
4580         (sqrtdf2_internal_thr: New implementation.
4581         (sqrtxf2_internal): New implementation.
4582
4583 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
4584             Hans-Peter Nilsson  <hp@axis.com>
4585
4586         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
4587         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
4588         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
4589         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
4590         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
4591         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
4592         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
4593         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
4594         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
4595         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
4596         * c-common.c: ...from here.
4597
4598 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4599
4600         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
4601
4602 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4603
4604         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
4605
4606 2009-05-19  Ben Elliston  <bje@au.ibm.com>
4607
4608         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
4609         assignments with memcpy calls.
4610         (add_fdes): Likewise.
4611         (binary_search_unencoded_fdes): Likewise.
4612         (linear_search_fdes): Eliminate type puns.
4613         
4614 2009-05-19  Richard Guenther  <rguenther@suse.de>
4615
4616         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
4617         not falsely claim to have propagated into all uses.
4618
4619 2009-05-19  Ben Elliston  <bje@au.ibm.com>
4620
4621         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
4622         version to v3.0.
4623
4624 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4625
4626         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
4627         * config/sh/sh.c (sh_legitimate_address_p): Make static.
4628         (TARGET_LEGITIMATE_ADDRESS_P): New.
4629         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
4630         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
4631         
4632 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
4633
4634         PR debug/40109
4635         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
4636         child of the containing namespace's DIE.
4637
4638 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
4639
4640         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
4641         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
4642         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
4643         extend patterns.
4644
4645 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
4646
4647         PR target/39942
4648         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
4649         gen_align with gen_pad.
4650         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
4651         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
4652
4653         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
4654         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
4655
4656         * config/i386/i386.md (align): Renamed to ...
4657         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
4658         ASM_OUTPUT_MAX_SKIP_PAD.
4659
4660 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
4661
4662         * config.gcc: Fix variable syntax.
4663
4664         PR target/39531
4665         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
4666         before calling exact_log2.
4667         (output_iorsi3): Likewise.
4668         (output_xorsi3): Likewise.
4669
4670 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4671
4672         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
4673         for the none zero constant operand except for EQ and NE
4674         comprisons even when the first operand is R0.
4675
4676 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
4677
4678         * config/s390/2064.md: Remove trailing whitespaces.
4679         * config/s390/2084.md: Likewise.
4680         * config/s390/constraints.md: Likewise.
4681         * config/s390/fixdfdi.h: Likewise.
4682         * config/s390/libgcc-glibc.ver: Likewise.
4683         * config/s390/s390-modes.def: Likewise.
4684         * config/s390/s390-protos.h: Likewise.
4685         * config/s390/s390.c: Likewise.
4686         * config/s390/s390.h: Likewise.
4687         * config/s390/s390.md: Likewise.
4688         * config/s390/tpf-unwind.h: Likewise.
4689
4690 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4691
4692         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
4693
4694 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
4695
4696         M68K TLS support.
4697         * configure.ac (m68k-*-*): Check if binutils support TLS.
4698         * configure: Regenerate.
4699         * config/m68k/predicates.md (symbolic_operand): Extend comment.
4700         * config/m68k/constraints.md (Cu): New constraint.
4701         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
4702         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
4703         (movsi): Handle TLS symbols.
4704         (addsi3_5200): Handle XTLS symbols, indent.
4705         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
4706         (m68k_tls_reference_p): Declare.
4707         (m68k_legitimize_address): Declare.
4708         (m68k_unwrap_symbol): Declare.
4709         * config/m68k/m68k.opt (mxtls): New option.
4710         * config/m68k/m68k.c (ggc.h): Include.
4711         (m68k_output_dwarf_dtprel): Implement hook.
4712         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
4713         (m68k_expand_prologue): Load GOT pointer when function needs it.
4714         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
4715         (m68k_legitimate_constant_address_p): Same.
4716         (m68k_decompose_address): Handle TLS references.
4717         (m68k_get_gp): New static function.
4718         (enum m68k_reloc): New contants.
4719         (TLS_RELOC_P): New macro.
4720         (m68k_wrap_symbol): New static function.
4721         (m68k_unwrap_symbol): New function.
4722         (m68k_final_prescan_insn_1): New static function.
4723         (m68k_final_prescan_insn): New function.
4724         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
4725         functions.
4726         (legitimize_pic_address): Handle TLS references..
4727         (m68k_tls_get_addr, m68k_get_tls_get_addr)
4728         (m68k_libcall_value_in_a0_p)
4729         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
4730         (m68k_call_m68k_read_tp): Helper variables and functions for ...
4731         (m68k_legitimize_tls_address): Handle TLS references.
4732         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
4733         New functions.
4734         (m68k_legitimize_address): Handle TLS symbols.
4735         (m68k_get_reloc_decoration): New static function.
4736         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
4737         UNSPEC_RELOC32.
4738         (m68k_output_dwarf_dtprel): Implement hook.
4739         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
4740         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
4741         m68k_call_* routines.
4742         (sched_attr_op_type): Handle TLS symbols.
4743         (gt-m68k.h): Include.
4744         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
4745         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
4746
4747 2009-05-18  Martin Jambor  <mjambor@suse.cz>
4748
4749         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
4750         (visit_store_addr_for_mod_analysis): New function.
4751         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
4752         (determine_cst_member_ptr): Use gimple_assign_single_p.
4753         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
4754         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
4755         operands.  Don't check number of operands of a NOP_EXPR.
4756
4757 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
4758
4759         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
4760
4761 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4762
4763         PR c/40172
4764         * c-common.c (warn_logical_operator): Don't warn if one of
4765         expression isn't always true or false.
4766
4767 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
4768
4769         * config/i386/biarch32.h: New file.
4770         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
4771
4772 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
4773
4774         * config/mips/mips.md (*zero_extend<mode>_trunchi,
4775         *zero_extend<mode>_truncqi): Merge these into ...
4776         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
4777         Name the pattern following this as *zero_extendhi_truncqi.
4778
4779 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
4780
4781         PR middle-end/39301
4782         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
4783         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
4784         (output_info): Make field HOST_WIDEST_INT.
4785         (print_statistics): Use HOST_WIDEST_INT_PRINT.
4786         (dump_bitmat_statistics): Same.
4787
4788 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
4789
4790         * config.gcc (use_gcc_stdint):  Set to wrap.
4791         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4792         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4793         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4794         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4795         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4796         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4797         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4798         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4799
4800 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
4801
4802         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
4803         tune_64.
4804         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
4805         Move definitions earlier.
4806         (OPT_ARCH64, OPT_ARCH32): Define.
4807         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
4808         and tune_64.
4809
4810 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
4811
4812         PR target/40153
4813         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
4814         implies.
4815
4816 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
4817
4818         * arm.md (movdi2): Copy non-reg values to DImode registers.
4819
4820 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
4821
4822         PR target/39942
4823         * final.c (label_to_max_skip): New function.
4824         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
4825         CODE_LABEL_NUMBER <= max_labelno.
4826         * output.h (label_to_max_skip): New prototype.
4827         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
4828         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
4829         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
4830         Handle CODE_LABELs with >= 16 byte alignment or with
4831         max_skip == (1 << align) - 1.
4832         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
4833         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
4834
4835         PR target/39942
4836         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
4837         .p2align 3 if MAX_SKIP is smaller than 7.
4838         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
4839
4840 2009-05-15  Ian Lance Taylor  <iant@google.com>
4841
4842         * alias.c (struct alias_set_entry_d): Rename from struct
4843         alias_set_entry.  Change all uses.
4844         * except.c (struct call_site_record_d): Rename from struct
4845         call_site_record.  Change all uses.
4846         * except.h (struct eh_region_d): Rename from struct eh_region.
4847         Change all uses.
4848         * gcse.c (struct hash_table_d): Rename from struct hash_table.
4849         Change all uses.
4850         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
4851         ivtype_map_elt.  Change all uses.
4852         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
4853         Change all uses.
4854         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
4855         * graphite.h (struct name_tree_d): Rename from struct name_tree.
4856         Change all uses.
4857         (struct sese_d): Rename from struct sese.  Change all uses.
4858         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
4859         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
4860         * optabs.h (struct optab_d): Rename from struct optab.  Change all
4861         uses.
4862         (struct convert_optab_d): Rename from struct convert_optab.
4863         Change all uses.
4864         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
4865         ipa_opt_pass.  Change all uses.
4866         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
4867         all uses.
4868
4869         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
4870         defined as a typedef.
4871         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
4872         defined as a tag.
4873
4874 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4875
4876         PR 16302
4877         * fold-const.c (make_range,build_range_check,merge_ranges): Move
4878         declaration to...
4879         (merge_ranges): Returns bool. 
4880         * tree.h (make_range): .. to here.
4881         (build_range_check): Likewise.
4882         (merge_ranges): Likewise. Renamed from merge_ranges.
4883         * c-typeck.c (parser_build_binary_op): Update calls to
4884         warn_logical_operator.
4885         * c-common.c (warn_logical_operator): Add new warning.
4886         * c-common.h (warn_logical_operator): Update declaration.
4887         
4888 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4889
4890         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
4891         
4892 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4893
4894         * doc/install.texi: Document MPC requirements, flags etc.
4895
4896         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
4897         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
4898         Evaluate constant arguments.
4899         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
4900         (fold_builtin_1): Likewise, also evaluate constant arguments.
4901         Remove superfluous break.
4902         (do_mpc_ckconv): New.
4903         * real.h: Include mpc.h.
4904         * toplev.c (print_version): Output MPC version info if available.
4905
4906 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
4907
4908         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
4909
4910 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
4911
4912         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
4913         only once.
4914
4915 2009-05-15  Jan Hubicka  <jh@suse.cz>
4916
4917         * doc/invoke.texi (max-early-inliner-iterations): New flag.
4918         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
4919         (try_inline): Fix return value.
4920         (cgraph_decide_inlining_incrementally): Honor new value.
4921         (cgraph_early_inlining): Handle indirect inlining.
4922         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
4923
4924 2009-05-15  Jan Hubicka  <jh@suse.cz>
4925
4926         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
4927         * cgraphunit.c (cgraph_finalize_function): Set it.
4928         (cgraph_expand_function): Use it.
4929
4930 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
4931
4932         * real.c (encode_ieee_half): Define.
4933         (decode_ieee_half): Define.
4934         (ieee_half_format): Define.
4935         (arm_half_format): Define.
4936         * real.h (ieee_half_format): Declare.
4937         (arm_half_format): Declare.
4938
4939 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
4940
4941         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
4942         swapped, and reversed optabs exist before trying to use them.
4943
4944 2009-05-15  Paul Brook  <paul@codesourcery.com>
4945             Sandra Loosemore  <sandra@codesourcery.com>
4946
4947         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
4948         loads.  Allow PRE_DEC.
4949         (output_move_neon): Handle PRE_DEC.
4950         (arm_print_operand): Add 'A' for neon structure loads.
4951         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
4952         * config/arm/neon.md (neon_mov): Update comment.
4953         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
4954         calls.
4955         (Um): New constraint.
4956
4957 2009-05-15  Jan Hubicka  <jh@suse.cz>
4958
4959         Revert the following patch until testsuite fallout is fixed:
4960         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
4961         * cgraph.h (struct inline_summary): New filed self_wize,
4962         size_inlining_benefit, self_time and time_inlining_benefit.
4963         (struct cgraph_global_info): Replace insns by time ans size fields.
4964         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
4965         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
4966         (ipcp_update_callgraph): Do not touch function bodies.
4967         * ipa-inline.c: Include except.h
4968         (MAX_TIME): New constant.
4969         (overall_insns): Remove
4970         (overall_size, max_benefit): New static variables.
4971         (cgraph_estimate_time_after_inlining): New function.
4972         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
4973         (cgraph_clone_inlined_nodes): Update size.
4974         (cgraph_mark_inline_edge): Update size.
4975         (cgraph_estimate_growth): Use size info.
4976         (cgraph_check_inline_limits): Check size.
4977         (cgraph_default_inline_p): Likewise.
4978         (cgraph_edge_badness): Compute badness based on benefit and size cost.
4979         (cgraph_decide_recursive_inlining): Check size.
4980         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
4981         and times.
4982         (cgraph_decide_inlining): Likewise.
4983         (cgraph_decide_inlining_incrementally): Likewise; honor
4984         PARAM_EARLY_INLINING_INSNS.
4985         (likely_eliminated_by_inlining_p): New predicate.
4986         (estimate_function_body_sizes): New function.
4987         (compute_inline_parameters): Use it.
4988         * except.c (must_not_throw_labels): New function.
4989         * except.h (must_not_throw_labels): Declare.
4990         * tree-inline.c (init_inline_once): Kill inlining_weigths
4991         * tree-ssa-structalias.c: Avoid uninitialized warning.
4992         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
4993         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
4994         (PARAM_INLINE_CALL_COST): Remove.
4995         (PARAM_EARLY_INLINING_INSNS): New.
4996
4997 2009-05-15  Richard Guenther  <rguenther@suse.de>
4998
4999         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
5000         not TODO_update_ssa.
5001
5002 2009-05-15  Richard Guenther  <rguenther@suse.de>
5003
5004         PR tree-optimization/39999
5005         * gimple.h (gimple_expr_type): Use the expression type looking
5006         through useless conversions.
5007         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
5008         (vn_nary_op_insert_stmt): Likewise.
5009         (simplify_binary_expression): Likewise.
5010
5011 2009-05-15  Richard Guenther  <rguenther@suse.de>
5012
5013         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5014         New options, enabled by default.
5015         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
5016         Document.
5017         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
5018         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
5019         * tree-ssa-structalias.c (gate_tree_pta): New function.
5020         (pass_build_alias): Use it.
5021
5022 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
5023
5024         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
5025         recurse on an invariant address if a conversion from a pointer
5026         type to a wider integer type is involved.
5027
5028 2009-05-15  Jan Hubicka  <jh@suse.cz>
5029
5030         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
5031         * cgraph.h (struct inline_summary): New filed self_wize,
5032         size_inlining_benefit, self_time and time_inlining_benefit.
5033         (struct cgraph_global_info): Replace insns by time ans size fields.
5034         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
5035         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
5036         (ipcp_update_callgraph): Do not touch function bodies.
5037         * ipa-inline.c: Include except.h
5038         (MAX_TIME): New constant.
5039         (overall_insns): Remove
5040         (overall_size, max_benefit): New static variables.
5041         (cgraph_estimate_time_after_inlining): New function.
5042         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
5043         (cgraph_clone_inlined_nodes): Update size.
5044         (cgraph_mark_inline_edge): Update size.
5045         (cgraph_estimate_growth): Use size info.
5046         (cgraph_check_inline_limits): Check size.
5047         (cgraph_default_inline_p): Likewise.
5048         (cgraph_edge_badness): Compute badness based on benefit and size cost.
5049         (cgraph_decide_recursive_inlining): Check size.
5050         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
5051         and times.
5052         (cgraph_decide_inlining): Likewise.
5053         (cgraph_decide_inlining_incrementally): Likewise; honor
5054         PARAM_EARLY_INLINING_INSNS.
5055         (likely_eliminated_by_inlining_p): New predicate.
5056         (estimate_function_body_sizes): New function.
5057         (compute_inline_parameters): Use it.
5058         * except.c (must_not_throw_labels): New function.
5059         * except.h (must_not_throw_labels): Declare.
5060         * tree-inline.c (init_inline_once): Kill inlining_weigths
5061         * tree-ssa-structalias.c: Avoid uninitialized warning.
5062         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
5063         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
5064         (PARAM_INLINE_CALL_COST): Remove.
5065         (PARAM_EARLY_INLINING_INSNS): New.
5066         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
5067         (inline-call-cost): Remove.
5068         (early-inlining-insns): New.
5069
5070 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5071
5072         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
5073         for bounds.
5074         (print_int_cst_bounds_in_octal_p): Likewise.
5075         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
5076         with subtypes.
5077         * dwarf2out.c (base_type_die): Likewise.
5078         (is_subrange_type): Delete.
5079         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
5080         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
5081         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
5082         if the destination type is boolean.
5083         (build_range_check): Do not special-case subtypes.
5084         (fold_sign_changed_comparison): Likewise.
5085         (fold_unary): Likewise.
5086         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
5087         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
5088         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
5089         * tree.c (subrange_type_for_debug_p): New predicate based on the
5090         former is_subrange_type.
5091         * tree.h (subrange_type_for_debug_p): Declare.
5092         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
5093         (convert_affine_scev): Remove call to above function.
5094         (chrec_convert_aggressive): Likewise.
5095         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
5096         false for conversions involving subtypes.
5097         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
5098         (vrp_val_min): Likewise.
5099         (needs_overflow_infinity): Likewise.
5100         (extract_range_from_unary_expr): Likewise.
5101
5102 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
5103
5104         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
5105         * config/frv/frv.c: Likewise.
5106         * config/s390/s390.c: Likewise.
5107         * config/sparc/sparc.h: Likewise.
5108         * config/i386/i386.h: Likewise.
5109         * config/i386/i386.c: Likewise.
5110         * config/crx/crx.c: Likewise.
5111         * config/m68hc11/m68hc11.h: Likewise.
5112         * config/iq2000/iq2000.c: Likewise.
5113         * config/mn10300/mn10300.h: Likewise.
5114         * config/mn10300/mn10300.c: Likewise.
5115         * config/m68k/m68k.c: Likewise.
5116         * config/rs6000/rs6000.c: Likewise.
5117         * config/rs6000/xcoff.h: Likewise.
5118         * config/rs6000/linux64.h: Likewise.
5119         * config/rs6000/sysv4.h: Likewise.
5120         * config/score/score3.c: Likewise.
5121         * config/score/score7.c: Likewise.
5122         * config/score/score.c: Likewise.
5123         * config/arm/arm.md: Likewise.
5124         * config/mips/mips.c: Likewise.
5125         * config/mips/mips.md: Likewise.
5126         * config/bfin/bfin.h: Likewise.
5127         * config/pa/pa.c: Likewise.
5128         * config/pa/constraints.md: Likewise.
5129
5130         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
5131         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
5132         * config/pdp11/pdp11.h: Use memory_address_p instead.
5133
5134 2009-05-14  Ian Lance Taylor  <iant@google.com>
5135
5136         * passes.c (finish_optimization_passes): Change i to int.
5137         * plugin.c (plugins_active_p): Change event to int.
5138         (dump_active_plugins): Likewise.
5139         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
5140         Add cast.
5141         * tree.c (tree_range_check_failed): Change c to unsigned int.
5142         (omp_clause_range_check_failed): Likewise.
5143         (build_common_builtin_nodes): Change mode to int.  Add cast.
5144         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
5145         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
5146
5147         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
5148         ++ or -- with a variable of enum type.
5149
5150 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5151
5152         PR driver/40144
5153         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
5154
5155 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5156
5157         * store-motion.c: Do not include params.h
5158         * Makefile.in: Fix dependencies for various files.
5159
5160 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
5161
5162         * auto-inc-dec.c: Fix pass description, remove apparent
5163         accidental duplication.
5164
5165 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
5166
5167         PR middle-end/40147
5168         * ipa-utils.h (memory_identifier_string): Moved to ...
5169         * tree.h (memory_identifier_string): Here.  Add GTY(()).
5170
5171 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
5172
5173         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
5174         in the former documentation of...
5175         (GO_IF_LEGITIMATE_ADDRESS): ... this.
5176         * ira-conflicts.c (get_dup_num): Use address_operand.
5177         * targhooks.c (default_legitimate_address_p): New.
5178         * targhooks.h (default_legitimate_address_p): New.
5179         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
5180         Call hook.
5181         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
5182         * target.h (struct target): Add legitimate_address_p.
5183         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
5184         (TARGET_INITIALIZER): Include it.
5185
5186         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5187         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
5188         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
5189         (TARGET_LEGITIMATE_ADDRESS_P): New.
5190
5191         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5192         (REG_OK_STRICT_P): Delete.
5193         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
5194         (frv_legitimate_address_p_1): ... this.
5195         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
5196         (frv_legitimate_address_p_1): ... the renamed old
5197         frv_legitimate_address_p.
5198         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
5199         (TARGET_LEGITIMATE_ADDRESS_P): New.
5200
5201         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5202         * config/s390/s390-protos.h (legitimate_address_p): Remove.
5203         * config/s390/s390.c (legitimate_address_p): Rename to...
5204         (s390_legitimate_address_p): ... this, make static.
5205         (legitimize_address): Adjust call.
5206         (TARGET_LEGITIMATE_ADDRESS_P): New.
5207         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
5208
5209         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5210         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
5211         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
5212         (TARGET_LEGITIMATE_ADDRESS_P): New.
5213
5214         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5215         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
5216         * config/spu/spu.c (spu_legitimate_address): Rename to...
5217         (spu_legitimate_address_p): ... this, make static.
5218         (TARGET_LEGITIMATE_ADDRESS_P): New.
5219
5220         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5221         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
5222         * config/sparc/sparc.c (legitimate_address_p): Rename to...
5223         (sparc_legitimate_address_p): ... this, make static and return bool.
5224         (legitimize_address): Adjust call.
5225         (TARGET_LEGITIMATE_ADDRESS_P): New.
5226
5227         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5228         * config/i386/i386-protos.h (legitimate_address_p): Remove.
5229         * config/i386/i386.c (legitimate_address_p): Rename to...
5230         (ix86_legitimate_address_p): ... this, make static.
5231         (constant_address_p): Move after it, adjust call.
5232         (TARGET_LEGITIMATE_ADDRESS_P): New.
5233
5234         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5235         * config/avr/avr-protos.h (legitimate_address_p): Remove.
5236         * config/avr/avr.c (legitimate_address_p): Rename to...
5237         (avr_legitimate_address_p): ... this, make static.
5238         (legitimize_address): Adjust call.
5239         (TARGET_LEGITIMATE_ADDRESS_P): New.
5240
5241         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5242         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
5243         * config/crx/crx.c (crx_legitimate_address_p): Make static.
5244         (TARGET_LEGITIMATE_ADDRESS_P): New.
5245
5246         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5247         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
5248         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
5249         (TARGET_LEGITIMATE_ADDRESS_P): New.
5250
5251         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5252         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
5253         Remove.
5254         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
5255         Make static.
5256         (TARGET_LEGITIMATE_ADDRESS_P): New.
5257
5258         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5259         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
5260         Remove.
5261         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
5262         Rename to...
5263         (m68hc11_legitimate_address_p): ... this, make static.
5264         (go_if_legitimate_address_internal): Rename to...
5265         (m68hc11_legitimate_address_p_1): ... this.
5266         (legitimize_address): Adjust call.
5267         (TARGET_LEGITIMATE_ADDRESS_P): New.
5268
5269         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5270         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
5271         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
5272         (TARGET_LEGITIMATE_ADDRESS_P): New.
5273
5274         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5275         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
5276         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
5277         (mn10300_legitimate_address_p): ... this, make static.
5278         (TARGET_LEGITIMATE_ADDRESS_P): New.
5279
5280         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5281         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
5282         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
5283         (TARGET_LEGITIMATE_ADDRESS_P): New.
5284
5285         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5286         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
5287         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
5288         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5289         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
5290         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
5291         (rs6000_legitimate_address_p): ... this, make static.
5292         (TARGET_LEGITIMATE_ADDRESS_P): New.
5293         (REG_MODE_OK_FOR_BASE_P): Delete.
5294         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
5295
5296         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5297         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
5298         Delete.
5299         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
5300         static, adjust types.
5301         (TARGET_LEGITIMATE_ADDRESS_P): New.
5302
5303         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5304         * config/score/score.c (score_address_p): Rename to...
5305         (score_legitimate_address_p): ... this.
5306         (TARGET_LEGITIMATE_ADDRESS_P): New.
5307         * config/score/score3.c (score3_address_p): Rename to...
5308         (score3_legitimate_address_p): ... this.
5309         * config/score/score7.c (score7_address_p): Rename to...
5310         (score7_legitimate_address_p): ... this.
5311
5312         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
5313         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
5314         GO_IF_LEGITIMATE_ADDRESS): Delete.
5315         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
5316         thumb2_legitimate_address_p): Delete.
5317         (arm_legitimate_address_p): Rename to...
5318         (arm_legitimate_address_outer_p): ... this.
5319         * config/arm/constraints.md ("Uq"): Adjust call.
5320         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
5321         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
5322         to...
5323         (arm_legitimate_address_outer_p): ... this.
5324         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
5325         static.
5326         (TARGET_LEGITIMATE_ADDRESS_P): New.
5327
5328         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5329         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
5330         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
5331         (TARGET_LEGITIMATE_ADDRESS_P): New.
5332
5333         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5334         * config/vax/vax-protos.h (legitimate_address_p): Remove.
5335         * config/vax/vax.c (legitimate_address_p): Rename to...
5336         (vax_legitimate_address_p): ... this, make static.
5337         (TARGET_LEGITIMATE_ADDRESS_P): New.
5338
5339         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5340         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
5341         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
5342         (TARGET_LEGITIMATE_ADDRESS_P): New.
5343
5344         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5345         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
5346         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
5347         (mmix_legitimate_address_p): ... this, make static.
5348         (TARGET_LEGITIMATE_ADDRESS_P): New.
5349
5350         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
5351         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
5352         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
5353         (TARGET_LEGITIMATE_ADDRESS_P): New.
5354
5355 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
5356
5357         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
5358         of MODE_COMPLEX_INT.
5359
5360 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5361
5362         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
5363         LCT_NORMAL in function call.
5364         * mips-tdump.c (print_file_desc): Add cast to enum type.
5365         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
5366         (mark_stabs): Add casts to enum types.
5367         (parse_stabs_common): Add casts to enum types.
5368
5369 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
5370
5371         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
5372         Check for invalid values of LETTER.
5373
5374 2009-05-13  Taras Glek  <tglek@mozilla.com>
5375
5376         * attribs.c (register_attribute): moved out attribute registration
5377         into register_attribute.
5378         * doc/plugins.texi: Documented register_attribute and
5379         PLUGIN_ATTRIBUTES.
5380         * gcc-plugin.h: Added forward decl for register_attribute.
5381         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
5382         * plugin.c (register_callback, invoke_plugin_callbacks): Added
5383         PLUGIN_ATTRIBUTES boilerplate.
5384
5385 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
5386
5387         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
5388         values even in sentinel and empty entries.
5389         (ms_printf_flag_specs):  Likewise.
5390         (ms_scanf_flag_specs):  Likewise.
5391         (ms_strftime_flag_specs):  Likewise.
5392         (ms_print_char_table):  Likewise.
5393         (ms_scan_char_table):  Likewise.
5394         (ms_time_char_table):  Likewise.
5395
5396 2009-05-13  Doug Kwan  <dougkwan@google.com>
5397
5398         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
5399
5400 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
5401
5402         * config/mips/mips.md (store): Add attributes for QI and HI.
5403         Update comment.
5404         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
5405         (truncdi<mode>2): ... this new pattern.
5406
5407 2009-05-13  Brad Hards  <bradh@kde.org>
5408
5409         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
5410
5411 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
5412             Ben Elliston <bje@au.ibm.com>
5413
5414         PR middle-end/40035
5415         * dse.c (check_mem_read_rtx): Guard against width == -1.
5416
5417 2009-05-13  Michael Matz  <matz@suse.de>
5418
5419         PR middle-end/39976
5420         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
5421         (trivially_conflicts_p): New function.
5422         (insert_backedge_copies): Use it.
5423
5424 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
5425
5426         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
5427         (handle_stdc_pragma): Use new enum constant names.
5428         (handle_pragma_float_const_decimal64): Ditto.
5429
5430 2009-05-13  Ian Lance Taylor  <iant@google.com>
5431
5432         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
5433         tree.def.
5434
5435 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
5436
5437         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
5438         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
5439         multilibs.
5440         * config/m68k/m68k.h (FL_UCLINUX): Define.
5441
5442 2009-05-13  Jan Hubicka  <jh@suse.cz>
5443
5444         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
5445
5446 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5447
5448         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
5449         unless -fschedule-insns is specified.
5450
5451 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5452
5453         PR target/39561
5454         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
5455         TARGET_EXPAND_CBRANCHDI4.
5456         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
5457         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
5458         (cmpeqdi): Fix comment.
5459
5460 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5461
5462         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
5463         (sh_legitimate_address_p): Likewise.
5464         * config/sh/sh.c (sh_legitimate_index_p): New.
5465         (sh_legitimate_address_p): Likewise.
5466         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
5467         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
5468         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
5469         (MAYBE_BASE_REGISTER_RTX_P): New macro.
5470         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
5471         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
5472         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
5473         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
5474         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
5475
5476 2009-05-12  Jan Hubicka  <jh@suse.cz>
5477
5478         * tree-inline.c (estimate_operator_cost): Add operands;
5479         when division happens by constant, it is cheap.
5480         (estimate_num_insns): Loads and stores are not having cost of 0;
5481         EH magic stuff is cheap; when computing runtime cost of switch,
5482         use log2 base of amount of its cases; builtin_expect has cost of 0;
5483         compute cost for moving return value of call.
5484         (init_inline_once): Initialize time_based flags.
5485         * tree-inline.h (eni_weights_d): Add time_based flag.
5486
5487 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5488
5489         * df-core.c: Update head documentation.
5490
5491 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5492
5493         PR bootstrap/40118
5494         * rs6000.c (rs6000_generate_compare): Use op1b instead of
5495         shadowing exisiting variable op1.
5496
5497 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
5498
5499         PR target/37179
5500         * config/i386/driver-i386.c (processor_signatures): New enum.
5501         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
5502         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
5503         processor signature to detect geode processor.
5504
5505 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5506
5507         Revert:
5508
5509         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5510
5511         * optabs.c (prepare_cmp_insn): Temporarily disable test that
5512         causes spurious differences between trunk and cond-optab branch.
5513
5514 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
5515
5516         * dojump.c (compare_from_rtx): Delete.
5517         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
5518         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
5519         if the comparison does not satisfy the predicate; test predicates for
5520         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
5521         further if one existing pattern fails.
5522         * expr.h (compare_from_rtx): Delete.
5523         (prepare_operand): Declare it.
5524         * optabs.c: Change "lib call" to "libcall" throughout.
5525         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
5526         HAVE_conditional_trap, emit_cmp_insn): Delete.
5527         (can_compare_p): Delete cmp_optab case.
5528         (prepare_float_lib_cmp): Return an rtx and a machine mode.
5529         Accept other parameters by value.
5530         (prepare_operand): Make non-static.
5531         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
5532         other parameters by value.  Try to widen operands here based on
5533         an optab_methods argument and looking at cbranch_optab.
5534         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
5535         loop.  Use cbranch_optab directly.
5536         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
5537         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
5538         assertion.
5539         (emit_conditional_move, emit_conditional_add): Inline what's needed
5540         of compare_from_rtx, using new prepare_cmp_insn for the rest.
5541         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
5542         with COMPARE.  Move cmov_optab and cstore_optab above
5543         with cbranch_optab, move cmp_optab down with ucmp_optab,
5544         remove tst_otpab.  Do not initialize trap_rtx.
5545         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
5546         for trap code.  Do not check HAVE_conditional_trap.  Use
5547         prepare_cmp_insn.  Accept no predicate for operand 3.
5548         * optabs.h (OTI_cmp): Mark as used only for libcalls.
5549         (OTI_ctrap, ctrap_optab): New.
5550         (tst_optab): Delete.
5551         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
5552         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
5553         with lookup of ctrap_optab.
5554         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
5555         Delete.
5556         (ctrap_optab): New.
5557
5558         * combine.c (combine_simplify_rtx, simplify_set): Do not
5559         special case comparing against zero for cc0 machines.
5560         * simplify-rtx.c (simplify_binary_operation_1): Never remove
5561         COMPARE on cc0 machines.
5562         (simplify_relational_operation): Return a new expression when
5563         a COMPARE could be removed.
5564         * final.c (final_scan_insn): Compare cc_status values
5565         against LHS of a (compare FOO (const_int 0)) cc0 source.
5566         Also check if cc_status.value is the full compare.
5567
5568         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
5569         (cstoreMM4): Document.
5570         (conditional_trap): Document ctrapMM4 instead.
5571         (sync_compare_and_swapMM): Refer to cbranchcc4.
5572         (Dependent Patterns): Eliminate obsolete information referring to
5573         the old jump optimization phase.
5574         (Canonicalization): Include cbranchcc4 case, omit canonicalization
5575         of compares with 0 on cc0 machines.
5576         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
5577         avoiding references to cc0.  Remove text about storing operands
5578         in cmpMM.
5579         * doc/tm.texi (Condition Codes): Include blurb on different
5580         condition code representations, separate into subsections for
5581         CC0, MODE_CC and conditional execution.
5582
5583         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
5584         alpha_emit_setcc): Accept operands and a machine mode.
5585         * config/alpha/alpha.c (alpha_emit_conditional_branch):
5586         Get code/op0/op1 from operands, use machine mode argument
5587         instead of alpha_compare.fp_p.  Emit the branch here.
5588         (alpha_emit_setcc): Likewise, and return boolean.
5589         (alpha_emit_conditional_move): Likewise.  Assert that
5590         cmp_op_mode == cmp_mode, and simplify accordingly.
5591         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
5592         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
5593         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
5594         Delete.
5595         (stack probe test): Use cbranchdi4.
5596         * config/alpha/predicates.md (alpha_cbranch_operator): New.
5597
5598         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
5599         * config/arc/arc.h (movsicc, movsfcc): Use it.
5600         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
5601         (cbranchsi4, cstoresi4): New.
5602         (cmpsi, bCC and sCC expanders): Remove. 
5603
5604         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
5605         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
5606         * config/arm/predicates.md (arm_comparison_operator): Only include
5607         floating-point operators if there is a hardware floating-point unit.
5608         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
5609         deferring to cbranch_cc and cstore_cc respectively.
5610         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
5611         cbranch_cc, cstore_cc): New.
5612         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
5613         arm_compare_op1.
5614         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
5615
5616         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
5617         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
5618         as an argument.
5619         (adjust_insn_length): Adjust calls.
5620         (avr_reorg): Handle (compare (foo) (const_int 0)).
5621         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
5622         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
5623         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
5624         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
5625         (bCC): Remove.
5626         (cbranchqi4, cbranchhi4, cbranchsi4): New.
5627         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
5628
5629         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
5630         (cbranchsi4, cstorebi4, cstoresi4): New.
5631         (movbisi): This insn is duplicate, split it to zero_extend.
5632         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
5633         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
5634         (bfin_optimize_loop): Use cbranch expander.
5635         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
5636         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
5637         (bfin_bimode_comparison_operator): ... this.
5638         (bfin_direct_comparison_operator): New.
5639  
5640         * config/cris/cris.c (cris_normal_notice_update_cc): Look
5641         inside (compare FOO (const_int 0)).
5642         (cris_rtx_costs): Handle ZERO_EXTRACT.
5643         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
5644         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
5645         (*tstdi_v32): Delete.
5646         (*cmpdi_non_v32): Add M alternative for operand 1.
5647         (cmpsi, cmp<mode>): Make private.
5648         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
5649         with COMPARE.
5650         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
5651
5652         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
5653         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
5654         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
5655         (cc_reg_operand): New.
5656         (any_cond): Delete.
5657         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
5658         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
5659         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
5660         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
5661         crx_expand_scond): Delete.
5662
5663         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
5664         (cbranchsi4): New.
5665         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
5666         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
5667
5668         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
5669         cstoresi4, cstoresf4, cstoredf4): New.
5670         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
5671         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5672         Receive the entire operands array.
5673         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
5674         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
5675         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
5676         Get test/op0/op1 from the operands array.
5677         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
5678
5679         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
5680         (h8300_expand_store): New.
5681         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
5682         (const_int 0)).
5683         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
5684         (h8300_expand_store): New.
5685         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
5686         or do not try to produce (set (cc0) REG).
5687         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
5688         change a compare into a move to a scratch register.  Disable some
5689         peepholes when comparing with zero.
5690         (tstsi, tsthi, tstsi, cmpqi): Make private.
5691         (cmphi): Delete.
5692         (bCC, sCC): Delete.
5693         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
5694         cstoresi4): New.
5695
5696         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
5697         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
5698         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
5699         (ix86_emit_i387_log1p): Use cbranchxf2.
5700         (ix86_expand_setcc): Return void.
5701         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
5702         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
5703         cmp<MODEF>, cmpcc): Remove.
5704         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
5705         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
5706         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
5707         (sCC and bCC expanders): Remove.
5708         (stack_protect_test): Use cbranchcc4.
5709
5710         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
5711         Delete.
5712         (ia64_expand_compare): Accept three rtx by reference and return void.
5713         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
5714         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
5715         from *expr.  Update *expr with the BImode comparison to do.
5716         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
5717         cmptf, bCC, sCC, conditional_trap): Delete.
5718         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
5719         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
5720         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
5721         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
5722         * config/ia64/predicates.md (ia64_cbranch_operator): New.
5723
5724         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
5725         type of last argument.
5726         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
5727         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
5728         use machine mode argument instead of branch_type.  Remove dead
5729         code for floating-point comparisons.
5730         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
5731         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
5732         Remove.
5733         (cbranchsi4, cstoresi4): New.
5734         * config/iq2000/predicates.md (reg_or_const_operand): New.
5735
5736         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
5737         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
5738         (b<code>_op): Rewrite to...
5739         (bcc_op): ... this, using match_operator.
5740         (s<code>_op): Rewrite to...
5741         (scc_op): ... this, using match_operator.
5742         (s<code>_24_op): Rewrite to...
5743         (scc_op_24): ... this, using match_operator.
5744         (s<code>_<mode>): Rewrite to...
5745         (cstore<mode>4): ... this, using match_operator.
5746         (s<code>_<mode>_24): Rewrite to...
5747         (cstore<mode>4_24): ... this, using match_operator.
5748         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
5749         m32c_unpend_compare, m32c_expand_scc): Delete.
5750         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
5751         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
5752         (m32c_expand_movcc): Change NE to EQ if necessary.
5753         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
5754
5755         * config/m32r/m32r-protos.h (gen_cond_store): New.
5756         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
5757         (gen_cond_store): New, from sCC patterns.
5758         (m32r_expand_block_move): Use cbranchsi4.
5759         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
5760         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
5761         (cbranchsi4, cstoresi4): New.
5762         
5763         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
5764         Delete.
5765         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
5766         (m68hc11_notice_update_cc): Look into a compare with 0.
5767         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
5768         Delete.
5769         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
5770         cmphi, cmpqi, bCC): Delete.
5771         (cbranchsi4, cbranchhi4, cbranchqi4): New.
5772         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
5773         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
5774         sets with COMPARE.
5775
5776         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
5777         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
5778         * config/m68k/constraints.md (H): New.
5779         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
5780         the define_insn below.
5781         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
5782         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
5783         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
5784         patterns): Wrap RHS with COMPARE.
5785         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
5786         (*cmpdi_internal): Name this pattern.
5787         (cmpdi): Change to define_insn.
5788         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
5789         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
5790         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
5791         predicate.
5792         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
5793         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
5794         (conditional_trap): Change to...
5795         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
5796         (*conditional_trap): Use the ordered_comparison_operator and
5797         const1_operand predicates.
5798         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
5799         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
5800         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
5801         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
5802
5803         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
5804         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
5805         (mcore_gen_compare): New. 
5806         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
5807         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
5808         (mcore_gen_compare): ... this.
5809         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
5810         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
5811         (stack probe pattern): Use cbranchsi4.
5812
5813         * config/mips/predicates.md (mips_cstore_operator): New.
5814         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
5815         * config/mips/mips.md (any_cond): Delete.
5816         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
5817         always succeed.
5818         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
5819         fixuns_truncsfdi2): Use cbranch patterns.
5820         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
5821         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
5822         Adjust call to mips_expand_conditional_branch.
5823         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
5824         cstore<GPR:mode>4.
5825         * config/mips/mips-protos.h (mips_expand_conditional_branch,
5826         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
5827         * config/mips/mips.c (cmp_operands): Delete.
5828         (mips_emit_compare): Get comparison operands from *op0/*op1.
5829         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
5830         that it succeeds.  Use op0/op1 instead of cmp_operands.
5831         (mips_expand_conditional_branch, mips_expand_conditional_move,
5832         mips_expand_conditional_trap): Likewise.
5833         (mips_block_move_loop): Use cbranch patterns. 
5834         * config/mips/mips.h (cmp_operands): Delete.
5835
5836         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
5837         (mmix_gen_compare_reg): Just return a register in the right CC mode.
5838         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
5839         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
5840         (*cmpcc_folded): Rename to...
5841         (*cmpdi_folded): this.
5842         (*cmpcc): Rename to...
5843         (*cmps): ... this.
5844         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
5845         (bCC): Remove.
5846         (cbranchdi4): New.
5847         (cbranchdf4): New.  Handle invalid comparisons here.
5848         * config/mmix/predicates.md (float_comparison_operator): New.
5849
5850         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
5851         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
5852         * config/mn10300/mn10300.md (tst): Delete.
5853         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
5854         Name these patterns and wrap RHS in a compare.
5855         (*cmpsi): Make this pattern private.  Include tst.
5856         (*cmpsf): Make this pattern private.
5857         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
5858         (compare with zero peepholes): Likewise.
5859         (bCC): Remove.
5860         (cbranchsi4, cbranchsf4): New.
5861         (casesi): Use cbranchsi4.
5862
5863         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
5864         hppa_branch_type): Delete.
5865         (return_addr_rtx): Use cbranchsi4.
5866         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
5867         Emit CCFPmode comparison here.
5868         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
5869         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
5870         hppa_branch_type): Delete.
5871         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
5872         (movsicc, movdicc): Remove references to hppa_compare_op0,
5873         hppa_compare_op1 and compare_from_rtx.
5874         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
5875         (casesi): Use cbranchsi4.
5876
5877         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
5878         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
5879         * config/pdp11/pdp11.md (register_or_const0_operand): New.
5880         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
5881         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
5882         (bCC): Delete.
5883         (cbranchdf4, cbranchhi4, cbranchqi4): New.
5884         (*branch, *branch_inverted): New.
5885
5886         * config/picochip/picochip.md (cbranchhi4): Use
5887         ordered_comparison_operator.
5888         (cmphi, bCC): Remove.
5889
5890         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
5891         (trap_comparison_operator): Delete.
5892         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
5893         rs6000_emit_cbranch): Accept mode and operands.
5894         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
5895         rs6000_compare_fp_p): Delete.   
5896         (rs6000_generate_compare): Accept mode and comparison.  Extract code
5897         and op0/op1 from there.  Replace references to rs6000_compare_op0
5898         and rs6000_compare_op1.
5899         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
5900         extract result from passed operands.
5901         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
5902         extract loc from passed operands.
5903         (rs6000_emit_cmove): Likewise.
5904         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
5905         rs6000_compare_fp_p): Delete.
5906         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
5907         (cbranch<GPR>4, cbranch<FP>4): New.
5908         (cstore<mode>4): New.  Consolidate here all choices about when to use
5909         portable or specialized sCC sequences.
5910         (stack_protect_test): Use cbranchsi4.
5911         (conditional_trap): Replace with ctrap<GPR>4.
5912         (conditional trap insn): Replace trap_comparison_operator with
5913         ordered_comparison_operator. 
5914
5915         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
5916         (s390_emit_prologue): Use ctrap.
5917         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
5918         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
5919         New predicates replacing...
5920         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
5921         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
5922         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
5923         (add<mode>cc): Do not use s390_compare_op0/op1.
5924         (s<code>): Change to...
5925         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
5926         (seq): Change to...
5927         (cstorecc4): ... this.  Handle EQ or NE equally.
5928         (*sne): Un-privatize for use in cstorecc4.
5929         (b<code>): Change to...
5930         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
5931         (conditional_trap): Replace with...
5932         (ctrap<GPR>4, ctrap<FP>4): ... these.
5933         (stack_protect): Use cbranchcc4.
5934
5935         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
5936         * config/score/score-protos.h (score_gen_cmp): Delete.
5937         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
5938         (score_block_move-loop): Use cbranchsi4.
5939         * config/score/score.md (cbranchsi4): New.
5940         (cmpsi, bCC): Delete.
5941         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
5942         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5943         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
5944         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
5945         * config/score/score3.h (score3_gen_cmp): Delete.
5946         * config/score/score7.h (score7_gen_cmp): Delete.
5947
5948         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
5949         (sh_emit_scc_to_t): ... this.  Return void.
5950         (from_compare): Rename to...
5951         (sh_emit_compare_and_branch): ... this.
5952         (sh_emit_compare_and_set): New.
5953         (sh_expand_t_scc): Accept operands.
5954         * config/sh/predicates.md (sh_float_comparison_operator): New.
5955         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
5956         (prepare_scc_operands): Rename to...
5957         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
5958         arguments.
5959         (sh_emit_cheap_store_flag): New.
5960         (sh_emit_set_t_insn): New.
5961         (from_compare): Rename to...
5962         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
5963         handling of TARGET_SH2E floating point to avoid recursive call.
5964         Generate branch here.
5965         (sh_emit_compare_and_set): New.
5966         (sh_expand_t_scc): Get op0/op1 from arguments.
5967         (sh_emit_cheap_store_flag): New.
5968         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
5969         cases.
5970         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
5971         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
5972         (movsicc, movdicc): Do nothing when it recreated operands from
5973         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
5974         prepare_scc_operands (now sh_emit_scc_to_t).
5975         (udivdi3): Use cstoresi4.
5976         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
5977         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
5978         (cbranchint4_media, cbranchfp4_media): New.
5979         (casesi): Use cbranchdi4.
5980         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
5981         Delete.
5982         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
5983         (movnegt): Remove second operand.
5984         (cbranchsf4, cbranchdf4): New.
5985         (stack_protect): Use cbranchdi4/cbranchsi4.
5986
5987         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
5988         (gen_compare_reg): Accept comparison, extract part of it to...
5989         (gen_compare_reg_1): ... this. 
5990         (gen_compare_operator): Delete.
5991         (gen_v9_scc): Accept separate destination, comparison code and arms.
5992         Do not use sparc_compare_op0/sparc_compare_op1.
5993         (emit_scc_insn, emit_conditional_branch_insn): New.
5994         (emit_v9_brxx): Make static.  Remove useless assertion.
5995         (sparc_emit_float_lib_cmp): Return RTL instead of calling
5996         emit_cmp_insn.
5997         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
5998         * config/sparc/sparc-protos.h (gen_compare_reg,
5999         sparc_emit_float_lib_cmp): Adjust prototype.
6000         (emit_scc_insn, emit_conditional_branch_insn): New.
6001         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
6002         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
6003         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
6004         iterators to the top.
6005         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
6006         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
6007         snedi_special_trunc): Delete.
6008         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
6009         and snedi_special_trunc.
6010         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
6011         cbranchdi4, cbranch<F:mode>4): New.
6012         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
6013         here.  Use gen_compare_reg instead of gen_compare_operator.
6014         (conditional_trap): Replace with...
6015         (ctrapsi4, ctrapdi4): ... this.
6016         (stack_protect_test): Use cbranchcc4.
6017
6018         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
6019         argument to rtx.
6020         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
6021         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
6022         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
6023         from operands[0] or operands[3] depending on is_set.
6024         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
6025         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
6026         cmpdf, bCC), sCC: Remove.
6027         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
6028         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
6029         cstoredf4): New.
6030         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
6031         spu_emit_branch_or_set.
6032
6033         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
6034         Add two arguments.
6035         * config/stormy16/stormy16.h (xstormy16_compare_op0,
6036         xstormy16_compare_op1): Delete.
6037         * config/stormy16/stormy16.c (xstormy16_compare_op0,
6038         xstormy16_compare_op1): Delete. 
6039         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
6040         Adjust calls.
6041         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
6042         (cmphi, cmpsi, bCC): Remove.
6043
6044         * config/v850/v850.md (tstsi, cmpsi): Fold into...
6045         (*cmpsi): ... this one.
6046         (cbranchsi4, cstoresi4): New.
6047         (bCC expanders): Delete.
6048         (sCC insns): Fold into...
6049         (*setcc): ... this one.
6050         (casesi): Do not use gen_cmpsi and gen_bgtu. 
6051         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
6052         (movsicc): Simplify.
6053         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
6054
6055         * config/vax/vax-protos.h (cond_name): New.
6056         (vax_output_conditional_branch): Remove.
6057         * config/vax/vax.c (cond_name): New.
6058         (vax_output_conditional_branch): Remove.
6059         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
6060         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
6061         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
6062         (bit<VAXint>): Wrap source with (compare).
6063         (b<code> and following unnamed pattern): Rename to *branch and
6064         *branch_reversed.  Change macroization to match_operator.
6065         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
6066
6067         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
6068         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
6069         Change last argument to machine_mode.
6070         (xtensa_expand_scc): Add machine_mode argument.
6071         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
6072         (gen_conditional_move, xtensa_expand_conditional_branch,
6073         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
6074         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
6075         Adjust operand numbers.
6076         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
6077         Delete.
6078         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
6079         (cmpsi, cmpsf, b<code>, s<code>): Delete.
6080         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
6081
6082 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
6083
6084         * optabs.c (prepare_cmp_insn): Temporarily disable test that
6085         causes spurious differences between trunk and cond-optab branch.
6086
6087 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
6088
6089         PR target/37137
6090         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
6091
6092 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
6093
6094         * tree.c (iterative_hash_pointer): Delete.
6095         (iterative_hash_expr): Short-circuit handling of NULL pointer.
6096         Hash UIDs and versions of SSA names.  Don't special-case built-in
6097         function declarations.
6098
6099 2009-05-11  Ian Lance Taylor  <iant@google.com>
6100
6101         PR bootstrap/40103
6102         * graphite.c: Force -Wc++-compat to only be a warning before
6103         #including "cloog/cloog.h".
6104
6105 2009-05-11  Martin Jambor  <mjambor@suse.cz>
6106
6107         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
6108         
6109 2009-05-11  Jan Hubicka  <jh@suse.cz>
6110
6111         * tree-ssa-loop-ivcanon.c: Include target.h
6112         (struct loop_size): new structure.
6113         (constant_after_peeling): New predicate.
6114         (tree_estimate_loop_size): New function.
6115         (estimated_unrolled_size): Rewrite for new estimates.
6116         (try_unroll_loop_completely): Use new estimates.
6117         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
6118
6119 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6120
6121         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
6122         libcpp interface change.
6123         (spu_macro_to_expand): Likewise.
6124
6125 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
6126
6127         PR tree-optimization/40026
6128         * gimplify.c (gimplify_init_constructor): Change initial conditional
6129         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
6130         optimize_compound_literals_in_ctor.
6131
6132 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
6133
6134         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
6135         New devices.
6136         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
6137
6138 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
6139
6140         * tree-vect-data-refs.c (vect_analyze_group_access): Use
6141         HOST_WIDE_INT for gap.
6142
6143 2009-05-11  Ira Rosen  <irar@il.ibm.com>
6144
6145         PR tree-optimization/40074
6146         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
6147         account in group size and step comparison.
6148
6149 2009-05-11  Richard Guenther  <rguenther@suse.de>
6150
6151         * passes.c (init_optimization_passes): Strip now incorrect comment.
6152         (execute_function_todo): Do not set PROP_alias.
6153         * tree-pass.h (PROP_alias): Remove.
6154         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
6155         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
6156         * tree-nrv.c (pass_return_slot): Likewise.
6157         * tree-object-size.c (pass_object_sizes): Likewise.
6158         * tree-ssa-dom.c (pass_dominator): Likewise.
6159         (pass_phi_only_cprop): Likewise.
6160         * tree-ssa-dse.c (pass_dse): Likewise.
6161         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
6162         (pass_cselim): Likewise.
6163         * tree-ssa-pre.c (pass_pre): Likewise.
6164         (pass_fre): Likewise.
6165         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
6166         * tree-ssa-sink.c (pass_sink_code): Likewise.
6167         * tree-stdarg.c (pass_stdarg): Likewise.
6168         * tree-tailcall.c (pass_tail_calls): Likewise.
6169         * tree-vrp.c (pass_vrp): Likewise.
6170
6171 2009-05-10  Ian Lance Taylor  <iant@google.com>
6172
6173         * basic-block.h (enum profile_status): Break out of struct
6174         control_flow_graph.
6175         * cgraph.h (struct inline_summary): Break out of struct
6176         cgraph_local_info.
6177         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
6178         of struct cgraph_order_sort.
6179         * combine.c (enum undo_kind): New enum, broken out of struct undo.
6180         * cse.c (struct branch_path): Break out of struct
6181         cse_basic_block_data.
6182         * except.h (enum eh_region_type): Break out of struct eh_region.
6183         * gcc.c (enum add_del): Break out of struct modify_target.
6184         * genrecog.c (enum decision_type): Break out of struct decision_test.
6185         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
6186         ggc_pch_data.
6187         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
6188         * regmove.c (enum match_use): New enum, broken out of struct match.
6189         * sched-int.h (enum post_call_group): New enum, broken out of
6190         struct deps.
6191         (struct deps_reg): Break out of struct deps.
6192         * target.h (struct asm_int_op): Break out of struct gcc_target.
6193         * tree-eh.c (struct goto_queue_node): Break out of struct
6194         leh_tf_state.
6195         * tree-inline.h (enum copy_body_cge_which): Break out of
6196         copy_body_data.
6197         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
6198
6199         * c-decl.c (in_struct, struct_types): New static variables.
6200         (pushtag): Add loc parameter.  Change all callers.
6201         (lookup_tag): Add ploc parameter.  Change all callers.
6202         (check_compound_literal_type): New function.
6203         (parser_xref_tag): Add loc parameter.  Change all callers.  If
6204         -Wc++-compat, warn about struct/union/enum types defined within a
6205         struct or union.
6206         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
6207         and loc parameters.  Change all callers.  Change error calls to
6208         error_at, using loc.  For a redefinition, if the location of the
6209         original definition is known, report it.  Set in_struct and
6210         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
6211         (finish_struct): Add new parameters enclosing_in_struct and
6212         enclosing_struct_types.  Change all callers.  Set
6213         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
6214         in the struct.  If in a struct, add this struct to struct_types.
6215         (start_enum): Add loc parameter.  Change all callers.  Use
6216         error_at for errors, using loc.  For a redefinition, if the
6217         location of the original definition is known, report it.  If in a
6218         struct, add this enum type to struct_types.  If -Wc++-compat warn
6219         if in sizeof, typeof, or alignof.
6220         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
6221         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
6222         (c_parser_enum_specifier): Get enum location for start_enum.
6223         (c_parser_struct_or_union_specifier): Get struct location for
6224         start_struct.  Save in_struct and struct_types status between
6225         start_struct and finish_struct.
6226         (c_parser_cast_expression): Get location of cast.
6227         (c_parser_alignof_expression): Get location of type.
6228         (c_parser_postfix_expression): Likewise.
6229         (c_parser_postfix_expression_after_paren_type): Add type_loc
6230         parameter.  Change all callers.  Call check_compound_literal_type.
6231         Use type_loc for error about variable size type.
6232         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
6233         of an enum constant from an enum type defined in a struct or union.
6234         (c_cast_expr): Add loc parameter.  Change all callers.  If
6235         -Wc++-compat, warn about defining a type in a cast.
6236         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
6237         (start_enum, start_struct, finish_struct): Update declarations.
6238         (parser_xref_tag, c_cast_expr): Update declarations.
6239         (check_compound_literal_type): Declare.
6240
6241 2009-05-11  Ben Elliston  <bje@au.ibm.com>
6242
6243         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
6244         for recent libcpp interface change.
6245         (rs6000_macro_to_expand): Likewise.
6246
6247 2009-05-10  Michael Matz  <matz@suse.de>
6248
6249         PR target/40031
6250         * config/arm/arm.c (require_pic_register): Emit on entry edge,
6251         not at entry of function.
6252
6253 2009-05-10  Richard Guenther  <rguenther@suse.de>
6254
6255         PR tree-optimization/40081
6256         Revert
6257         * tree-sra.c (instantiate_element): Instantiate scalar replacements
6258         using the main variant of the element type.  Do not fiddle with
6259         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6260
6261         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
6262         structs with volatile fields.
6263
6264 2009-05-10  Jan Hubicka  <jh@suse.cz>
6265
6266         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
6267         (estimate_move_cost): Assert that it does not get called for
6268         VOID_TYPE_P.
6269         (estimate_num_insns): Skip VOID types in argument handling.
6270         (optimize_inline_calls): Delete unreachable blocks and verify that
6271         callgraph is valid.
6272
6273 2009-05-10  Jan Hubicka  <jh@suse.cz>
6274
6275         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
6276         * cgraph.c (cgraph_mark_address_taken_node): New function.
6277         (dump_cgraph_node): Dump new flag.
6278         * cgraph.h (struct cgraph_node): Add address_taken.
6279         (cgraph_mark_address_taken_node): New function.
6280         * ipa.c (cgraph_postorder): Prioritize functions with address taken
6281         since new direct calls can be born.
6282
6283 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6284
6285         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
6286         tok->val.node.node.
6287
6288 2009-05-10  Jan Hubicka  <jh@suse.cz>
6289
6290         PR middle-end/40084
6291         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
6292         argument; rewrite.
6293         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
6294         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
6295         * tree-inline.c (copy_bb): Set frequency correctly.
6296         (fold_marked_statements): Update call to
6297         cgraph_update_edges_for_call_stmt.
6298
6299 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6300
6301         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
6302         identifiers in diagnostics.
6303         * config/arm/arm.c (arm_handle_fndecl_attribute,
6304         arm_handle_isr_attribute): Likewise.
6305         * config/avr/avr.c (avr_handle_progmem_attribute,
6306         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
6307         * config/bfin/bfin.c (handle_int_attribute,
6308         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
6309         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
6310         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
6311         Likewise.
6312         * config/darwin.c (darwin_handle_kext_attribute,
6313         darwin_handle_weak_import_attribute): Likewise.
6314         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
6315         h8300_handle_eightbit_data_attribute,
6316         h8300_handle_tiny_data_attribute): Likewise.
6317         * config/i386/i386.c (ix86_handle_cconv_attribute,
6318         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
6319         * config/i386/winnt.c (ix86_handle_shared_attribute,
6320         ix86_handle_selectany_attribute): Likewise.
6321         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
6322         * config/m32c/m32c.c (function_vector_handler): Likewise.
6323         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
6324         m68hc11_handle_fntype_attribute): Likewise.
6325         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
6326         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
6327         * config/mips/mips.c (mips_insert_attributes,
6328         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
6329         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
6330         rs6000_handle_struct_attribute): Likewise.
6331         * config/sh/sh.c (sh_insert_attributes,
6332         sh_handle_resbank_handler_attribute,
6333         sh_handle_interrupt_handler_attribute,
6334         sh2a_handle_function_vector_handler_attribute,
6335         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
6336         Likewise.
6337         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
6338         * config/spu/spu.c (spu_handle_fndecl_attribute,
6339         spu_handle_vector_attribute): Likewise.
6340         * config/stormy16/stormy16.c
6341         (xstormy16_handle_interrupt_attribute): Likewise.
6342         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
6343         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
6344
6345 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
6346
6347         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
6348         (pp_translate_identifiers): New.
6349         (pp_identifier): Only conditionally translate identifier to locale
6350         character set.
6351         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
6352         (pp_base_tree_identifier): Only conditionally translate identifier
6353         to locale character set.
6354         * c-pretty-print.c (M_): Define.
6355         (pp_c_type_specifier, pp_c_primary_expression): Mark English
6356         fragments for conditional translation with M_.
6357         * tree-pretty-print.c (maybe_init_pretty_print): Disable
6358         identifier translation.
6359
6360 2009-05-10  Richard Guenther  <rguenther@suse.de>
6361
6362         PR tree-optimization/40081
6363         * tree-sra.c (instantiate_element): Instantiate scalar replacements
6364         using the main variant of the element type.  Do not fiddle with
6365         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
6366
6367 2009-05-09  Jan Hubicka  <jh@suse.cz>
6368
6369         PR middle-end/40080
6370         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
6371         indirect calls; verify cgraph afterwards.
6372
6373 2009-05-09  Jan Hubicka  <jh@suse.cz>
6374
6375         PR bootstrap/40082
6376         * ipa.c (update_inlined_to_pointer): New function.
6377         (cgraph_remove_unreachable_nodes): Use it.
6378
6379 2009-05-09  Jan Hubicka  <jh@suse.cz>
6380
6381         * tree-eh.c (struct leh_state): Remove prev_try.
6382         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
6383         not track prev_try.
6384         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
6385         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
6386         remove_eh_handler_and_replace, foreach_reachable_handler,
6387         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
6388         * except.h (struct eh_region): Remove eh_region_u_cleanup.
6389         (gen_eh_region_cleanup): Update prototype.
6390
6391 2009-05-09  Jan Hubicka  <jh@suse.cz>
6392
6393         PR middle-end/40043
6394         * except.c (copy_eh_region): Always set prev_try.
6395         (redirect_eh_edge_to_label): Find outer try.
6396         (foreach_reachable_handler): When looking for prev try
6397         handle case where previous try is not going to be taken.
6398
6399 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
6400
6401         PR tree-optimization/40049
6402         * tree-vect-stmts.c (vectorizable_operation): If the machine has
6403         only vector/vector shifts, convert the type of the constant to the
6404         appropriate type to avoid building incorrect trees, which
6405         eventually have problems with garbage collection.
6406
6407 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
6408
6409         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
6410         -1 for complex floating-point types if honoring signed zeros.
6411
6412 2009-05-08  Jan Hubicka  <jh@suse.cz>
6413
6414         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
6415         argument; handle correctly when profile is absent.
6416         (build_cgraph_edges): Update.
6417         (rebuild_cgraph_edges): Update.
6418         * cgraph.c: Do not include varray.h.
6419         (cgraph_set_call_stmt_including_clones): New function.
6420         (cgraph_create_edge_including_clones): Likewise
6421         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
6422         (cgraph_update_edges_for_call_stmt): Handle clones.
6423         (cgraph_remove_node): Handle clone tree.
6424         (cgraph_remove_node_and_inline_clones): New function.
6425         (dump_cgraph_node): Dump clone tree.
6426         (cgraph_clone_node): Handle clone tree.
6427         (clone_function_name): Bring here from tree-inline.c.
6428         (cgraph_create_virtual_clone): New function.
6429         * cgraph.h (ipa_replace_map): Move here from ipa.h.
6430         (cgraph_clone_info): New function.
6431         (strut cgraph_node): Add clone_info and new clone tree pointers.
6432         (cgraph_remove_node_and_inline_clones,
6433         cgraph_set_call_stmt_including_clones,
6434         cgraph_create_edge_including_clones,
6435         cgraph_create_virtual_clone): Declare.
6436         (cgraph_function_versioning): Use VEC argument.
6437         (compute_call_stmt_bb_frequency): Update prototype.
6438         (cgraph_materialize_all_clones): New function.
6439         * ipa-cp.c (ipcp_update_cloned_node): Remove.
6440         (ipcp_create_replace_map): Update to VECtors.
6441         (ipcp_update_callgraph): Use virtual clones.
6442         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
6443         (ipcp_update_profiling): Do not update local profiling.
6444         (ipcp_insert_stage): Use VECtors and virtual clones.
6445         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
6446         (clone_of_p): New function.
6447         (cgraph_preserve_function_body_p): Use clone tree.
6448         (cgraph_optimize): Materialize clones.
6449         (cgraph_function_versioning): Update for VECtors.
6450         (save_inline_function_body): Use clone tree.
6451         (cgraph_materialize_clone): New function.
6452         (cgraph_materialize_all_clones): Likewise.
6453         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
6454         * ipa.c: Include gimple.h.
6455         (cgraph_remove_unreachable_nodes): Use clone tree.
6456         * ipa-prop.c (ipa_note_param_call): Update call to
6457         compute_call_stmt_bb_frequencycall.
6458         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
6459         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
6460         (copy_bb): Handle updating of clone tree; add new edge when new call
6461         appears.
6462         (expand_call_inline): Be strict about every call having edge.
6463         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
6464         (delete_unreachable_blocks_update_callgraph): New function.
6465         (tree_function_versioning): Use VECtors; always remove unreachable
6466         blocks and fold conditionals.
6467         * tree-inline.h: Do not include varray.h.
6468         (tree_function_versioning): Remove.
6469         * Makefile.in (GTFILES): Remove tree-inline.c
6470         * passes.c (do_per_function): Do only functions having body.
6471         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
6472         tree.
6473
6474 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
6475             Andrew Morrow  <acm@google.com>
6476
6477         PR c/36892
6478         * c-common.c (c_common_attribute_table): Permit deprecated
6479         attribute to take an optional argument.
6480         (handle_deprecated_attribute): If the optional argument to
6481         __attribute__((deprecated)) is not a string ignore the attribute
6482         and emit a warning.
6483
6484         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
6485         * c-typeck.c (build_component_ref): Likewise.
6486         (build_external_ref): Likewise.
6487
6488         * toplev.c (warn_deprecated_use): Add an attribute argument.
6489         Emit the message associated with __attribute__((deprecated)).
6490
6491         * toplev.h (warn_deprecated_use): Updated.
6492
6493         * doc/extend.texi: Document new optional parameter to
6494         __attribute__((deprecated))
6495
6496 2009-05-08  Michael Eager <eager@eagercon.com>
6497
6498         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
6499         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
6500
6501 2009-05-08  Richard Guenther  <rguenther@suse.de>
6502
6503         PR tree-optimization/40062
6504         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
6505         Avoid exponential behavior.
6506
6507 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6508
6509         PR rtl-optimization/33928
6510         PR 26854
6511         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
6512         process_uses, build_single_def_use_links): New.
6513         (update_df): Update use_def_ref.
6514         (forward_propagate_into): Use get_def_for_use instead of use-def
6515         chains.
6516         (fwprop_init): Call build_single_def_use_links and let it initialize
6517         dataflow.
6518         (fwprop_done): Free use_def_ref.
6519         (fwprop_addr): Eliminate duplicate call to df_set_flags.
6520         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
6521         df_rd_simulate_one_insn): New.
6522         (df_rd_bb_local_compute_process_def): Update head comment.
6523         (df_chain_create_bb): Use the new RD simulation functions.
6524         * df.h (df_rd_simulate_artificial_defs_at_top, 
6525         df_rd_simulate_one_insn): New.
6526         * opts.c (decode_options): Enable fwprop at -O1.
6527         * doc/invoke.texi (-fforward-propagate): Document this.
6528
6529 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
6530
6531         PR c/24581
6532         * c-typeck.c (build_binary_op): Handle arithmetic between one real
6533         and one complex operand specially.
6534         * tree-complex.c (some_nonzerop): Do not identify a real value as
6535         zero if flag_signed_zeros.
6536
6537 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6538
6539         PR rtl-optimization/33928
6540         * loop-invariant.c (record_use): Fix && vs. || mishap.
6541
6542 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
6543
6544         PR rtl-optimization/33928
6545         * loop-invariant.c (struct use): Add addr_use_p.
6546         (struct def): Add n_addr_uses.
6547         (struct invariant): Add cheap_address.
6548         (create_new_invariant): Set cheap_address.
6549         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
6550         (record_uses): Pass df_ref to record_use.
6551         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
6552         used only as such.
6553
6554 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
6555
6556         * config/sh/sh.c: Do not include c-pragma.h.
6557
6558 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6559
6560         * config/spu/spu.c: Remove include of c-common.h.
6561
6562 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
6563
6564         PR c/39037
6565         * c-common.h (mark_valid_location_for_stdc_pragma,
6566         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
6567         clear_float_const_decimal64, float_const_decimal64_p): New.
6568         * c.opt (Wunsuffixed-float-constants): New.
6569         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
6570         unsuffixed float constant, handle new warning.
6571         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
6572         * c-decl.c (c_scope): New flag float_const_decimal64.
6573         (set_float_const_decimal64, clear_float_const_decimal64,
6574         float_const_decimal64_p): New.
6575         (push_scope): Set new flag.
6576         * c-parser.c (c_parser_translation_unit): Mark when it's valid
6577         to use STDC pragmas.
6578         (c_parser_external_declaration): Ditto.
6579         (c_parser_compound_statement_nostart): Ditto.
6580         * c-pragma.c (valid_location_for_stdc_pragma,
6581         mark_valid_location_for_stdc_pragma,
6582         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
6583         handle_pragma_float_const_decimal64): New.
6584         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
6585         * cp/semantics.c (valid_location_for_stdc_pragma_p,
6586         set_float_const_decimal64, clear_float_const_decimal64,
6587         float_const_decimal64_p): New dummy functions.
6588         * doc/extend.texi (Decimal Float): Remove statement that the
6589         pragma, and suffix for double constants, are not supported.
6590         * doc/invoke.texi (Warning Options): List new option.
6591         (-Wunsuffixed-float-constants): New.
6592
6593 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
6594
6595         * config/i386/i386.c: Do not include c-common.h.
6596
6597 2009-05-07  Mark Heffernan  <meheff@google.com>
6598
6599         * doc/invoke.texi (Debugging Options): Document change of debugging
6600         dump location.
6601         * opts.c (decode_options): Make dump_base_name relative to
6602         aux_base_name directory.
6603
6604 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
6605
6606         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
6607         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
6608
6609 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
6610
6611         * Makefile.in (install-plugin): Simplify a bit.
6612
6613 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
6614
6615         * Makefile.in (OBJS-common): Add regcprop.o.
6616         (regcprop.o): New.
6617         * timevar.def (TV_CPROP_REGISTERS): New.
6618         * regrename.c (regrename_optimize): Return 0.
6619         (rest_of_handle_regrename): Delete.
6620         (pass_rename_registers): Point to regrename_optimize.
6621         (struct value_data_entry, struct value_data, 
6622         kill_value_one_regno, kill_value_regno, kill_value,
6623         set_value_regno, init_value_data, kill_clobbered_value,
6624         kill_set_value, kill_autoinc_value, copy_value,
6625         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
6626         replace_oldest_value_reg, replace_oldest_value_addr,
6627         replace_oldest_value_mem, copyprop_hardreg_forward_1,
6628         debug_value_data, validate_value_data): Move...
6629         * regcprop.c: ... here.
6630         (rest_of_handle_cprop): Delete.
6631         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
6632
6633 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
6634
6635         PR middle-end/40057
6636         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
6637         GEN_INT for 1 << bitnum.
6638         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
6639         build_int_cst_type.
6640
6641 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
6642
6643         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
6644         Remove wrong description of "nand" operation.
6645
6646 2009-05-06  Richard Guenther  <rguenther@suse.de>
6647             Adam Nemet  <anemet@caviumnetworks.com>
6648
6649         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
6650         comment.  Add that if LHS is not a gimple register, then RHS1 has
6651         to be a single object (GIMPLE_SINGLE_RHS).
6652
6653 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
6654
6655         * expr.c (get_def_for_expr): Move it up in the file.
6656         (store_field): When expanding a bit-field store, look at the
6657         defining gimple stmt for the masking conversion.
6658
6659 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
6660
6661         PR middle-end/39986
6662         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
6663         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
6664         32-bit memcpy into long.
6665
6666 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
6667
6668         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
6669         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
6670         new_reg_loc_descr.
6671         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
6672         instead of appending DW_OP_deref*.
6673
6674 2009-05-06  Michael Matz  <matz@suse.de>
6675
6676         PR middle-end/40021
6677         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
6678         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
6679
6680 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
6681
6682         * Makefile.in (install-plugin): Fix srcdir handling.
6683
6684 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
6685
6686         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
6687         when processing for not_regs_needed bitmap.
6688         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
6689         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
6690         handling it for rhs. 
6691
6692 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6693
6694         * config/i386/i386.md (unnamed inc/dec peephole): Use
6695         optimize_insn_for_size_p instead of optimize_size.
6696         * config/i386/predicates.md (incdec_operand): Likewise.
6697         (aligned_operand): Likewise.
6698         * config/i386/sse.md (divv8sf3): Likewise.
6699         (sqrtv8sf2): Likewise.
6700
6701 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6702
6703         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
6704
6705         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
6706
6707 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
6708
6709         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
6710         ssemodesuffixf2c with avxmodesuffixf2c.
6711
6712 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
6713
6714         PR c/40032
6715         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
6716
6717 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
6718
6719         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
6720         (struct tree_base): Adjust spacing for 8 bit boundaries.
6721         (struct tree_decl_common): Add decl_by_reference_flag bit.
6722         (DECL_BY_REFERENCE): Adjust.
6723         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
6724         print DECL_BY_REFERENCE bit.
6725         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
6726         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
6727         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
6728         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
6729         unconditionally.
6730
6731         PR middle-end/39666
6732         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
6733         range of the type, but default label is missing, add it with one
6734         of the existing labels instead of adding a new label for it.
6735
6736 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
6737
6738         * dwarf.h: Remove.
6739
6740 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
6741
6742         * Makefile.in (enable_plugin, plugin_includedir): New.
6743         (install): Depend on install-plugin.
6744         (PLUGIN_HEADERS): New.
6745         (install-plugin): New.
6746         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
6747
6748 2009-05-05  Richard Guenther  <rguenther@suse.de>
6749
6750         PR tree-optimization/40022
6751         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
6752         the only vuse.
6753         (phivn_valid_p): Fix tuplification error, simplify.
6754         (phiprop_insert_phi): Add dumps.
6755         (propagate_with_phi): Simplify.
6756
6757 2009-05-05  Richard Guenther  <rguenther@suse.de>
6758
6759         PR middle-end/40023
6760         * builtins.c (gimplify_va_arg_expr): Properly build the address.
6761
6762 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
6763
6764         * tree.h (strip_float_extensions): Remove duplicate declaration.
6765         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
6766         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
6767         block_ultimate_origin): Rearrange the declarations line to match the
6768         comment that indicates the .c file which the functions are defined.
6769         (dwarf2out_*, set_decl_rtl): Add comment.
6770         (get_base_address): Adjust comment.
6771         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
6772         declarations line and add comment.
6773         (is_builtin_name): Add blank after function name, for clarity.
6774
6775 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
6776
6777         * attribs.c (decl_attributes): Use %qE for identifiers in
6778         diagnostics.
6779         * cgraphunit.c (verify_cgraph_node): Translate function names to
6780         locale character set in diagnostics.
6781         * coverage.c (get_coverage_counts): Use %qE for identifiers in
6782         diagnostics.
6783         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
6784         Document that functions are named in UTF-8.
6785         * expr.c (expand_expr_real_1): Translate function names to locale
6786         character set in diagnostics.
6787         * gimplify.c (omp_notice_variable, omp_is_private,
6788         gimplify_scan_omp_clauses): Use %qE for identifiers in
6789         diagnostics.
6790         * langhooks.c (lhd_print_error_function): Translate function names
6791         to locale character set.
6792         * langhooks.h (decl_printable_name): Document that return value is
6793         in internal character set.
6794         * stmt.c: Include pretty-print.h
6795         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
6796         diagnostics.
6797         (resolve_operand_name_1): Translate named operand name to locale
6798         character set.
6799         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
6800         diagnostics.
6801         * toplev.c (announce_function): Translate function names to locale
6802         character set.
6803         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
6804         (default_tree_printer): Use pp_identifier or translate identifiers
6805         to locale character set.  Mark "<anonymous>" for translation.
6806         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
6807         for identifiers in diagnostics.
6808         * tree.c (handle_dll_attribute): Use %qE for identifiers in
6809         diagnostics.
6810         * varasm.c (output_constructor): Use %qE for identifiers in
6811         diagnostics.
6812
6813 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
6814
6815         * configure.ac: use ` ` instead of $()
6816         * configure: Regenerate.
6817
6818 2009-05-05  Ben Elliston  <bje@au.ibm.com>
6819
6820         * config/pa/linux-atomic.c: Eliminate conditional include of
6821         errno.h on non-LP64 systems to simplify build requirements.
6822
6823 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
6824
6825         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
6826         diagnostics.
6827         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
6828         and pass value to identifier_to_locale.
6829         (warn_variable_length_array): Make name a tree.
6830         (grokdeclarator): Separate diagnostic texts for named and unnamed
6831         declarators.  Use %qE for named declarators.
6832         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
6833         diagnostics.
6834         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
6835         identifiers in diagnostics.
6836         * c-typeck.c (push_member_name, start_init): Pass identifiers to
6837         identifier_to_locale.  Mark "anonymous" strings for translation.
6838
6839 2009-05-04  Michael Eager <eager@eagercon.com>
6840
6841         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
6842         address for DImode/DFmode only if double-precision FP regs.
6843
6844 2009-05-04  Michael Eager <eager@eagercon.com>
6845
6846         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
6847         TARGET_SINGLE_FLOAT check.
6848
6849 2009-05-04  Michael Eager <eager@eagercon.com>
6850
6851         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
6852
6853 2009-05-04  Michael Eager <eager@eagercon.com>
6854
6855         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
6856         * config/rs6000/t-xilinx: New
6857
6858 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
6859
6860         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
6861         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
6862         * gcc/explow.c (memory_address): Use target hook.
6863         * gcc/targhooks.c (default_legitimize_address): New.
6864         * gcc/targhooks.h (default_legitimize_address): New.
6865         * gcc/target.h (legitimize_address): New.
6866         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
6867         (TARGET_INITIALIZER): Include it.
6868         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
6869
6870         * config/bfin/bfin-protos.h (legitimize_address): Remove.
6871         * config/bfin/bfin.c (legitimize_address): Remove.
6872         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
6873         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
6874         Remove.
6875         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
6876         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
6877
6878         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
6879         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
6880         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
6881         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
6882         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
6883         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
6884         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
6885         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
6886         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
6887         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
6888         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
6889         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
6890         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
6891         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
6892         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
6893         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
6894         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
6895         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
6896         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
6897         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
6898         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
6899         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
6900         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
6901
6902         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
6903         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
6904         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
6905         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
6906         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
6907         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
6908         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
6909         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
6910         (thumb_legitimize_address): Delete.
6911         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
6912         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
6913         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
6914         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
6915         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
6916         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
6917         Delete.
6918         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
6919         Delete.
6920
6921         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
6922         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
6923         * config/m32r/m32r.c (m32r_legitimize_address): New.
6924         * config/m68k/m68k.c (m68k_legitimize_address): New.
6925         * config/score/score.c (score_legitimize_address): Standardize.
6926         * config/score/score3.c (score3_legitimize_address): Standardize.
6927         * config/score/score3.h (score3_legitimize_address): Adjust.
6928         * config/score/score7.c (score7_legitimize_address): Standardize.
6929         * config/score/score7.h (score7_legitimize_address): Adjust.
6930         * config/sh/sh.c (sh_legitimize_address): New.
6931         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
6932
6933         * gcc/config/s390/s390.c (legitimize_address): Rename to...
6934         (s390_legitimize_address): ... this.
6935         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
6936         (sparc_legitimize_address): ... this.
6937         * gcc/config/i386/i386.c (legitimize_address): Rename to...
6938         (ix86_legitimize_address): ... this.
6939         * gcc/config/avr/avr.c (legitimize_address): Rename to...
6940         (avr_legitimize_address): ... this.
6941         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
6942         (mn10300_legitimize_address): ... this.
6943         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
6944         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
6945         (alpha_expand_mov): Adjust call.
6946
6947         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
6948         * config/spu/spu.c (spu_legitimize_address): Likewise.
6949         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
6950         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
6951
6952 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
6953
6954         * intl.c (locale_encoding, locale_utf8): New.
6955         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
6956         * intl.h (locale_encoding, locale_utf8): Declare.
6957         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
6958         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
6959         New.
6960         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
6961         argument.
6962         (pp_tree_identifier): Define to call pp_base_tree_identifier.
6963         (pp_base_tree_identifier): Declare as function.
6964         (identifier_to_locale): Declare.
6965         * Makefile.in (pretty-print.o): Update dependencies.
6966         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
6967
6968 2009-05-04  Richard Guenther  <rguenther@suse.de>
6969
6970         PR middle-end/40015
6971         * builtins.c (fold_builtin_memory_op): Do not decay to element
6972         type if the size matches the whole array.
6973
6974 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
6975
6976         * expmed.c (synth_mult): When trying out a shift, pass the result
6977         of a signed shift.
6978
6979 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
6980
6981         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
6982         (shiftsub1_cost): New.
6983         (init_expmed): Compute shiftsub1_cost.
6984         (synth_mult): Optimize multiplications by constants of the form
6985         -(2^^m-1) for some constant positive integer m.
6986
6987 2009-05-03  Richard Guenther  <rguenther@suse.de>
6988
6989         PR c/39983
6990         * c-typeck.c (array_to_pointer_conversion): Do not built
6991         ADDR_EXPRs of arrays of pointer-to-element type.
6992         * c-gimplify.c (c_gimplify_expr): Revert change fixing
6993         up wrong ADDR_EXPRs after-the-fact.
6994         * c-common.c (strict_aliasing_warning): Strip pointer
6995         conversions for obtaining the original type.
6996         * builtins.c (fold_builtin_memset): Handle array types.
6997         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
6998         and array types
6999
7000 2009-05-03  Richard Guenther  <rguenther@suse.de>
7001
7002         PR middle-end/23329
7003         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
7004         Do not lose casts from array types with unknown extent to array
7005         types with known extent.
7006         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
7007         alias set compatibility.
7008
7009 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7010
7011         * flags.h (extra_warnings): Delete.
7012         * toplev.c (process_options): Handle Wuninitialized here.
7013         * opts.c (extra_warnings): Delete.
7014         (set_Wextra): Delete.
7015         (common_handle_option): -Wextra can be handled automatically.
7016         * c-opts.c (c_common_handle_option): Delete obsolete code.
7017         (c_common_post_options): Simplify comment.
7018         * common.opt (W): Add Var.
7019         (Wextra): Add Var.
7020         (Wuninitialized): Initialize to -1.
7021
7022 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
7023             Richard Guenther  <rguenther@suse.de>
7024
7025         * expr.c (get_def_for_expr): New function.
7026         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
7027         SSA rather than trees.
7028         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
7029         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
7030         
7031 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
7032
7033         * c-common.c (reswords): Add _Imaginary.
7034         * c-common.c (enum rid): Add RID_IMAGINARY.
7035
7036 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
7037
7038         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
7039         Patch by Richard Guenther.
7040
7041 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
7042
7043         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
7044         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
7045         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
7046         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
7047         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
7048         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
7049         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
7050         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
7051         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
7052         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
7053         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
7054         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
7055         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
7056         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
7057         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
7058         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
7059         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
7060         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
7061
7062 2009-05-02  Richard Guenther  <rguenther@suse.de>
7063
7064         PR tree-optimization/39940
7065         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
7066         doing so.
7067
7068 2009-05-02  Richard Guenther  <rguenther@suse.de>
7069
7070         PR middle-end/40001
7071         * tree-ssa.c (execute_update_addresses_taken): Properly check
7072         if we can mark a variable DECL_GIMPLE_REG_P.
7073         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
7074         back to the end of the function.
7075         (is_gimple_reg_type): Remove complex type special casing.
7076         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
7077         if not optimizing.
7078
7079 2009-05-02  Ben Elliston  <bje@au.ibm.com>
7080
7081         * doc/collect2.texi (Collect2): Document search path behaviour
7082         when configured with --with-ld.
7083
7084 2009-05-02  Jan Hubicka  <jh@suse.cz>
7085
7086         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
7087         parameter; update callers.
7088         (coalesce_cost_edge): EH edges are costier because they needs
7089         splitting even if not critical and even more costier when there are
7090         multiple EH predecestors.
7091
7092 2009-05-02  Jan Hubicka  <jh@suse.cz>
7093
7094         * except.c (remove_eh_handler_and_replace): Handle updating after
7095         removing TRY blocks.
7096
7097 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
7098
7099         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
7100
7101 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
7102
7103         * varasm.c: Do not include c-pragma.h.
7104         * attribs.c: Do not incude c-common.h.
7105
7106 2009-05-01  Michael Matz  <matz@suse.de>
7107
7108         * calls.c (initialize_argument_information): Handle SSA names like
7109         decls with a non MEM_P DECL_RTL.
7110
7111 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
7112
7113         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
7114         * ipa-utils.c: Likewise.
7115         * ipa-type-escape.c: Likewise.
7116         * cgraphunit.c Do not include c-common.h.
7117         * ipa-pure-const.c: Likewise.
7118         * tree-if-conv.c: Likewise.
7119         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
7120         * ipa-struct-reorg.c: Likewise.
7121         * tree-nomudflap.c: Likewise.
7122         * tree-ssa-structalias.c: Likewise.
7123
7124 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
7125
7126         * store-motion.c: Many cleanups to make this pass a first-class
7127         citizen instead of an appendix to gcse load motion.  Add TODO list
7128         to make this pass faster/cleaner/better.
7129
7130         (struct ls_expr): Post gcse.c-split cleanups.
7131         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
7132         "stores" field to "avail_stores".
7133         (pre_ldst_mems): Rename to store_motion_mems.
7134         (pre_ldst_table): Rename to store_motion_mems_table.
7135         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
7136         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
7137         (ldst_entry): Rename to st_expr_entry, update users.
7138         (free_ldst_entry): Rename to free_st_expr_entry, update users.
7139         (free_ldst_mems): Rename to free_store_motion_mems, update users.
7140         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
7141         update caller.
7142         (first_ls_expr): Rename to first_st_expr, update users.
7143         (next_ls_expr): Rename to next_st_expr, update users.
7144         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
7145         fields properly for store motion instead of names inherited from load
7146         motion in gcse.c.
7147         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
7148         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
7149         are done with it.
7150
7151         (ae_kill): Rename to st_kill, update users.
7152         (ae_gen): Rename to st_avloc, update users.
7153         (transp): Rename to st_transp, update users.
7154         (pre_insert_map): Rename to st_insert_map, update users.
7155         (pre_delete_map): Rename to st_delete_map, update users.
7156         (insert_store, build_store_vectors, free_store_memory,
7157         one_store_motion_pass): Update for abovementioned changes.
7158
7159         (gcse_subst_count, gcse_create_count): Remove.
7160         (one_store_motion_pass): New statistics counters "n_stores_deleted"
7161         and "n_stores_created", local variables.
7162
7163         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
7164         use for_each_rtx.
7165
7166         (regvec, compute_store_table_current_insn): Remove.
7167         (reg_set_info, reg_clear_last_set): Remove.
7168         (compute_store_table): Use DF caches instead of local dataflow
7169         solvers.
7170
7171 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
7172
7173         * c-objc-common.c (c_tree_printer): Print identifiers with
7174         pp_identifier, not pp_string.  Mark "({anonymous})" for
7175         translation.
7176         * c-pretty-print.c (pp_c_ws_string): New.
7177         (pp_c_cv_qualifier, pp_c_type_specifier,
7178         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
7179         pp_c_storage_class_specifier, pp_c_function_specifier,
7180         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
7181         pp_c_primary_expression, pp_c_postfix_expression,
7182         pp_c_unary_expression, pp_c_shift_expression,
7183         pp_c_relational_expression, pp_c_equality_expression,
7184         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
7185         use pp_string and pp_c_ws_string in place of pp_identifier and
7186         pp_c_identifier for non-identifiers.  Mark English strings for
7187         translation.
7188         * c-pretty-print.h (pp_c_ws_string): Declare.
7189
7190 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
7191             Roland McGrath <roland@redhat.com>
7192
7193         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
7194         (ENABLE_LD_BUILDID): New configuration option.
7195         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
7196         (LINK_BUILDID_SPEC): New macro.
7197         (init_spec): If defined, prepend it between LINK_EH_SPEC and
7198         link_spec.
7199         * doc/install.texi: Document --enable-linker-build-id option.
7200         * configure: Rebuild.
7201         * config.in: Rebuild.
7202
7203 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
7204
7205         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
7206         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
7207         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
7208         MIPS_GP_SAVE_AREA_SIZE.
7209         * config/mips/mips.c (struct mips_frame_info): Update comment
7210         before arg_pointer_offset and hard_frame_pointer_offset.
7211         (mips_compute_frame_info): Update diagram before function: to
7212         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
7213         indicate the position of frame_pointer_rtx with -fstack-protector and
7214         to show args_size.  Don't allocate cprestore area for leaf functions
7215         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
7216         cprestore_size.
7217         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
7218
7219 2009-04-30  Michael Matz  <matz@suse.de>
7220
7221         PR tree-optimization/39955
7222         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
7223
7224 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
7225
7226         * ira.c (setup_cover_and_important_classes):  Use safe macro
7227         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
7228         directly.
7229         * genpreds.c (write_tm_preds_h):  Output suitable definition of
7230         REG_CLASS_FOR_CONSTRAINT.
7231
7232 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
7233
7234         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
7235         instead of an int.
7236         * bitmap.c (bitmap_descriptor): Likewise.
7237         * ggc-common.c (loc_descriptor): Likewise.
7238         * varray.c (varray_descriptor): Likewise.
7239         * vec.c (vec_descriptor): Likewise.
7240
7241 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
7242
7243         * Makefile.in (dce.o): Add $(EXCEPT_H).
7244         * dce.c: Include except.h and delete redundant vector definitions.
7245         (deletable_insn_p): Return false for non-call insns that can throw
7246         if DF is running.
7247
7248 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
7249
7250         * gcse.c (ae_gen): Remove.
7251         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
7252         and make non-static function to make it available in store-motion.c.
7253         Update call sites with search-and-replace.
7254         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
7255         extract_mentioned_regs, extract_mentioned_regs_helper,
7256         find_moveable_store, compute_store_table, load_kills_store, find_loads,
7257         store_killed_in_insn, store_killed_after, store_killed_before,
7258         build_store_vectors, insert_insn_start_basic_block, insert-store,
7259         remove_reachable_equiv_notes, replace_store_insn, delete_store,
7260         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
7261         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
7262         * store-motion.c: ...new file.  Also copy data structures from gcse.c
7263         and clean up to remove parts not used by store motion.
7264         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
7265         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
7266
7267 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7268
7269         PR target/38571
7270         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
7271         when optimizing for size.
7272
7273 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
7274
7275         * gcse.c (gcse_constant_p): Fix typo in last change.
7276
7277 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
7278
7279         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
7280
7281 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
7282
7283         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
7284
7285 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
7286
7287         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
7288         CONST_HIGH_PART result.
7289
7290 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
7291
7292         * config/avr/avr.c (initial_elimination_offset): Rename to
7293         avr_initial_elimination_offset.
7294         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
7295         change return type to bool.
7296         (avr_can_eliminate): New function.
7297         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
7298         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
7299         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
7300         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
7301         avr_initial_elimination_offset.
7302         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
7303         (avr_initial_elimination_offset): Define.
7304
7305 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
7306             Steven Bosscher  <steven@gcc.gnu.org>
7307
7308         PR rtl-optimization/39938
7309         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
7310         * cfgrtl.c: Include insn-attr.h.
7311         (rest_of_pass_free_cfg): New function.
7312         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
7313         * resource.c (init_resource_info): Remove call to df_analyze.
7314
7315 2009-04-29  Richard Guenther  <rguenther@suse.de>
7316
7317         PR target/39943
7318         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
7319         allow conversion to signed integers.
7320
7321 2009-04-29  Richard Guenther  <rguenther@suse.de>
7322
7323         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
7324         shifts of floating point vectors if the shift amount is
7325         a constant multiple of the element size.
7326
7327 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
7328             Michael Matz  <matz@suse.de>
7329
7330         PR middle-end/39927
7331         PR bootstrap/39929
7332         * tree-outof-ssa.c (emit_partition_copy): New function.
7333         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7334         insert_part_to_rtx_on_edge): Perform the partition base var
7335         copy using emit_partition_copy.
7336         (insert_value_copy_on_edge): Convert constants to the right mode.
7337         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
7338         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
7339
7340 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7341
7342         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
7343         scan backwards to try to find a constant to initialize it.
7344
7345         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
7346         insn before the loop_end instruction, don't look past labels.
7347
7348 2009-04-29  Richard Guenther  <rguenther@suse.de>
7349
7350         PR middle-end/39937
7351         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
7352         loose type conversions.
7353         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
7354         stmts only if there are no uses of its definition.
7355
7356 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7357
7358         * config/bfin/bfin.h (splitting_loops): Declare.
7359         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
7360         Reorder bit definitions to be ascending.
7361         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
7362         * config/bfin/bfin.c (splitting_loops): New variable.
7363         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
7364         (struct loop_info): Remove members INIT and LOOP_INIT.
7365         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
7366         the LSETUP sequence.  Allow LC to be loaded from any register, but
7367         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
7368         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
7369         set to 1.
7370         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
7371         of reload_completed.
7372
7373         From Jie Zhang:
7374         * config/bfin/bfin.md (movsi_insn): Refine constraints.
7375
7376 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
7377
7378         * Makefile.in (PLUGIN_VERSION_H): New.
7379         (OBJS-common): Remove plugin-version.o.
7380         (plugin.o): Depend on (PLUGIN_VERSION_H).
7381         (plugin-version.o): Remove.
7382         * configure: Regenerate
7383         * configure.ac: Create plugin-version.h.
7384         * gcc-plugin.h (plugin_gcc_version): Remove.
7385         (plugin_default_version_check): Change signature.
7386         * plugin-version.c: Remove.
7387         * plugin.c: Include plugin-version.h.
7388         (str_plugin_gcc_version_name): Remove.
7389         (try_init_one_plugin): Pass gcc version to plugin_init.
7390         (plugin_default_version_check): Both gcc and plugin versions are now
7391         arguments.
7392
7393 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7394         
7395         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
7396         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
7397         Remove special case testing for last insn of inner loops. Don't fail
7398         if the loop ends with a jump, emit an extra nop instead.
7399
7400         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
7401         DREGS rather than comparing directly.  Remove code that tries to
7402         account for latencies.
7403
7404 2009-04-29  Richard Guenther  <rguenther@suse.de>
7405
7406         PR tree-optimization/39941
7407         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
7408         eliminating an indirect call.
7409
7410 2009-04-29  Richard Guenther  <rguenther@suse.de>
7411
7412         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
7413         parameter.  Allow invariants as base if !require_lvalue.
7414         (verify_gimple_assign_single): Adjust.
7415
7416 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
7417
7418         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
7419         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
7420         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
7421         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
7422         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
7423         a VEC_SELECT.
7424         * config/bfin/bfin.c (bfin_expand_builtin,
7425         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
7426
7427 2009-04-28  Richard Guenther  <rguenther@suse.de>
7428
7429         * tree-vect-loop.c (get_initial_def_for_induction): Use
7430         correct types for pointer increment.
7431
7432 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7433
7434         * toplev.c (print_version): Update GMP version string calculation.
7435
7436 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
7437
7438         PR rtl-optimization/39938
7439         * resource.c (init_resource_info): Add call to df_analyze.
7440
7441 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7442
7443         * config/alpha/alpha.md (usegp): Cast the result of
7444         alpha_find_lo_sum_using_gp to enum attr_usegp.
7445         * config/alpha/alpha.c (override_options): Remove end-of-structure
7446         marker element from cpu_table.  Use array size of cpu_table to handle
7447         -mcpu and -mtune options.
7448         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
7449
7450 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
7451
7452         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
7453         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
7454         tune_32 and tune_64.
7455         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
7456         support on PowerPC.
7457         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
7458         * config/rs6000/option-defaults.h: ... here.  New file.
7459         (OPT_64, OPT_32): Define.
7460         (MASK_64BIT): Define to 0 if not already defined.
7461         (OPT_ARCH64, OPT_ARCH32): Define.
7462         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
7463         and tune_64.
7464
7465 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7466
7467         * config/arm/arm.c (arm_override_options): Emit error on using
7468         fpa with AAPCS.
7469
7470 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7471
7472         PR rtl-optimization/39914
7473         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7474         registers for allocnos created from user-defined variables only
7475         when not optimizing.
7476
7477 2009-04-28  Richard Guenther  <rguenther@suse.de>
7478
7479         PR middle-end/39937
7480         * fold-const.c (fold_binary): Use distribute_real_division only
7481         on float types.
7482
7483 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
7484
7485         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
7486         add hpux-stdint.h to tm_file.
7487         (hppa[12]*-*-hpux11*): Ditto.
7488         (ia64*-*-hpux*): Ditto.
7489         * config/hpux-stdint.h: New.
7490         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
7491         __STDC_EXT__ for all compiles.
7492         * config/pa/pa-hpux.h: Ditto.
7493         * config/pa/pa-hpux10.h: Ditto.
7494         * config/pa/pa-hpux11.h: Ditto.
7495
7496 2009-04-28  Catherine Moore  <clm@codesourcery.com>
7497
7498         * debug.h (set_name): Add comment.
7499
7500 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
7501
7502         PR target/39929
7503         * config/darwin.c (machopic_gen_offset): Check
7504         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
7505         * config/arm/arm.c (require_pic_register): Likewise.
7506
7507 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
7508
7509         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
7510         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
7511         m32c_promote_prototypes): Delete.
7512
7513 2009-04-28  Michael Matz  <matz@suse.de>
7514
7515         PR middle-end/39922
7516         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
7517         constants.
7518
7519 2009-04-28  Richard Guenther  <rguenther@suse.de>
7520
7521         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7522
7523 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7524
7525         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
7526         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
7527         * config/arm/arm-tune.md: Regenerate.
7528
7529 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
7530
7531         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
7532         block if there are complex incoming edges.
7533         (sel_merge_blocks): Remove useless assert.
7534         (sel_redirect_edge_and_branch): Check that edge was redirected.
7535         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
7536         (sel_find_rgns): Delete declaration.
7537         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
7538         the region when it is not a preheader.
7539
7540 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7541
7542         PR c/39323
7543         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
7544
7545 2009-04-28  Richard Guenther  <rguenther@suse.de>
7546
7547         * tree.h (SSA_NAME_VALUE): Remove.
7548         (struct tree_ssa_name): Remove value_handle member.
7549         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
7550         array for jump threading.
7551         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
7552         SSA_NAME_VALUEs.
7553         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
7554         * tree-flow.h (threadedge_initialize_values): Declare.
7555         (threadedge_finalize_values): Likewise.
7556         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
7557         (SSA_NAME_VALUE): Define.
7558         (threadedge_initialize_values): New function.
7559         (threadedge_finalize_values): Likewise.
7560         * tree-ssa-dom.c (ssa_name_values): New global variable.
7561         (SSA_NAME_VALUE): Define.
7562         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
7563
7564 2009-04-28  Ira Rosen  <irar@il.ibm.com>
7565
7566         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
7567         Use REPORT_VECTORIZED_LOCATIONS instead 
7568         REPORT_VECTORIZED_LOOPS.
7569         * tree-vectorizer.c (vect_verbosity_level): Make static.
7570         (vect_loop_location): Rename to vect_location.
7571         (vect_set_verbosity_level): Update comment.
7572         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
7573         and vect_location.
7574         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
7575         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
7576         instead REPORT_UNVECTORIZED_LOOPS.
7577         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
7578         and vect_loop_def to vect_external_def and vect_internal_def.
7579         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
7580         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
7581         REPORT_UNVECTORIZED_LOCATIONS.
7582         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
7583         and vect_used_in_loop and to vect_unused_in_scope and 
7584         vect_used_in_scope.
7585         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
7586         (vect_verbosity_level): Remove declaration.
7587         (vect_analyze_operations): Likewise.
7588         (vect_analyze_stmt): Declare.
7589         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
7590         REPORT_UNVECTORIZED_LOCATIONS.
7591         (vect_get_loop_niters): Fix indentation.
7592         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
7593         (vect_analyze_loop_operations): New function.
7594         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
7595         vect_analyze_operations.
7596         (vect_is_simple_reduction): Use new names.
7597         (vectorizable_live_operation, vect_transform_loop): Likewise.
7598         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
7599         to specify whether the data references can be a part of interleaving
7600         chain.
7601         (vect_analyze_data_ref_dependence): Use new names.
7602         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
7603         (vect_create_addr_base_for_vector_ref): Remove redundant code.
7604         * tree-vect-patterns.c (widened_name_p): Use new names.
7605         (vect_recog_dot_prod_pattern): Likewise.
7606         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
7607         (process_use, vect_mark_stmts_to_be_vectorized, 
7608         vect_model_simple_cost, vect_model_store_cost,
7609         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
7610         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
7611         vectorizable_operation, vectorizable_type_demotion,
7612         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
7613         vectorizable_condition): Likewise.
7614         (vect_analyze_operations): Split into vect_analyze_loop_operations
7615         and ...
7616         (vect_analyze_stmt): ... new function.
7617         (new_stmt_vec_info): Use new names.
7618         (vect_is_simple_use): Use new names and fix comment.
7619         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
7620         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
7621
7622 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
7623
7624         PR target/39911
7625         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
7626         and integer modes for x87 operands.  Do not ICE for unsupported size,
7627         generate error instead.  Generate error for unsupported operand types.
7628         ['z']: Do not handle HImode memory operands specially.  Warning
7629         for floating-point operands.  Fallthru to 'Z' for unsupported operand
7630         types.  Do not ICE for unsupported size, generate error instead.
7631         (output_387_binary_op): Use %Z to output operands.
7632         (output_fp_compare): Ditto.
7633         (output_387_reg_move): Ditto.
7634
7635 2009-04-28  Ben Elliston  <bje@au.ibm.com>
7636
7637         PR c++/35652
7638         Revert:
7639
7640         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7641
7642         * builtins.c (c_strlen): Do not warn here.
7643         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
7644         * c-common.c (pointer_int_sum): Take an explicit location.
7645         Warn about offsets out of bounds.
7646         * c-common.h (pointer_int_sum): Adjust declaration.
7647
7648 2009-04-27  Ian Lance Taylor  <iant@google.com>
7649
7650         * collect2.c (is_ctor_dtor): Change type of ret field in struct
7651         names to symkind.
7652         * dce.c (run_fast_df_dce): Change type of old_flags to int.
7653         * df-core.c (df_set_flags): Change return type to int.  Change
7654         type of old_flags to int.
7655         (df_clear_flags): Likewise.
7656         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
7657         (df_get_conditional_uses): Likewise.
7658         * df.h (df_set_flags, df_clear_flags): Update declarations.
7659         * dwarf2out.c (struct indirect_string_node): Change type of form
7660         field to enum dwarf_form.
7661         (AT_string_form): Change return type to enum dwarf_form.
7662         * fixed-value.c (fixed_compare): Add cast to enum type.
7663         * fwprop.c (update_df): Change 0 to VOIDmode.
7664         * gensupport.c: Change 0 to UNKNOWN.
7665         * gimple.h (gimple_cond_code): Add cast to enum type.
7666         * haifa-sched.c (reemit_notes): Add cast to enum type.
7667         * hooks.c (hook_int_void_no_regs): Remove function.
7668         * hooks.h (hook_int_void_no_regs): Remove declaration.
7669         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7670         * predict.c (combine_predictions_for_insn): Add casts to enum type.
7671         * real.c (real_arithmetic): Add cast to enum type.
7672         (real_compare): Likewise.
7673         * target.h (struct gcc_target): Change return type of
7674         branch_target_register_class to enum reg_class.
7675         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
7676         default_branch_target_register_class.
7677         * targhooks.c (default_branch_target_register_class): New function.
7678         * targhooks.h (default_branch_target_register_class): Declare.
7679         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
7680         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
7681         cast to int.
7682         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
7683         ERROR_MARK.
7684         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
7685         vect_uninitialized_def.  Change 0 to ERROR_MARK.
7686         * tree-vect-stmts.c (supportable_widening_operation): Don't
7687         initialize icode1 and icode2.
7688         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
7689         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
7690         and to STD_C89.
7691         (cmn_err_flag_specs): Change 0 to STD_C89.
7692         (cmn_err_char_table): Likewise.
7693         * config/arm/arm.c (get_arm_condition_code): Change type of code
7694         to enum arm_cond_code.
7695         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
7696         (IWMMXT_BUILTIN2): Likewise.
7697         (neon_builtin_type_bits): Don't define typedef.
7698         (neon_builtin_datum): Change type of bits field to int.
7699         (arm_expand_neon_args): Add cast to enum type.
7700         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
7701         TLS_MODEL_NONE.
7702         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
7703         casts to enum type.
7704         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
7705         MIPS_FP_COND_f.
7706         * config/mips/mips.md (jal_macro): Return enum constant.
7707         (single_insn): Likewise.
7708         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
7709         CODE_FOR_nothing.
7710         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7711         casts to enum type.
7712         * config/s390/s390.c (s390_tune_flags): Change type to int.
7713         (s390_arch_flags): Likewise.
7714         (s390_handle_arch_option): Change flags field of struct pta to int.
7715         * config/s390/s390.h (s390_tune_flags): Update declaration.
7716         (s390_arch_flags): Likewise.
7717         * config/sh/sh.c (prepare_move_operands): Compare
7718         tls_symbolic_operand result with enum constant.
7719         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
7720         (sh_expand_prologue): Add cast to enum type.
7721         (sh_expand_epilogue): Likewise.
7722         (tls_symbolic_operand): Change return type to enum tls_model.
7723         (fpscr_set_from_mem): Add cast to enum type.
7724         (legitimize_pic_address): Compare tls_symbolic_operand result with
7725         enum constant.
7726         (sh_target_reg_class): Change return type to enum reg_class.
7727         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
7728         PROCESSOR_xxx.
7729         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
7730         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
7731         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
7732         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
7733         (delayed_branch, tls_call_delay): Likewise.
7734         (eligible_for_sibcall_delay): Likewise.
7735         (eligible_for_return_delay): Likewise. 
7736         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
7737         (spu_expand_builtin_1): Likewise.
7738
7739         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
7740         for all types of conversions.
7741         (output_init_element): Issue -Wc++-compat warning if needed when
7742         initializing a bitfield with enum type.
7743         * c-parser.c (c_parser_expression): Set original_type to
7744         original_type of right hand operand of comman operator.
7745
7746 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7747
7748         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
7749         grammar nits.
7750         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
7751         * doc/cpp.texi (Standard Predefined Macros)
7752         (Implementation-defined behavior): Likewise.
7753         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
7754         * doc/gimple.texi (GIMPLE Exception Handling)
7755         (@code{GIMPLE_ASSIGN}): Likewise.
7756         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
7757         * doc/invoke.texi (Warning Options, Optimize Options)
7758         (AVR Options, Darwin Options): Likewise.
7759         (Optimize Options): Reformulate -fwhole-program description.
7760         * doc/loop.texi (Lambda): Likewise.
7761         * doc/md.texi (Output Template, Define Constraints)
7762         (Standard Names, Insn Splitting): Likewise.
7763         * doc/options.texi (Option properties): Likewise.
7764         * doc/passes.texi (Tree-SSA passes): Likewise.
7765         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
7766         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
7767         (File Names and DBX): Likewise.
7768         * doc/trouble.texi (Incompatibilities): Likewise.
7769
7770 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7771
7772         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
7773         instruction is correct.
7774
7775 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
7776
7777         Allow non-constant arguments to conversion intrinsics.
7778         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
7779         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
7780         * spu.c (print_operand): Handle 'v' and 'w'.
7781         (exp2_immediate_p, spu_gen_exp2): Define.
7782         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
7783         spu_convtf_1): Update parameter descriptions.
7784         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
7785         * constraints.md ('v', 'w'): New.
7786         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
7787         Remove.
7788         (i2f, I2F): New define_mode_attr.
7789         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
7790         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
7791         fixuns_truncv4sfv4si2):  Update to use mode attribute.
7792         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
7793         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
7794         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
7795         patterns for combine.
7796
7797 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
7798
7799         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
7800         (cprop, hoist, pre, store_motion): New debug counters.
7801         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
7802         is not an RTL pass anymore.
7803         (pass_profiling): Remove extern decl for pass removed in 2005.
7804         (pass_gcse, pass_jump_bypass): Remove.
7805         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
7806         to 0 for clean state.
7807         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
7808         * cse.c (gate_handle_cse_after_global_opts,
7809         rest_of_handle_cse_after_global_opts): New functions.
7810         (pass_cse_after_global_opts): New pass, does local CSE.
7811         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
7812         (TV_CPROP): New timevar.
7813         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
7814         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
7815         (gcse_main, recompute_all_luids): Remove.
7816         (compute_hash_table_work): Call max_reg_num instead of reading
7817         max_gcse_regno.
7818         (cprop_jump): Don't set run_jump_opt_after_gcse.
7819         (constprop_register): Always allow to alter jumps.
7820         (cprop_insn): Likewise.
7821         (do_local_cprop): Likewise.
7822         (local_cprop_pass): Likewise.  Return non-zero if something changed.
7823         (cprop): Remove function, fold interesting bits into one_cprop_pass.
7824         (find_implicit_sets): Add note about missed optimization opportunity.
7825         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
7826         pass_rtl_cprop execute function.
7827         Don't bother tracking the pass number, each pass gets its own dumpfile
7828         now anyway.
7829         Always allow to alter jumpsand bypass jumps.
7830         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
7831         will just find no suitable set.
7832         (pre_edge_insert): Fix dumping, this function is for PRE only.
7833         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
7834         pass_rtl_pre execute function.
7835         (hoist_code): Return non-zero if something changed.  Keep track of
7836         substitutions and insertions for statistics gathering similar to PRE.
7837         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
7838         called from the pass_rtl_hoist execute function.  Show pass statistics.
7839         (compute_store_table): Use max_reg_num directly instead of using the
7840         formerly global max_gcse_regno.
7841         (build_store_vectors): Likewise.
7842         (replace_store_insn): Fix dumping.
7843         (store_motion): Rename to ...
7844         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
7845         pass, called from the pass_rtl_store_motion execute function.  Keep
7846         track of substitutions and insertions for statistics gathering similar
7847         to PRE.
7848         (bypass_jumps): Remove, fold interesting bits into ...
7849         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
7850         from the pass_rtl_cprop execute function.
7851         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
7852         pass_jump_bypass): Remove.
7853         (gate_handle_gcse, rest_of_handle_gcse): Remove.
7854         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
7855         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
7856         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
7857         (gate_rtl_store_motion, execute_rtl_store_motion,
7858         pass_rtl_store_motion): New.
7859         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
7860         make it clear that -fcse-skip-blocks is a no-op for backward compat.
7861         * passes.c (init_optimization_passes): Remove pass_gcse and
7862         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
7863         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
7864         instead of pass_jump_bypass.
7865
7866 2009-04-27  Richard Guenther  <rguenther@suse.de>
7867
7868         PR middle-end/39928
7869         * gimplify.c (gimplify_expr): If we are required to create
7870         a temporary make sure it ends up as register.
7871
7872 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7873
7874         PR target/39903
7875         * config/i386/i386.c (construct_container): Don't call
7876         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
7877         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
7878
7879 2009-04-27  Michael Matz  <matz@suse.de>
7880
7881         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
7882         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
7883         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
7884         (dump_replaceable_exprs): Take a bitmap.
7885         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
7886         array.
7887         (expand_gimple_basic_block): Likewise.
7888         * tree-ssa-ter.c (struct temp_expr_table_d): Make
7889         replaceable_expressions member a bitmap.
7890         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
7891         (mark_replaceable): Likewise.
7892         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
7893         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
7894
7895 2009-04-27  Richard Guenther  <rguenther@suse.de>
7896
7897         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
7898         (verify_stmts): Dispatch to gimple/type verification code.
7899         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
7900         issue with call argument types.
7901
7902 2009-04-27  Michael Matz  <matz@suse.de>
7903
7904         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
7905         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
7906         to above.
7907
7908 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
7909             Eric Botcazou  <ebotcazou@adacore.com>
7910
7911         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
7912         a label's basic block.
7913         (mark_target_live_regs): Tidy and rework obsolete comments.
7914         Change back DF problem to LIVE.  If a label starts a basic block,
7915         assume that all registers that used to be live then still are.
7916         (init_resource_info): If a label starts a basic block, set its
7917         BLOCK_FOR_INSN accordingly.
7918         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
7919
7920 2009-04-27  Richard Guenther  <rguenther@suse.de>
7921
7922         * tree-flow-inline.h (function_ann): Remove.
7923         (get_function_ann): Likewise.
7924         * tree-dfa.c (create_function_ann): Remove.
7925         * tree-flow.h (struct static_var_ann_d): Remove.
7926         (struct function_ann_d): Likewise.
7927         (union tree_ann_d): Remove fdecl member.
7928         (function_ann_t): Remove.
7929         (function_ann, get_function_ann, create_function_ann): Remove
7930         declarations.
7931
7932 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
7933
7934         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
7935
7936 2009-04-27  Jan Hubicka  <jh@suse.cz>
7937
7938         * ipa-pure-const.c (struct funct_state_d): New fields
7939         state_previously_known, looping_previously_known; remove
7940         state_set_in_source.
7941         (analyze_function): Use new fields.
7942         (propagate): Avoid assumption that state_set_in_source imply
7943         nonlooping.
7944
7945         * tree-ssa-loop-niter.c (finite_loop_p): New function.
7946         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
7947         * cfgloop.h (finite_loop_p): Declare.
7948
7949 2009-04-26  Michael Matz  <matz@suse.de>
7950
7951         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
7952
7953 2009-04-26  Michael Matz  <matz@suse.de>
7954
7955         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
7956         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
7957         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
7958         pass_mark_used_blocks): Remove.
7959         * tree-optimize.c (pass_free_datastructures,
7960         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
7961         * passes.c (init_optimization_passes): Don't call
7962         pass_mark_used_blocks, remove dead code.
7963
7964 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
7965
7966         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
7967         * tree-ssa-live.h (register_ssa_partition): Likewise.
7968
7969 2009-04-26  Michael Matz  <matz@suse.de>
7970
7971         Expand from SSA.
7972         * builtins.c (fold_builtin_next_arg): Handle SSA names.
7973         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
7974         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
7975         SSA names. 
7976         (compare_pairs): Swap cost comparison.
7977         (coalesce_ssa_name): Don't use change_partition_var.
7978         * tree-nrv.c (struct nrv_data): Add modified member.
7979         (finalize_nrv_r): Set it.
7980         (tree_nrv): Use it to update statements.
7981         (pass_nrv): Require PROP_ssa.
7982         * tree-mudflap.c (mf_decl_cache_locals,
7983         mf_build_check_statement_for): Use make_rename_temp.
7984         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
7985         * alias.c (find_base_decl): Handle SSA names.
7986         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
7987         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
7988         * rtl.h (set_reg_attrs_for_parm): Declare.
7989         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
7990         to "optimized", remove unused locals at finish.
7991         (execute_free_datastructures): Make global, call
7992         delete_tree_cfg_annotations.
7993         (execute_free_cfg_annotations): Don't call
7994         delete_tree_cfg_annotations.
7995
7996         * ssaexpand.h: New file.
7997         * expr.c (toplevel): Include ssaexpand.h.
7998         (expand_assignment): Handle SSA names the same as register variables.
7999         (expand_expr_real_1): Expand SSA names.
8000         * cfgexpand.c (toplevel): Include ssaexpand.h.
8001         (SA): New global variable.
8002         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
8003         (SSAVAR): New macro.
8004         (set_rtl): New helper function.
8005         (add_stack_var): Deal with SSA names, use set_rtl.
8006         (expand_one_stack_var_at): Likewise.
8007         (expand_one_stack_var): Deal with SSA names.
8008         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
8009         before unique numbers.
8010         (expand_stack_vars): Use set_rtl.
8011         (expand_one_var): Accept SSA names, add asserts for them, feed them
8012         to above subroutines.
8013         (expand_used_vars): Expand all partitions (without default defs),
8014         then only the local decls (ignoring those expanded already).
8015         (expand_gimple_cond): Remove edges when jumpif() expands an
8016         unconditional jump.
8017         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
8018         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
8019         SSA name.
8020         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
8021         members of SA; deal with PARM_DECL partitions here; expand
8022         all PHI nodes, free tree datastructures and SA.  Commit instructions
8023         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
8024         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
8025         info and statements at start, collect garbage at finish.
8026         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
8027         (VAR_ANN_PARTITION) Remove.
8028         (change_partition_var): Don't declare.
8029         (partition_to_var): Always return SSA names.
8030         (var_to_partition): Only accept SSA names.
8031         (register_ssa_partition): Only check argument.
8032         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
8033         member.
8034         (delete_var_map): Don't free it.
8035         (var_union): Only accept SSA names, simplify.
8036         (partition_view_init): Mark only useful SSA names as used.
8037         (partition_view_fini): Only deal with SSA names.
8038         (change_partition_var): Remove.
8039         (dump_var_map): Use ssa_name instead of partition_to_var member.
8040         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
8041         basic blocks.
8042         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
8043         (struct _elim_graph): New member const_dests; nodes member vector of
8044         ints.
8045         (set_location_for_edge): New static helper.
8046         (create_temp): Remove.
8047         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
8048         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
8049         (new_elim_graph): Allocate const_dests member.
8050         (clean_elim_graph): Truncate const_dests member.
8051         (delete_elim_graph): Free const_dests member.
8052         (elim_graph_size): Adapt to new type of nodes member.
8053         (elim_graph_add_node): Likewise.
8054         (eliminate_name): Likewise.
8055         (eliminate_build): Don't take basic block argument, deal only with
8056         partition numbers, not variables.
8057         (get_temp_reg): New static helper.
8058         (elim_create): Use it, deal with RTL temporaries instead of trees.
8059         (eliminate_phi): Adjust all calls to new signature.
8060         (assign_vars, replace_use_variable, replace_def_variable): Remove.
8061         (rewrite_trees): Only do checking.
8062         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
8063         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
8064         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
8065         contains_tree_r, MAX_STMTS_IN_LATCH,
8066         process_single_block_loop_latch, analyze_edges_for_bb,
8067         perform_edge_inserts): Remove.
8068         (expand_phi_nodes): New global function.
8069         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
8070         functions, initialize new parameter, remember partitions having a
8071         default def.
8072         (finish_out_of_ssa): New global function.
8073         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
8074         don't reset in_ssa_p here, don't disable TER when mudflap.
8075         (pass_del_ssa): Remove.
8076         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
8077         partition members.
8078         (execute_free_datastructures): Declare.
8079         * Makefile.in (SSAEXPAND_H): New variable.
8080         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
8081         * basic-block.h (commit_one_edge_insertion): Declare.
8082         * passes.c (init_optimization_passes): Move pass_nrv and
8083         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
8084         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
8085         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
8086         (redirect_branch_edge): Deal with super block when expanding, split
8087         out jump patching itself into ...
8088         (patch_jump_insn): ... here, new static helper.
8089
8090 2009-04-26  Michael Matz  <matz@suse.de>
8091
8092         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
8093         beyond num_ssa_names.
8094         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
8095         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
8096
8097 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
8098
8099         PR inline-asm/39543
8100         * fwprop.c (forward_propagate_asm): New function.
8101         (forward_propagate_and_simplify): Propagate also into __asm, if it
8102         doesn't increase the number of referenced registers.
8103
8104         PR c/39889
8105         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
8106
8107 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
8108
8109         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
8110         note_nonlocal_vla_type for nonlocal VLAs.
8111         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
8112         contains_remapped_vars, remap_vla_decls): New functions.
8113         (convert_nonlocal_reference_stmt): If not optimizing, call
8114         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
8115         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
8116         if it wasn't found in var_map.
8117         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
8118         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
8119         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
8120         declare_vars.
8121         * gimplify.c (nonlocal_vlas): New variable.
8122         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
8123         referenced VLAs.
8124         (gimplify_body): Create and destroy nonlocal_vlas.
8125
8126         * dwarf2out.c (loc_descr_plus_const): New function.
8127         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
8128         mem_loc_descriptor, loc_descriptor_from_tree_1,
8129         descr_info_loc, gen_variable_die): Use it.
8130
8131         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
8132         !TREE_STATIC VAR_DECLs.
8133         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
8134         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
8135         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
8136         DECL_BY_REFERENCE is valid.
8137         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
8138         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
8139         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
8140         Copy DECL_BY_REFERENCE.
8141         (struct nesting_copy_body_data): New type.
8142         (nesting_copy_decl): New function.
8143         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
8144         if they have variable length.
8145
8146 2009-04-26  Michael Matz  <matz@suse.de>
8147
8148         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
8149         mark new temporaries for renaming.
8150
8151 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
8152
8153         PR c/39581
8154         * c-decl.c (global_bindings_p): Return negative value.
8155         (c_variable_size): New.  Based on variable_size from
8156         stor-layout.c.
8157         (grokdeclarator): Call c_variable_size not variable_size.
8158
8159 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
8160
8161         * config/i386/i386.c (print_operand) ['z']: Fix typo.
8162
8163 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
8164
8165         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
8166         Redefine it to just use mingw/include.
8167         (ASM_SPEC): Rules for -m32 and -m64.
8168         (LINK_SPEC): Use Likewise.
8169         (SPEC_32): New define.
8170         (SPEC_64): Likewise.
8171         (SUB_LINK_SPEC): Likewise.
8172         (MULTILIB_DEFAULTS): New define.
8173         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
8174         Add multilib options.
8175         (MULTILIB_DIRNAMES): Likewise.
8176         (MULTILIB_OSDIRNAMES): Likewise.
8177         (LIBGCC): Likewise.
8178         (INSTALL_LIBGCC): Likewise.
8179
8180 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
8181
8182         PR c/39556
8183         * c-tree.h (enum c_inline_static_type): New.
8184         (record_inline_static): Declare.
8185         * c-decl.c (struct c_inline_static, c_inline_statics,
8186         record_inline_static, check_inline_statics): New.
8187         (pop_file_scope): Call check_inline_statics.
8188         (start_decl): Call record_inline_static instead of pedwarning
8189         directly for static in inline function.
8190         * c-typeck.c (build_external_ref): Call record_inline_static
8191         instead of pedwarning directly for static referenced in inline
8192         function.
8193
8194 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
8195
8196         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
8197         not new but only being rescanned.
8198         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
8199         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
8200         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
8201         record_set_info, compute_set, grealloc): Remove.
8202         (recompute_all_luids): New function.
8203         (gcse_main): Don't compute sets, and don't do related memory
8204         allocations/free-ing.  If something changed before the end of the
8205         pass, update LUIDs using recompute_all_luids.
8206         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
8207         (free_gcse_mem): Don't free it either.
8208         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
8209         Use the df insn LUIDs.
8210         (load_killed_in_block): Likewise.
8211         (compute_hash_table_work): Don't compute reg_set_in_block.
8212         (compute_transp): Use DF_REG_DEF_CHAINs.
8213         (local_cprop_pass): Don't use compute_sets and related functions.
8214         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
8215         Use get_max_uid() instead of max_cuid.
8216         (insert_insn_end_basic_block, pre_insert_copy_insn,
8217         update_ld_motion_stores): Don't try to
8218         keep reg_set tables up to date.
8219         (pre_insert_copies): Use df insn LUIDs.
8220         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
8221         (reg_set_info): Don't use extra bitmap argument.
8222         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
8223         information to compute regs_set_in_block.
8224         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
8225         (bypass_jumps): Don't use compute_sets and friends.
8226
8227 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8228
8229         PR testsuite/39710
8230         * opts.c (undocumented_msg): Do not leave blank even with
8231         ENABLE_CHECKING.
8232
8233 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8234
8235         * c-decl.c (build_enumerator): Allow values folding to integer
8236         constants but not integer constant expressions with a pedwarn if
8237         pedantic.
8238
8239 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8240
8241         PR c/39582
8242         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
8243         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
8244         type is an integer constant.
8245
8246 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
8247
8248         PR target/39897
8249         * config/i386/i386.c (print_operand) ['z']: Revert handling of
8250         HImode operands.
8251
8252 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
8253
8254         PR c/39564
8255         * c-decl.c (grokdeclarator): Diagnose declarations of functions
8256         with variably modified return type and no storage class
8257         specifiers, except for the case of nested functions.  Distinguish
8258         extern declarations of functions with variably modified return
8259         types from those of objects with variably modified types.
8260
8261 2009-04-25  Jan Hubicka  <jh@suse.cz>
8262
8263         * tree.c (list_equal_p): New function.
8264         * tree.h (list_equal_p): Declare.
8265         * coretypes.h (edge_def, edge, const_edge, basic_block_def
8266         basic_block_def, basic_block, const_basic_block): New.
8267         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
8268         (redirect_eh_edge): New function.
8269         (make_eh_edge_update_phi): EH edges are not abnormal.
8270         * except.c: Include tree-flow.h.
8271         (list_match): New function.
8272         (eh_region_replaceable_by_p): New function.
8273         (replace_region): New function.
8274         (hash_type_list): New function.
8275         (hash_eh_region): New function.
8276         (eh_regions_equal_p): New function.
8277         (merge_peers): New function.
8278         (remove_unreachable_regions): Verify EH tree when checking;
8279         merge peers.
8280         (copy_eh_region_1): New function.
8281         (copy_eh_region): New function.
8282         (push_reachable_handler): New function.
8283         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
8284         regions without label but with live RESX.
8285         * except.h (redirect_eh_edge_to_label): New.
8286         * tree-flow.h (redirect_eh_edge): New.
8287         * coretypes.h (edge_def, edge, const_edge, basic_block_def
8288         basic_block_def, basic_block, const_basic_block): Remove.
8289         * Makefile.in (except.o): Add dependency on tree-flow.h
8290         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
8291         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
8292         Remove.
8293
8294 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
8295
8296         PR bootstrap/39645
8297         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
8298         on the destination of memcpy.
8299
8300 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
8301
8302         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
8303         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
8304         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
8305
8306 2009-04-25  Jan Hubicka  <jh@suse.cz>
8307
8308         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
8309         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
8310         to be reached by different label than left.
8311         (update_eh_edges): Update comment; remove edge_to_remove if possible
8312         and return true if suceeded.
8313         (cleanup_empty_eh): Accept sharing map; handle shared regions.
8314         (cleanup_eh): Compute sharing map.
8315         * except.c (remove_eh_handler_and_replace): Add argument if we should
8316         update regions.
8317         (remove_unreachable_regions): Update for label sharing.
8318         (label_to_region_map): Likewise.
8319         (get_next_region_sharing_label): New function.
8320         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
8321         prev_try pointers.
8322         (remove_eh_handler): Update.
8323         (remove_eh_region_and_replace_by_outer_of): New function.
8324         * except.h (struct eh_region): Add next_region_sharing_label.
8325         (remove_eh_region_and_replace_by_outer_of,
8326         get_next_region_sharing_label): Declare.
8327         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
8328
8329 2009-04-25  Jan Hubicka  <jh@suse.cz>
8330
8331         * tree-cfg.c (split_critical_edges): Split also edges where we can't
8332         insert code even if they are not critical.
8333
8334 2009-04-25  Jan Hubicka  <jh@suse.cz>
8335
8336         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8337         (gimple_can_remove_branch_p): EH edges won't remove branch by
8338         redirection.
8339         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
8340         updating of non-abnormal EH edges.
8341         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
8342         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
8343         (split_critical_edges): Split also edges where emitting code on them
8344         will lead to splitting later.
8345
8346 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
8347             H.J. Lu  <hongjiu.lu@intel.com>
8348
8349         PR target/39590
8350         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
8351         the configured assembler supports fildq and fistpq mnemonics.
8352         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
8353         * configure: Regenerated.
8354         * config.in: Ditto.
8355
8356         * config/i386/i386.c (print_operand): Handle 'Z'.
8357         ['z']: Remove handling of special fild/fist suffixes.
8358         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
8359         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
8360         suffix of fild insn.
8361         (*floatsi<mode>2_vector_mixed): Ditto.
8362         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
8363         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
8364         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
8365         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
8366         * config/i386/gas.h (GAS_MNEMONICS): Remove.
8367
8368 2009-04-25  Ben Elliston  <bje@au.ibm.com>
8369  
8370         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
8371         the source of a set operation.
8372
8373 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
8374
8375         * target.h (struct gcc_target): Add case_values_threshold field.
8376         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
8377         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
8378         * targhooks.c (default_case_values_threshold): New function.
8379         * targhooks.h (default_case_values_threshold): Declare function.
8380         * stmt.c (expand_case): Use case_values_threshold target hook.
8381         * expr.h (case_values_threshold): Remove declartation.
8382         * expr.c (case_values_threshold): Remove function.
8383         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
8384
8385         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
8386         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8387         (avr_case_values_threshold): Declare as static.
8388         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
8389
8390         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
8391         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
8392         (mn10300_case_values_threshold): New function.
8393
8394 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8395
8396         * ira.c (setup_cover_and_important_classes): Add enum cast.
8397
8398 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
8399
8400         * genpreds.c (write_enum_constraint_num): Output definition of
8401         CONSTRAINT_NUM_DEFINED_P macro.
8402         * ira.c (setup_cover_and_important_classes): Use
8403         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
8404         
8405 2009-04-24  DJ Delorie  <dj@redhat.com>
8406
8407         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
8408         __SH2A_SINGLE_ONLY__ also.
8409
8410 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
8411
8412         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
8413         (movdf_internal): Ditto.
8414         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
8415         SFmode and DFmode constants.
8416         (ia64_print_operand): Add 'G' format for printing
8417         floating point constants.
8418
8419 2009-04-24  Richard Guenther  <rguenther@suse.de>
8420
8421         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
8422         from unsigned additions.
8423
8424 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
8425
8426         * c-typeck.c (set_init_index): Allow array designators that are
8427         not integer constant expressions with a pedwarn if pedantic.
8428
8429 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8430
8431         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
8432         zero if no overlap in nonzero bits between the operands.
8433
8434 2009-04-24  Ian Lance Taylor  <iant@google.com>
8435
8436         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
8437         (record_dead_and_set_regs): Likewise.
8438         * df.h (struct df_mw_hardreg): Change flags field to int.
8439         (struct df_base_ref): Likewise.
8440         (struct df): Change changeable_flags field to int.
8441         * df-scan.c (df_defs_record): Change clobber_flags to int.
8442         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
8443         constants rather than #define macros.
8444         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
8445         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
8446         (enum dwarf_calling_convention): Likewise.
8447         (enum dwarf_line_number_x_ops): Likewise.
8448         (enum dwarf_call_frame_info): Likewise.
8449         (enum dwarf_source_language): Likewise.
8450         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
8451         (add_calling_convention_attribute): Likewise.
8452         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
8453         (combine_comparisons): Change compcode to int.  Add cast to enum type.
8454         * genrecog.c (maybe_both_true_2): Change c to int.
8455         (write_switch): Likewise.  Add cast to enum type.
8456         * gimplify.c (gimplify_omp_for): Handle return values from
8457         gimplify_expr using MIN rather than bitwise or.
8458         (gimplify_expr): Add cast to enum type.
8459         * ipa-prop.c (update_jump_functions_after_inlining): Change
8460         IPA_BOTTOM to IPA_JF_UNKNOWN.
8461         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
8462         Add casts to enum type.
8463         (setup_cover_and_important_classes): Change cl to int.  Add casts
8464         to enum type.
8465         (setup_class_translate): Change cl and mode to int.
8466         (ira_init_once): Change mode to int.
8467         (free_register_move_costs): Likewise.
8468         (setup_prohibited_mode_move_regs): Add casts to enum type.
8469         * langhooks.c (add_builtin_function_common): Rework assertion that
8470         value fits bitfield.
8471         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
8472         * omega.c (omega_do_elimination): Avoid math on enum types.
8473         * optabs.c (expand_vec_shift_expr): Remove casts to int.
8474         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
8475         int local to handle integral_argment value.
8476         * regmove.c (try_auto_increment): Change PUT_MODE to
8477         PUT_REG_NOTE_KIND.
8478         * reload.c (push_secondary_reload): Add casts to enum type.
8479         (secondary_reload_class, find_valid_class): Likewise.
8480         * reload1.c (emit_input_reload_insns): Likewise.
8481         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
8482         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
8483         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
8484         constant.
8485         * tree.c (build_common_builtin_nodes): Add casts to enum type.
8486         * tree-complex.c (complex_lattice_t): Typedef to int rather than
8487         enum type.
8488         (expand_complex_libcall): Add casts to enum type.
8489         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
8490         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
8491         with ERROR_MARK, not NUM_TREE_CODES.
8492         (vect_create_epilog_for_reduction): Likewise.
8493         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
8494         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
8495         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
8496         enum machine_mode.
8497         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
8498         vect_unused_in_loop.  Change 0 to loop_vect.
8499         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
8500         * var-tracking.c (get_init_value): Change return type to enum
8501         var_init_status.
8502         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
8503         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
8504         arm_fp_model.
8505         (arm_override_options): Add casts to enum type.
8506         (arm_emit_tls_decoration): Likewise.
8507         * config/i386/i386.c (ix86_function_specific_restore): Add casts
8508         to enum type.
8509         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
8510         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
8511         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
8512         enum type.
8513         * config/s390/s390.c (code_for_builtin_64): Change to array of
8514         enum insn_code.
8515         (code_for_builtin_31): Likewise.
8516         (s390_expand_builtin): Change code_for_builtin to enum insn_code
8517         const *.
8518         * config/sparc/sparc.c (sparc_override_options): Change value
8519         field in struct code_model to enum cmodel.  In initializer change
8520         0 to NULL and add cast to enum type.
8521
8522         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
8523         Change all callers.  Issue a -Wc++-compat warning using
8524         lhs_origtype if necessary.
8525         (convert_for_assignment): Issue -Wc++-compat warnings about
8526         invalid conversions to enum type on assignment.
8527         * c-common.h (build_modify_expr): Update declaration.
8528
8529 2009-04-24  Nick Clifton  <nickc@redhat.com>
8530
8531         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
8532         (function_arg_advance): Likewise.
8533         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
8534         5th alternative.
8535
8536 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
8537
8538         * config/s390/constraints.md ('I', 'J'): Fix condition.
8539
8540 2009-04-24  Diego Novillo  <dnovillo@google.com>
8541
8542         * gengtype-parse.c (parse_error): Add newline after message.
8543
8544 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
8545
8546         * config/i386/sse.md (avxmodesuffixs): Removed.
8547         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
8548         (*avx_pinsr<ssevecsize>): This.
8549
8550 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
8551
8552         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
8553         follow chains of regs with a single definition, and allow expressions
8554         that are function_invariant_p.
8555         (simple_rhs_p): Allow expressions that are function_invariant_p.
8556
8557 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
8558
8559         PR middle-end/39867
8560         * fold-const.c (fold_cond_expr_with_comparison): When folding
8561         > and >= to MAX, make sure the MAX uses the same type as the
8562         comparison's operands.
8563
8564 2009-04-24  Nick Clifton  <nickc@redhat.com>
8565
8566         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
8567         addressing for DImode accesses.
8568         (frv_print_operand_address): Handle PLUS case.
8569         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8570
8571 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
8572
8573         PR rtl-optimization/39794
8574         * alias.c (canon_true_dependence): Add x_addr argument.
8575         * rtl.h (canon_true_dependence): Adjust prototype.
8576         * cse.c (check_dependence): Adjust canon_true_dependence callers.
8577         * cselib.c (cselib_invalidate_mem): Likewise.
8578         * gcse.c (compute_transp): Likewise.
8579         * dse.c (scan_reads_nospill): Likewise.
8580         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
8581         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
8582         canon_base_addr of the group, plus optional offset.
8583         (struct group_info): Rename canon_base_mem to
8584         canon_base_addr.
8585         (get_group_info): Set canon_base_addr to canon_rtx of base, not
8586         canon_rtx of base_mem.
8587
8588 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
8589
8590         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
8591         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
8592
8593 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8594
8595         * config/spu/spu-builtins.h: Delete file.
8596
8597         * config/spu/spu.h (enum spu_builtin_type): Move here from
8598         spu-builtins.h.
8599         (struct spu_builtin_description): Likewise.  Add GTY marker.
8600         Do not use enum spu_function_code or enum insn_code.
8601         (spu_builtins): Add extern declaration.
8602
8603         * config/spu/spu.c: Do not include "spu-builtins.h".
8604         (enum spu_function_code, enum spu_builtin_type_index,
8605         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
8606         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
8607         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
8608         unsigned_V2DI_type_node): Move here from spu-builtins.h.
8609         (spu_builtin_types): Make static.  Add GTY marker.
8610         (spu_builtins): Add extern declaration with GTY marker.
8611         Include "gt-spu.h".
8612
8613         * config/spu/spu-c.c: Do not include "spu-builtins.h".
8614         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
8615         Check programmatically whether all parameters are scalar.
8616
8617         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
8618
8619 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
8620
8621         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
8622         assignment from the constructor either if the target is volatile.
8623
8624 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
8625
8626         * config/arm/arm.md (insv): Do not share operands[0].
8627
8628 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
8629
8630         * config/vxlib-tls.c (active_tls_threads): Delete.
8631         (delete_hook_installed): New.
8632         (tls_delete_hook): Don't delete the delete hook.
8633         (tls_destructor): Delete it here.
8634         (__gthread_set_specific): Adjust installing the delete hook.
8635         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
8636         __gthread_leave_tsd_dtor_context.
8637
8638 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
8639
8640         * c-format.c (gcc_tdiag_char_table): Add support for %E.
8641
8642 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
8643
8644         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
8645         enum type.
8646         (alpha_rtx_costs): Ditto.
8647         (emit_unlikely_jump): Use add_reg_note.
8648         (emit_frame_store_1): Ditto.
8649         (alpha_expand_prologue): Ditto.
8650         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8651         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
8652
8653 2009-04-23  Nick Clifton  <nickc@redhat.com>
8654
8655         * config/v850/v850.md (epilogue): Remove suppressed code.
8656         (return): Rename to return_simple and remove test of frame size.
8657         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
8658         to gen_return_simple.
8659
8660 2009-04-22  Jing Yu  <jingyu@google.com>
8661
8662         PR testsuite/39781
8663         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8664
8665 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8666
8667         PR C/31499
8668         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
8669         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
8670         value is a VECTOR_CST, the element type is the element type of the
8671         vector.
8672
8673 2009-04-22  DJ Delorie  <dj@redhat.com>
8674
8675         * config/m32c/m32c.h: Update GTY annotations to new syntax.
8676
8677 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
8678
8679         * alias.c (find_base_term): Move around LO_SUM case, so that
8680         CONST falls through into PLUS/MINUS handling.
8681
8682         PR c/39855
8683         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
8684         into 0, use omit_one_operand.
8685
8686 2009-04-23  Ben Elliston  <bje@au.ibm.com>
8687
8688         * config/rs6000/linux-unwind.h (get_regs): Remove type
8689         puns. Change the type of `pc' to an array of unsigned ints and
8690         update all users.  Constify frame24.
8691
8692 2009-04-22  DJ Delorie  <dj@redhat.com>
8693
8694         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
8695         declarations before code.
8696         (current_function_special_page_vector): Likewise.
8697         (m32c_expand_insv): Silence a warning.
8698
8699 2009-04-21  Taras Glek  <tglek@mozilla.com>
8700
8701         * alias.c: Update GTY annotations to new syntax.
8702         * basic-block.h: Likewise.
8703         * bitmap.h: Likewise.
8704         * c-common.h: Likewise.
8705         * c-decl.c: Likewise.
8706         * c-parser.c: Likewise.
8707         * c-pragma.c: Likewise.
8708         * c-tree.h: Likewise.
8709         * cfgloop.h: Likewise.
8710         * cgraph.h: Likewise.
8711         * config/alpha/alpha.c: Likewise.
8712         * config/arm/arm.h: Likewise.
8713         * config/avr/avr.h: Likewise.
8714         * config/bfin/bfin.c: Likewise.
8715         * config/cris/cris.c: Likewise.
8716         * config/darwin.c: Likewise.
8717         * config/frv/frv.c: Likewise.
8718         * config/i386/i386.c: Likewise.
8719         * config/i386/i386.h: Likewise.
8720         * config/i386/winnt.c: Likewise.
8721         * config/ia64/ia64.h: Likewise.
8722         * config/iq2000/iq2000.c: Likewise.
8723         * config/mips/mips.c: Likewise.
8724         * config/mmix/mmix.h: Likewise.
8725         * config/pa/pa.c: Likewise.
8726         * config/pa/pa.h: Likewise.
8727         * config/rs6000/rs6000.c: Likewise.
8728         * config/s390/s390.c: Likewise.
8729         * config/sparc/sparc.c: Likewise.
8730         * config/xtensa/xtensa.c: Likewise.
8731         * cselib.h: Likewise.
8732         * dbxout.c: Likewise.
8733         * dwarf2out.c: Likewise.
8734         * except.c: Likewise.
8735         * except.h: Likewise.
8736         * fixed-value.h: Likewise.
8737         * function.c: Likewise.
8738         * function.h: Likewise.
8739         * gimple.h: Likewise.
8740         * integrate.c: Likewise.
8741         * optabs.c: Likewise.
8742         * output.h: Likewise.
8743         * real.h: Likewise.
8744         * rtl.h: Likewise.
8745         * stringpool.c: Likewise.
8746         * tree-data-ref.c: Likewise.
8747         * tree-flow.h: Likewise.
8748         * tree-scalar-evolution.c: Likewise.
8749         * tree-ssa-address.c: Likewise.
8750         * tree-ssa-alias.h: Likewise.
8751         * tree-ssa-operands.h: Likewise.
8752         * tree.c: Likewise.
8753         * tree.h: Likewise.
8754         * varasm.c: Likewise.
8755         * varray.h: Likewise.
8756         * vec.h: Likewise.
8757         * coretypes.h: Do not define GTY macro if it is already defined.
8758         * doc/gty.texi: Update GTY documentation to new syntax.
8759         * gengtype-lex.l: Enforce attribute-like syntax for GTY
8760         annotations on structs.
8761         * gengtype-parse.c: Likewise.
8762
8763 2009-04-22  Mark Heffernan  <meheff@google.com>
8764
8765         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
8766
8767 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
8768
8769         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
8770         where appropriate.
8771
8772 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
8773
8774         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
8775         the same as a PLUS without a shift.  Increase the cost of a
8776         CONST_INT in MULT.
8777
8778 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8779
8780         * Makefile.in: Update dependencies.
8781         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
8782         * errors.h: Remove bogus comment about compatibility.
8783         (warning): Update declaration.
8784         * genautomata.c: Update all calls to warning.
8785         * gimple.c: Do not include errors.h. Include toplev.h.
8786         * tree-ssa-structalias.c: Do not include errors.h.
8787         * omega.c: Likewise.
8788         * tree-ssa-reassoc.c: Likewise.
8789         * config/spu/spu-c.c: Likewise.
8790         * config/spu/t-spu-elf: Update dependencies.
8791
8792 2009-04-22  Richard Guenther  <rguenther@suse.de>
8793
8794         PR tree-optimization/39824
8795         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
8796         make sure the types are compatible.
8797
8798 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8799
8800         PR c++/14875
8801         * c-common.c (c_parse_error): Take a token_flags parameter.
8802         Use token_type for the token type instead.
8803         Pass token_flags to cpp_type2name.
8804         * c-common.h (c_parse_error): Update declaration.
8805         * c-parser.c (c_parser_error): Pass 0 as token flags.
8806
8807 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
8808
8809         PR rtl-optimization/39580
8810         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
8811         
8812 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8813
8814         * function.c (expand_function_end): Do not emit a jump to the "naked"
8815         return label for fall-through returns.
8816         * except.c (sjlj_emit_function_exit): Always place the call to the
8817         unregister function at the location installed by expand_function_end.
8818
8819 2009-04-22  Richard Guenther  <rguenther@suse.de>
8820
8821         PR tree-optimization/39845
8822         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
8823         (gen_inbound_check): Likewise.
8824
8825 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
8826
8827         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
8828         padding for PPC.
8829         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
8830         * config/vxlib.c (__gthread_once): Add race guard for PPC.
8831
8832 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
8833
8834         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
8835         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
8836         shift counts to avoid out-of-bounds array accesses.
8837
8838 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
8839
8840         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
8841         (Pmode): Move above.
8842
8843 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
8844
8845         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
8846         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
8847         GET_CODE macro.  Use IN_RANGE macro where appropriate.
8848         * config/alpha/alpha.h: Ditto.
8849         * config/alpha/alpha.md: Ditto.
8850         * config/alpha/constraints.md: Ditto.
8851         * config/alpha/predicates.md: Ditto.
8852         
8853 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
8854
8855         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
8856         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8857         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8858         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8859         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8860         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8861         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8862         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8863         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8864         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8865         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8866         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8867         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8868         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8869         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8870         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8871         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8872         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8873         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8874         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8875         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8876         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8877         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8878         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8879         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8880         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8881         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
8882
8883 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
8884
8885         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
8886         references from comments.
8887         * cfgbuild.c: (count_basic_blocks): Delete.
8888         (find_basic_blocks_1): Delete.
8889         (find_basic_blocks): Delete.
8890         * except.c (finish_eh_generation): Make static.  Move comment from
8891         except.h here.  Remove find_basic_blocks references from comments.
8892         * except.h (finish_eh_generation): Delete.
8893         * basic-block.h (find_basic_blocks): Delete.
8894         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
8895
8896 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
8897
8898         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
8899         (sdbout_parms):  Likewise.
8900
8901 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
8902
8903         * config/sh/sh.c (prepare_cbranch_operands): Use
8904         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
8905         (expand_cbranchdi4): Likewise.
8906         (from_compare): Add cast to enum type.
8907         (expand_cbranchsi4): Use add_reg_note.
8908         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
8909         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
8910         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
8911         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
8912         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
8913         instead of CODE_FOR_nothing.
8914         (cbranchdi4): Likewise.  Fix the order of arguments for
8915         gen_rtx_fmt_ee.
8916         (push_fpscr): Use add_reg_note.
8917         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
8918         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
8919         
8920 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
8921
8922         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
8923         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
8924         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
8925         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
8926         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
8927         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
8928         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
8929         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
8930         config/alpha/x-vms, config/arc/t-arc,
8931         config/arm/README-interworking, config/arm/arm-c.c,
8932         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
8933         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
8934         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
8935         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
8936         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
8937         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
8938         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
8939         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
8940         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
8941         config/cris/t-elfmulti, config/crx/t-crx,
8942         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
8943         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
8944         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
8945         config/h8300/t-h8300, config/i386/athlon.md,
8946         config/i386/darwin-libgcc.10.4.ver,
8947         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
8948         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
8949         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
8950         config/i386/t-linux64, config/i386/t-nwld,
8951         config/i386/t-rtems-i386, config/i386/t-sol2-10,
8952         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
8953         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
8954         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
8955         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
8956         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
8957         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
8958         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
8959         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
8960         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
8961         config/m68k/t-uclinux, config/mcore/t-mcore,
8962         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
8963         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
8964         config/mips/crtn.asm, config/mips/irix-crti.asm,
8965         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
8966         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
8967         config/mips/mips-fixed.md, config/mips/sb1.md,
8968         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
8969         config/mips/t-iris6, config/mips/t-isa3264,
8970         config/mips/t-libgcc-mips16, config/mips/t-linux64,
8971         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
8972         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
8973         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
8974         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
8975         config/mn10300/t-linux, config/mn10300/t-mn10300,
8976         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
8977         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
8978         config/picochip/libgccExtras/clzsi2.asm,
8979         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
8980         config/rs6000/darwin-libgcc.10.4.ver,
8981         config/rs6000/darwin-libgcc.10.5.ver,
8982         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
8983         config/rs6000/t-aix43, config/rs6000/t-aix52,
8984         config/rs6000/t-darwin, config/rs6000/t-fprules,
8985         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
8986         config/rs6000/t-lynx, config/rs6000/t-netbsd,
8987         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
8988         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
8989         config/rs6000/t-rtems, config/rs6000/t-spe,
8990         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
8991         config/score/t-score-elf, config/sh/divcost-analysis,
8992         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
8993         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
8994         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
8995         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
8996         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
8997         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
8998         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
8999         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
9000         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
9001         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
9002         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
9003         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
9004         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
9005         limitx.h, version.c, xcoff.h: Add copyright and license notices.
9006         * config/h8300/genmova.sh: Include copyright and license notices
9007         in generated output.
9008         * config/h8300/mova.md: Regenerate.
9009         * doc/install.texi2html: Include word "Copyright" in copyright
9010         notice and use name "Free Software Foundation, Inc.".
9011         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
9012         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
9013         ChangeLog-2007, ChangeLog-2008: Correct dates.
9014
9015 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
9016
9017         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
9018         NE_EXPR operations as well.
9019         * c-parser.c (c_parser_condition): Do not set location information on
9020         the condition.
9021         (c_parser_conditional_expression): Likewise.
9022         (c_parser_binary_expression): Set location information on operators.
9023         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
9024         TRUTH_NOT_EXPR has been folded.
9025         * fold-const.c (fold_truth_not_expr): Copy location information from
9026         the incoming expression to the outgoing one.
9027         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
9028         recursive calls on the LHS of the operator but pass that of the
9029         operator to recursive calls on the RHS of the operator.  Set it
9030         on the COND_EXPR.
9031         (shortcut_cond_expr): Set the locus of the operator on the second
9032         COND_EXPR and that of the expression on the first in degenerate cases.
9033         Pass the locus of the expression to calls to shortcut_cond_r.
9034         Set the locus of the 'then' block on the associated jump, if any.
9035         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
9036         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
9037         expression to call to gimplify_boolean_expr.
9038
9039 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
9040
9041         * config.gcc: Add additional configuration for
9042         i686-w64-mingw* and x86_64-w64-mingw* triplet.
9043         * config/i386/mingw-w64.h: New mingw-w64 specific header.
9044         (CPP_SPEC): Redefine for allowing -municode option.
9045         (STARTFILE_SPEC): Likewise.
9046         * config/i386/t-mingw-w64: New.
9047         * config/i386/mingw-w64.opt: New.
9048         (municode): Add new target option.
9049         * doc/invoke.texi (municode): Add documentation for new option.
9050
9051 2009-04-21  Ian Lance Taylor  <iant@google.com>
9052
9053         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9054         Correct test for number of arguments.
9055         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
9056
9057 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
9058
9059         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
9060         argument of emit_library_call.
9061
9062 2009-04-21  Richard Guenther  <rguenther@suse.de>
9063
9064         PR middle-end/39829
9065         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
9066         inside VIEW_CONVERT_EXPRs.
9067
9068 2009-04-21  Martin Jambor  <mjambor@suse.cz>
9069
9070         * tree-switch-conversion.c (build_constructors): Split a long line.
9071         (constructor_contains_same_values_p): New function.
9072         (build_one_array): Create assigns of constants if possible, do not
9073         call mark_sym_for_renaming, call update_stmt.
9074         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
9075         make_rename_temp.  Do not call mark_symbols_for_renaming, call
9076         update_stmt.
9077         (gen_def_assigns): Do not call mark_symbols_for_renaming or
9078         find_new_referenced_vars, call update_stmt.
9079         (gen_inbound_check): Use create_tmp_var and create ssa names manually
9080         instead of calling make_rename_temp.  Do not call
9081         find_new_referenced_vars or mark_symbols_for_renaming, call
9082         update_stmt.
9083
9084 2009-04-21  Richard Guenther  <rguenther@suse.de>
9085
9086         PR tree-optimization/39827
9087         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
9088         (tree_ssa_phiprop): Pass the correct array size.
9089
9090 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
9091
9092         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
9093
9094 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9095
9096         PR 16202
9097         * c-typeck.c (lvalue_p): Move declaration ...
9098         * c-common.h (lvalue_p): ... to here.
9099         * c-common.c (candidate_equal_p): New.
9100         (add_tlist): Use it.
9101         (merge_tlist): Use it.
9102         (warn_for_collisions_1): Likewise.
9103         (warning_candidate_p): Accept more candidates.
9104         (verify_tree): A warning candidate can be an expression. Use
9105         candidate_equal_p.
9106
9107 2009-04-21  Ben Elliston  <bje@au.ibm.com>
9108
9109         PR target/5267
9110         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
9111         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
9112         options.  Remove -mcall-solaris documentation.
9113
9114 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9115
9116         PR c++/13358
9117         * doc/invoke.texi (-Wlong-long): Update description.
9118         * c-lex (interpret_integer): Only warn if there was no previous
9119         overflow and -Wlong-long is enabled.
9120         * c-decl.c (declspecs_add_type): Drop redundant flags.
9121         * c.opt (Wlong-long): Init to -1.
9122         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
9123         and front-end warn_long_long. Wlong-long only depends on other
9124         flags if it is uninitialized.
9125         * c-parser.c (disable_extension_diagnostics): warn_long_long is
9126         the same for CPP and FE.
9127         (restore_extension_diagnostics): Likewise.
9128
9129 2009-04-20  Ian Lance Taylor  <iant@google.com>
9130
9131         Fix enum conversions which are invalid in C++:
9132         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
9133         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
9134         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
9135         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
9136         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
9137         (dbxout_parms): Likewise.
9138         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
9139         (df_clear_flags): Likewise.
9140         * df-problems.c (df_rd_bb_local_compute_process_def): Change
9141         top_flag parameter to int.
9142         (df_chain_create_bb_process_use): Likewise.
9143         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
9144         Remove cast.
9145         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
9146         (df_ref_create_structure, df_def_record_1): Likewise.
9147         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
9148         (df_notes_rescan): Change 0 to VOIDmode in function call.
9149         (df_get_call_refs, df_insn_refs_collect): Likewise.
9150         (df_bb_regs_collect): Likewise.
9151         (df_entry_block_defs_collect): Likewise.
9152         (df_exit_block_uses_collect): Likewise.
9153         * df.h: Update declarations.
9154         * double-int.c (double_int_divmod): Add cast to enum type.
9155         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
9156         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
9157         (based_loc_descr): Likewise.
9158         (loc_descriptor_from_tree_1): Change first_op and second_op to
9159         enum dwarf_location_atom.  Add cast to enum type.
9160         * expmed.c (init_expmed): Change 0 to SET in function call.
9161         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
9162         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
9163         (do_store_flag): Likewise.
9164         * fixed-value.h (struct fixed_value): Change mode to enum
9165         machine_mode.
9166         * function.c (assign_parms): Change 0 to VOIDmode in function call.
9167         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
9168         function call.
9169         (insert_insn_decl, insert_decl, insert_state): Likewise.
9170         (automata_list_finish): Likewise.
9171         * genrecog.c (process_define_predicate): Add cast to enum type.
9172         * gensupport.c (init_predicate_table): Add cast to enum type.
9173         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
9174         function call.
9175         (gimple_build_call_1, gimple_build_label): Likewise.
9176         (gimple_build_goto, gimple_build_asm_1): Likewise.
9177         (gimple_build_switch_1, gimple_build_cdt): Likewise.
9178         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
9179         (enum fallback): Rename from enum fallback_t.
9180         (fallback_t): Typedef as int.
9181         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
9182         GSI_SAME_STMT in function call.
9183         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
9184         enum type.
9185         (setup_reg_class_relations): Likewise.
9186         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
9187         (setup_prohibited_class_mode_regs): Add cast to enum type.
9188         (setup_prohibited_mode_move_regs): Likewise.
9189         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
9190         (record_address_regs): Change i to enum reg_class.
9191         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
9192         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
9193         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
9194         (GET_MODE_2XWIDER_MODE): Likewise.
9195         (GET_CLASS_NARROWEST_MODE): Likewise.
9196         * omp-low.c (expand_omp_for): Add cast to enum type.
9197         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
9198         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
9199         * postreload.c (reload_cse_simplify_operands): Change rclass local
9200         to enum reg_class.
9201         * predict.c (combine_predictions_for_insn): Change best_predictor
9202         and predictor to enum br_predictor.
9203         (combine_predictions_for_bb): Likewise.
9204         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
9205         use SET_PREDICT_EXPR_OUTCOME.
9206         * real.c (real_arithmetic): Change icode to code in function call.
9207         * reginfo.c (init_move_cost): Add casts to enum type.
9208         (init_reg_sets_1, init_fake_stack_mems): Likewise.
9209         * regmove.c (regclass_compatible_p): Change class0 and class1 to
9210         enum reg_class.
9211         * reload.c (find_valid_class): Add casts to enum type.
9212         (push_reload): Change 0 to NO_REGS in function call.
9213         (find_reloads): Change this_alternative to array of enum
9214         reg_class.  Remove some now-unnecessary casts.
9215         (make_memloc): Change 0 to VOIDmode in function call.
9216         * reload1.c (reload): Change 0 to VOIDmode in function call.
9217         (eliminate_regs_1, elimination_effects): Likewise.
9218         (eliminate_regs_in_insn): Likewise.
9219         (emit_input_reload_insns): Add cast to enum type.
9220         (delete_output_reload): Change 0 to VOIDmode in function call.
9221         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
9222         to enum type in function call.
9223         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
9224         (SET_PREDICT_EXPR_OUTCOME): Define.
9225         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
9226         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
9227         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
9228         (dump_function): Likewise.
9229         * tree-dump.h: Update declarations.
9230         * tree-pass.h: Update declarations.
9231         * varasm.c (assemble_integer): Change mclass to enum mode_class.
9232         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
9233         enum type.
9234         (arm_rtx_costs_1): Correct parenthesization.
9235         (arm_rtx_costs): Add casts to enum type.
9236         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
9237         (vfp_emit_fstmd): Use add_rg_note.
9238         (emit_multi_reg_push, emit_sfm): Likewise.
9239         (thumb_set_frame_pointer): Likewise.
9240         (arm_expand_prologue): Likewise.
9241         (arm_regno_class): Change return type to enum reg_class.
9242         (thumb1_expand_prologue): Use add_reg_note.
9243         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
9244         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
9245         in function call.
9246         * config/arm/gentune.sh: Add cast to enum type.
9247         * config/arm/arm-tune.md: Rebuild.
9248         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
9249         (ix86_split_fp_branch, predict_jump): Likewise.
9250         (ix86_expand_multi_arg_builtin): Change sub_code from enum
9251         insn_code to enum rtx_code.
9252         (ix86_builtin_vectorized_function): Add cast to enum type.
9253         * config/i386/i386.md (truncdfsf2): Change slot to enum
9254         ix86_stack_slot.
9255         (truncxf<mode>2, isinf<mode>2): Likewise.
9256         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
9257         enum type.
9258         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
9259         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
9260         (insert_bundle_state): Change 1 to INSERT in function call.
9261         (ia64_add_bundle_selector_before): Likewise.
9262         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
9263         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
9264         (restore_stack_nonlocal): Likewise.
9265         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
9266         function call.
9267         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
9268         function call.
9269         (mips_rtx_costs): Likewise.
9270         (mips_override_options): Add casts to enum type.
9271         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
9272         in function call.
9273         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
9274         (store_reg, set_reg_plus_d): Likewise.
9275         (hppa_expand_prologue, hppa_profile_hook): Likewise.
9276         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9277         cast to enum type.
9278         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
9279         function call.
9280         (emit_unlikely_jump): Use add_reg_note.
9281         (rs6000_emit_allocate_stack): Likewise.
9282         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
9283         (output_toc): Change 1 to INSERT in function call.
9284         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
9285         (rs6000_initialize_trampoline): Likewise.
9286         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
9287         function call.
9288         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
9289         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
9290         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
9291         (save_gprs): Use add_reg_note.
9292         (s390_emit_prologue): Likewise.
9293         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
9294         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
9295         (sparc_fold_builtin): Add cast to enum type.
9296         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
9297         enum insn_code.
9298         (spu_expand_prologue): Use add_reg_note.
9299         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
9300
9301 2009-04-20  Ian Lance Taylor  <iant@google.com>
9302
9303         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
9304         (c_parser_postfix_expression_after_primary): Get VEC for list of
9305         arguments.  Get original types of arguments.  Call
9306         build_function_call_vec.
9307         (cached_expr_list_1, cached_expr_list_2): New static variables.
9308         (c_parser_expr_list): Change return type to VEC *.  Add
9309         p_orig_types parameter.  Change all callers.
9310         (c_parser_release_expr): New static function.
9311         (c_parser_vec_to_tree_list): New static function.
9312         * c-typeck.c (build_function_call): Rewrite to build a VEC and
9313         call build_function_call_vec.
9314         (build_function_call_vec): New function, based on old
9315         build_function_call.
9316         (convert_arguments): Remove nargs and argarray parameters.  Change
9317         values to a VEC.  Add origtypes parameter.
9318         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
9319         (convert_for_assignment): Add origtype parameter.  Change all
9320         callers.  If warn_cxx_compat, check for conversion to an enum
9321         type when calling a function.
9322         (store_init_value): Add origtype parameter.  Change all callers.
9323         (digest_init): Likewise.
9324         (struct init_node): Add origtype field.
9325         (add_pending_init): Add origtype parameter.  Change all callers.
9326         (output_init_element): Likewise.
9327         (output_pending_init_elements): Pass origtype from init_node to
9328         output_init_element.
9329         (process_init_element): Pass origtype from c_expr to
9330         output_init_element.
9331         (c_finish_return): Add origtype parameter.  Change all callers.
9332         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
9333         caller.
9334         (sync_resolve_params): Likewise.
9335         (sync_resolve_return): Change params to first_param.  Change caller.
9336         (resolve_overloaded_builtins): Change params to VEC *.  Change
9337         callers.  Save first parameter around call to build_function_call_vec.
9338         * c-decl.c (finish_decl): Add origtype parameter.  Change all
9339         callers.  Call build_function_call_vec rather than
9340         build_function_call for cleanup.
9341         * c-tree.h: Update declarations.
9342         * c-common.h: Update declarations.
9343         * stub-objc.c (objc_rewrite_function_call): Change parameter from
9344         params to first_param.
9345         * target.h (struct gcc_target): Change resolve_overloaded_builtin
9346         params parameter from tree to void *.
9347         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
9348         Change arglist parameter to have type void *, and to be a pointer
9349         to a VEC.
9350         * config/rs6000/rs6000-protos.h
9351         (altivec_resolve_overloaded_builtin): Update declaration.
9352         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
9353         fnargs parameter to have type void *, and to be a pointer to a
9354         VEC.  Call build_function_call_vec instead of
9355         build_function_call.
9356         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
9357
9358 2009-04-20  Joey Ye  <joey.ye@intel.com>
9359             Xuepeng Guo  <xuepeng.guo@intel.com>
9360             H.J. Lu  <hongjiu.lu@intel.com>
9361
9362         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
9363
9364         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
9365         (IX86_LEA_PRIORITY): Likewise.
9366         (distance_non_agu_define): New function.
9367         (distance_agu_use): Likewise.
9368         (ix86_lea_for_add_ok): Likewise.
9369         (ix86_dep_by_shift_count): Likewise.
9370
9371         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
9372         should split for LEA.
9373
9374         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
9375         function.
9376         (ix86_dep_by_shift_count): Likewise.
9377
9378 2009-04-20  Richard Guenther  <rguenther@suse.de>
9379
9380         * expr.c (handled_component_p): Move ...
9381         * tree.h (handled_component_p): ... here.
9382         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
9383         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
9384         and REALPART_EXPR to be in one group.
9385
9386 2009-04-20  Richard Guenther  <rguenther@suse.de>
9387
9388         * basic-block.h (get_all_dominated_blocks): Declare.
9389         * dominance.c (get_all_dominated_blocks): New function.
9390         * tree-cfg.c (get_all_dominated_blocks): Remove.
9391         (remove_edge_and_dominated_blocks): Adjust.
9392         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
9393         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
9394         instead of recursing.
9395
9396 2009-04-20  Doug Kwan  <dougkwan@google.com>
9397
9398         * cgraph.h (cgraph_node_ptr): New type for vector functions.
9399         (struct cgraph_node_set_def): New type.
9400         (cgraph_node_set) New type. Also declare vector functions.
9401         (struct cgraph_node_set_element_def): New type.
9402         (cgraph_node_set_element): Ditto.
9403         (cgraph_node_set_iterator): New iterator type.
9404         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
9405         cgraph_node_set_remove, dump_cgraph_node_set,
9406         debug_cgraph_node_set): New prototypes.
9407         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
9408         cgraph_node_set_size): New inlines.
9409         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
9410         including cgraph.h.
9411         (struct ipa_opt_pass): Add struct cgraph_node_set_def
9412         argument to function 'write_summary'.
9413         * ipa.c: Include ggc.h.
9414         (hash_cgraph_node_set_element,
9415         eq_cgraph_node_set_element, cgraph_node_set_new,
9416         cgraph_node_set_add, cgraph_node_set_remove,
9417         cgraph_node_set_find, dump_cgraph_node_set,
9418         debug_cgraph_node_set): New functions.
9419         * Makefile.in (ipa.o): Add dependency on GGC_H.
9420
9421 2009-04-20  Ira Rosen  <irar@il.ibm.com>
9422
9423         PR tree-optimization/39675
9424         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
9425         check of the return code of vect_schedule_slp. Check that
9426         stmt_vec_info still exists for the statement, before checking its
9427         vectorization type.
9428
9429 2009-04-20  Michael Matz  <matz@suse.de>
9430
9431         * Makefile.in (generated_files): Take out $(simple_generated_c).
9432
9433 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
9434
9435         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
9436         (UINTPTR_TYPE):  Likewise.
9437
9438 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9439
9440         PR c/37481
9441         * c-typeck.c (digest_init): Check for initializing an array with a
9442         string literal.
9443
9444 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9445
9446         PR c/19771
9447         * c-semantics.c (pop_stmt_list): Propagate
9448         STATEMENT_LIST_HAS_LABEL to parent statement list.
9449
9450 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
9451
9452         * config/mips/mips.h (mips_tune_attr): New macro.
9453         * config/mips/mips.md (cpu): Use it.
9454
9455 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
9456
9457         PR c/38243
9458         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
9459         declaring a tag.
9460
9461 2009-04-19  Diego Novillo  <dnovillo@google.com>
9462
9463         * toplev.c (compile_file): Move call to coverage_finish ...
9464         * cgraphunit.c (ipa_passes): ... here.
9465         Call cgraph_process_new_functions.
9466         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
9467         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
9468
9469 2009-04-19  Jan Hubicka  <jh@suse.cz>
9470
9471         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
9472         cfun.
9473         (dump_cgraph_node): Dump can throw external flag.
9474         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
9475
9476 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9477
9478         PR c/32061
9479         PR c++/36954
9480         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
9481         * common.opt (Wlogical-op): Move from here...
9482         * c.opt (Wlogical-op): ... to here.
9483         * c-typeck.c (parser_build_binary_op): Update call to
9484         warn_logical_operator.
9485         * c-opts.c (c_common_post_options): Enable warn_logical_op with
9486         extra_warnings.
9487         * c-common.c (warn_logical_op): Update.
9488         * c-common.h (warn_logical_op): Update declaration.
9489
9490 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
9491
9492         * tree.c (protected_set_expr_location): Fix formatting.
9493
9494 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9495
9496         PR c/27676
9497         * c-typeck.c (readonly_warning): new.
9498         (build_unary_op, build_modify_expr): Use readonly_warning for
9499         storing into something readonly but not const-qualified.
9500
9501 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9502
9503         PR c/22367
9504         * c-typeck.c (build_unary_op): Check for taking address of
9505         expression of type void.
9506
9507 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
9508
9509         PR c/35210
9510         * c-typeck.c (build_function_call): Check for calling a function
9511         with qualified void return types.  Call require_complete_type when
9512         generating a trap.
9513
9514 2009-04-18  Jan Hubicka  <jh@suse.cz>
9515
9516         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
9517         Set nothrow flag.
9518         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
9519         can_throw_external flag.
9520         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
9521         * ipa-pure-const.c (ignore_edge): New function.
9522         (propagate): Compute order for NOTHROW computation; set NOTHROWs
9523         only over can_throw_external edges.
9524         (local_pure_const): Add nothrow flag.
9525         * ipa-utils.c (searchc): Add ignore_edge callback.
9526         (ipa_utils_reduced_inorder): Add ignore_edge callback.
9527         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
9528         (set_nothrow_function_flags): Update cgraph.
9529         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
9530
9531 2009-04-18  Richard Guenther  <rguenther@suse.de>
9532
9533         PR middle-end/39804
9534         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
9535         (fold_stmt): ... this and ...
9536         (fold_stmt_inplace): ... this.
9537         (fold_stmt_1): Fold references in calls and asms.
9538         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
9539
9540 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9541
9542         * tree-vrp.c (ssa_name_nonzero_p): Remove.
9543         * tree.h: Remove the prototype for ssa_name_nonzero_p.
9544
9545 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9546
9547         * tree.c (function_args_count): Remove.
9548         * tree.h: Remove the prototype for function_args_count.
9549
9550 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9551
9552         * tree-iterator.c (expr_only): Remove.
9553         * tree.h: Remove the prototype for expr_only.
9554
9555 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9556
9557         * reginfo.c (cannot_change_mode_set_regs): Remove.
9558         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
9559
9560 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
9561
9562         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
9563         whether operands 0 and 1 overlaps.
9564
9565 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9566
9567         PR middle-end/36902
9568         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
9569         pointer. Use warning_at instead of warning.
9570         (search_for_addr_array): Likewise.
9571         (check_array_bounds): Likewise.
9572         (check_all_array_refs): Check that the incoming edge is not in the
9573         list of edges to be removed.
9574         (check_all_array_refs): Avoid the temporal pointer.
9575         (vrp_visit_cond_stmt): Fix typo.
9576         (simplify_switch_using_ranges): Handle the case where the switch
9577         index is an integer constant.
9578
9579 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
9580
9581         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
9582
9583 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
9584
9585         * doc/extend.texi, doc/invoke.texi: Fix typos.
9586
9587 2009-04-17  Cary Coutant  <ccoutant@google.com>
9588
9589         * tree-flow-inline.h (get_lineno): Fix inverted test.
9590
9591 2009-04-17  Diego Novillo  <dnovillo@google.com>
9592
9593         * tree-ssa-pre.c (create_expression_by_pieces): Remove
9594         assertion for AVAIL_OUT.
9595
9596 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
9597
9598         PR target/38627
9599         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
9600         * config/sh/linux-atomic.asm: Likewise.
9601
9602 2009-04-17  Diego Novillo  <dnovillo@google.com>
9603
9604         * except.c (debug_eh_tree): New.
9605         (struct eh_region, struct eh_status): Move ...
9606         * except.h: ... here.
9607         (add_type_for_runtime): Declare extern.
9608         (lookup_type_for_runtime): Likewise.
9609         (debug_eh_tree): Declare.
9610         * Makefile.in (GTFILES): List except.h before except.c
9611
9612 2009-04-17  Diego Novillo  <dnovillo@google.com>
9613
9614         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
9615         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
9616         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
9617         (find_vars_r): ... here.
9618         * tree-flow.h (find_referenced_vars_in): Declare.
9619         * tree-ssa-pre.c (create_expression_by_pieces): Assert
9620         that AVAIL_OUT exists for BLOCK.
9621         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
9622         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
9623         (tree-parloops.o): Likewise.
9624
9625 2009-04-17  Simon Baldwin  <simonb@google.com>
9626
9627         * toplev.c (default_tree_printer): Add handling for %E format.
9628
9629 2009-04-17  Diego Novillo  <dnovillo@google.com>
9630
9631         * tree-pretty-print.c (dump_generic_node): Add break after
9632         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
9633         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
9634         FUNCTION_TYPE together.  Call print_struct_decl when printing
9635         structures and TDF_SLIM is not given.
9636         (print_struct_decl): Fix logic for detecting recursion.
9637
9638 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
9639
9640         PR 31567
9641         * gcc.c (create_at_file): New.
9642         (compile_input_file_p): New.
9643         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
9644         * main.c (main): Update call to toplev_main.
9645         * toplev.c (toplev_main): Change signature. Call expandargv.
9646         * toplev.h (toplev_main): Change signature.
9647
9648 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9649
9650         * dwarf2out.c (field_byte_offset): Use the type size as the field size
9651         if the latter is not constant.
9652
9653 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
9654
9655         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
9656
9657 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
9658
9659         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
9660         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
9661
9662 2009-04-17  Richard Guenther  <rguenther@suse.de>
9663
9664         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9665         Handle component references view-converting an invariant address.
9666
9667 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
9668
9669         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
9670         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
9671         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
9672         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
9673         Use @deftypevr rather than @deftypevar.
9674
9675 2009-04-17  Richard Guenther  <rguenther@suse.de>
9676
9677         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
9678         (get_prop_source_stmt): Likewise.
9679         (can_propagate_from): Likewise.
9680
9681 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
9682
9683         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
9684         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
9685         (--with-multilib-list): Add default value.
9686         * configure: Regenerate.
9687         * Makefile.in (TM_ENDIAN_CONFIG): Define.
9688         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
9689         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
9690         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
9691         Don't add default cpu to multilib list unnecessarily, but do enable
9692         the relevant compiler option..
9693         Add support for --with-multilib-list=<blank> and
9694         --with-multilib-list=!<somelib> to supress unwanted multilibs.
9695         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
9696         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
9697         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
9698         TM_MULTILIB_CONFIG.
9699         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
9700         (MULTILIB_OSDIRNAMES): New variable.
9701         * config/sh/t-1e: Delete file.
9702         * config/sh/t-mlib-sh1: Delete file.
9703         * config/sh/t-mlib-sh2: Delete file.
9704         * config/sh/t-mlib-sh2a: Delete file.
9705         * config/sh/t-mlib-sh2a-nofpu: Delete file.
9706         * config/sh/t-mlib-sh2a-single: Delete file.
9707         * config/sh/t-mlib-sh2a-single-only: Delete file.
9708         * config/sh/t-mlib-sh2e: Delete file.
9709         * config/sh/t-mlib-sh3e: Delete file.
9710         * config/sh/t-mlib-sh4: Delete file.
9711         * config/sh/t-mlib-sh4-nofpu: Delete file.
9712         * config/sh/t-mlib-sh4-single: Delete file.
9713         * config/sh/t-mlib-sh4-single-only: Delete file.
9714         * config/sh/t-mlib-sh4a: Delete file.
9715         * config/sh/t-mlib-sh4a-nofpu: Delete file.
9716         * config/sh/t-mlib-sh4a-single: Delete file.
9717         * config/sh/t-mlib-sh4a-single-only: Delete file.
9718         * config/sh/t-mlib-sh4al: Delete file.
9719         * config/sh/t-mlib-sh5-32media: Delete file.
9720         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
9721         * config/sh/t-mlib-sh5-64media: Delete file.
9722         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
9723         * config/sh/t-mlib-sh5-compact: Delete file.
9724         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
9725         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
9726         * doc/install.texi (Options specification): Add
9727         --with-multilib-list and --with-endian.
9728
9729 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
9730
9731         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
9732         REVISION_c.
9733         (OBJS-common): Add plugin-version.o.
9734         (plugin-version.o): New.
9735         * gcc-plugin.h (plugin_gcc_version): New.
9736         (plugin_default_version_check): New.
9737         (plugin_init_func, plugin_init): Add version argument.
9738         * plugin-version.c: New.
9739         * plugin.c (str_plugin_gcc_version_name): New.
9740         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
9741         pass it to the init function.
9742         (plugin_default_version_check): New.
9743
9744 2009-04-17  Richard Guenther  <rguenther@suse.de>
9745
9746         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
9747         for decl-vs-decl disambiguation.
9748
9749 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
9750
9751         * config/s390/s390.h (s390_tune_attr): New macro definition.
9752         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
9753
9754 2009-04-17  Richard Guenther  <rguenther@suse.de>
9755
9756         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
9757         (fold_stmt_r): Likewise.
9758         (maybe_fold_reference): New function.
9759         (fold_gimple_assign): Handle cases fold_stmt_r did.
9760         (fold_stmt): Do not use fold_stmt_r.
9761         (fold_stmt_inplace): Likewise.
9762
9763 2009-04-17  Richard Guenther  <rguenther@suse.de>
9764
9765         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
9766         (record_equivalences_from_stmt): Remove useless checks and
9767         simplifications.
9768         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
9769         the type is already suitable.
9770
9771 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
9772
9773         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
9774
9775 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
9776
9777         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
9778         (CMPtype): Define as __gcc_CMPtype.
9779
9780 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
9781
9782         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
9783         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
9784
9785 2009-04-17  Richard Guenther  <rguenther@suse.de>
9786
9787         PR tree-optimization/39746
9788         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
9789         special-casing for builtins and static variable use/def.
9790         (call_may_clobber_ref_p_1): Likewise.
9791
9792 2009-04-16  Ian Lance Taylor  <iant@google.com>
9793
9794         * df.h: Include "timevar.h".
9795         (struct df_problem): Change tv_id field to timevar_id_t.
9796         * tree-pass.h: Include "timevar.h".
9797         (struct opt_pass): Change tv_id field to timevar_id_t.
9798         * timevar.h (timevar_id_t): Define TV_NONE.
9799         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
9800         TV_NONE rather than tv_id != 0.
9801         (execute_one_pass): Likewise.
9802         * Makefile.in (DF_H): Add $(TIMEVAR_H).
9803         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
9804         dependencies to $(TREE_PASS_H).
9805         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
9806         to TV_NONE.
9807         (pass_branch_target_load_optimize2): Likewise.
9808         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
9809         (pass_outof_cfg_layout_mode): Likewise.
9810         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
9811         (pass_rebuild_cgraph_edges): Likewise.
9812         (pass_remove_cgraph_callee_edges): Likewise.
9813         * df-core.c (pass_df_initialize_opt): Likewise.
9814         (pass_df_initialize_no_opt): Likewise.
9815         (pass_df_finish): Likewise.
9816         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
9817         * except.c (pass_set_nothrow_function_flags): Likewise.
9818         (pass_convert_to_eh_region_ranges): Likewise.
9819         * final.c (pass_compute_alignments): Likewise.
9820         * function.c (pass_instantiate_virtual_regs): Likewise.
9821         (pass_init_function): Likewise.
9822         (pass_leaf_regs): Likewise.
9823         (pass_match_asm_constraints): Likewise.
9824         * gimple-low.c (pass_lower_cf): Likewise.
9825         (pass_mark_used_blocks): Likewise.
9826         * init-regs.c (pass_initialize_regs): Likewise.
9827         * integrate.c (pass_initial_value_sets): Likewise.
9828         * ira.c (pass_ira): Likewise.
9829         * jump.c (pass_cleanup_barriers): Likewise.
9830         * omp-low.c (pass_expand_omp): Likewise.
9831         (pass_lower_omp): Likewise.
9832         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
9833         * recog.c (pass_split_all_insns): Likewise.
9834         (pass_split_after_reload): Likewise.
9835         (pass_split_before_regstack): Likewise.
9836         (pass_split_before_sched2): Likewise.
9837         (pass_split_for_shorten_branches): Likewise.
9838         * reginfo.c (pass_reginfo_init): Likewise.
9839         (pass_subregs_of_mode_init): Likewise.
9840         (pass_subregs_of_mode_finish): Likewise.
9841         * passes.c (pass_postreload): Likewise.
9842         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
9843         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
9844         (pass_warn_function_return): Likewise.
9845         (pass_warn_function_noreturn): Likewise.
9846         * tree-complex.c (pass_lower_complex): Likewise.
9847         (pass_lower_complex_O0): Likewise.
9848         * tree-if-conv.c (pass_if_conversion): Likewise.
9849         * tree-into-ssa.c (pass_build_ssa): Likewise.
9850         * tree-mudflap.c (pass_mudflap_1): Likewise.
9851         (pass_mudflap_2): Likewise.
9852         * tree-nomudflap.c (pass_mudflap_1): Likewise.
9853         (pass_mudflap_2): Likewise.
9854         * tree-nrv.c (pass_return_slot): Likewise.
9855         * tree-object-size.c (pass_object_sizes): Likewise.
9856         * tree-optimize.c (pass_all_optimizations): Likewise.
9857         (pass_early_local_passes): Likewise.
9858         (pass_all_early_optimizations): Likewise.
9859         (pass_cleanup_cfg): Likewise.
9860         (pass_cleanup_cfg_post_optimizing): Likewise.
9861         (pass_free_datastructures): Likewise.
9862         (pass_free_cfg_annotations): Likewise.
9863         (pass_fixup_cfg): Likewise.
9864         (pass_init_datastructures): Likewise.
9865         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
9866         (pass_late_warn_uninitialized): Likewise.
9867         (pass_update_address_taken): Likewise.
9868         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
9869         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
9870         (pass_cse_sincos): Likewise.
9871         (pass_convert_to_rsqrt): Likewise.
9872         * tree-ssa-structalias.c (pass_build_alias): Likewise.
9873         * tree-stdarg.c (pass_stdarg): Likewise.
9874         * tree-tailcall.c (pass_tail_recursion): Likewise.
9875         (pass_tail_calls): Likewise.
9876         * tree-vect-generic.c (pass_lower_vector): Likewise.
9877         (pass_lower_vector_ssa): Likewise.
9878         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
9879
9880 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
9881
9882         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
9883         XLR entry.
9884         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
9885         Handle -march=xlr.
9886         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
9887         logical and signext.
9888
9889 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
9890
9891         PR target/39767
9892         * config/sh/predicates.md (arith_operand): Check if the operand
9893         of TRUNCATE is a REG.
9894
9895 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9896
9897         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
9898         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
9899
9900 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9901
9902         * tree-iterator.c (tsi_split_statement_list_after,
9903         tsi_split_statement_list_before): Remove.
9904         * tree-iterator.h: Remove the prototypes for
9905         tsi_split_statement_list_after and tsi_split_statement_list_before.
9906
9907 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9908
9909         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
9910         * tree-ssa-propagate.h: Remove the prototype for
9911         stmt_makes_single_load.
9912
9913 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9914
9915         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
9916         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
9917
9918 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9919
9920         * tree-iterator.c (EXPR_LAST_BODY): Remove.
9921
9922 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9923
9924         * except.c (eh_region_outer_p): Remove.
9925         * except.h: Remove the prototype for eh_region_outer_p.
9926
9927 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
9928
9929         * function.c (current_function_assembler_name): Remove.
9930         * function.h: Remove the prototype for
9931         current_function_assembler_name.
9932
9933 2009-04-16  Ian Lance Taylor  <iant@google.com>
9934
9935         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
9936         (add_reg_note): Call alloc_reg_note.
9937         * rtl.h (alloc_reg_note): Declare.
9938         * combine.c (try_combine): Use alloc_reg_note.
9939         (recog_for_combine, move_deaths): Likewise.
9940         (distribute_notes): Use alloc_reg_note and add_reg_note.
9941         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
9942         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
9943         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
9944
9945 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
9946
9947         PR rtl-optimization/39762
9948         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
9949         ira_may_move_out_cost): Add comments about way of their usage.
9950         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
9951
9952         * ira-conflicts.c (process_regs_for_copy): Use function
9953         ira_get_register_move_cost instead of global
9954         ira_register_move_cost.
9955
9956         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
9957         color_pass, move_spill_restore, update_curr_costs): Ditto.
9958
9959         * ira-lives.c (process_single_reg_class_operands): Ditto.
9960
9961         * ira-emit.c (emit_move_list): Ditto.
9962
9963         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
9964         (record_reg_classes): Ditto.  Use functions
9965         ira_get_register_move_cost and ira_get_may_move_cost instead of
9966         global vars ira_register_move_cost, ira_may_move_out_cost and
9967         ira_may_move_in_cost.
9968         (record_address_regs): Don't call ira_init_register_move_cost.
9969         Use function ira_get_may_move_cost instead of global
9970         ira_may_move_in_cost.
9971         (process_bb_node_for_hard_reg_moves): Use function
9972         ira_get_register_move_cost instead of global ira_register_move_cost.
9973         (ira_costs): Don't call ira_init_register_move_cost.
9974
9975 2009-04-16  Richard Guenther  <rguenther@suse.de>
9976
9977         * tree-cfg.c (verify_gimple_assign_binary):
9978         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
9979         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
9980         (create_general_new_stmt): Note that this function is broken.
9981
9982 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
9983
9984         * common.opt (fhelp): Add Var(help_flag).
9985         * gcc-plugin.h (plugin_info): Add help.
9986         * plugin.c (plugin_name_args): Add help.
9987         (register_plugin_info): Set plugin->help.
9988         (print_help_one_plugin): New.
9989         (print_plugins_help): New.
9990         * plugin.h (print_plugins_help): New.
9991         * toplev.c (toplev_main): Call print_plugins_help if needed.
9992
9993 2009-04-16  Richard Guenther  <rguenther@suse.de>
9994
9995         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
9996         (gimple_ior_addresses_taken_1): New function.
9997         (gimple_ior_addresses_taken): Likewise.
9998         * gimple.h (struct gimple_statement_with_ops_base): Remove
9999         addresses_taken member.
10000         (gimple_ior_addresses_taken): Declare.
10001         (gimple_addresses_taken, gimple_addresses_taken_ptr,
10002         gimple_set_addresses_taken): Remove.
10003         * ipa-reference.c (mark_address): New function.
10004         (scan_stmt_for_static_refs): Use it for marking addresses taken.
10005         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
10006         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
10007         (gimple_add_to_addresses_taken): Remove.
10008         (get_tmr_operands): Call mark_address_taken.
10009         (get_asm_expr_operands): Likewise.
10010         (get_expr_operands): Likewise.
10011         (build_ssa_operands): Do not clear the addresses_taken bitmap.
10012         (free_stmt_operands): Do not free it.
10013         * tree-ssa.c (delete_tree_ssa): Likewise.
10014         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
10015
10016 2009-04-16  Richard Guenther  <rguenther@suse.de>
10017
10018         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
10019         (walk_stmt_load_store_ops): Likewise.
10020         * gimple.c (get_base_loadstore): New function.
10021         (walk_stmt_load_store_addr_ops): Likewise.
10022         (walk_stmt_load_store_ops): Likewise.
10023         * ipa-pure-const.c (check_op): Simplify.
10024         (check_load, check_store): New functions.
10025         (check_stmt): Use walk_stmt_load_store_ops.
10026         * ipa-reference.c (mark_load): Adjust signature.
10027         (mark_store): Likewise.
10028         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
10029
10030 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10031
10032         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
10033         (plugin_info): New.
10034         * opts.c (common_handle_option): Don't call print_version.
10035         * plugin.c (plugin_name_args): Add version.
10036         (register_plugin_info): New.
10037         (register_callback): Handle PLUGIN_INFO.
10038         (try_init_one_plugin): New.
10039         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
10040         if failed to init.
10041         (finalize_one_plugin): New.
10042         (finalize_plugins): New.
10043         (print_one_plugin): New.
10044         (print_plugins_versions): New.
10045         * plugin.h (print_plugins_versions): New.
10046         (finalize_plugins): New.
10047         * toplev.c (compile_file): Don't call initialize_plugins.
10048         (print_version): Call print_plugins_versions.
10049         (toplev_main): Call initialize_plugins. Print version if needed.
10050         Call finalize_plugins.
10051
10052 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
10053
10054         * common.opt (fversion): New.
10055         * gcc.c (print_version): New.
10056         (process_command): Don't print the version. Just set print_version.
10057         (main): Print version. Call subprocesses if print_version and
10058         verbose_flag are set.
10059         * opts.c (common_handle_option): Handle OPT_fversion.
10060
10061 2009-04-16  Richard Guenther  <rguenther@suse.de>
10062             Ira Rosen  <irar@il.ibm.com>
10063
10064         PR tree-optimization/39698
10065         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
10066         type of the reduction variable.  Only generate the def if
10067         it is needed.
10068
10069         * omp-low.c (expand_omp_for_generic): When converting to a pointer
10070         make sure to first convert to an integer of the same precision.
10071         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
10072         the type of the evolution correctly in computing the new
10073         induction variable base.
10074
10075 2009-04-16  Richard Guenther  <rguenther@suse.de>
10076
10077         PR middle-end/39625
10078         * tree-cfg.c (make_blocks): Split statements with to-be
10079         abnormal SSA names on the lhs.
10080
10081 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
10082
10083         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
10084         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
10085         * c-typeck.c (really_start_incremental_init): Likewise.
10086         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
10087         (TARGET_INITIALIZER): Remove it.
10088         * target.h (struct target): Remove vector_opaque_p.
10089         * tree.c (build_opaque_vector_type): New.
10090         * tree.h (TYPE_VECTOR_OPAQUE): New.
10091         (build_opaque_vector_type): Declare.
10092         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
10093         * config/rs6000/rs6000.c (build_opaque_vector_type,
10094         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
10095         (rs6000_init_builtins): Use build_opaque_vector_type for
10096         opaque_V4SI_type_node.
10097
10098 2009-04-15  Catherine Moore  <clm@codesourcery.com>
10099
10100         * debug.h (set_name):  Declare.
10101         * dwarf2out.c (dwarf2out_set_name): Declare.
10102         (dwarf2_debug_hooks): Add set_name.
10103         (find_AT_string): New.
10104         (add_AT_string): Call find_AT_string.
10105         (dwarf2out_set_name): New.
10106         * cp/decl.c (grokdeclarator): Call set_name.
10107         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
10108         * debug.c (do_nothing_debug_hooks):  Likewise.
10109         * dbxout.c (dbx_debug_hooks): Likewise.
10110         * sdbout.c (sdb_debug_hooks): Likewise.
10111
10112 2009-04-15  Michael Eager  <eager@eagercon.com>
10113
10114         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
10115         reg for single-precision FPU.
10116         * config/rs6000/rs6000.md (movsi_internal1): Only for
10117         !TARGET_SINGLE_FPU.
10118         (movsi_internal1_single): New. Add pattern to move SI values to/from
10119         single-precision FP regs.
10120
10121 2009-04-15  Richard Guenther  <rguenther@suse.de>
10122
10123         * omp-low.c (lower_rec_input_clauses): Build correct address
10124         expressions.
10125         (expand_omp_for_generic): Fix multiplication type.
10126         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
10127         (generate_memset_zero): Fix types.
10128         * tree-profile.c (prepare_instrumented_value): Correctly
10129         widen a pointer.
10130
10131 2009-04-15  Ian Lance Taylor  <iant@google.com>
10132
10133         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
10134         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
10135         for -Wall and for -Wc++-compat.
10136         (c_common_post_options): For C++, set warn_enum_compare if not
10137         already set.
10138         * c-tree.h (struct c_expr): Add field original_type.
10139         (build_external_ref): Update declaration.
10140         * c-parser.c (c_parser_braced_init): Set original_type.
10141         (c_parser_initelt): Likewise.
10142         (c_parser_expr_no_commas): Likewise.
10143         (c_parser_conditional_expression): Likewise.
10144         (c_parser_cast_expression): Likewise.
10145         (c_parser_unary_expression): Likewise.  Pull setting of
10146         original_code to top of function.
10147         (c_parser_sizeof_expression): Set original_type.
10148         (c_parser_alignof_expression): Likewise.
10149         (c_parser_postfix_expression): Likewise.  Pull setting of
10150         original_code to top of function.
10151         (c_parser_postfix_expression_after_paren_type): Set original_type.
10152         (c_parser_postfix_expression_after_primary): Likewise.
10153         (c_parser_expression): Likewise.
10154         * c-typeck.c (build_external_ref): Add type parameter.  Change all
10155         callers.
10156         (c_expr_sizeof_expr): Set original_type field.
10157         (parser_build_unary_op): Likewise.
10158         (parser_build_binary_op): Likewise.  Optionally warn about
10159         comparisons of enums of different types.
10160         (digest_init): Set original_type field.
10161         (really_start_incremental_init): Likewise.
10162         (push_init_level, pop_init_level): Likewise.
10163         * doc/invoke.texi (Warning Options): -Wenum-compare now
10164         supported in C.
10165
10166 2009-04-15  Richard Guenther  <rguenther@suse.de>
10167
10168         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
10169         out a necessary conversion.
10170         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
10171         names we didn't value number.
10172         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
10173
10174 2009-04-15  Richard Guenther  <rguenther@suse.de>
10175
10176         PR tree-optimization/39764
10177         * tree-ssa-ccp.c (get_value): Canonicalize value with
10178         canonicalize_float_value.
10179
10180 2009-04-15  Jan Hubicka  <jh@suse.cz>
10181
10182         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
10183         Wrong version of patch.
10184
10185 2009-04-15  Jan Hubicka  <jh@suse.cz>
10186
10187         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
10188
10189 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
10190
10191         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
10192         our distinct integral and vector types.
10193
10194 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
10195
10196         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
10197         * init.c (build_vtbl_address): Remove call to assemble_external.
10198
10199 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
10200
10201         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
10202         output for other floating point modes.
10203
10204 2009-04-14  Diego Novillo  <dnovillo@google.com>
10205
10206         * diagnostic.c (diagnostic_report_diagnostic): Do not
10207         warn about loaded plugins for DK_ERROR and DK_WARNING.
10208         * c-decl.c (declspecs_add_type): Move call to
10209         invoke_plugin_callbacks ...
10210         * c-parser.c (c_parser_declspecs): ... here.
10211         * plugin.c (dump_active_plugins): Tidy output.
10212
10213 2009-04-14  Diego Novillo  <dnovillo@google.com>
10214             Le-Chun Wu  <lcwu@google.com>
10215
10216         * configure.ac: Add --enable-plugin support.
10217         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
10218         * Makefile.in (PLUGIN_H): Define.
10219         Export ENABLE_PLUGIN and GMPINC to site.exp.
10220         Add PLUGINLIBS to link command.
10221         Add/modify dependencies for plugin.o and files including plugin.h.
10222         (plugin.o): New.
10223         * config.in: Regenerate.
10224
10225         * opts.c (common_handle_option): Handle OPT_fplugin_ and
10226         OPT_fplugin_arg_.
10227
10228 2009-04-14  Le-Chun Wu  <lcwu@google.com>
10229
10230         * tree-pass.h (register_one_dump_file): Add a prototype for
10231         register_one_dump_file.
10232         * toplev.c (compile_file): Call initialize_plugins.
10233         (do_compile): Call invoke_plugin_callbacks.
10234         (toplev_main): Call invoke_plugin_callbacks.
10235         * common.opt: Add -fplugin= and -fplugin-arg-.
10236         * gcc-plugin.h: New public header file for plugins to include.
10237         * plugin.c: New source file.
10238         * plugin.h: New internal header file.
10239         * passes.c (register_one_dump_file): Make it external.
10240
10241         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
10242
10243 2009-04-14  Diego Novillo  <dnovillo@google.com>
10244
10245         * doc/plugins.texi: New.
10246         * doc/gccint.texi: Add reference to Plugins chapter.
10247         * doc/invoke.texi: Document -fplugin and -fplugin-arg
10248         * diagnostic.c (diagnostic_report_diagnostic): Warn about
10249         loaded plugins, if any.
10250         * timevar.def (TV_PLUGIN_INIT): Define.
10251         (TV_PLUGIN_RUN): Define.
10252         * plugin.c: Include timevar.h
10253         (plugins_active_p): New.
10254         (dump_active_plugins): New.
10255         (debug_active_plugins): New.
10256
10257 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
10258
10259         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
10260         library paths.
10261         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
10262
10263 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
10264
10265         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
10266         the same as a minus without a shift.
10267
10268 2009-04-14  Nick Clifton  <nickc@redhat.com>
10269
10270         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
10271         comparisons with small integers will always produce a short
10272         branch.
10273
10274 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
10275
10276         Merge:
10277         2008-12-19  Diego Novillo  <dnovillo@google.com>
10278
10279         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
10280
10281 2009-04-14  Richard Guenther  <rguenther@suse.de>
10282
10283         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
10284         verification.
10285         (verify_gimple_assign_binary): Likewise.  Handle shifts and
10286         rotates correctly.
10287         (verify_gimple_phi): Print the mismatched argument position.
10288         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10289         Fix types.
10290         (vect_update_init_of_dr): Likewise.
10291         * matrix-reorg.c (transform_access_sites): Do what the
10292         comment suggests.
10293         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
10294
10295 2009-04-13  Michael Eager  <eager@eagercon.com>
10296
10297         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
10298         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
10299         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
10300         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
10301         remove duplicate config
10302
10303 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
10304
10305         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
10306         file_name:line_number type locator of the call site.
10307
10308 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
10309
10310         * genautomata.c: Put blank after comma.
10311         (automaton_decls): New.
10312         (struct unit_usage): Add comments to member next.
10313         (store_alt_unit_usage): Keep the list ordered.
10314         (unit_present_on_list_p, equal_alternatives_p): New.
10315         (check_regexp_units_distribution): Check units distribution
10316         correctness correctly.
10317         (main): Don't write automata if error is found.  Return correct
10318         exit code.
10319
10320         * config/m68k/cf.md (cfv4_ds): Remove.
10321         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
10322         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
10323
10324         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
10325         power4-load-ext, power4-store, power4-store-update,
10326         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
10327         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
10328         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
10329         power4-sqrt, power4-isync): Modify reservation to make correct
10330         unit distribution to automata.
10331
10332         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
10333         power5-store-update, power5-two, power5-three, power5-lmul,
10334         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
10335
10336 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
10337
10338         * except.c (pass_set_nothrow_function_flags): Set name and add
10339         TODO_dump_func.
10340         (set_nothrow_function_flags): Mention in the dump file when
10341         changing a function to nothrow.
10342
10343 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
10344
10345         PR/39066
10346         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
10347         instead of unsigned long.
10348
10349 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10350
10351         * config/arm/arm.c (return_used_this_function): Remove.
10352         (arm_output_function_prologue): Remove use of
10353         return_used_this_function.
10354         (output_return_instruction): Replace use of
10355         return_used_this_function
10356         by cfun->machine->return_used_this_function.
10357         (arm_output_epilogue): Likewise.
10358         (arm_output_function_epilogue): Likewise.
10359         (thumb_unexpanded_epilogue): Likewise.
10360         * config/arm/arm.h (struct machine_function):
10361         New member return_used_this_function.
10362
10363 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
10364
10365         * doc/install.texi: Correct description of default directory for
10366         --with-gxx-include-dir.
10367
10368 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
10369
10370         * fold-const.c (build_range_check): Properly deal with enumeral and
10371         boolean base types.
10372
10373 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
10374
10375         * doc/invoke.texi (max_gcse_passes): Remove documentation.
10376         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
10377         * params.h (MAX_GCSE_PASSES): Remove.
10378         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
10379         in sequence.  Remove ability to run multiple passes.
10380         (bypass_jumps): Report run as third CPROP pass.
10381
10382 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
10383
10384         PR middle-end/39651
10385         * except.c (can_throw_external): Look at each insn in a SEQUENCE
10386         when deciding whether the whole SEQUENCE can throw.
10387
10388 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
10389
10390         PR target/39740
10391         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
10392         offseted label references.
10393
10394 2009-04-11  Jan Hubicka  <jh@suse.cz>
10395
10396         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
10397
10398 2009-04-11  Richard Guenther  <rguenther@suse.de>
10399
10400         PR middle-end/39732
10401         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
10402         return variables as TREE_ADDRESSABLE.
10403
10404 2009-04-11  Richard Guenther  <rguenther@suse.de>
10405
10406         PR tree-optimization/39713
10407         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
10408         reference trees have SSA_NAME operands.
10409
10410 2009-04-11  Richard Guenther  <rguenther@suse.de>
10411
10412         PR c/39712
10413         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
10414         address expressions.
10415
10416 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10417
10418         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
10419         match changes in Cygwin 1.7
10420         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
10421         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
10422
10423 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
10424
10425         PR tree-optimization/39701
10426         * doc/invoke.texi (Optimization Options): Document change in
10427         meaning and initialization of -fdelete-null-pointer-checks.
10428
10429 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
10430
10431         PR middle-end/39701
10432         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
10433
10434         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
10435         here.
10436
10437         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
10438
10439 2009-04-10  Chao-ying Fu  <fu@mips.com>
10440
10441         * doc/tm.texi (Instruction Output): Document
10442         TARGET_ASM_FINAL_POSTSCAN_INSN.
10443         * target.h (final_postscan_insn): New field in asm_out.
10444         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10445         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
10446         * final.c (final_scan_insn): Call
10447         targetm.asm_out.final_postscan_insn after outputting
10448         an asm macro and a normal instruction.
10449
10450         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
10451         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
10452         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
10453         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
10454         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
10455
10456 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
10457
10458         PR middle-end/39701
10459         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
10460         variables as non-NULL even with -fdelete-null-pointer-checks.
10461
10462 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
10463
10464         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
10465
10466 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
10467
10468         PR target/39678
10469         * config/i386/i386.c (classify_argument): Handle SCmode with
10470         (bit_offset % 64) != 0.
10471
10472 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
10473
10474         * doc/invoke.texi (Optimize Options): Add cross-reference to
10475         -Q --help=optimizers examples.
10476
10477 2009-04-10  Ben Elliston  <bje@au.ibm.com>
10478
10479         PR target/36800
10480         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
10481         regalign for the reg == fpr and TDmode case.
10482
10483 2009-04-09  David Ayers  <ayers@fsfe.org>
10484
10485         PR objc/29200
10486         * objc/objc-act.c (warn_with_method): Remove helper function.
10487         (check_duplicates): Call warning and inform directly.
10488         (really_start_method): Likewise.
10489
10490 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
10491
10492         * expmed.c (expand_divmod): Always use a comparison for a division
10493         by a large unsigned integer.
10494
10495         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
10496         for things others than variables or functions as nonzero.
10497
10498 2009-04-09  Nick Clifton  <nickc@redhat.com>
10499
10500         * unwind-compat.c: Change copyright header to refer to version
10501         3 of the GNU General Public License with version 3.1 of the
10502         GCC Runtime Library Exception and to point readers at the
10503         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
10504         * config/alpha/crtfastmath.c: Likewise.
10505         * config/alpha/linux-unwind.h: Likewise.
10506         * config/alpha/qrnnd.asm: Likewise.
10507         * config/alpha/vms-crt0-64.c: Likewise.
10508         * config/alpha/vms-crt0.c: Likewise.
10509         * config/alpha/vms-dwarf2.asm: Likewise.
10510         * config/alpha/vms-dwarf2eh.asm: Likewise.
10511         * config/alpha/vms-psxcrt0-64.c: Likewise.
10512         * config/alpha/vms-psxcrt0.c: Likewise.
10513         * config/alpha/vms_tramp.asm: Likewise.
10514         * config/arc/initfini.c: Likewise.
10515         * config/arc/lib1funcs.asm: Likewise.
10516         * config/arm/bpabi-v6m.S: Likewise.
10517         * config/arm/bpabi.S: Likewise.
10518         * config/arm/bpabi.c: Likewise.
10519         * config/arm/crti.asm: Likewise.
10520         * config/arm/crtn.asm: Likewise.
10521         * config/arm/ieee754-df.S: Likewise.
10522         * config/arm/ieee754-sf.S: Likewise.
10523         * config/arm/lib1funcs.asm: Likewise.
10524         * config/arm/libunwind.S: Likewise.
10525         * config/arm/linux-atomic.c: Likewise.
10526         * config/arm/mmintrin.h: Likewise.
10527         * config/arm/pr-support.c: Likewise.
10528         * config/arm/unaligned-funcs.c: Likewise.
10529         * config/arm/unwind-arm.c: Likewise.
10530         * config/arm/unwind-arm.h: Likewise.
10531         * config/avr/libgcc.S: Likewise.
10532         * config/bfin/crti.s: Likewise.
10533         * config/bfin/crtlibid.s: Likewise.
10534         * config/bfin/crtn.s: Likewise.
10535         * config/bfin/lib1funcs.asm: Likewise.
10536         * config/bfin/linux-unwind.h: Likewise.
10537         * config/cris/arit.c: Likewise.
10538         * config/cris/cris_abi_symbol.c: Likewise.
10539         * config/darwin-64.c: Likewise.
10540         * config/darwin-crt2.c: Likewise.
10541         * config/darwin-crt3.c: Likewise.
10542         * config/darwin.h: Likewise.
10543         * config/dbxelf.h: Likewise.
10544         * config/dfp-bit.c: Likewise.
10545         * config/dfp-bit.h: Likewise.
10546         * config/elfos.h: Likewise.
10547         * config/fixed-bit.c: Likewise.
10548         * config/fixed-bit.h: Likewise.
10549         * config/fp-bit.c: Likewise.
10550         * config/fp-bit.h: Likewise.
10551         * config/fr30/crti.asm: Likewise.
10552         * config/fr30/crtn.asm: Likewise.
10553         * config/fr30/lib1funcs.asm: Likewise.
10554         * config/freebsd-spec.h: Likewise.
10555         * config/frv/cmovd.c: Likewise.
10556         * config/frv/cmovh.c: Likewise.
10557         * config/frv/cmovw.c: Likewise.
10558         * config/frv/frvbegin.c: Likewise.
10559         * config/frv/frvend.c: Likewise.
10560         * config/frv/lib1funcs.asm: Likewise.
10561         * config/glibc-stdint.h: Likewise.
10562         * config/h8300/clzhi2.c: Likewise.
10563         * config/h8300/crti.asm: Likewise.
10564         * config/h8300/crtn.asm: Likewise.
10565         * config/h8300/ctzhi2.c: Likewise.
10566         * config/h8300/fixunssfsi.c: Likewise.
10567         * config/h8300/lib1funcs.asm: Likewise.
10568         * config/h8300/parityhi2.c: Likewise.
10569         * config/h8300/popcounthi2.c: Likewise.
10570         * config/i386/ammintrin.h: Likewise.
10571         * config/i386/att.h: Likewise.
10572         * config/i386/avxintrin.h: Likewise.
10573         * config/i386/biarch64.h: Likewise.
10574         * config/i386/bmmintrin.h: Likewise.
10575         * config/i386/cpuid.h: Likewise.
10576         * config/i386/cross-stdarg.h: Likewise.
10577         * config/i386/crtfastmath.c: Likewise.
10578         * config/i386/crtprec.c: Likewise.
10579         * config/i386/cygming-crtbegin.c: Likewise.
10580         * config/i386/cygming-crtend.c: Likewise.
10581         * config/i386/cygwin.asm: Likewise.
10582         * config/i386/emmintrin.h: Likewise.
10583         * config/i386/gmm_malloc.h: Likewise.
10584         * config/i386/gthr-win32.c: Likewise.
10585         * config/i386/i386.h: Likewise.
10586         * config/i386/immintrin.h: Likewise.
10587         * config/i386/linux-unwind.h: Likewise.
10588         * config/i386/linux64.h: Likewise.
10589         * config/i386/mm3dnow.h: Likewise.
10590         * config/i386/mmintrin-common.h: Likewise.
10591         * config/i386/mmintrin.h: Likewise.
10592         * config/i386/nmmintrin.h: Likewise.
10593         * config/i386/pmm_malloc.h: Likewise.
10594         * config/i386/pmmintrin.h: Likewise.
10595         * config/i386/smmintrin.h: Likewise.
10596         * config/i386/sol2-c1.asm: Likewise.
10597         * config/i386/sol2-ci.asm: Likewise.
10598         * config/i386/sol2-cn.asm: Likewise.
10599         * config/i386/sol2-gc1.asm: Likewise.
10600         * config/i386/tmmintrin.h: Likewise.
10601         * config/i386/unix.h: Likewise.
10602         * config/i386/w32-unwind.h: Likewise.
10603         * config/i386/wmmintrin.h: Likewise.
10604         * config/i386/x86-64.h: Likewise.
10605         * config/i386/x86intrin.h: Likewise.
10606         * config/i386/xmmintrin.h: Likewise.
10607         * config/ia64/crtbegin.asm: Likewise.
10608         * config/ia64/crtend.asm: Likewise.
10609         * config/ia64/crtfastmath.c: Likewise.
10610         * config/ia64/crti.asm: Likewise.
10611         * config/ia64/crtn.asm: Likewise.
10612         * config/ia64/fde-glibc.c: Likewise.
10613         * config/ia64/lib1funcs.asm: Likewise.
10614         * config/ia64/linux-unwind.h: Likewise.
10615         * config/ia64/quadlib.c: Likewise.
10616         * config/ia64/unwind-ia64.c: Likewise.
10617         * config/linux.h: Likewise.
10618         * config/m32c/m32c-lib1.S: Likewise.
10619         * config/m32c/m32c-lib2-trapv.c: Likewise.
10620         * config/m32c/m32c-lib2.c: Likewise.
10621         * config/m32r/initfini.c: Likewise.
10622         * config/m68hc11/larith.asm: Likewise.
10623         * config/m68hc11/m68hc11-crt0.S: Likewise.
10624         * config/m68k/cf.md: Likewise.
10625         * config/m68k/crti.s: Likewise.
10626         * config/m68k/crtn.s: Likewise.
10627         * config/m68k/lb1sf68.asm: Likewise.
10628         * config/m68k/linux-unwind.h: Likewise.
10629         * config/mcore/crti.asm: Likewise.
10630         * config/mcore/crtn.asm: Likewise.
10631         * config/mcore/lib1.asm: Likewise.
10632         * config/mips/linux-unwind.h: Likewise.
10633         * config/mips/loongson.h: Likewise.
10634         * config/mips/mips16.S: Likewise.
10635         * config/mmix/crti.asm: Likewise.
10636         * config/mmix/crtn.asm: Likewise.
10637         * config/pa/fptr.c: Likewise.
10638         * config/pa/hpux-unwind.h: Likewise.
10639         * config/pa/lib2funcs.asm: Likewise.
10640         * config/pa/linux-atomic.c: Likewise.
10641         * config/pa/linux-unwind.h: Likewise.
10642         * config/pa/milli64.S: Likewise.
10643         * config/pa/quadlib.c: Likewise.
10644         * config/pa/stublib.c: Likewise.
10645         * config/picochip/libgccExtras/adddi3.asm: Likewise.
10646         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
10647         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
10648         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
10649         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
10650         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
10651         * config/picochip/libgccExtras/divmod15.asm: Likewise.
10652         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
10653         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
10654         * config/picochip/libgccExtras/longjmp.asm: Likewise.
10655         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
10656         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
10657         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
10658         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
10659         * config/picochip/libgccExtras/setjmp.asm: Likewise.
10660         * config/picochip/libgccExtras/subdi3.asm: Likewise.
10661         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
10662         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
10663         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
10664         * config/rs6000/750cl.h: Likewise.
10665         * config/rs6000/altivec.h: Likewise.
10666         * config/rs6000/biarch64.h: Likewise.
10667         * config/rs6000/crtresfpr.asm: Likewise.
10668         * config/rs6000/crtresgpr.asm: Likewise.
10669         * config/rs6000/crtresxfpr.asm: Likewise.
10670         * config/rs6000/crtresxgpr.asm: Likewise.
10671         * config/rs6000/crtsavfpr.asm: Likewise.
10672         * config/rs6000/crtsavgpr.asm: Likewise.
10673         * config/rs6000/darwin-asm.h: Likewise.
10674         * config/rs6000/darwin-fallback.c: Likewise.
10675         * config/rs6000/darwin-fpsave.asm: Likewise.
10676         * config/rs6000/darwin-ldouble.c: Likewise.
10677         * config/rs6000/darwin-tramp.asm: Likewise.
10678         * config/rs6000/darwin-unwind.h: Likewise.
10679         * config/rs6000/darwin-vecsave.asm: Likewise.
10680         * config/rs6000/darwin-world.asm: Likewise.
10681         * config/rs6000/e500crtres32gpr.asm: Likewise.
10682         * config/rs6000/e500crtres64gpr.asm: Likewise.
10683         * config/rs6000/e500crtres64gprctr.asm: Likewise.
10684         * config/rs6000/e500crtrest32gpr.asm: Likewise.
10685         * config/rs6000/e500crtrest64gpr.asm: Likewise.
10686         * config/rs6000/e500crtresx32gpr.asm: Likewise.
10687         * config/rs6000/e500crtresx64gpr.asm: Likewise.
10688         * config/rs6000/e500crtsav32gpr.asm: Likewise.
10689         * config/rs6000/e500crtsav64gpr.asm: Likewise.
10690         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
10691         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
10692         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
10693         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
10694         * config/rs6000/eabi-ci.asm: Likewise.
10695         * config/rs6000/eabi-cn.asm: Likewise.
10696         * config/rs6000/eabi.asm: Likewise.
10697         * config/rs6000/linux-unwind.h: Likewise.
10698         * config/rs6000/linux64.h: Likewise.
10699         * config/rs6000/paired.h: Likewise.
10700         * config/rs6000/paired.md: Likewise.
10701         * config/rs6000/ppc64-fp.c: Likewise.
10702         * config/rs6000/ppu_intrinsics.h: Likewise.
10703         * config/rs6000/rs6000.h: Likewise.
10704         * config/rs6000/si2vmx.h: Likewise.
10705         * config/rs6000/sol-ci.asm: Likewise.
10706         * config/rs6000/sol-cn.asm: Likewise.
10707         * config/rs6000/spe.h: Likewise.
10708         * config/rs6000/spu2vmx.h: Likewise.
10709         * config/rs6000/sysv4.h: Likewise.
10710         * config/rs6000/tramp.asm: Likewise.
10711         * config/rs6000/vec_types.h: Likewise.
10712         * config/s390/linux-unwind.h: Likewise.
10713         * config/s390/tpf-unwind.h: Likewise.
10714         * config/score/crti.asm: Likewise.
10715         * config/score/crtn.asm: Likewise.
10716         * config/sh/crt1.asm: Likewise.
10717         * config/sh/crti.asm: Likewise.
10718         * config/sh/crtn.asm: Likewise.
10719         * config/sh/divtab-sh4-300.c: Likewise.
10720         * config/sh/divtab-sh4.c: Likewise.
10721         * config/sh/divtab.c: Likewise.
10722         * config/sh/lib1funcs-4-300.asm: Likewise.
10723         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
10724         * config/sh/lib1funcs.asm: Likewise.
10725         * config/sh/lib1funcs.h: Likewise.
10726         * config/sh/linux-atomic.asm: Likewise.
10727         * config/sh/linux-unwind.h: Likewise.
10728         * config/sh/shmedia.h: Likewise.
10729         * config/sh/sshmedia.h: Likewise.
10730         * config/sh/ushmedia.h: Likewise.
10731         * config/sparc/crtfastmath.c: Likewise.
10732         * config/sparc/linux-unwind.h: Likewise.
10733         * config/sparc/sol2-c1.asm: Likewise.
10734         * config/sparc/sol2-ci.asm: Likewise.
10735         * config/sparc/sol2-cn.asm: Likewise.
10736         * config/spu/divmodti4.c: Likewise.
10737         * config/spu/divv2df3.c: Likewise.
10738         * config/spu/float_disf.c: Likewise.
10739         * config/spu/float_unsdidf.c: Likewise.
10740         * config/spu/float_unsdisf.c: Likewise.
10741         * config/spu/float_unssidf.c: Likewise.
10742         * config/spu/mfc_multi_tag_release.c: Likewise.
10743         * config/spu/mfc_multi_tag_reserve.c: Likewise.
10744         * config/spu/mfc_tag_release.c: Likewise.
10745         * config/spu/mfc_tag_reserve.c: Likewise.
10746         * config/spu/mfc_tag_table.c: Likewise.
10747         * config/spu/multi3.c: Likewise.
10748         * config/spu/spu_internals.h: Likewise.
10749         * config/spu/spu_intrinsics.h: Likewise.
10750         * config/spu/spu_mfcio.h: Likewise.
10751         * config/spu/vec_types.h: Likewise.
10752         * config/spu/vmx2spu.h: Likewise.
10753         * config/stormy16/stormy16-lib2.c: Likewise.
10754         * config/svr4.h: Likewise.
10755         * config/sync.c: Likewise.
10756         * config/v850/lib1funcs.asm: Likewise.
10757         * config/vxlib-tls.c: Likewise.
10758         * config/vxlib.c: Likewise.
10759         * config/vxworks-dummy.h: Likewise.
10760         * config/xtensa/crti.asm: Likewise.
10761         * config/xtensa/crtn.asm: Likewise.
10762         * config/xtensa/ieee754-df.S: Likewise.
10763         * config/xtensa/ieee754-sf.S: Likewise.
10764         * config/xtensa/lib1funcs.asm: Likewise.
10765         * config/xtensa/lib2funcs.S: Likewise.
10766         * config/xtensa/linux-unwind.h: Likewise.
10767         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
10768         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
10769         * coretypes.h: Likewise.
10770         * crtstuff.c: Likewise.
10771         * defaults.h: Likewise.
10772         * dwarf2.h: Likewise.
10773         * emutls.c: Likewise.
10774         * gbl-ctors.h: Likewise.
10775         * gcov-io.h: Likewise.
10776         * ginclude/float.h: Likewise.
10777         * ginclude/iso646.h: Likewise.
10778         * ginclude/stdarg.h: Likewise.
10779         * ginclude/stdbool.h: Likewise.
10780         * ginclude/stddef.h: Likewise.
10781         * ginclude/stdfix.h: Likewise.
10782         * ginclude/stdint-gcc.h: Likewise.
10783         * ginclude/tgmath.h: Likewise.
10784         * gthr-aix.h: Likewise.
10785         * gthr-dce.h: Likewise.
10786         * gthr-gnat.c: Likewise.
10787         * gthr-gnat.h: Likewise.
10788         * gthr-lynx.h: Likewise.
10789         * gthr-mipssde.h: Likewise.
10790         * gthr-nks.h: Likewise.
10791         * gthr-posix.c: Likewise.
10792         * gthr-posix.h: Likewise.
10793         * gthr-posix95.h: Likewise.
10794         * gthr-rtems.h: Likewise.
10795         * gthr-single.h: Likewise.
10796         * gthr-solaris.h: Likewise.
10797         * gthr-tpf.h: Likewise.
10798         * gthr-vxworks.h: Likewise.
10799         * gthr-win32.h: Likewise.
10800         * gthr.h: Likewise.
10801         * libgcc2.c: Likewise.
10802         * libgcc2.h: Likewise.
10803         * libgcov.c: Likewise.
10804         * tsystem.h: Likewise.
10805         * typeclass.h: Likewise.
10806         * unwind-c.c: Likewise.
10807         * unwind-compat.h: Likewise.
10808         * unwind-dw2-fde-compat.c: Likewise.
10809         * unwind-dw2-fde-darwin.c: Likewise.
10810         * unwind-dw2-fde-glibc.c: Likewise.
10811         * unwind-dw2-fde.c: Likewise.
10812         * unwind-dw2-fde.h: Likewise.
10813         * unwind-dw2.c: Likewise.
10814         * unwind-dw2.h: Likewise.
10815         * unwind-generic.h: Likewise.
10816         * unwind-pe.h: Likewise.
10817         * unwind-sjlj.c: Likewise.
10818         * unwind.inc: Likewise.
10819         * config/arm/neon-gen.ml: Change generated copyright header to
10820         refer to version 3 of the GNU General Public License with
10821         version 3.1 of the GCC Runtime Library Exception and to point
10822         readers at the COPYING3 and COPYING3.RUNTIME files and the
10823         FSF's license web page.
10824         * config/arm/arm_neon.h: Regenerate.
10825
10826 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
10827
10828         * config/cris/cris.md: Change copyright header to refer to version
10829         3 of the GNU General Public License.
10830         * doc/install.texi2html: Change copyright header to refer to version
10831         3 of the GNU General Public License and to point readers at the
10832         COPYING3 file and the FSF's license web page.
10833         * config/vax/linux.h: Likewise.
10834
10835 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
10836
10837         * config/i386/i386.md (cmpcc): New.
10838         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
10839         (sync_compare_and_swap_cc*): Delete.
10840
10841         * config/s390/s390.c (s390_compare_emitted): Remove.
10842         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
10843         s390_compare_emitted used to be handled.  Assert that modes match.
10844         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
10845         refer to sync_compare_and_swap_ccsi.
10846         * config/s390/s390.h (s390_compare_emitted): Remove.
10847         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
10848         instead of s390_compare_emitted.
10849         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
10850         instead of s390_compare_emitted.
10851         * config/s390/s390.md (cmpcc): New.
10852         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
10853         CC_REGNUM, do not pretend it's set.
10854         (sync_compare_and_swap_cc*): Delete.
10855         * config/s390/predicates.md (cc_reg_operand): New.
10856
10857         * expr.c (sync_compare_and_swap_cc): Delete.
10858         * optabs.h (sync_compare_and_swap_cc): Delete.
10859         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
10860         is being used with can_compare_p.
10861         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
10862         (find_cc_set): New.
10863         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
10864         look for a MODE_CC set instead.  Use emit_store_flag.
10865         (expand_compare_and_swap_loop): Likewise, with some additional
10866         complication to avoid a force_reg when useless.  Use
10867         emit_cmp_and_jump_insns.
10868         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
10869         * doc/md.texi (sync_compare_and_swap_cc): Merge with
10870         sync_compare_and_swap documentation.
10871
10872 2009-04-09  Jan Hubicka  <jh@suse.cz>
10873
10874         * except.c (find_prev_try): Break out from ....
10875         (duplicate_eh_regions): ... here; properly update prev_try pointers
10876         when duplication part of tree.
10877         (dump_eh_tree): Improve dumping.
10878         (verify_eh_region): New.
10879         (verify_eh_tree): Use it.
10880
10881 2009-04-06  Richard Guenther  <rguenther@suse.de>
10882
10883         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
10884         &ARRAY addresses by adjusting their types and prepending
10885         a conversion.
10886         * tree-cfg.c (verify_gimple_assign_single): Verify that
10887         addresses are correct.
10888
10889 2009-04-09  Richard Guenther  <rguenther@suse.de>
10890
10891         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
10892         indices into an array reference if possible.
10893         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
10894         Fold POINTER_PLUS_EXPR statements with invariant address.
10895
10896 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
10897
10898         PR target/39634
10899         * config.gcc (powerpc64-*-linux*): Always build biarch.
10900
10901 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
10902
10903         PR c/39613
10904         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10905         it and pedwarn if this results in an INTEGER_CST.
10906
10907 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10908
10909         * doc/install.texi: Update minimum GMP version.  Remove obsolete
10910         text in MPFR section.
10911
10912 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
10913
10914         * dwarf2out.c (class_scope_p): New static inline.
10915         (class_or_namespace_scope_p): Use it.
10916         (gen_variable_die): Use DW_TAG_member tag for static data member
10917         declarations instead of DW_TAG_variable.
10918
10919         PR middle-end/39573
10920         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
10921         variables.
10922
10923 2009-04-08  Richard Guenther  <rguenther@suse.de>
10924
10925         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
10926         valueize random data.
10927
10928 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
10929
10930         * config.gcc (aix tm_file):  Add aix-stdint.h.
10931         (aix tm clause use_gcc_stdint):  Set to wrap.
10932         * config/rs6000/aix-stdint.h:  New file.
10933
10934 2009-04-08  Richard Guenther  <rguenther@suse.de>
10935
10936         PR middle-end/36291
10937         * tree-dfa.c (add_referenced_var): Do not recurse into
10938         global initializers.
10939         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
10940         exposed variables.
10941         (fold_const_aggregate_ref): Likewise.
10942
10943 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
10944
10945         * recog.c (ordered_comparison_operator): New.
10946         * gensupport.c (std_preds): Add it.
10947         * doc/md.texi (Machine-Independent Predicates): Document it.
10948
10949 2009-04-08  Jan Hubicka  <jh@suse.cz>
10950
10951         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
10952         * function.h (rtl_eh): Remove exception_handler_label_map.
10953         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
10954         remove_exception_handler_label, for_each_eh_label_1): Remove.
10955         (rtl_remove_unreachable_regions): Remove.
10956         (convert_from_eh_region_ranges): Do not remove unreachable regions.
10957         (find_exception_handler_labels): Don't build the hashtable.
10958         (maybe_remove_eh_handler): Remove.
10959         (for_each_eh_label): Rewrite to walk the tree.
10960         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
10961         * except.h (maybe_remove_eh_handler): Remove.
10962         * passes.c (init_optimization_passes): Schedule second EH cleanup
10963         before out-of-ssa.
10964         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
10965         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
10966
10967 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
10968
10969         * genoutput.c (validate_optab_operands): New.
10970         (gen_insn, gen_expand): Call it.
10971
10972         * genflags.c (gen_insn): Detect misused iterators.
10973         (main): Pass line_no to gen_insn, exit with status 1 on error.
10974
10975         * genextract.c (line_no): Make global.
10976         (VEC_safe_set_locstr): Change assertion to error message.
10977         (main): Exit with status 1 on error.
10978
10979 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
10980
10981         PR c/39614
10982         PR c/39673
10983         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
10984         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
10985         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
10986         * c-convert.c (convert): Do not call fold on results of conversion
10987         functions when the result is a C_MAYBE_CONST_EXPR.
10988         * c-parser.c (c_parser_postfix_expression): Do not fold condition
10989         of __builtin_choose_expr.
10990         * c-typeck.c (remove_c_maybe_const_expr): New.
10991         (build_unary_op, build_conditional_expr, build_compound_expr,
10992         build_binary_op, c_objc_common_truthvalue_conversion): Call
10993         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
10994         integer operands.
10995
10996 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
10997
10998         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
10999         CODE to produce a new one. Add a prototype to use fold_convert_const
11000
11001 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
11002
11003         PR bootstrap/39660
11004         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
11005         mix declarations and code.
11006
11007 2009-04-08  Ben Elliston  <bje@au.ibm.com>
11008
11009         * gcc.c: Replace `CC' with `GCC' throughout.
11010
11011 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
11012
11013         * doc/invoke.texi: Document Atom support.
11014
11015 2009-04-07  Jason Merrill  <jason@redhat.com>
11016
11017         PR c++/25185
11018         * c-common.h, c-common.c: Add flag_pretty_templates.
11019         * c-opts.c (c_common_handle_option): Set it.
11020         * c.opt: Add -fno-pretty-templates.
11021         * doc/invoke.texi (C++ Dialect Options): Likewise.
11022
11023 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
11024
11025         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
11026         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
11027         (ia64_expand_builtin): Likewise.
11028
11029 2009-04-07  Martin Jambor  <mjambor@suse.cz>
11030
11031         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
11032         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
11033         ADDR_EXPRS are include too.
11034
11035 2009-04-07  Richard Guenther  <rguenther@suse.de>
11036
11037         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
11038         decls are only used if passes as parameters or if they are
11039         local statics and the call is not to a builtin.
11040         (call_may_clobber_ref_p_1): Likewise.
11041
11042 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11043
11044         * expr.c (do_store_flag): Remove last argument.  Simplify code
11045         to avoid duplication of tests already done by can_compare_p.
11046         (expand_expr_real_1): Adjust caller.
11047
11048 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11049
11050         * optabs.c (can_compare_p): Test the predicate of a
11051         cbranch and cstore pattern.
11052
11053 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11054
11055         * expr.c (convert_move): Use emit_store_flag instead of
11056         "emulating" it.
11057
11058 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
11059
11060         * config/i386/i386.c (ix86_compare_emitted): Remove.
11061         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
11062         ix86_compare_op0 like ix86_compare_emitted used to be handled.
11063         * config/i386/i386.h (ix86_compare_emitted): Remove.
11064         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
11065         instead of ix86_compare_emitted.
11066         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
11067
11068 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
11069
11070         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
11071         Add t-sysroot-suffix to tmake_file.
11072         * config/print-sysroot-suffix.sh: New file.
11073         * config/t-sysroot-suffix: New file.
11074
11075 2009-04-07  Ben Elliston  <bje@au.ibm.com>
11076
11077         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
11078         as the latter produces a warning when the target does not support
11079         infinity.
11080
11081 2009-04-07  Ben Elliston  <bje@au.ibm.com>
11082
11083         * dfp.c: Replace type punning assignments with memcpy throughout.
11084         * Makefile.in (dfp.o-warn): Remove.
11085
11086 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
11087
11088         PR target/39634
11089         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
11090         Include soft-fp/t-softfp after rs6000/t-linux64.
11091
11092 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
11093
11094         * stor-layout.c (set_sizetype): Use the full precision of their
11095         machine mode for bitsize types.
11096
11097 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
11098
11099         * config/i386/i386.md: Revert 2 accidental checkins.
11100
11101 2009-04-06  Joey Ye  <joey.ye@intel.com>
11102             Xuepeng Guo  <xuepeng.guo@intel.com>
11103             H.J. Lu  <hongjiu.lu@intel.com>
11104
11105         Atom pipeline model, tuning and insn selection.
11106         * config.gcc (atom): Add atom config options and target.
11107
11108         * config/i386/atom.md: New.
11109
11110         * config/i386/i386.c (atom_cost): New cost.
11111         (m_ATOM): New macro flag.
11112         (initial_ix86_tune_features): Set m_ATOM.
11113         (x86_accumulate_outgoing_args): Likewise.
11114         (x86_arch_always_fancy_math_387): Likewise.
11115         (processor_target): Add Atom cost.
11116         (cpu_names): Add Atom cpu name.
11117         (override_options): Set Atom ISA.
11118         (ix86_issue_rate): New case PROCESSOR_ATOM.
11119         (ix86_adjust_cost): Likewise.
11120
11121         * config/i386/i386.h (TARGET_ATOM): New target macro.
11122         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
11123         (TARGET_OPT_AGU): New target option.
11124         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
11125         (processor_type): Add PROCESSOR_ATOM.
11126
11127         * config/i386/i386.md (cpu): Add new value "atom".
11128         (use_carry, movu): New attr.
11129         (atom.md): Include atom.md.
11130         (adddi3_carry_rex64): Set attr "use_carry".
11131         (addqi3_carry): Likewise.
11132         (addhi3_carry): Likewise.
11133         (addsi3_carry): Likewise.
11134         (*addsi3_carry_zext): Likewise.
11135         (subdi3_carry_rex64): Likewise.
11136         (subqi3_carry): Likewise.
11137         (subhi3_carry): Likewise.
11138         (subsi3_carry): Likewise.
11139         (x86_movdicc_0_m1_rex64): Likewise.
11140         (*x86_movdicc_0_m1_se): Likewise.
11141         (x86_movsicc_0_m1): Likewise.
11142         (*x86_movsicc_0_m1_se): Likewise.
11143         (*adddi_1_rex64): Emit add insn as much as possible.
11144         (*addsi_1): Likewise.
11145         (return_internal): Set atom_unit.
11146         (return_internal_long): Likewise.
11147         (return_pop_internal): Likewise.
11148         (*rcpsf2_sse): Set atom_sse_attr attr.
11149         (*qrt<mode>2_sse): Likewise.
11150         (*prefetch_sse): Likewise.
11151
11152         * config/i386/i386-c.c (ix86_target_macros_internal): New case
11153         PROCESSOR_ATOM.
11154         (ix86_target_macros_internal): Likewise.
11155
11156         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
11157         (*prefetch_sse_rex): Likewise.
11158         (sse_rcpv4sf2): Likewise.
11159         (sse_vmrcpv4sf2): Likewise.
11160         (sse_sqrtv4sf2): Likewise.
11161         (<sse>_vmsqrt<mode>2): Likewise.
11162         (sse_ldmxcsr): Likewise.
11163         (sse_stmxcsr): Likewise.
11164         (*sse_sfence): Likewise.
11165         (sse2_clflush): Likewise.
11166         (*sse2_mfence): Likewise.
11167         (*sse2_lfence): Likewise.
11168         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
11169         (<sse>_movup<ssemodesuffixf2c>): Likewise.
11170         (avx_movdqu<avxmodesuffix>): Likewise.
11171         (avx_lddqu<avxmodesuffix>): Likewise.
11172         (sse2_movntv2di): Change attr "type" to "ssemov".
11173         (sse2_movntsi): Likewise.
11174         (rsqrtv8sf2): Change attr "type" to "sseadd".
11175         (sse3_addsubv2df3): Set attr "atom_unit".
11176         (sse3_h<plusminus_insn>v4sf3): Likewise.
11177         (*sse2_pmaddwd): Likewise.
11178         (*vec_extractv2di_1_rex64): Likewise.
11179         (*vec_extractv2di_1_avx): Likewise.
11180         (sse2_psadbw): Likewise.
11181         (ssse3_phaddwv8hi3): Likewise.
11182         (ssse3_phaddwv4hi3): Likewise.
11183         (ssse3_phadddv4si3): Likewise.
11184         (ssse3_phadddv2si3): Likewise.
11185         (ssse3_phaddswv8hi3): Likewise.
11186         (ssse3_phaddswv4hi3): Likewise.
11187         (ssse3_phsubwv8hi3): Likewise.
11188         (ssse3_phsubwv4hi3): Likewise.
11189         (ssse3_phsubdv4si3): Likewise.
11190         (ssse3_phsubdv2si3): Likewise.
11191         (ssse3_phsubswv8hi3): Likewise.
11192         (ssse3_phsubswv4hi3): Likewise.
11193         (ssse3_pmaddubsw128): Likewise.
11194         (sse3_pmaddubsw: Likewise.
11195         (ssse3_palignrti): Likewise.
11196         (ssse3_palignrdi): Likewise.
11197
11198 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
11199
11200         * doc/install.texi (Specific): Fix two cross-references to MinGW.
11201
11202 2009-04-06  Richard Guenther  <rguenther@suse.de>
11203
11204         PR tree-optimization/28868
11205         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
11206         of which PHI results we inserted.
11207         (insert_into_preds_of_block): Record inserted PHIs.
11208         (eliminate): Eliminate redundant PHI nodes.
11209         (init_pre): Init inserted_phi_names.
11210
11211 2009-04-06  Richard Guenther  <rguenther@suse.de>
11212
11213         PR tree-optimization/39643
11214         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
11215         IMAGPART_EXPRs of complex constants.
11216         (execute_fold_all_builtins): If we folded a call queue
11217         TODO_update_address_taken.
11218
11219 2009-04-06  Jan Hubicka  <jh@suse.cz>
11220
11221         PR middle-end/39659
11222         * except.c (remove_unreachable_regions): Propagate may_contain_throw
11223         flag.
11224
11225 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
11226
11227         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
11228         delay slot.
11229         (ic_invalidate_array): Likewise.
11230
11231 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
11232
11233         * calls.c (emit_library_call_value_1): Fix a problem with parameter
11234         alignment for library calls.
11235
11236 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
11237
11238         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
11239         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
11240         * config/i386/mingw-stdint.h:  New file.
11241
11242 2009-04-05  Richard Guenther  <rguenther@suse.de>
11243
11244         PR tree-optimization/39648
11245         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
11246         our &A vs. &A[0] IL deficiencies.
11247
11248 2009-04-04  Jan Hubicka  <jh@suse.cz>
11249
11250         * except.c (sjlj_find_directly_reachable_regions): Be ready for
11251         removed toplevel regions.
11252         (sjlj_mark_call_sites): Likewise.
11253
11254 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
11255
11256         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
11257         (cygwin tm clause use_gcc_stdint):  Set to wrap.
11258         * config/i386/cygwin-stdint.h:  New file.
11259
11260 2009-04-04  Richard Guenther  <rguenther@suse.de>
11261
11262         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
11263         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
11264         single-argument PHIs if we are in loop-closed SSA form.
11265         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
11266         for the pre-condition.
11267         (slpeel_tree_peel_loop_to_edge): Likewise.
11268         (vect_build_loop_niters): Take an optional sequence to append stmts.
11269         (vect_generate_tmps_on_preheader): Likewise.
11270         (vect_do_peeling_for_loop_bound): Take extra guards for the
11271         pre-condition.
11272         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
11273         the cost model check.
11274         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
11275         guards if we are going to peel.  Do not apply versioning in that case.
11276         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
11277         (vect_do_peeling_for_loop_bound): Likewise.
11278         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
11279         loop bound only record extra pre-conditions, do not apply loop
11280         versioning.
11281
11282 2009-04-04  Richard Guenther  <rguenther@suse.de>
11283
11284         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
11285         renaming code.
11286
11287 2009-04-04  Jan Hubicka  <jh@suse.cz>
11288
11289         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
11290         last_basic_block for size of bb->index indexed array.
11291         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
11292         compute_out, link_btr_uses, build_btr_def_use_webs,
11293         build_btr_def_use_webs, migrate_btr_defs): Likewise.
11294
11295 2009-04-04  Jan Hubicka  <jh@suse.cz>
11296
11297         * except.c (remove_eh_handler_and_replace): Break out from ...
11298         (remove_eh_handler): ... here.
11299         (bring_to_root): New function.
11300         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
11301         handled ones, bring others to root of tree.
11302
11303 2009-04-04  Jan Hubicka  <jh@suse.cz>
11304
11305         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
11306         (all_phis_safe_to_merge): New function.
11307         (update_info): New structure.
11308         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
11309         (cleanup_empty_eh): Update SSA if possible.
11310
11311 2009-04-04  Richard Guenther  <rguenther@suse.de>
11312
11313         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
11314         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
11315         (append_vuse): Likewise.
11316
11317 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
11318
11319         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
11320         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
11321         instead of REG_UNSAVED for DW_CFA_undefined.
11322         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
11323         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
11324         outermost frame.
11325
11326 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
11327
11328         PR target/39501
11329         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
11330         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
11331         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
11332
11333 2009-04-04  Richard Guenther  <rguenther@suse.de>
11334
11335         PR tree-optimization/8781
11336         PR tree-optimization/37892
11337         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
11338         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
11339         (valueize_refs): Call it for *& valueizations.
11340         (shared_reference_ops_from_ref): Rename to ...
11341         (valueize_shared_reference_ops_from_ref): ... this and valueize.
11342         (shared_reference_ops_from_call): Rename to ...
11343         (valueize_shared_reference_ops_from_call): ... this and valueize.
11344         (vn_reference_lookup): Update.
11345         (visit_reference_op_call): Likewise.
11346         * tree-ssa-pre.c (phi_translate_1): Fold *&.
11347         (eliminate): Value-replace the call address in call statements.
11348
11349 2009-04-04  Richard Guenther  <rguenther@suse.de>
11350
11351         PR tree-optimization/39636
11352         * tree-ssa-forwprop.c
11353         (forward_propagate_addr_into_variable_array_index): Check for
11354         GIMPLE_ASSIGN before accessing the rhs code.
11355
11356 2009-04-03  Jason Merrill  <jason@redhat.com>
11357
11358         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
11359
11360 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
11361
11362         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
11363         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
11364         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
11365         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
11366         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
11367         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
11368         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
11369         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
11370         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
11371         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
11372         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
11373         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
11374         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
11375         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
11376         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
11377         Use fr_reg_or_fp01_operand instead of fr_register_operand
11378
11379         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
11380         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
11381         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
11382
11383 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
11384
11385         PR rtl-optimization/39607
11386         PR rtl-optimization/39631
11387
11388         Revert:
11389
11390         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
11391         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
11392         instead of DF_LR_OUT.
11393         * ira-lives.c (process_bb_node_lives): Ditto.
11394         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
11395         instead of DF_LR_{OUT,IN}.
11396         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
11397         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
11398
11399 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
11400
11401         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
11402         (execute_lower_omp): Always run but take the short way out if -fopenmp
11403         is not given.
11404         (gate_lower_omp): Remove, forcing the pass manager to always run the
11405         pass and always set PROP_gimple_lomp.
11406         (pass_lower_omp): Remove gate function.
11407         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
11408         PROP_trees.  Instead, require it.
11409         * ipa-cp.c (pass_ipa_cp): Likewise.
11410         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
11411         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
11412         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
11413         and PROP_gimple_leh.
11414
11415 2009-04-03  Richard Guenther  <rguenther@suse.de>
11416
11417         PR middle-end/13146
11418         PR tree-optimization/23940
11419         PR tree-optimization/33237
11420         PR middle-end/33974
11421         PR middle-end/34093
11422         PR tree-optimization/36201
11423         PR tree-optimization/36230
11424         PR tree-optimization/38049
11425         PR tree-optimization/38207
11426         PR tree-optimization/38230
11427         PR tree-optimization/38301
11428         PR tree-optimization/38585
11429         PR middle-end/38895
11430         PR tree-optimization/38985
11431         PR tree-optimization/39299
11432         * tree-ssa-structalias.h: Remove.
11433         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
11434         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
11435         (struct vuse_element_d): Remove.
11436         (struct vuse_vec_d): Likewise.
11437         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
11438         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
11439         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
11440         VUSE_ELEMENT_VAR): Likewise.
11441         (struct voptype_d): Likewise.
11442         (NUM_VOP_FREE_BUCKETS): Likewise.
11443         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
11444         (struct stmt_operands_d): Remove.
11445         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
11446         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
11447         VDEF_NUM, VDEF_VECT): Likewise.
11448         (copy_virtual_operands): Remove.
11449         (operand_build_cmp): Likewise.
11450         (create_ssa_artificial_load_stmt): Likewise.
11451         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
11452         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
11453         vuse_index and mayuse_index members.  Pack and move done and iter_type
11454         members to the front.
11455         (SSA_OP_VMAYUSE): Remove.
11456         (SSA_OP_VIRTUAL_USES): Adjust.
11457         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
11458         (unlink_stmt_vdef): Declare.
11459         (add_to_addressable_set): Remove.
11460         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
11461         (vrp_visit_stmt): Likewise.
11462         * doc/tree-ssa.texi (Alias analysis): Update.
11463         * doc/invoke.texi (max-aliased-vops): Remove docs.
11464         (avg-aliased-vops): Likewise.
11465         * tree-into-ssa.c (syms_to_rename): Remove.
11466         (need_to_update_vops_p): Likewise.
11467         (need_to_initialize_update_ssa_p): Rename to ...
11468         (update_ssa_initialized_fn): ... this.  Track function we are
11469         initialized for.
11470         (symbol_marked_for_renaming): Simplify.
11471         (add_new_name_mapping): Do not set need_to_update_vops_p.
11472         (dump_currdefs): Use SYMS_TO_RENAME.
11473         (rewrite_update_stmt): Always walk all uses/defs.
11474         (dump_update_ssa): Adjust.
11475         (init_update_ssa): Take function argument.  Track what we are
11476         initialized for.
11477         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
11478         (create_new_def_for): Initialize for cfun, assert we are initialized
11479         for cfun.
11480         (mark_sym_for_renaming): Simplify.
11481         (mark_set_for_renaming): Do not initialize update-ssa.
11482         (need_ssa_update_p): Simplify.  Take function argument.
11483         (name_mappings_registered_p): Assert we ask for the correct function.
11484         (name_registered_for_update_p): Likewise.
11485         (ssa_names_to_replace): Likewise.
11486         (release_ssa_name_after_update_ssa): Likewise.
11487         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
11488         (dump_decl_set): Do not print a newline.
11489         (debug_decl_set): Do it here.
11490         (dump_update_ssa): And here.
11491         * tree-ssa-loop-im.c (move_computations): Adjust.
11492         (movement_possibility): Likewise.
11493         (determine_max_movement): Likewise.
11494         (gather_mem_refs_stmt): Likewise.
11495         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
11496         or NAME_MEMORY_TAG.
11497         * tree-complex.c (update_all_vops): Remove.
11498         (expand_complex_move): Adjust.
11499         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
11500         Simplify test for memory referencing statement.  Exclude
11501         non-invariant ADDR_EXPRs.
11502         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
11503         * tree-loop-distribution.c (generate_memset_zero): Adjust.
11504         (rdg_flag_uses): Likewise.
11505         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
11506         related code.
11507         (tree_optimize_tail_calls_1): Also split the
11508         edge from the entry block if we have degenerate PHI nodes in
11509         the first basic block.
11510         * tree.c (init_ttree): Remove memory-tag related code.
11511         (tree_code_size): Likewise.
11512         (tree_node_structure): Likewise.
11513         (build7_stat): Re-write to be build6_stat.
11514         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
11515         (SSA_VAR_P): Adjust.
11516         (struct tree_memory_tag): Remove.
11517         (struct tree_memory_partition_tag): Likewise.
11518         (union tree_node): Adjust.
11519         (build7): Re-write to be build6.
11520         * tree-pass.h (pass_reset_cc_flags): Remove.
11521         (TODO_update_address_taken): New flag.
11522         (pass_simple_dse): Remove.
11523         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
11524         * params.h (MAX_ALIASED_VOPS): Remove.
11525         (AVG_ALIASED_VOPS): Likewise.
11526         * omp-low.c (expand_omp_taskreg): Update SSA form.
11527         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
11528         aliases the lhs in a copy stmt.
11529         * tree-ssa-dse.c (struct address_walk_data): Remove.
11530         (memory_ssa_name_same): Likewise.
11531         (memory_address_same): Likewise.
11532         (get_kill_of_stmt_lhs): Likewise.
11533         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
11534         unused stores.  Look through PHI nodes into post-dominated regions.
11535         (dse_optimize_stmt): Simplify.  Properly remove stores.
11536         (tree_ssa_dse): Compute dominators.
11537         (execute_simple_dse): Remove.
11538         (pass_simple_dse): Likewise.
11539         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
11540         gimple_loaded_syms and gimple_stored_syms computation.
11541         * toplev.c (dump_memory_report): Dump alias and pta stats.
11542         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
11543         (vn_reference_eq): Likewise.
11544         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
11545         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
11546         valueize_vuses): Remove.
11547         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
11548         (get_def_ref_stmt_vuse): ... this.
11549         (vn_reference_lookup_2): New function.
11550         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
11551         walking equivalent vuses.  Simplify.
11552         (vn_reference_lookup): Likewise.
11553         (vn_reference_insert): Likewise.
11554         (vn_reference_insert_pieces): Likewise.
11555         (visit_reference_op_call): Simplify.
11556         (visit_reference_op_load): Likewise.
11557         (visit_reference_op_store): Likewise.
11558         (init_scc_vn): Remove shared_lookup_vuses initialization.
11559         (free_scc_vn): Remove shared_lookup_vuses freeing.
11560         (sort_vuses, sort_vuses_heap): Remove.
11561         (get_ref_from_reference_ops): Export.
11562         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
11563         vector with single vuse pointer.
11564         (vn_reference_lookup_pieces, vn_reference_lookup,
11565         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
11566         (shared_vuses_from_stmt): Remove.
11567         (get_ref_from_reference_ops): Declare.
11568         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
11569         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
11570         memory-tag related code.
11571         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
11572         (likely_value): Add comment, skip static-chain of call statements.
11573         (surely_varying_stmt_p): Adjust.
11574         (gimplify_and_update_call_from_tree): Likewise.
11575         (execute_fold_all_builtins): Do not rebuild alias info.
11576         (gimplify_and_update_call_from_tree): Properly update VOPs.
11577         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
11578         (copy_ref_info): Remove memory-tag related code.
11579         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
11580         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
11581         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
11582         computation.
11583         * tree-ssa-dom.c (gimple_p): Remove typedef.
11584         (eliminate_redundant_computations): Adjust.
11585         (record_equivalences_from_stmt): Likewise.
11586         (avail_expr_hash): Likewise.
11587         (avail_expr_eq): Likewise.
11588         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
11589         (stmt_makes_single_load): Likewise.
11590         (stmt_makes_single_store): Likewise.
11591         * tree-ssa-alias.c: Rewrite completely.
11592         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
11593         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
11594         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
11595         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
11596         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
11597         Remove public functions.
11598         (pass_reset_cc_flags): Remove.
11599         (pass_build_alias): Move ...
11600         * tree-ssa-structalias.c (pass_build_alias): ... here.
11601         * tree-ssa-alias.c (may_be_aliased): Move ...
11602         * tree-flow-inline.h (may_be_aliased): ... here.
11603         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
11604         count_uses_and_derefs): Move ...
11605         * gimple.c: ... here.
11606         * gimple.h (count_uses_and_derefs): Declare.
11607         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
11608         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
11609         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
11610         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
11611         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
11612         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
11613         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
11614         New functions.
11615         * tree-dfa.c (refs_may_alias_p): Move ...
11616         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
11617         * tree-ssa-alias.h: New file.
11618         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
11619         (statement_sink_location): Likewise.
11620         * opts.c (decode_options): Do not adjust max-aliased-vops or
11621         avg-aliased-vops values.
11622         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
11623         (TV_CALL_CLOBBER): Likewise.
11624         (TV_FLOW_SENSITIVE): Likewise.
11625         (TV_FLOW_INSENSITIVE): Likewise.
11626         (TV_MEMORY_PARTITIONING): Likewise.
11627         (TV_ALIAS_STMT_WALK): New timevar.
11628         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
11629         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
11630         (get_address_description): Remove memory-tag related code.
11631         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
11632         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
11633         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
11634         and immediate uses in statements.  Document.
11635         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
11636         (dump_symbols): Remove.
11637         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
11638         * alias.c (get_deref_alias_set): New function split out from ...
11639         (get_alias_set): ... here.
11640         * alias.h (get_deref_alias_set): Declare.
11641         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
11642         type parameter.  Remove restrict pointer handling.  Create a
11643         ref-all pointer in case type-based alias sets do not conflict.
11644         (vect_analyze_data_refs): Remove SMT related code.
11645         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
11646         (vectorizable_load): Likewise.
11647         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
11648         (DR_SYMBOL_TAG, DR_VOPS): Remove.
11649         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
11650         Ignore vops and SMTs.
11651         (dr_analyze_alias): Likewise..
11652         (free_data_ref): Likewise.
11653         (create_data_ref): Likewise.
11654         (analyze_all_data_dependences): Likewise.
11655         (get_references_in_stmt): Adjust.
11656         * tree-flow-inline.h (gimple_aliases_computed_p,
11657         gimple_addressable_vars, gimple_call_clobbered_vars,
11658         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
11659         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
11660         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
11661         gimple_mem_ref_stats): Remove.
11662         (gimple_vop): New function.
11663         (op_iter_next_use): Remove vuses and mayuses cases.
11664         (op_iter_next_def): Remove vdefs case.
11665         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
11666         (clear_and_done_ssa_iter): Do not set removed fields.
11667         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
11668         Assert we are not iterating over vuses or vdefs if not also
11669         iterating over uses or defs.
11670         (op_iter_init_use): Likewise.
11671         (op_iter_init_def): Likewise.
11672         (op_iter_next_vdef): Remove.
11673         (op_iter_next_mustdef): Likewise.
11674         (op_iter_init_vdef): Likewise.
11675         (compare_ssa_operands_equal): Likewise.
11676         (link_use_stmts_after): Handle vuse operand.
11677         (is_call_used): Use is_call_clobbered.
11678         (is_call_clobbered): Global variables are always call clobbered,
11679         query the call-clobbers bitmap.
11680         (mark_call_clobbered): Ignore global variables.
11681         (clear_call_clobbered): Likewise.
11682         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
11683         virtual operands sanity check.
11684         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
11685         Remove.
11686         (TARGET_MEM_REF): Remove TMR_TAG operand.
11687         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
11688         Remove call-clobber related code.
11689         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
11690         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
11691         partitions or escape reason.
11692         (get_single_def_stmt, get_single_def_stmt_from_phi,
11693         get_single_def_stmt_with_phi): Remove.
11694         (dump_referenced_vars): Tidy.
11695         (get_ref_base_and_extent): Allow bare decls.
11696         (collect_dfa_stats): Adjust.
11697         * graphite.c (rename_variables_in_stmt): Adjust.
11698         (graphite_copy_stmts_from_block): Likewise.
11699         (translate_clast): Likewise.
11700         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
11701         (EXPR_DIES): New.
11702         (translate_vuse_through_block): Use the oracle.
11703         (phi_translate_1): Adjust.
11704         (value_dies_in_block_x): Use the oracle.  Cache the outcome
11705         in EXPR_DIES.
11706         (valid_in_sets): Check if the VUSE for
11707         a REFERENCE is available.
11708         (eliminate): Do not remove stmts during elimination,
11709         instead queue and remove them afterwards.
11710         (do_pre): Do not rebuild alias info.
11711         (pass_pre): Run TODO_rebuild_alias before PRE.
11712         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
11713         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
11714         (mark_all_v_defs_stmt): Remove.
11715         (mark_all_v_defs_seq): Adjust.
11716         (sra_replace): Likewise.
11717         (scalarize_use): Likewise.
11718         (scalarize_copy): Likewise.
11719         (scalarize_init): Likewise.
11720         (scalarize_ldst): Likewise.
11721         (todoflags): Remove.
11722         (tree_sra): Do not rebuild alias info.
11723         (tree_sra_early): Adjust.
11724         (pass_sra): Run TODO_update_address_taken before SRA.
11725         * tree-predcom.c (set_alias_info): Remove.
11726         (prepare_initializers_chain): Do not call it.
11727         (mark_virtual_ops_for_renaming): Adjust.
11728         (mark_virtual_ops_for_renaming_list): Remove.
11729         (initialize_root_vars): Adjust.
11730         (initialize_root_vars_lm): Likewise.
11731         (prepare_initializers_chain): Likewise.
11732         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
11733         (may_propagate_copy_into_stmt): Likewise.
11734         (merge_alias_info): Do nothing for now.
11735         (propagate_tree_value_into_stmt): Adjust.
11736         (stmt_may_generate_copy): Likewise.
11737         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
11738         not mark symbols for renaming.
11739         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
11740         with the same statement, make sure to update the new pointed-to one.
11741         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
11742         call statements, do not mark symbols for renaming.
11743         (mark_operand_necessary): Dump something.
11744         (ref_may_be_aliased): New function.
11745         (mark_aliased_reaching_defs_necessary_1): New helper function.
11746         (mark_aliased_reaching_defs_necessary): Likewise.
11747         (mark_all_reaching_defs_necessary_1): Likewise.
11748         (mark_all_reaching_defs_necessary): Likewise.
11749         (propagate_necessity): Do not process virtual PHIs.  For
11750         non-aliased loads mark all reaching definitions as necessary.
11751         For aliased loads and stores mark the immediate dominating
11752         aliased clobbers as necessary.
11753         (visited): New global static.
11754         (perform_tree_ssa_dce): Free visited bitmap after propagating
11755         necessity.
11756         (remove_dead_phis): Perform simple dead virtual PHI removal.
11757         (remove_dead_stmt): Properly unlink virtual operands when
11758         removing stores.
11759         (eliminate_unnecessary_stmts): Schedule PHI removal after
11760         stmt removal.
11761         * tree-ssa-ter.c (is_replaceable_p): Adjust.
11762         (process_replaceable): Likewise.
11763         (find_replaceable_in_bb): Likewise.
11764         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
11765         based on the single gimple vop.
11766         (verify_flow_insensitive_alias_info): Remove.
11767         (verify_flow_sensitive_alias_info): Likewise.
11768         (verify_call_clobbering): Likewise.
11769         (verify_memory_partitions): Likewise.
11770         (verify_alias_info): Likewise.
11771         (verify_ssa): Adjust..
11772         (execute_update_addresses_taken): Export.  Update SSA
11773         manually.  Optimize only when optimizing.  Use a local bitmap.
11774         (pass_update_address_taken): Remove TODO_update_ssa, add
11775         TODO_dump_func.
11776         (pass_update_address_taken): Just use TODO_update_address_taken.
11777         (init_tree_ssa): Do not initialize addressable_vars.
11778         (verify_ssa): Verify new VUSE / VDEF properties.
11779         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
11780         Do not call verify_alias_info.
11781         (delete_tree_ssa): Clear the VUSE, VDEF operands.
11782         Do not free the loaded and stored syms bitmaps.  Reset the escaped
11783         and callused solutions.  Do not free addressable_vars.
11784         Remove memory-tag related code.
11785         (warn_uninitialized_var): Aliases are always available.
11786         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
11787         * lambda-code.c (can_put_in_inner_loop): Adjust.
11788         (can_put_after_inner_loop): Likewise.
11789         (perfect_nestify): Likewise.
11790         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
11791         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
11792         (vectorizable_conversion): Do not mark symbols for renaming.
11793         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
11794         (expand_call_inline): Unlink the calls virtual operands before
11795         replacing it.
11796         (tree_function_versioning): Do not call update_ssa if we are not
11797         updating clones.  Simplify.
11798         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
11799         (propagate_with_phi): Likewise..
11800         * tree-outof-ssa.c (create_temp): Remove memory tag and call
11801         clobber code.  Assert we are not aliased or global.
11802         * tree-flow.h: Include tree-ssa-alias.h
11803         (enum escape_type): Remove.
11804         (struct mem_sym_stats_d): Likewise.
11805         (struct mem_ref_stats_d): Likewise.
11806         (struct gimple_df): Add vop member.  Remove global_var,
11807         call_clobbered_vars, call_used_vars, addressable_vars,
11808         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
11809         escaped and callused members.
11810         (struct ptr_info_def): Remove all members, add points-to solution
11811         member pt.
11812         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
11813         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
11814         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
11815         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
11816         (tree-ssa-alias.o): Likewise.
11817         (toplev.o): Add tree-ssa-alias.h
11818         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
11819         * gimple.c (gimple_set_bb): Fix off-by-one error.
11820         (is_gimple_reg): Do not handle memory tags.
11821         (gimple_copy): Also copy virtual operands.
11822         Delay updating the statement.  Do not reset loaded and stored syms.
11823         (gimple_set_stored_syms): Remove.
11824         (gimple_set_loaded_syms): Likewise.
11825         (gimple_call_copy_skip_args): Copy the virtual operands
11826         and mark the new statement modified.
11827         * tree-ssa-structalias.c (may_alias_p): Remove.
11828         (set_uids_in_ptset): Take the alias set to prune with as
11829         parameter.  Fold in the alias test of may_alias_p.
11830         (compute_points_to_sets): Compute whether a ptr is dereferenced
11831         in a local sbitmap.
11832         (process_constraint): Deal with &ANYTHING on the lhs, reject all
11833         other ADDRESSOF constraints on the lhs.
11834         (get_constraint_for_component_ref): Assert that we don't get
11835         ADDRESSOF constraints from the base of the reference.
11836         Properly generate UNKNOWN_OFFSET for DEREF if needed.
11837         (struct variable_info): Remove collapsed_to member.
11838         (get_varinfo_fc): Remove.
11839         (new_var_info): Do not set collapsed_to.
11840         (dump_constraint): Do not follow cycles.
11841         (dump_constraint_graph): Likewise.
11842         (build_pred_graph): Likewise.
11843         (build_succ_graph): Likewise.
11844         (rewrite_constraints): Likewise.
11845         (do_simple_structure_copy): Remove.
11846         (do_rhs_deref_structure_copy): Remove.
11847         (do_lhs_deref_structure_copy): Remove.
11848         (collapse_rest_of_var): Remove.
11849         (do_structure_copy): Re-implement.
11850         (pta_stats): New global variable.
11851         (dump_pta_stats): New function.
11852         (struct constraint_expr): Make offset signed.
11853         (UNKNOWN_OFFSET): Define special value.
11854         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
11855         (solution_set_expand): New helper function split out from ...
11856         (do_sd_constraint): ... here.
11857         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
11858         (do_ds_constraint): Likewise.
11859         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
11860         and CALLUSED = *CALLUSED.
11861         (set_union_with_increment): Make inc argument signed.
11862         (type_safe): Remove.
11863         (get_constraint_for_ptr_offset): Handle unknown and negative
11864         constant offsets.
11865         (first_vi_for_offset): Handle offsets before start.  Bail
11866         out early for offsets beyond the variable extent.
11867         (first_or_preceding_vi_for_offset): New function.
11868         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
11869         Together with ESCAPED = *ESCAPED this properly computes reachability.
11870         (find_what_var_points_to): New function.
11871         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
11872         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
11873         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
11874         pt_solutions_intersect): New functions.
11875         (compute_call_used_vars): Remove.
11876         (compute_may_aliases): New main entry into PTA computation.
11877         * gimple.h (gimple_p): New typedef.
11878         (struct gimple_statement_base): Remove references_memory_p.
11879         (struct gimple_statement_with_memory_ops_base): Remove
11880         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
11881         members.
11882         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
11883         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
11884         gimple_set_references_memory): Remove.
11885         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
11886         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
11887         New functions.
11888         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
11889         (verify_expr): Allow RESULT_DECL.
11890         (gimple_duplicate_bb): Do not copy virtual operands.
11891         (gimple_duplicate_sese_region): Adjust.
11892         (gimple_duplicate_sese_tail): Likewise.
11893         (mark_virtual_ops_in_region): Remove.
11894         (move_sese_region_to_fn): Do not call it.
11895         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
11896         and pass_simple_dse.
11897         (execute_function_todo): Handle TODO_update_address_taken,
11898         call execute_update_addresses_taken for TODO_rebuild_alias.
11899         (execute_todo): Adjust.
11900         (execute_one_pass): Init dump files early.
11901         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
11902         call-clobbered.
11903         (create_general_new_stmt): Clear vops.
11904         * tree-ssa-reassoc.c (get_rank): Adjust.
11905         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
11906         symbols for renaming.
11907         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
11908         (PARAM_AVG_ALIASED_VOPS): Likewise.
11909         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
11910         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
11911         * tree-ssa-operands.c: Simplify for new virtual operand representation.
11912         (operand_build_cmp, copy_virtual_operands,
11913         create_ssa_artificial_load_stmt, add_to_addressable_set,
11914         gimple_add_to_addresses_taken): Remove public functions.
11915         (unlink_stmt_vdef): New function.
11916
11917 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
11918
11919         * config.gcc (powerpc-*-linux*): Merge variants.
11920
11921 2009-04-02  Chao-ying Fu  <fu@mips.com>
11922             James Grosbach  <james.grosbach@microchip.com>
11923
11924         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
11925         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
11926         cop0_sp_offset.
11927         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
11928         keep_interrupts_masked_p, use_debug_exception_return_p.
11929         (mips_attribute_table): Add interrupt, use_shadow_register_set,
11930         keep_interrupts_masked, use_debug_exception_return.
11931         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
11932         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
11933         New functions.
11934         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
11935         (mips_print_operand): Process COP0 registers to print $0 .. $31
11936         correctly for GAS to process.
11937         (mips_interrupt_extra_call_saved_reg_p): New function.
11938         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
11939         extra registers.
11940         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
11941         (mips_compute_frame_info): Add supports for interrupt context that
11942         includes doubleword accumulators and COP0 registers.
11943         (mips_for_each_saved_acc): New function.
11944         (mips_for_each_saved_gpr_and_fpr): Change the function name from
11945         mips_for_each_saved_reg.
11946         (mips_save_reg): Save accumulators.
11947         (mips_kernel_reg_p): A new for_each_rtx callback.
11948         (mips_expand_prologue): Support interrupt handlers.
11949         (mips_restore_reg): Restore accumulators.
11950         (mips_expand_epilogue): Support interrupt handlers.
11951         (mips_can_use_return_insn): Return false for interrupt handlers.
11952         (mips_epilogue_uses): New function.
11953         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
11954         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
11955         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
11956         cop0_move): New instructions.
11957         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
11958         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
11959         defines.
11960         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
11961         New defines.
11962         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
11963         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
11964         interrupt handlers, we use K0 as the temporary register.
11965         (EPILOGUE_USES): Change to a function call.
11966         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
11967         handlers, we use K0 as the temporary register.
11968
11969         * doc/extend.texi (Function Attributes): Document interrupt,
11970         use_shadow_register_set, keep_interrupts_masked,
11971         use_debug_exception_return for MIPS attributes.
11972
11973 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
11974
11975         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
11976         Remove a number of t-files from tmake_file.
11977         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
11978         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
11979         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
11980         target_prototype, not TARGET_PROTOTYPE.
11981         (LINK_OS_GNU_SPEC): Define.
11982         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
11983         and darwin-ldoubdle.c.
11984
11985 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
11986
11987         PR driver/39293
11988         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
11989         (cpp_options): Ditto.
11990         (default_compilers): Ditto.
11991         (display_help): Ditto.
11992         (process_command): Ditto.
11993         (do_spec_1): Ditto.
11994         (set_input): Use lbasename instead of duplicate code.
11995         (save_temps_prefix): New static for -save-temps=obj.
11996         (save_temps_length): Ditto.
11997
11998         * doc/invoke.texi (-save-temps=obj): Document new variant to
11999         -save-temps switch.
12000
12001 2009-04-02  Jeff Law  <law@redhat.com>
12002
12003         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
12004         variable.
12005
12006 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12007
12008         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
12009         * configure: Regenerated.
12010
12011 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12012
12013         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
12014         share the argument list.
12015
12016 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12017
12018         Merge
12019
12020         2009-02-12  Diego Novillo  <dnovillo@google.com>
12021
12022         * varpool.c (debug_varpool): New.
12023         * cgraph.h (debug_varpool): Declare.
12024
12025 2009-04-02  Jan Hubicka  <jh@suse.cz>
12026
12027         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
12028         pass.
12029
12030 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
12031
12032         * config/i386/i386.c (ix86_abi): Move initialization to ...
12033         (override_options): Here.
12034
12035 2009-04-02  Christian Bruel  <christian.bruel@st.com>
12036
12037         * config/sh/sh.c (sh_dwarf_register_span): New function.
12038         (TARGET_DWARF_REGISTER_SPAN): Define.
12039         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
12040
12041 2009-04-02  Ira Rosen  <irar@il.ibm.com>
12042
12043         PR tree-optimization/39595
12044         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
12045         interleaved loads group is not  greater than the SLP group size.
12046
12047 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
12048
12049         * builtins.c (is_builtin_name): New.
12050         (called_as_built_in): Use is_builtin_name.
12051         * tree.h (is_builtin_name): New.
12052         * varasm.c (incorporeal_function_p): Use is_builtin_name
12053
12054 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
12055
12056         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
12057
12058 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
12059
12060         PR c++/26693
12061         * c-decl.c (clone_underlying_type): Move this ...
12062         * c-common.c (set_underlying_type): ... here.
12063         Also, make sure the function properly sets TYPE_STUB_DECL() on
12064         the newly created typedef variant type.
12065         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
12066         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
12067         points.
12068
12069 2009-04-02  Richard Guenther  <rguenther@suse.de>
12070
12071         PR tree-optimization/37221
12072         * tree-flow.h (degenerate_phi_result): Declare.
12073         * tree-ssa-dom.c (degenerate_phi_result): Export.
12074         * tree-scalar-evolution.c (analyze_initial_condition): If
12075         the initial condition is defined by a degenerate PHI node
12076         use the degenerate value.
12077
12078 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
12079
12080         PR rtl-optimization/39588
12081         * combine.c (merge_outer_ops): Do not set the constant when this
12082         is not necessary.
12083         (simplify_shift_const_1): Do not modify it either in this case.
12084
12085 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
12086
12087         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
12088         tuning is deprecated if -mtune value is set to an Itanium1 variant.
12089
12090 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
12091
12092         PR c/29027
12093         * c-lex.c (interpret_float): Default (no suffix) is double.
12094
12095 2009-04-1  Xinliang David Li  <davidxl@google.com>
12096
12097         * config/i386/i386.c (legitimate_constant_p): Recognize
12098         all one vector constant.
12099
12100 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12101
12102         * config/vax/vax.c: Add #includes to silence warnings.
12103         Change #include order to silence two warnings.
12104
12105 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12106
12107         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
12108         (ASM_SPEC): Pass -k to the assembler for PIC code.
12109
12110 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12111
12112         * config.gcc: Add vax-*-linux* to the switch.
12113         * config/vax/linux.h: New file. (TARGET_VERSION,
12114         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
12115
12116 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12117
12118         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
12119         Use predicate macros instead of GET_CODE() == foo.
12120         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
12121         ashlsi3, rotrsi3, <unnamed>): Likewise.
12122
12123 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12124
12125         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
12126         jbbccihi, jbbccisi): Remova trailing whitespace.
12127         * config/vax/constraints.md: Likewise.
12128         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12129         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
12130         * config/vax/predicates.md: Likewise.
12131         * config/vax/vax.c (print_operand_address, vax_output_int_move,
12132         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
12133         * config/vax/vax.h: Likewise.
12134         * config/vax/vax.md (nonlocal_goto): Likewise.
12135
12136 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12137
12138         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
12139         (indirectable_address_p, adjacent_operands_p): Add spaces around
12140         braces.
12141         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
12142
12143 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12144
12145         * config/vax/vax.c (legitimate_constant_address_p,
12146         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
12147         index_term_p, reg_plus_index_p, legitimate_address_p,
12148         vax_mode_dependent_address_p): Update comments to match functions
12149         modified by the recent int->bool conversion.
12150
12151 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12152
12153         * config/vax/builtins.md: Update copyright message.
12154         * config/vax/constraints.md: Likewise.
12155         * config/vax/netbsd-elf.h: Likewise.
12156         * config/vax/predicates.md: Likewise.
12157         * config/vax/vax-protos.h: Likewise.
12158         * config/vax/vax.c: Likewise.
12159         * config/vax/vax.h: Likewise.
12160         * config/vax/vax.md: Likewise.
12161         * config/vax/vax.opt: Likewise.
12162
12163 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
12164
12165         * config/vax/builtins.md (ffssi2, ffssi2_internal,
12166         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
12167         * config/vax/constraints.md (B, R): Likewise.
12168         * config/vax/predicates.md (external_memory_operand,
12169         nonimmediate_addsub_di_operand): Likewise.
12170         * config/vax/vax.c (vax_output_int_add): Likewise.
12171         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
12172         untyped_call): Likewise.
12173
12174 2009-04-01  Matt Thomas  <matt@3am-software.com>
12175
12176         * config/vax/predicates.md: New file.
12177         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
12178         external_const_operand, nonsymbolic_operand, external_memory_operand,
12179         indirect_memory_operand, indexed_memory_operand,
12180         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
12181         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
12182         predicate.
12183         * config/vax/constraints.md: New file.
12184         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
12185         New constraint.
12186         * config/vax/builtins.md: New file.
12187         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
12188         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
12189         jbbccisi): Define.
12190         * config/vax/vax.opt (mqmath): Add option.
12191         * config/vax/vax.md (isfx): Extend with DI.
12192         (VAXintQH, VAXintQHSD): Define.
12193         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
12194         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
12195         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
12196         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
12197         (movdi): Update constraints and use vax_output_int_move().
12198         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
12199         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
12200         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
12201         nonlocal_goto): New.
12202         (mov<mode>): Extend accepted operand types.
12203         (subdi3_old): Rename from subdi3, change update constraints and use
12204         a new implementation.
12205         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
12206         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
12207         MOVE_RATIO, CLEAR_RATIO): Define.
12208         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
12209         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
12210         (PRINT_OPERAND): Redefine using a function instead of inlined code.
12211         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
12212         (split_quadword_operands): Make static and really allow variable
12213         splitting.
12214         (print_operand_address): Update for PIC generation.
12215         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
12216         indexable_address_p, fixup_mathdi_operand,
12217         vax_expand_addsub_di_operands, adjacent_operands_p): New.
12218         (vax_float_literal, legitimate_constant_p,
12219         indirectable_constant_address_p, index_term_p,
12220         reg_plus_index_p): Return bool instead of int.
12221         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
12222         where needed.
12223         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
12224         generation.
12225         (vax_output_conditional_branch): Indent.
12226         (legitimate_constant_address_p, indirectable_constant_address_p,
12227         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
12228         vax_mode_dependent_address_p): Return bool instead of int, update for
12229         PIC generation.
12230         * config/vax/vax-protos.h (legitimate_constant_address_p,
12231         legitimate_constant_p, legitimate_address_p,
12232         vax_mode_dependent_address_p): Change declaration to bool.
12233         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
12234         vax_expand_addsub_di_operands, vax_output_int_subtract,
12235         vax_output_movmemsi): Declare.
12236         (split_quadword_operands, vax_float_literal): Delete declaration.
12237         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
12238         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
12239         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
12240         ASM_OUTPUT_DWARF_PCREL): Define.
12241         (ASM_SPEC): Change definition to allow PIC generation.
12242
12243 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
12244
12245         * doc/sourcebuild.texi: Update front-end requirements.
12246
12247 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12248
12249         PR target/39226
12250         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
12251         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
12252         (booldi3_internal3): Use boolean_or_operator instead of
12253         boolean_operator.
12254
12255 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
12256
12257         PR c/39605
12258         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
12259         declarator whose size is not an integer constant expression but
12260         folds to an integer constant, then treat it as a constant
12261         subsequently.
12262
12263 2009-04-01  Richard Guenther  <rguenther@suse.de>
12264
12265         * fold-const.c (fold_plusminus_mult_expr): Do not fold
12266         i * 4 + 2 to (i * 2 + 1) * 2.
12267
12268 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12269
12270         PR c/37772
12271         * c-parser.c (c_parser_asm_statement): Skip until close paren and
12272         return if c_parser_asm_string_literal returned NULL.
12273
12274 2009-04-01  Nick Clifton  <nickc@redhat.com>
12275
12276         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
12277         already defined.
12278         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
12279         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
12280         other typedefs to avoid conflicts with libgcc2.c.  Define labels
12281         to gain 16-bit bit-manipulation functions from libgcc2.c and then
12282         include it.
12283         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
12284         to gain 16-bit trapping arithmetic functions from libgcc2.c and
12285         then include it.
12286
12287 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
12288
12289         * varasm.c (default_function_rodata_section): Declare DOT as
12290         const char*.
12291
12292 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
12293             Andrey Galkin  <agalkin@hypercom.com>
12294
12295         PR/39492
12296         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
12297         Make object_name unique for each process.
12298
12299 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
12300
12301         PR other/39591
12302         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
12303         addressable variables in the parallel that could go out of scope while
12304         running queued tasks.
12305
12306 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
12307
12308         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
12309         (CASE_VALUES_THRESHOLD): Redefine.
12310         * config/avr/avr.c (avr_override_options): Remove initialization of
12311         avr_case_values_threshold variable.
12312         (avr_case_values_threshold): Remove variable. Add new function.
12313         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
12314         * config/avr/avr.opt (mno-tablejump): Remove option.
12315         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
12316
12317 2009-04-01  DJ Delorie  <dj@redhat.com>
12318
12319         * varasm.c (default_function_rodata_section): Don't assume
12320         anything about where the first '.' in the section name is.
12321
12322 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
12323
12324         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
12325         rs6000_emit_stack_tie.
12326
12327 2009-03-31  Ian Lance Taylor  <iant@google.com>
12328
12329         * tree-eh.c (tree_remove_unreachable_handlers): Compare
12330         gimple_code with GIMPLE_RESX, not RESX.
12331
12332 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12333
12334         * c-common.c (c_get_ident): New.
12335         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
12336
12337 2009-04-01  Ben Elliston  <bje@au.ibm.com>
12338
12339         * config/rs6000/sysv4.opt (msdata): Improve option description.
12340
12341 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
12342
12343         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
12344         (divdf3_internal_lat): Remove.
12345         (divxf3_internal_lat): Remove.
12346         (divxf3_internal_thr): Remove.
12347         (divxf): Use divxf3_internal.
12348         * config/ia64/div.md (divsf3_internal_lat): New.
12349         (divdf3_internal_lat): New.
12350         (divxf3_internal): New.
12351
12352 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12353
12354         PR c/448
12355         * Makefile.in (USE_GCC_STDINT): Define.
12356         (stmp-int-hdrs): Install stdint.h if applicable.
12357         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
12358         if known.
12359         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
12360         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
12361         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12362         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12363         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12364         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12365         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12366         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12367         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12368         (c_common_nodes_and_builtins): Initialize
12369         underlying_wchar_type_node.  Do not initialize
12370         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
12371         nodes for new types.
12372         (c_stddef_cpp_builtins): Define macros for new types.
12373         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
12374         Remove.
12375         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
12376         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
12377         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
12378         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
12379         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
12380         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
12381         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
12382         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
12383         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
12384         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
12385         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
12386         int16_type_node, int32_type_node, int64_type_node,
12387         uint8_type_node, uint16_type_node, c_uint32_type_node,
12388         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
12389         int_least32_type_node, int_least64_type_node,
12390         uint_least8_type_node, uint_least16_type_node,
12391         uint_least32_type_node, uint_least64_type_node,
12392         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
12393         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
12394         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
12395         uintptr_type_node): Define.
12396         * c-cppbuiltin.c (builtin_define_constants,
12397         builtin_define_type_minmax): New.
12398         (builtin_define_stdint_macros): Define more macros.
12399         (c_cpp_builtins): Define more limit macros.
12400         (type_suffix): New.
12401         (builtin_define_type_max): Define in terms of
12402         builtin_define_type_minmax.  Remove is_long parameter.  All
12403         callers changed.
12404         * config.gcc (use_gcc_stdint): Define.
12405         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
12406         Add newlib-stdint.h for generic targets.
12407         * config/glibc-stdint.h, config/newlib-stdint.h,
12408         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
12409         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
12410         * config/score/score.h (UINTPTR_TYPE): Define.
12411         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
12412         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
12413         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12414         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12415         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12416         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12417         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12418         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
12419         * config/spu/spu.h (STDINT_LONG32): Define.
12420         * configure.ac (use_gcc_stdint): Substitute.
12421         * configure: Regenerate.
12422         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
12423         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
12424         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
12425         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
12426         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
12427         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
12428         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
12429         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
12430         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
12431         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
12432         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
12433         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
12434         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
12435         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
12436         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
12437         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
12438         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
12439         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
12440         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
12441         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
12442         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
12443         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
12444         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
12445         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
12446         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
12447         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
12448         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
12449         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
12450         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
12451
12452 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
12453
12454         * loop-iv.c (suitable_set_for_replacement): Renamed from
12455         simplify_using_assignment; changed to return bool and to accept new
12456         args DEST and SRC.  Return true iff we find a source/destination pair
12457         that can be used to make a replacement, and fill SRC and DEST if so.
12458         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
12459         changed.
12460         (simplify_using_initial_values): Deal with altered regs here and track
12461         more precisely the effect they have on the validity of our expression.
12462
12463         * loop-iv.c (simplify_using_condition): A condition of the form
12464         (EQ REG CONST) can be used to simply make a substitution.
12465         (simplify_using_initial_values): Keep track of conditions we have seen
12466         and keep using them to simplify new expressions, while applying the
12467         same substitutions to them as to the expression.
12468
12469         * simplify-rtx.c (simplify_relational_operation_1): Simplify
12470         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
12471         GEU/LTU reversed.
12472
12473         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
12474         changed.  Use this when trying to improve the upper bound.
12475         Generate the comparison by using simplify_gen_relational.
12476
12477         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
12478
12479         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
12480         functions.
12481         (simplify_using_assignment, simplify_using_initial_values): Call
12482         replace_in_expr to make replacements.  Call replace_single_def_regs
12483         once on the initial version of the expression.
12484
12485 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12486
12487         PR target/27237
12488         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
12489
12490 2009-03-31  Richard Guenther  <rguenther@suse.de>
12491
12492         PR middle-end/31029
12493         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
12494         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
12495
12496 2009-03-31  Richard Guenther  <rguenther@suse.de>
12497
12498         * tree.h (div_if_zero_remainder): Declare.
12499         * fold-const.c (div_if_zero_remainder): Export.
12500         * tree-ssa-forwprop.c
12501         (forward_propagate_addr_into_variable_array_index): Handle
12502         constant array index addition outside of the variable index.
12503
12504 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12505
12506         PR target/39592
12507         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
12508         define_splits, floatunssi<mode>2): Require x87 conversions from
12509         DImode to be permitted.
12510
12511 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
12512
12513         PR preprocessor/15638
12514         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
12515
12516 2009-03-31  Richard Guenther  <rguenther@suse.de>
12517
12518         PR middle-end/23401
12519         PR middle-end/27810
12520         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
12521         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
12522         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
12523         a separate statement.
12524         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
12525         (lookup_tmp_var): Likewise.
12526         (is_gimple_formal_tmp_or_call_rhs): Remove.
12527         (is_gimple_reg_or_call_rhs): Rename to ...
12528         (is_gimple_reg_rhs_or_call): ... this.
12529         (is_gimple_mem_or_call_rhs): Rename to ...
12530         (is_gimple_mem_rhs_or_call): ... this.
12531         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
12532         DECL_GIMPLE_REG_P only if is_formal is true.
12533         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
12534         for non-proper post-modify expression gimplification.
12535         (gimplify_self_mod_expr): For post-modify expressions gimplify
12536         the lvalue to a minimal lvalue.
12537         (rhs_predicate_for): Remove formal temp case.
12538         (gimplify_modify_expr_rhs): Likewise.
12539         (gimplify_addr_expr): Use is_gimple_reg.
12540         (gimplify_expr): Remove formal temp cases.
12541         (gimple_regimplify_operands): Likewise.
12542         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
12543         and FILTER_EXPR like constants.
12544         * gimple.c (walk_gimple_op): Fix val_only initialization, use
12545         is_gimple_reg.
12546         (is_gimple_formal_tmp_rhs): Remove.
12547         (is_gimple_reg_rhs): Remove special casing.
12548         (is_gimple_mem_rhs): Fix.
12549         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
12550         (is_gimple_formal_tmp_var): Remove.
12551         (is_gimple_formal_tmp_reg): Likewise.
12552         (is_gimple_min_lval): Allow invariant component ref parts.
12553         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
12554         is_gimple_formal_tmp_reg): Remove declarations.
12555         * tree-cfg.c (verify_expr): Verify that variables with address
12556         taken do not have DECL_GIMPLE_REG_P set.
12557         * tree-mudflap.c (mf_build_check_statement_for): Use
12558         force_gimple_operand instead of gimplify_expr.
12559
12560 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
12561
12562         * modulo-sched.c (sms_schedule_by_order): Pass the actual
12563         schedulable rows to compute_split_row.
12564
12565 2009-03-31  Ben Elliston  <bje@au.ibm.com>
12566
12567         PR target/31635
12568         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
12569         OPT_mvrsave.
12570
12571 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
12572
12573         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
12574         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
12575         * configure: Regenerate.
12576         * config.in: Regenerate.
12577         * config/rs6000/rs6000.opt (mtls-markers): Add.
12578         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
12579         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
12580         (tls_ld_aix, tls_ld_sysv): Likewise.
12581         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
12582         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
12583
12584 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
12585
12586         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
12587
12588 2009-03-30  Jan Hubicka  <jh@suse.cz>
12589
12590         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
12591         out of RESX.
12592         (tree_remove_unreachable_handlers): Cleanup EH predecestor
12593         detection and label handling.
12594
12595 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12596
12597         * ira-int.h (ira_allocno): Rename left_conflicts_num to
12598         left_conflicts_size.
12599         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
12600         ALLOCNO_LEFT_CONFLICTS_SIZE.
12601
12602         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
12603         remove_allocno_from_bucket_and_push,
12604         allocno_spill_priority_compare, push_allocnos_to_stack,
12605         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12606         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
12607         (setup_allocno_left_conflicts_num): Ditto.  Rename to
12608         setup_allocno_left_conflicts_size.
12609         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
12610         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
12611         setup_allocno_left_conflicts_size instead of
12612         setup_allocno_left_conflicts_num.
12613
12614         * ira-build.c (ira_create_allocno): Use
12615         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
12616         ALLOCNO_LEFT_CONFLICTS_NUM.
12617
12618 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
12619
12620         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
12621         instead of DF_LR_OUT.
12622
12623         * ira-lives.c (process_bb_node_lives): Ditto.
12624
12625         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
12626         instead of DF_LR_{OUT,IN}.
12627
12628         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
12629
12630         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
12631
12632 2009-03-30  Jan Hubicka  <jh@suse.cz>
12633
12634         * except.c (label_to_region_map): Fix thinko.
12635
12636 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
12637
12638         PR middle-end/38237
12639         * tree.h (tree_find_value): New declaration.
12640         * tree.c (tree_find_value): New function.
12641         * varasm.c (assemble_external): Avoid duplicate entries on lists.
12642
12643 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
12644
12645         PR debug/39563
12646         * c-decl.c (struct c_binding): Add locus field.
12647         (bind): Add locus argument, set locus field from it.
12648         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
12649         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
12650         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
12651         implicitly_declare, undeclared_variable, lookup_label,
12652         declare_label, c_make_fname_decl, c_builtin_function,
12653         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
12654         bind callers.
12655
12656 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
12657
12658         PR target/38781
12659         * config/i386/i386.c (classify_argument): Check total size of
12660         structure.
12661
12662 2009-03-30  Martin Jambor  <mjambor@suse.cz>
12663
12664         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
12665         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
12666         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
12667         respectively.
12668
12669         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
12670         seen_variable_array_ref while also traversing a union.
12671
12672         * tree-inline.c (optimize_inline_calls): Do not call
12673         cgraph_node_remove_callees.
12674         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
12675         (pass_remove_cgraph_callee_edges): New variable.
12676         * passes.c (init_optimization_passes): Add
12677         pass_remove_cgraph_callee_edges after early inlining and before all
12678         late intraprocedural passes.
12679
12680         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
12681
12682 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12683
12684         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
12685         Fix typos in names.
12686
12687 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12688
12689         * combine.c (simplify_comparison): Use have_insn_for.
12690         * dojump.c (do_jump): Likewise.
12691
12692 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12693
12694         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
12695         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
12696         sparc_compare_op0 like sparc_compare_emitted used to be handled.
12697         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
12698         instead of sparc_compare_emitted.
12699         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
12700         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
12701         instead of sparc_compare_emitted.
12702
12703 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12704
12705         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
12706         enter/exit cfglayout mode.
12707         (pass_partition_block): Require it.
12708         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
12709         (combine_instructions): Track basic blocks instead of labels.
12710         (update_cfg_for_uncondjump): New.
12711         (try_combine): Use it.  Update jumps after rescanning.
12712         (pass_combine): Require PROP_cfglayout.
12713         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
12714
12715 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12716
12717         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
12718         Provide/destroy PROP_cfglayout respectively.
12719         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
12720         * tree-pass.h (PROP_cfglayout): New.
12721
12722 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
12723
12724         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
12725         fold_convert_const_fixed_from_fixed,
12726         fold_convert_const_fixed_from_int,
12727         fold_convert_const_fixed_from_real, fold_negate_const): Do not
12728         set TREE_CONSTANT_OVERFLOW.
12729         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
12730         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
12731
12732 2009-03-30  Ira Rosen  <irar@il.ibm.com>
12733
12734         * tree-vect-loop-manip.c: New file.
12735         * tree-vectorizer.c: Update documentation and included files.
12736         (vect_loop_location): Make extern.
12737         (rename_use_op): Move to tree-vect-loop-manip.c
12738         (rename_variables_in_bb, rename_variables_in_loop,
12739         slpeel_update_phis_for_duplicate_loop,
12740         slpeel_update_phi_nodes_for_guard1,
12741         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
12742         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
12743         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
12744         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
12745         find_loop_location): Likewise.
12746         (new_stmt_vec_info): Move to tree-vect-stmts.c.
12747         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
12748         get_vectype_for_scalar_type, vect_is_simple_use,
12749         supportable_widening_operation, supportable_narrowing_operation):
12750         Likewise.
12751         (bb_in_loop_p): Move to tree-vect-loop.c.
12752         (new_loop_vec_info, destroy_loop_vec_info,
12753         reduction_code_for_scalar_code, report_vect_op,
12754         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
12755         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
12756         (vect_supportable_dr_alignment): Likewise.
12757         * tree-vectorizer.h (tree-data-ref.h): Include.
12758         (vect_loop_location): Declare.
12759         Reorganize function declarations according to the new file structure.
12760         * tree-vect-loop.c: New file.
12761         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
12762         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
12763         * tree-vect-data-refs.c: New file.
12764         * tree-vect-patterns.c (timevar.h): Don't include.
12765         * tree-vect-stmts.c: New file.
12766         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
12767         tree-vect-slp.c, tree-vect-loop.c.
12768         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
12769         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
12770         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
12771         (tree-vect-analyze.o): Remove.
12772         (tree-vect-transform.o): Likewise.
12773         (tree-vect-data-refs.o): Add rule.
12774         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
12775         tree-vect-slp.o): Likewise.
12776         (tree-vect-patterns.o): Remove redundant dependencies.
12777         (tree-vectorizer.o): Likewise.
12778         * tree-vect-slp.c: New file.
12779
12780 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
12781
12782         * optc-gen.awk: Warn if an option flag has multiple different
12783         help strings.
12784
12785 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
12786
12787         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
12788         -floop-block): Document dependences on PPL, CLooG and Graphite.
12789
12790 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
12791
12792         PR rtl-optimization/323
12793         * c-common.c (c_fully_fold, convert_and_check,
12794         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
12795         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
12796         * c-common.def (EXCESS_PRECISION_EXPR): New.
12797         * c-cppbuiltin.c (builtin_define_float_constants): Define
12798         constants with enough digits for long double.
12799         * c-lex.c (interpret_float): Interpret constant with excess
12800         precision where appropriate.
12801         * c-opts.c (c_common_post_options): Set
12802         flag_excess_precision_cmdline.  Give an error for
12803         -fexcess-precision=standard for C++ for processors where the
12804         option is significant.
12805         * c-parser.c (c_parser_conditional_expression): Handle excess
12806         precision in condition.
12807         * c-typeck.c (convert_arguments): Handle arguments with excess
12808         precision.
12809         (build_unary_op): Move excess precision outside operation.
12810         (build_conditional_expr): Likewise.
12811         (build_compound_expr): Likewise.
12812         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
12813         (build_modify_expr): Handle excess precision in RHS.
12814         (convert_for_assignment): Handle excess precision in converted
12815         value.
12816         (digest_init, output_init_element, process_init_element): Handle
12817         excess precision in initializer.
12818         (c_finish_return): Handle excess precision in return value.
12819         (build_binary_op): Handle excess precision in operands and add
12820         excess precision as needed for operation.
12821         * common.opt (-fexcess-precision=): New option.
12822         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
12823         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
12824         For standard excess precision, output explicit conversion to and
12825         truncation from XFmode.
12826         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
12827         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
12828         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
12829         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
12830         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
12831         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
12832         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
12833         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
12834         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
12835         define_splits, sqrt<mode>2): Disable where appropriate for
12836         standard excess precision.
12837         * convert.c (convert_to_real): Do not shorten arithmetic to type
12838         for which excess precision would be used.
12839         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
12840         * doc/invoke.texi (-fexcess-precision=): Document option.
12841         (-mfpmath=): Correct index entry.
12842         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
12843         flag_excess_precision): New.
12844         * langhooks.c (lhd_post_options): Set
12845         flag_excess_precision_cmdline.
12846         * opts.c (common_handle_option): Handle -fexcess-precision=.
12847         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
12848         init_excess_precision): New.
12849         (lang_dependent_init_target): Call init_excess_precision.
12850         * tree.c (excess_precision_type): New.
12851         * tree.h (excess_precision_type): Declare.
12852
12853 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
12854
12855         PR c/35235
12856         * c-typeck.c (build_component_ref): Do not copy qualifiers from
12857         non-lvalue to component.
12858
12859 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
12860
12861         PR preprocessor/34695
12862         * Makefile.in (c-opts.o): Depend on c-tree.h.
12863         * c-common.c: Move down include of diagnostic.h.
12864         (done_lexing, c_cpp_error): New.
12865         * c-common.h (done_lexing): Declare.
12866         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
12867         (parse_in).
12868         * c-opts.c: Include c-tree.h.
12869         (c_common_init_options): Set preprocessor error callback.
12870         (c_common_handle_option): Do not set preprocessor
12871         inhibit_warnings, warnings_are_errors, warn_system_headers,
12872         pedantic_errors or inhibit_warnings flags.
12873         (c_common_post_options): Do not check cpp_errors (parse_in).
12874         (c_common_finish): Do not output dependencies if there were
12875         errors.  Do not check return value of cpp_finish.
12876         * c-ppoutput.c (pp_file_change): Set input_location.
12877         * c-tree.h (c_cpp_error): Declare.
12878         * diagnostic.c (diagnostic_set_info_translated): Also initialize
12879         override_column.
12880         (diagnostic_build_prefix): Check override_column.
12881         * diagnostic.h (diagnostic_info): Add override_column field.
12882         (diagnostic_override_column): Define.
12883
12884 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
12885
12886         * c-common.c (c_expand_expr, c_staticp): Remove.
12887         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
12888         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
12889         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
12890         * c-gimplify.c (gimplify_compound_literal_expr,
12891         optimize_compound_literals_in_ctor): Remove.
12892         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
12893         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
12894         * c-semantics.c (emit_local_var): Remove.
12895
12896         * langhooks-def.h (lhd_expand_expr): Remove.
12897         * langhooks.c (lhd_expand_expr): Remove.
12898         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
12899
12900         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
12901         handling from c-semantics.c; don't call into langhook.
12902         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
12903         * gimplify.c (gimplify_compound_literal_expr,
12904         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
12905         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
12906         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
12907         as was done in c-gimplify.c.
12908         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
12909         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
12910         Move from c-common.h.
12911         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
12912
12913         * tree.c (staticp): Do not call langhook.
12914         * langhooks.c (lhd_staticp): Delete.
12915         * langhooks-def.h (lhd_staticp): Delete prototype.
12916         (LANG_HOOKS_STATICP): Delete.
12917         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
12918
12919         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
12920         instead of DECL_STMTs.
12921
12922 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
12923
12924         PR c/456
12925         PR c/5675
12926         PR c/19976
12927         PR c/29116
12928         PR c/31871
12929         PR c/35198
12930         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
12931         void_type_node.
12932         (fold_call_expr): Return a NOP_EXPR from folding rather than the
12933         contained expression.
12934         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
12935         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
12936         conditional expressions for C.
12937         (decl_constant_value_for_optimization): Move from
12938         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
12939         whether optimizing and that the expression is a VAR_DECL not of
12940         array type instead of doing such checks in the caller.  Do not
12941         check pedantic.  Call gcc_unreachable for C++.
12942         * c-common.def (C_MAYBE_CONST_EXPR): New.
12943         * c-common.h (c_fully_fold, c_save_expr,
12944         decl_constant_value_for_optimization): New prototypes.
12945         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
12946         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
12947         EXPR_INT_CONST_OPERANDS): Define.
12948         * c-convert.c (convert): Strip nops from expression.
12949         * c-decl.c (groktypename): Take extra parameters expr and
12950         expr_const_operands.  Update call to grokdeclarator.
12951         (start_decl): Update call to grokdeclarator.  Add statement for
12952         expressions used in type of decl.
12953         (grokparm): Update call to grokdeclarator.
12954         (push_parm_decl): Update call to grokdeclarator.
12955         (build_compound_literal): Add parameter non_const and build a
12956         C_MAYBE_COSNT_EXPR if applicable.
12957         (grokdeclarator): Take extra parameters expr and
12958         expr_const_operands.  Track expressions used in declaration
12959         specifiers and declarators.  Fold array sizes and track whether
12960         they are constant expressions and whether they are integer
12961         constant expressions.
12962         (parser_xref_tag): Set expr and expr_const_operands fields in
12963         return value.
12964         (grokfield): Update call to grokdeclarator.
12965         (start_function): Update call to grokdeclarator.
12966         (build_null_declspecs): Set expr and expr_const_operands fields in
12967         return value.
12968         (declspecs_add_type): Handle expressions in typeof specifiers.
12969         * c-parser.c (c_parser_declspecs): Set expr and
12970         expr_const_operands fields for declaration specifiers.
12971         (c_parser_enum_specifier): Likewise.
12972         (c_parser_struct_or_union_specifier): Likewise.
12973         (c_parser_typeof_specifier): Likewise.  Update call to
12974         groktypename.  Fold expression as needed.  Return expressions with
12975         type instead of adding statements.
12976         (c_parser_attributes): Update calls to c_parser_expr_list.
12977         (c_parser_statement_after_labels): Fold expression before passing
12978         to objc_build_throw_stmt.
12979         (c_parser_condition): Fold expression.
12980         (c_parser_asm_operands): Fold expression.
12981         (c_parser_conditional_expression): Use c_save_expr.  Update call
12982         to build_conditional_expr.
12983         (c_parser_alignof_expression): Update call to groktypename.
12984         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
12985         original_code.  Fold expression argument of va_arg.  Create
12986         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
12987         argument to va_arg.  Update calls to groktypename.  Fold array
12988         index for offsetof.  Verify that first argument to
12989         __builtin_choose_expr has integer type.
12990         (c_parser_postfix_expression_after_paren_type): Update calls to
12991         groktypename and build_compound_literal.  Handle expressions with
12992         side effects in type name.
12993         (c_parser_postfix_expression_after_primary): Update call to
12994         c_parser_expr_list.  Set original_code for calls to
12995         __builtin_constant_p.
12996         (c_parser_expr_list): Take extra parameter fold_p.  Fold
12997         expressions if requested.
12998         (c_parser_objc_type_name): Update call to groktypename.
12999         (c_parser_objc_synchronized_statement): Fold expression.
13000         (c_parser_objc_receiver): Fold expression.
13001         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
13002         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
13003         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
13004         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
13005         (struct c_typespec): Add elements expr and expr_const_operands.
13006         (struct c_declspecs): Add elements expr and expr_const_operands.
13007         (groktypename, build_conditional_expr, build_compound_literal):
13008         Update prototypes.
13009         (in_late_binary_op): Declare.
13010         * c-typeck.c (note_integer_operands): New function.
13011         (in_late_binary_op): New variable.
13012         (decl_constant_value_for_broken_optimization): Move to c-common.c
13013         and rename to decl_constant_value_for_optimization.
13014         (default_function_array_conversion): Do not strip nops.
13015         (default_conversion): Do not call
13016         decl_constant_value_for_broken_optimization.
13017         (build_array_ref): Do not fold result.
13018         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
13019         result when operand is a VLA.
13020         (c_expr_sizeof_type): Update call to groktypename.  Handle
13021         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
13022         result when operand names a VLA type.
13023         (build_function_call): Update call to build_compound_literal.
13024         Only fold result for calls to __builtin_* functions.  Strip
13025         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
13026         the function designator.
13027         (convert_arguments): Fold arguments.  Update call to
13028         convert_for_assignment.
13029         (build_unary_op): Handle increment and decrement of
13030         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
13031         decrement earlier.  Fold operand of increment and decrement.
13032         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
13033         built for integer operand.  Wrap returns that are INTEGER_CSTs
13034         without being integer constant expressions or that have integer
13035         constant operands without being INTEGER_CSTs.
13036         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
13037         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
13038         result is an integer constant expression or can be used in
13039         unevaluated parts of one and avoid folding and wrap as
13040         appropriate.  Fold operands before possibly doing -Wsign-compare
13041         warnings.
13042         (build_compound_expr): Wrap result for C99 if operands can be used
13043         in integer constant expressions.
13044         (build_c_cast): Update call to digest_init.  Do not ignore
13045         overflow from casting floating-point constants to integers.  Wrap
13046         results that could be confused with integer constant expressions,
13047         null pointer constants or floating-point constants.
13048         (c_cast_expr): Update call to groktypename.  Handle expressions
13049         included in type name.
13050         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
13051         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
13052         Update calls to convert_for_assignment.
13053         (convert_for_assignment): Take new parameter
13054         null_pointer_constant.  Do not strip nops or call
13055         decl_constant_value_for_broken_optimization.  Set
13056         in_late_binary_op for conversions to boolean.
13057         (store_init_value): Update call to digest_init.
13058         (digest_init): Take new parameter null_pointer_constant.  Do not
13059         call decl_constant_value_for_broken_optimization.  pedwarn for
13060         initializers not constant expressions.  Update calls to
13061         convert_for_assignment.
13062         (constructor_nonconst): New.
13063         (struct constructor_stack): Add nonconst element.
13064         (really_start_incremental_init, push_init_level, pop_init_level):
13065         Handle constructor_nonconst and nonconst element.
13066         (set_init_index): Call constant_expression_warning for array
13067         designators.
13068         (output_init_element): Fold value.  Set constructor_nonconst as
13069         applicable.  pedwarn for initializers not constant expressions.
13070         Update call to digest_init.  Call constant_expression_warning
13071         where constant initializers are required.
13072         (process_init_element): Use c_save_expr.
13073         (c_finish_goto_ptr): Fold expression.
13074         (c_finish_return): Fold return value.  Update call to
13075         convert_for_assignment.
13076         (c_start_case): Fold switch expression.
13077         (c_process_expr_stmt): Fold expression.
13078         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
13079         ensure statement expression is not evaluated in constant expression.
13080         (build_binary_op): Track whether results are integer constant
13081         expressions or may occur in such, disable folding and wrap results
13082         as applicable.  Fold operands for -Wsign-compare warnings unless
13083         in_late_binary_op.
13084         (c_objc_common_truthvalue_conversion): Handle results folded to
13085         integer constants that are not integer constant expressions.
13086         * doc/extend.texi: Document when typeof operands are evaluated,
13087         that condition of __builtin_choose_expr is an integer constant
13088         expression, and more about use of __builtin_constant_p in
13089         initializers.
13090
13091 2009-03-29  Richard Guenther  <rguenther@suse.de>
13092
13093         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
13094         propagate addresses of array references.
13095
13096 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
13097
13098         * regmove.c (perhaps_ends_bb_p): Remove.
13099         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
13100         from INSN and check that the main loop stays within that basic block.
13101         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
13102         (regmove_forward_pass): Split out from regmove_optimize.  Use
13103         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
13104         (regmove_backward_pass): Split out from regmove_optimize.  Use
13105         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
13106         (regmove_optimize): Simplify.
13107
13108 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13109
13110         PR target/39545
13111         * config/i386/i386.c (classify_argument): Ignore flexible array
13112         member in struct and warn ABI change.
13113
13114 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
13115
13116         * config/i386/i386-protos.h (ix86_agi_dependent): New.
13117
13118         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
13119         (ix86_adjust_cost): Updated.
13120
13121 2009-03-29  Jan Hubicka  <jh@suse.cz>
13122
13123         PR middle-end/28850
13124         * tree-pass.h (pass_cleanup_eh): New function.
13125         (remove_unreachable_regions): Break code handling RTL
13126         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
13127         that can not be reached by runtime.
13128         (can_be_reached_by_runtime): New function.
13129         (label_to_region_map): New function.
13130         (num_eh_regions): New function.
13131         (rtl_remove_unreachable_regions): New function.
13132         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
13133         (remove_eh_region): New function.
13134         * except.h: Include sbitmap and vecprim.
13135         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
13136         num_eh_regions): Declare.
13137         * passes.c (init_optimization_passes): Schedule cleanup_eh.
13138         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
13139         * tree-eh.c (tree_remove_unreachable_handlers): New function.
13140         (tree_empty_eh_handler_p): New function.
13141         (cleanup_empty_eh): New function.
13142         (cleanup_eh): New function.
13143         (pass_cleanup_eh): New function.
13144
13145 2009-03-29  Jan Hubicka  <jh@suse.cz>
13146
13147         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
13148         for removed regions.
13149
13150 2009-03-29  Jan Hubicka  <jh@suse.cz>
13151
13152         * except.c (dump_eh_tree): Dump all datastructures.
13153
13154 2009-03-29  Jan Hubicka  <jh@suse.cz>
13155
13156         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
13157         (duplicate_eh_regions_1): Likewise.
13158         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
13159         vector; call EH verification.
13160         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13161         Be ready for region being removed.
13162
13163 2009-03-29  Jan Hubicka  <jh@suse.cz>
13164
13165         * bitmap.c (bitmap_last_set_bit): New function.
13166         * bitmap.h (bitmap_last_set_bit): Declare.
13167
13168 2009-03-29  David Ayers  <ayers@fsfe.org>
13169
13170         PR objc/27377
13171         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
13172         by calling objc_compare_types and surpress warnings about
13173         incompatible C pointers that are compatible ObjC pointers.
13174
13175 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
13176
13177         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
13178         call initialize_inline_failed.
13179         (initialize_inline_failed): Move it from here ...
13180         * cgraph.c (initialize_inline_failed): ... to here.
13181         (cgraph_create_edge): Call initialize_inline_failed rather than
13182         setting inline_failed directly.
13183
13184 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13185
13186         PR target/32542
13187         * sysv4.opt (msdata): Improve comment.
13188         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
13189         * sysv4.h (SVR4_ASM_SPEC): Likewise.
13190
13191 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13192
13193         PR target/30451
13194         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
13195         load and store attributes.
13196
13197 2009-03-29  Ben Elliston  <bje@au.ibm.com>
13198
13199         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
13200         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
13201         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
13202         * doc/extend.texi (X86 Built-in Functions): Add index entries for
13203         __builtin_infq and __builtin_huge_valq.
13204
13205 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
13206
13207         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
13208         atmega8m1 devices.
13209         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
13210         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
13211
13212 2009-03-28  Xinliang David Li  <davidxl@google.com>
13213
13214         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
13215         (do_dbg_cnt): New function.
13216
13217 2009-03-28  Jan Hubicka  <jh@suse.cz>
13218
13219         Merge from pretty-ipa:
13220
13221         2009-03-27  Jan Hubicka  <jh@suse.cz>
13222
13223         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13224         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
13225         * passes.c (function_called_by_processed_nodes_p): New.
13226         * ipa-pure-const.c (check_call): Fix handling of operands.
13227         (analyze_function): Dump debug output for skipped bodies.
13228         (local_pure_const): Use function_called_by_processed_nodes_p.
13229         * dwarf2out.c (reference_to_unused): Use output.
13230         * passes.c (do_per_function_toporder): Likewise.
13231
13232         2008-11-12  Jan Hubicka  <jh@suse.cz>
13233
13234         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
13235         * ipa-pure-const.c (funct_state_d): Add can throw field; make
13236         state_set_in_source enum
13237         (check_decl): Ignore memory tags; do not set fake looping flags;
13238         dump diagnostics.
13239         (check_operand, check_tree, check_rhs_var, check_lhs_var,
13240         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
13241         (check_call, analyze_function): Rewrite.
13242         (check_stmt): New.
13243         (add_new_function): Update call of analyze_function.
13244         (generate_summary): Add call of analyze_function.
13245         (propagate): Propagate can_throw; handle state_set_in_source correctly.
13246         (local_pure_const): New function.
13247         (pass_local_pure_const): New pass.
13248         * ipa-inline.c (inline_transform): Set after_inlining.
13249         * tree-eh.c (stmt_can_throw_external): New.
13250         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
13251         work with aliasing built.
13252         * tree-flow.h (stmt_can_throw_external): New.
13253         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
13254         and local pure/const pass in early and late optimization queue.
13255
13256 2009-03-28  Martin Jambor  <mjambor@suse.cz>
13257
13258         * fold-const.c (get_pointer_modulus_and_residue): New parameter
13259         allow_func_align.
13260         (fold_binary): Allow function decl aligment consideration is the
13261         second argument is integer constant one.
13262         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
13263         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
13264         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
13265
13266 2009-03-28  Jan Hubicka  <jh@suse.cz>
13267
13268         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
13269         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
13270         * function.h (rtl_data): Add nothrow flag.
13271         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
13272         set DECL_NOTHROW for AVAILABLE functions.
13273
13274 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
13275
13276         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
13277         following vector keyword has expansion starting with pixel or bool
13278         keyword, expand vector to __vector and pixel or bool to __pixel or
13279         __bool.
13280
13281         PR c++/39554
13282         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
13283         warn_if_disallowed_function_p): Removed.
13284         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
13285         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
13286         warning_if_disallowed_function_p.
13287         * flags.h (warn_if_disallowed_function_p,
13288         warn_disallowed_functions): Removed.
13289         * common.opt (Wdisallowed-function-list=): Removed.
13290         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
13291
13292 2009-03-28  Richard Guenther  <rguenther@suse.de>
13293
13294         PR tree-optimization/38723
13295         * tree-ssa-pre.c (compute_avail): Add all default definitions to
13296         the entry block.
13297
13298 2009-03-28  Jan Hubicka  <jh@suse.cz>
13299
13300         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
13301         test introduced by my previous patch.
13302
13303 2009-03-28  Richard Guenther  <rguenther@suse.de>
13304
13305         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
13306         the PHIs value undefined.
13307
13308 2009-03-28  Jan Hubicka  <jh@suse.cz>
13309
13310         * tree-pass.h (pass_fixup_cfg): New pass.
13311         * ipa-inline.c (inline_transform): Set
13312         always_inline_functions_inlined/after_inlining.
13313         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
13314         (pass_fixup_cfg): New pass.
13315         * passes.c (init_optimization_passes): Add fixup_cfg.
13316
13317 2009-03-28  Richard Guenther  <rguenther@suse.de>
13318
13319         PR tree-optimization/38458
13320         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
13321         argument use the arguments copy-of value.
13322
13323 2009-03-28  Richard Guenther  <rguenther@suse.de>
13324
13325         PR tree-optimization/38180
13326         * tree-ssa-ccp.c (get_default_value): Simplify.
13327         (likely_value): Likewise.
13328         (surely_varying_stmt_p): Properly handle VOP case.
13329         (ccp_initialize): Likewise.
13330         (ccp_fold): Handle propagating through *&.
13331         (fold_const_aggregate_ref): Also handle decls.
13332
13333 2009-03-28  Jan Hubicka  <jh@suse.cz>
13334
13335         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
13336         * cgraph.h (cgraph_node): Likewise.
13337         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
13338         (cgraph_reset_node): Use process flag.
13339         (cgraph_mark_functions_to_output): Likewise.
13340         (cgraph_expand_function): Likewise.
13341         (cgraph_expand_all_functions): Likewise.
13342         (cgraph_output_in_order): Likewise.
13343         * dwarf2out.c (reference_to_unused): Likewise.
13344         * passes.c do_per_function_toporder): Likewise.
13345
13346 2009-03-28  Jan Hubicka  <jh@suse.cz>
13347
13348         Bring from lto-branch:
13349
13350         2008-09-03  Doug Kwan  <dougkwan@google.com>
13351
13352         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
13353         enums instead of reason strings.
13354         * cgraph.c (cgraph_create_edge): Same.
13355         (cgraph_inline_failed_string): New function.
13356         * cgraph.h (cgraph_inline_failed_t): New enum type.
13357         (cgraph_inline_failed_string): New prototype.
13358         (struct cgraph_edge): Change type of INLINED_FAILED from constant
13359         char pointer to cgraph_inline_failed_t.
13360         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
13361         (cgraph_default_inline_p): Ditto.
13362         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
13363         to cgraph_inline_failed_t pointer.
13364         * cif-code.def: New file.
13365         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
13366         reason string.
13367         (cgraph_check_inline_limits): Change type of REASON to pointer to
13368         cgraph_inline_failed_t.  Replace reason strings with enums.
13369         (cgraph_default_inline_p): Ditto.
13370         (cgraph_recursive_inlining_p): Ditto.
13371         (update_caller_keys): Change type of FAILED_REASON to
13372         cgraph_inline_failed_t.
13373         (cgraph_set_inline_failed): Change type of REASON to pointer to
13374         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
13375         convert enums to strings for text output.
13376         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
13377         to be of type cgraph_inline_failed_t.  Replace reason strings with
13378         enums.  Call cgraph_inline_failed_string to covert enums
13379         to strings for text output.
13380         (cgraph_decide_inlining): Replace reason strings with enums.
13381         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
13382         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
13383         for text output.
13384         * tree-inline.c (expand_call_inline): Change type of REASON
13385         to cgraph_inline_failed_t.  Replace reason strings with enums.
13386         Call cgraph_inline_failed_string for text output.
13387         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
13388         (cgraph.o): Ditto.
13389
13390 2009-03-28  Jan Hubicka  <jh@suse.cz>
13391
13392         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
13393         cgraph_clone_node): Remove master clone handling.
13394         (cgraph_is_master_clone, cgraph_master_clone): Remove.
13395         * cgraph.h (master_clone): Remove.
13396         (cgraph_is_master_clone, cgraph_master_clone): Remove.
13397         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
13398         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
13399
13400 2009-03-28  Jan Hubicka  <jh@suse.cz>
13401
13402         * cgraph.c (cgraph_function_body_availability): Functions declared
13403         inline are always safe to assume that it is not going to be replaced.
13404
13405 2009-03-28  Richard Guenther  <rguenther@suse.de>
13406
13407         PR tree-optimization/38513
13408         * tree-ssa-pre.c (eliminate): Remove redundant stores.
13409         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
13410         EXC_PTR_EXPR and FILTER_EXPR.
13411         (get_ref_from_reference_ops): Likewise.
13412
13413 2009-03-28  Richard Guenther  <rguenther@suse.de>
13414
13415         PR tree-optimization/38968
13416         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
13417         Use FLOOR_MOD_EXPR to compute misalignment.
13418
13419 2009-03-28  Richard Guenther  <rguenther@suse.de>
13420
13421         PR tree-optimization/37795
13422         * tree.h (combine_comparisons): Declare.
13423         * fold-const.c (combine_comparisons): Export.
13424         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
13425         comparisons.
13426         (ifcombine_iforif): Use combine_comparisons.
13427
13428 2009-03-28  Jan Hubicka  <jh@suse.cz>
13429
13430         * tree-eh.c (inlinable_call_p): New function.
13431         (make_eh_edges): Use it.
13432         (verify_eh_edges): Use it.
13433         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
13434         * except.c (reachable_next_level): Add inlinable_function argument
13435         (sjlj_find_directly_reachable_regions): Update.
13436         (add_reachable_handler): Do not set saw_any_handlers.
13437         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
13438         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
13439         Add new inlinable call parameter.
13440         (can_throw_internal, can_throw_external): Update.
13441         * except.h (can_throw_internal_1, can_throw_external_1,
13442         foreach_reachable_handler): Update declaration.
13443
13444 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
13445
13446         * config/arm/t-arm-coff, config/h8300/coff.h,
13447         config/i386/i386-aout.h, config/i386/i386-coff.h,
13448         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
13449         config/pdp11/2bsd.h, config/rs6000/aix41.h,
13450         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
13451         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
13452         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
13453         sys-types.h: Remove.
13454         * Makefile.in: Remove protoize and fixproto support and references
13455         in comments.
13456         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
13457         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
13458         Remove.
13459         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
13460         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
13461         unprotoize$(exeext).
13462         (rest.encap): Don't depend on $(STMP_FIXPROTO)
13463         (.PHONY): Don't depend on proto.
13464         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
13465         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
13466         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
13467         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
13468         build/gen-protos.o, build/scan.o, xsys-protos.h,
13469         build/fix-header$(build_exeext), build/fix-header.o,
13470         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
13471         stmp-install-fixproto): Remove.
13472         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
13473         SYSCALLS.c or fixproto files.
13474         (install-common): Don't install protoize.
13475         (install-headers-tar, install-headers-cpio, install-headers-cp):
13476         Don't depend on $(STMP_FIXPROTO).
13477         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
13478         install fixproto files or write out fixproto settings.
13479         (uninstall): Don't uninstall protoize.
13480         * config.gcc (use_fixproto): Remove.
13481         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
13482         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
13483         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
13484         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
13485         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
13486         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
13487         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
13488         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
13489         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
13490         * config/t-vxworks (STMP_FIXPROTO): Remove.
13491         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
13492         STMP_FIXPROTO): Remove.
13493         * config.in, configure: Regenerate.
13494         * crtstuff.c (gid_t, uid_t): Don't undefine.
13495         * doc/install.texi: Change m68k-coff to m68k-elf in example.
13496         (arm-*-coff, arm-*-aout: Remove target entries.
13497         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
13498         Remove mention of AIX 4.1.
13499         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
13500         * doc/invoke.texi (Running Protoize): Remove.
13501         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
13502         (Protoize Caveats): Remove.
13503         * tsystem.h: Update comments on headers assumed to exist.
13504
13505 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
13506
13507         * genautomata.c: Add a new year to the copyright.  Add a new
13508         reference.
13509         (struct insn_reserv_decl): Add comments for member bypass_list.
13510         (find_bypass): Remove.
13511         (insert_bypass): New.
13512         (process_decls): Use insert_bypass.
13513         (output_internal_insn_latency_func): Output all bypasses with the
13514         same input insn in one switch case.
13515
13516         * rtl.def (define_bypass): Describe bypass choice.
13517         * doc/md.texi (define_bypass): Ditto.
13518
13519 2009-03-27  Richard Guenther  <rguenther@suse.de>
13520
13521         * gimplify.c (mark_addressable): Export.
13522         * tree-flow.h (mark_addressable): Declare.
13523         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
13524         * tree-ssa.c (verify_phi_args): Verify that address taken
13525         variables have TREE_ADDRESSABLE set.
13526
13527 2009-03-27  Richard Guenther  <rguenther@suse.de>
13528
13529         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
13530         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
13531         Do not mark decls TREE_ADDRESSABLE.
13532         (build_fold_addr_expr): Adjust.
13533         (fold_addr_expr): Remove.
13534         (fold_unary): Use build_fold_addr_expr.
13535         (fold_comparison): Likewise.
13536         (split_address_to_core_and_offset): Likewise.
13537         * coverage.c (tree_coverage_counter_addr): Mark the array decl
13538         TREE_ADDRESSABLE.
13539         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
13540         (gimplify_modify_expr_to_memcpy): Mark source and destination
13541         addressable.
13542         * omp-low.c (create_omp_child_function): Mark the object decl
13543         TREE_ADDRESSABLE.
13544         (lower_rec_input_clauses): Mark the var we take the address of
13545         TREE_ADDRESSABLE.
13546         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
13547
13548 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13549
13550         PR middle-end/39315
13551         * cfgexpand.c (expand_one_stack_var_at): Change alignment
13552         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
13553
13554 2009-03-27  Richard Guenther  <rguenther@suse.de>
13555
13556         PR tree-optimization/39120
13557         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
13558         constraints.
13559         (handle_lhs_call): Process return constraints.  Add escape
13560         constraints if necessary.
13561         (handle_const_call): Fill out return constraints.  Make nested
13562         case more precise.  Avoid consttmp if possible.
13563         (handle_pure_call): Fill out return constraints.  Avoid
13564         callused if possible.
13565         (find_func_aliases): Simplify call handling.
13566
13567 2009-03-27  Richard Guenther  <rguenther@suse.de>
13568
13569         PR tree-optimization/39120
13570         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
13571         as a representative.
13572         (solve_graph): Do propagate CALLUSED.
13573         (handle_pure_call): Use a scalar constraint from CALLUSED for
13574         the return value.
13575         (find_what_p_points_to): CALLUSED shall not appear in poins-to
13576         solutions.
13577
13578 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13579
13580         PR c/39323
13581         * c-common.c (handle_aligned_attribute): Properly check alignment
13582         overflow.  Use (1U << i) instead of (1 << i).
13583
13584         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
13585
13586         * expr.h (get_mem_align_offset): Updated.
13587
13588         * tree.h (tree_decl_common): Change align to "unsigned int" and
13589         move it before pointer_alias_set.
13590
13591 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13592             Jakub Jelinek  <jakub@redhat.com>
13593
13594         PR target/38034
13595         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
13596         gr_register_operand with gr_reg_or_0_operand.
13597         (cmpxchg_rel_di): Likewise.
13598         (sync_lock_test_and_set<mode>): Likewise.
13599
13600 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13601
13602         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
13603         (true_regnum): Likewise.
13604
13605         * rtlanal.c (subreg_info): Moved to ...
13606         * rtl.h (subreg_info): Here.  New.
13607         (subreg_get_info): New.
13608
13609         * rtlanal.c (subreg_get_info): Make it extern.
13610
13611 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13612
13613         PR target/39472
13614         * config/i386/i386.c (ix86_abi): New.
13615         (override_options): Handle -mabi=.
13616         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
13617         (ix86_call_abi_override): Likewise.
13618         (init_cumulative_args): Likewise.
13619         (function_arg_advance): Likewise.
13620         (function_arg_64): Likewise.
13621         (function_arg): Likewise.
13622         (ix86_pass_by_reference): Likewise.
13623         (ix86_function_value_regno_p): Likewise.
13624         (ix86_build_builtin_va_list_abi): Likewise.
13625         (setup_incoming_varargs_64): Likewise.
13626         (is_va_list_char_pointer): Likewise.
13627         (ix86_init_machine_status): Likewise.
13628         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
13629         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
13630         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
13631         (ix86_function_abi): Make it static and return enum calling_abi.
13632         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
13633         with ix86_abi.
13634         (ix86_fn_abi_va_list): Updated.
13635
13636         * config/i386/i386.h (ix86_abi): New.
13637         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
13638         (CONDITIONAL_REGISTER_USAGE): Likewise.
13639         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
13640         (machine_function): Likewise.
13641
13642         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
13643         with ix86_abi.
13644         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
13645         (STACK_BOUNDARY): Likewise.
13646         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
13647
13648         * config/i386/i386.opt (mabi=): New.
13649
13650         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
13651         return enum calling_abi.
13652         (ix86_function_type_abi): Likewise.
13653         (ix86_function_abi): Removed.
13654
13655         * doc/invoke.texi: Document -mabi= option for x86.
13656
13657 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13658
13659         * builtins.c (real_dconstp): Delete.
13660         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
13661
13662 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
13663             Jakub Jelinek  <jakub@redhat.com>
13664
13665         PR debug/37959
13666         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
13667         (gen_subprogram_die): When a function is explicit, generate the
13668         DW_AT_explicit attribute.
13669         * langhooks.h (struct lang_hooks_for_decls): Add
13670         function_decl_explicit_p langhook.
13671         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
13672         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
13673
13674 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
13675
13676         * builtins.c (fold_builtin_memory_op): Optimize memmove
13677         into memcpy if we can prove source and destination don't overlap.
13678
13679         * tree-inline.c: Include gt-tree-inline.h.
13680         (clone_fn_id_num): New variable.
13681         (clone_function_name): New function.
13682         (tree_function_versioning): Use it.
13683         * Makefile.in (GTFILES): Add tree-inline.c.
13684
13685 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
13686
13687         * BASE-VER: Change to 4.5.0.
13688
13689 2009-03-27  Xinliang David Li  <davidxl@google.com>
13690
13691         PR tree-optimization/39557
13692         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
13693
13694 2009-03-27  Xinliang David Li  <davidxl@google.com>
13695
13696         PR tree-optimization/39548
13697         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
13698         candidate check.
13699
13700 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13701
13702         * c-common.c (pointer_int_sum): Use %wd on return from
13703         tree_low_cst.
13704
13705 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
13706
13707         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
13708         on return from tree_low_cst.
13709
13710 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13711
13712         PR c++/36799
13713         * ginclude/stdarg.h (va_copy): Define also for
13714         __GXX_EXPERIMENTAL_CXX0X__.
13715
13716 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
13717
13718         PR c++/35652
13719         * builtins.h (c_strlen): Do not warn here.
13720         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
13721         * c-common.c (pointer_int_sum): Take an explicit location.
13722         Warn about offsets out of bounds.
13723         * c-common.h (pointer_int_sum): Adjust declaration.
13724
13725 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13726
13727         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
13728         markup glitch.
13729
13730 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
13731
13732         PR c++/39554
13733         * opts.c (warn_if_disallowed_function_p): Don't assume
13734         get_callee_fndecl must return non-NULL.
13735
13736 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
13737
13738         PR rtl-optimization/39522
13739         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
13740         when reg_reloaded_valid is set.
13741
13742 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13743
13744         * config/spu/divv2df3.c: New file.
13745         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
13746         (DPBIT_FUNCS): Filter out _div_df.
13747
13748 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
13749
13750         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
13751         a jump insn, count that jump in the distance to the loop start.
13752
13753 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
13754
13755         PR target/39523
13756         * config/sh/sh.c (calc_live_regs): Fix condition for global
13757         registers except PIC_OFFSET_TABLE_REGNUM.
13758
13759 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
13760
13761         PR/39518
13762         * doc/invoke.texi (-mconsole): New.
13763         (-mcygwin): New.
13764         (-mno-cygwin): New.
13765         (-mdll): New.
13766         (-mnop-fun-dllimport): New.
13767         (-mthread): New.
13768         (-mwin32): New.
13769         (-mwindows): New.
13770         (sub section "i386 and x86-64 Windows Options"): New.
13771
13772 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
13773
13774         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
13775         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
13776
13777 2009-03-25  Richard Guenther  <rguenther@suse.de>
13778
13779         PR middle-end/39497
13780         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
13781         of -Wno-error.
13782
13783 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
13784
13785         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
13786         neither of haifa/selective schedulers are working.
13787
13788 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13789
13790         * doc/invoke.texi (Debugging Options): Fix description of
13791         -fno-merge-debug-strings.
13792
13793 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
13794
13795         * config/cris/libgcc.ver: New version-script.
13796         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
13797
13798         * configure.ac <GAS features, nop mnemonic>: Add pattern
13799         crisv32-*-* for "nop".
13800         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
13801         * configure: Regenerate.
13802
13803 2009-03-24  Ira Rosen  <irar@il.ibm.com>
13804
13805         PR tree-optimization/39529
13806         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
13807         mark_sym_for_renaming for the tag copied to the new vector
13808         pointer.
13809
13810 2009-03-24  Arthur Loiret  <aloiret@debian.org>
13811
13812         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
13813         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
13814         EXTRA_SPEC_FUNCTIONS.
13815         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
13816         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
13817         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
13818         -march and -mtune options.
13819
13820 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
13821
13822         * config/m68k/t-rtems: Add m5329 multilib.
13823
13824 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
13825             Jakub Jelinek  <jakub@redhat.com>
13826
13827         PR debug/39524
13828         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
13829         nodes.
13830
13831 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
13832
13833         PR c/39495
13834         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
13835         instead of c_parser_expression_conv, if original_code isn't one of the
13836         4 allowed comparison codes, fail.
13837
13838 2009-03-23  Richard Guenther  <rguenther@suse.de>
13839
13840         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
13841         * tree.h (struct tree_type): Likewise.
13842         * reload.h (struct insn_chain): Likewise.
13843         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
13844         * function.h (struct function): Likewise.
13845         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
13846
13847 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
13848
13849         PR tree-optimization/39516
13850         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
13851
13852 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
13853
13854         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
13855         should be set true if BITS_PER_WORD of target is bigger than 32
13856
13857 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
13858
13859         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
13860         Translate -B-options to -rpath-link.  Correct existing
13861         rpath-link and conditionalize on !nostdlib.
13862
13863 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13864
13865         * doc/extend.texi (Function Attributes, Variable Attributes):
13866         Fix typos.
13867         * doc/invoke.texi (Debugging Options, Optimize Options)
13868         (i386 and x86-64 Options, MCore Options): Likewise.
13869
13870 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
13871
13872         PR debug/37890
13873         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
13874         it for block local namespace aliases.
13875         (gen_decl_die): Pass context_die to gen_namespace_die.
13876
13877 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
13878
13879         PR c/39495
13880         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
13881         minimum or maximum value.
13882
13883 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
13884
13885         * reginfo.c (globalize_reg): Recompute derived reg sets.
13886
13887 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
13888
13889         PR target/39063
13890         * libgcc2.c (mprotect): Do not use signed arguments for
13891         VirtualProtect, use DWORD arguments.  Also fix the 'may
13892         be used uninitialized' warning for the np variable.
13893
13894 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
13895
13896         PR target/39496
13897         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
13898         functions using regparm calling conventions when not optimizing.
13899         (ix86_function_sseregparm): Similarly for sseregparm calling
13900         conventions.
13901
13902 2009-03-19  Li Feng  <nemokingdom@gmail.com>
13903
13904         PR middle-end/39500
13905         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
13906         dependence if the first conflict is after niter iterations.
13907
13908 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
13909
13910         PR middle-end/38609
13911         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
13912         functions with dynamic stack-pointer adjustments.
13913
13914 2009-03-19  Ben Elliston  <bje@au.ibm.com>
13915
13916         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
13917         option; change to -msdata=data.
13918
13919 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13920
13921         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
13922         and -fopenmp.
13923
13924 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
13925
13926         PR target/35180
13927         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
13928
13929 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
13930
13931         * doc/invoke.texi (Code Gen Options): Expand discussion of
13932         -fno-common.
13933
13934 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
13935
13936         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
13937         * matrix-reorg.c (struct matrix_info): Likewise.
13938         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
13939         * rtl.h (struct mem_attrs): Likewise.
13940         * df.h (struct df): Likewise.
13941         * tree-data-ref.h (struct data_dependence_relation): Likewise.
13942         * ira-int.h (struct ira_allocno): Likewise.
13943         * df-scan.c (struct df_collection_rec): Likewise.
13944         * ira.c (struct equivalence): Likewise.
13945         * function.c (struct temp_slot): Likewise.
13946         * cfgloop.h (struct loop): Likewise.
13947
13948         PR debug/39485
13949         * function.c (use_register_for_decl): When not optimizing, disregard
13950         register keyword for variables with types containing methods.
13951
13952 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
13953
13954         PR middle-end/39447
13955         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
13956         (is_simple_operand): Call contains_component_ref_p before calling data
13957         reference analysis that would fail on COMPONENT_REFs.
13958
13959         * tree-vrp.c (search_for_addr_array): Fix formatting.
13960
13961 2009-03-18  Richard Guenther  <rguenther@suse.de>
13962
13963         * tree-vect-transform.c (vect_loop_versioning): Fold the
13964         generated comparisons.
13965         * tree-vectorizer.c (set_prologue_iterations): Likewise.
13966         (slpeel_tree_peel_loop_to_edge): Likewise.
13967
13968 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13969
13970         PR middle-end/37805
13971         * opts.c (print_specific_help): In addition to `undocumented',
13972         accept `separate' and `joined' flags if passed alone.  Describe
13973         output by the first matched one of those.
13974         (common_handle_option): Skip over empty strings.
13975         * gcc.c (display_help): Fix help string for `--help='.
13976         * doc/invoke.texi (Option Summary, Overall Options): With
13977         `--help=', classes and qualifiers can both be repeated, but
13978         only the latter can be negated.  One should not pass only
13979         negated qualifiers.  Fix markup and examples.
13980
13981         Revert
13982         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
13983         PR middle-end/37805
13984         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
13985         and -fhelp=separate.
13986
13987 2009-03-17  Jing Yu  <jingyu@google.com>
13988
13989         PR middle-end/39378
13990         * function.h (struct rtl_data): Move is_thunk from here...
13991         (struct function): ...to here.
13992         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
13993         * varasm.c (assemble_start_function): Change is_thunk from crtl to
13994         cfun.
13995         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
13996         cfun.
13997         (alpha_does_function_need_gp, alpha_start_function): Likewise.
13998         (alpha_output_function_end_prologue): Likewise.
13999         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
14000         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
14001         (rs6000_output_function_epilogue): Likewise.
14002         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
14003
14004 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
14005
14006         PR target/39482
14007         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
14008         from different units in a single alternative.
14009         (*truncdfsf_i387): Ditto.
14010         (*truncxfsf2_mixed): Ditto.
14011         (*truncxfdf2_mixed): Ditto.
14012
14013 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
14014
14015         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
14016         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
14017
14018         PR debug/39474
14019         * tree-ssa-live.c (remove_unused_locals): Don't remove local
14020         unused non-artificial variables when not optimizing.
14021
14022         PR debug/39471
14023         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
14024         DW_TAG_imported_module even if decl is IMPORTED_DECL with
14025         NAMESPACE_DECL in its DECL_INITIAL.
14026
14027         PR middle-end/39443
14028         * optabs.c (set_user_assembler_libfunc): New function.
14029         * expr.h (set_user_assembler_libfunc): New prototype.
14030         * c-common.c: Include libfuncs.h.
14031         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
14032         for memcmp, memset, memcpy, memmove and abort.
14033         * Makefile.in (c-common.o): Depend on libfuncs.h.
14034
14035         PR debug/39412
14036         * dwarf2out.c (gen_inlined_enumeration_type_die,
14037         gen_inlined_structure_type_die, gen_inlined_union_type_die,
14038         gen_tagged_type_instantiation_die): Removed.
14039         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
14040         do nothing.
14041
14042 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
14043
14044         PR testsuite/38526
14045         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
14046         its use.
14047         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
14048         (check-parallel-%): Ditto.
14049         (check-consistency): Ditto.
14050
14051 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
14052
14053         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
14054         local variable rhs by NULL_TREE.
14055
14056 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14057
14058         PR target/39477
14059         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
14060
14061 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14062
14063         PR target/39476
14064         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
14065
14066 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14067
14068         PR target/39473
14069         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
14070         for ms->sysv ABI calls only in 64bit mode.
14071
14072         * config/i386/i386.md (untyped_call): Support 32bit.
14073
14074 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
14075
14076         * doc/extend.texi: Replace x86_65 with x86_64.
14077
14078 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
14079
14080         PR tree-optimization/39455
14081         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
14082         mismatches for POINTER_TYPE_P (type).
14083         (number_of_iterations_le): Likewise.
14084
14085 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
14086
14087         * config/picochip/picochip.c: Removed profiling support.
14088         * config/picochip/picochip.md: Removed profiling instruction.
14089         * config/picochip/picochip.h: Removed profiling builtin.
14090
14091 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
14092
14093         * doc/install.texi (--with-host-libstdcxx): Document.
14094
14095 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
14096
14097         PR target/34299
14098         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
14099         generate a warning if the function name does not begin with
14100         "__vector" and the function has either the 'signal' or 'interrupt'
14101         attribute, from here to ...
14102         (avr_declare_function_name): ...here. New function.
14103         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
14104         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
14105
14106 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
14107
14108         PR bootstrap/39454
14109         * cse.c (fold_rtx): Don't modify original const_arg1 when
14110         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
14111         separate variable instead.
14112         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
14113         from out of range shift counts.
14114         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
14115
14116 2009-03-13  Catherine Moore  <clm@codesourcery.com>
14117
14118         * config/i386/x-mingw32 (host-mingw32.o): Replace
14119         diagnostic.h with $(DIAGNOSTIC_H).
14120
14121 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
14122
14123         PR target/39431
14124         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
14125         predicate.
14126         * config/i386/sync.md (sync_compare_and_swap<mode>,
14127         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
14128         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
14129         into a register.
14130         (sync_double_compare_and_swapdi_pic,
14131         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
14132         cmpxchg8b_pic_memory_operand instead of just memory_operand.
14133
14134 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14135
14136         PR target/39445
14137         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
14138
14139 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14140
14141         PR target/39327
14142         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14143         (avx_addsubv4df3): Likewise.
14144         (*avx_addsubv4sf3): Likewise.
14145         (sse3_addsubv4sf3): Likewise.
14146
14147 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
14148
14149         PR target/38824
14150         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
14151
14152 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
14153
14154         PR debug/39432
14155         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
14156         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
14157         registers for allocnos created from user-defined variables.
14158
14159 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14160
14161         PR target/39181
14162         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
14163         of non-integer mode as well.
14164
14165 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
14166
14167         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
14168         for functions for which the parameter types are unknown.
14169
14170 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
14171
14172         PR target/39137
14173         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
14174         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
14175         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
14176         * config/i386/i386.c (ix86_local_alignment): For
14177         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
14178         long long variables on the stack to avoid dynamic realignment.
14179         Allow the first argument to be a decl rather than type.
14180         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
14181
14182 2009-03-11  Nick Clifton  <nickc@redhat.com>
14183
14184         PR target/5362
14185         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
14186         options.
14187         Add description to mno-lsim option.
14188         * config/mcore/mcore.h: Remove comment about deprecated m4align
14189         option.
14190         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
14191         * doc/invoke.texi: Add description of mno-lsim and
14192         mstack-increment options.
14193
14194         * config/fr30/fr30.opt: Document the -mno-lsim option.
14195         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
14196         and -mno-lsim options.
14197
14198 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14199
14200         * fold-const.c (fold_comparison): Only call fold_inf_compare
14201         if the mode supports infinities.
14202
14203 2009-03-11  Jason Merrill  <jason@redhat.com>
14204
14205         PR debug/39086
14206         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
14207         end already did.  Notice GIMPLE_CALL modifications of the result.
14208         Don't copy debug information from an ignored decl or a decl from
14209         another function.
14210
14211 2009-03-10  Richard Guenther  <rguenther@suse.de>
14212             Nathan Froyd  <froydnj@codesourcery.com>
14213
14214         PR middle-end/37850
14215         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
14216         (__divMODE3): Likewise.
14217
14218 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
14219
14220         PR tree-optimization/39394
14221         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
14222         DECL_SIZE_UNIT of variable length FIELD_DECLs.
14223
14224 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14225
14226         * recog.c (verfiy_changes): Disallow renaming of hard regs in
14227         inline asms for register asm ("") declarations.
14228
14229 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
14230
14231         * fold-const.c (fold_unary): Fix comment.
14232
14233 2009-03-07  Jan Hubicka  <jh@suse.cz>
14234
14235         PR target/39361
14236         * tree-inline.c (setup_one_parameter): Do replacement of const
14237         argument by constant in SSA form.
14238
14239 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14240
14241         PR middle-end/38028
14242         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
14243         determine alignment passed to assign_stack_local.
14244         (assign_parms_unsplit_complex): Likewise.
14245         * except.c (sjlj_build_landing_pads): Likewise.
14246
14247 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
14248
14249         PR middle-end/39360
14250         * tree-flow.h (add_referenced_var): Return bool instead of void.
14251         * tree-dfa.c (add_referenced_var): Return result of
14252         referenced_var_check_and_insert call.
14253         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
14254         of referenced_var_check_and_insert.
14255
14256         PR debug/39372
14257         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
14258         (gen_variable_die): Emit DW_AT_location on abstract static variable's
14259         DIE, don't emit it if abstract origin already has it.
14260         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
14261         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
14262
14263 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
14264
14265         * genpreds.c (needs_variable): Fix parentheses at variable name
14266         detection.
14267         (write_tm_constrs_h): Indent generated code.
14268
14269 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14270
14271         * doc/extend.texi (Function Attributes): Add documentation
14272         for isr attributes.
14273
14274 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
14275
14276         PR debug/39387
14277         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
14278         take locus from its DECL_SOURCE_LOCATION instead of input_location.
14279
14280 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
14281
14282         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
14283         the loop as bad.
14284
14285 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
14286
14287         PR debug/39379
14288         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
14289         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
14290
14291 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
14292
14293         * config/i386/i386.md (R8_REG, R9_REG): New constants.
14294         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
14295         constants instead of magic numbers.
14296         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
14297         (QI_REG_P): Ditto.
14298         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
14299         (x86_64_ms_abi_int_parameter_registers): Ditto.
14300         (x86_64_int_return_registers): Ditto.
14301         (ix86_maybe_switch_abi): Ditto.
14302         (ix86_expand_call): Ditto for clobbered_registers array.
14303         (ix86_hard_regno_mode_ok): Ditto.
14304         (x86_extended_QIreg_mentioned_p): Ditto.
14305
14306 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
14307
14308         PR tree-optimization/39349
14309         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
14310
14311         * combine.c (gen_lowpart_for_combine): Use omode when generating
14312         clobber.
14313
14314 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
14315
14316         PR rtl-optimization/39235
14317         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
14318
14319 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
14320
14321         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
14322
14323 2009-03-04  Richard Guenther  <rguenther@suse.de>
14324
14325         PR tree-optimization/39362
14326         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
14327         that occur in abnormal PHIs should be varying.
14328
14329 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
14330
14331         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
14332         Extend comments.
14333         (simple_iv):  Take loop as an argument instead of statement.
14334         * tree-scalar-evolution.h (simple_iv): Declaration changed.
14335         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
14336         to simple_iv.
14337         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
14338         Ditto.
14339         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
14340         * matrix-reorg.c (analyze_transpose): Ditto.
14341         * tree-data-ref.c (dr_analyze_innermost): Ditto.
14342         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14343         * tree-predcom.c (ref_at_iteration): Ditto.
14344         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
14345
14346 2009-03-04  Richard Guenther  <rguenther@suse.de>
14347
14348         PR tree-optimization/39358
14349         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
14350         escaped_id and callused_id.
14351         (solve_graph): Likewise.
14352
14353 2009-03-04  Richard Guenther  <rguenther@suse.de>
14354
14355         PR tree-optimization/39339
14356         * tree-sra.c (try_instantiate_multiple_fields): Make it
14357         no longer ICE on the above.
14358
14359 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
14360
14361         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
14362         that fits within Pmode.
14363
14364 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
14365
14366         PR middle-end/10109
14367         * tm.texi (LIBCALL_VALUE): Update description.
14368
14369 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
14370
14371         PR middle-end/34443
14372         * doc/extend.texi (section): Update description.
14373
14374 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
14375
14376         PR middle-end/39345
14377         * tree-inline.c (remapped_type): New.
14378         (can_be_nonlocal): Call remapped_type instead of remap_type.
14379
14380 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
14381
14382         PR fortran/39354
14383         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
14384         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
14385
14386 2009-03-03  Richard Guenther  <rguenther@suse.de>
14387
14388         PR middle-end/39272
14389         * tree.c (tree_nonartificial_location): New function.
14390         * tree.h (tree_nonartificial_location): Declare.
14391         * builtins.c (expand_builtin_memory_chk): Provide location
14392         of the call location for artificial function pieces.
14393         (maybe_emit_chk_warning): Likewise.
14394         (maybe_emit_sprintf_chk_warning): Likewise.
14395         (maybe_emit_free_warning): Likewise.
14396         * expr.c (expand_expr_real_1): Likewise.
14397
14398 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
14399
14400         PR tree-optimization/39343
14401         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
14402         COMPONENT_REF t has ARRAY_TYPE.
14403
14404 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
14405
14406         PR middle-end/39335
14407         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
14408         when the type precision of the induction variable should be
14409         larger than the type precision of nit.
14410         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
14411         * graphite.c (graphite_loop_normal_form): Same.
14412         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
14413
14414 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
14415
14416         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
14417         (*call_1_rex64_ms_sysv): Use named constants instead of magic
14418         numbers to describe clobbered registers.
14419         (*call_value_0_rex64_ms_sysv): Ditto.
14420         * config/i386/mmx.md (mmx_emms): Ditto.
14421         (mmx_femms): Ditto.
14422
14423 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
14424
14425         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
14426         of ABI_64.
14427
14428 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14429
14430         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
14431         (spu_section_type_flags): New function.
14432
14433 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
14434
14435         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
14436         reg_class_contents of FLOAT_REGS into a temporary.
14437
14438 2009-03-02  Richard Guenther  <rguenther@suse.de>
14439             Ira Rosen  <irar@il.ibm.com>
14440
14441         PR tree-optimization/39318
14442         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
14443         information to the vectorized statement.
14444
14445 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
14446
14447         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
14448         variable.  Use defined names instead of magic constants for REX SSE
14449         registers.
14450
14451 2009-03-01  Richard Guenther  <rguenther@suse.de>
14452
14453         PR tree-optimization/39331
14454         * omp-low.c (lower_send_shared_vars): Do not receive new
14455         values for the reference of DECL_BY_REFERENCE parms or results.
14456
14457 2009-03-01  Jan Hubicka  <jh@suse.cz>
14458
14459         PR debug/39267
14460         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
14461         BLOCK_NONLOCALIZED_VAR): New macros.
14462         (tree_block): Add nonlocalized_vars.
14463         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
14464         gen_decl_die): Add origin argument.  Allow generation of die with
14465         origin at hand only.
14466         (gen_member_die, gen_type_die_with_usage, force_decl_die,
14467         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
14468         of gen_*.
14469         (gen_block_die): Fix checking for unused blocks.
14470         (process_scope_var): Break out from .... ; work with origins only.
14471         (decls_for_scope) ... here; process nonlocalized list.
14472         (dwarf2out_ignore_block): Look for nonlocalized vars.
14473         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
14474         vars.
14475         (dump_scope_block): Dump them.
14476         * tree-inline.c (remap_decls): Handle nonlocalized vars.
14477         (remap_block): Likewise.
14478         (can_be_nonlocal): New predicate.
14479         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
14480
14481 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14482
14483         * configure: Regenerate.
14484
14485 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14486
14487         * optc-gen.awk: No need to duplicate option flags twice.
14488         Reuse help texts for duplicate options which do not have any.
14489
14490         * gcc.c (display_help): Document --version.
14491
14492         * gcc.c (main): If print_help_list and verbose_flag, ensure
14493         driver output comes before subprocess output.
14494
14495         * optc-gen.awk: Assign all remaining fields to help string,
14496         space-separated, for multi-line help in *.opt.
14497
14498         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
14499         -Wno-pedantic-ms-format is for MinGW targets only.
14500
14501         * doc/options.texi (Option file format): Fix bad indentation,
14502         restoring dropped sentence.
14503
14504 2009-02-28  Jan Hubicka  <jh@suse.cz>
14505
14506         * tree-inline.c (tree_function_versioning): Output debug info.
14507
14508 2009-02-28  Jan Hubicka  <jh@suse.cz>
14509
14510         PR debug/39267
14511         * tree-inline.c (setup_one_parameter): Do not copy propagate
14512         arguments when not optimizing.
14513
14514 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
14515
14516         PR target/39327
14517         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
14518         (avx_addsubv4df3): Likewise.
14519         (*avx_addsubv4sf3): Likewise.
14520         (sse3_addsubv4sf3): Likewise.
14521         (*avx_addsubv2df3): Likewise.
14522         (sse3_addsubv2df3): Likewise.
14523         (avx_unpckhps256): Correct item selectors.
14524         (avx_unpcklps256): Likewise.
14525         (avx_unpckhpd256): Likewise.
14526         (avx_unpcklpd256): Likewise.
14527
14528 2009-02-28  Jan Hubicka  <jh@suse.cz>
14529
14530         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
14531         static vars.
14532         (copy_arguments_for_versioning): If var is declared don't declare it.
14533         (tree_function_versioning): First setup substitutions and then copy
14534         args.
14535
14536 2009-02-27  Jan Hubicka  <jh@suse.cz>
14537
14538         PR debug/39267
14539         * cgraph.h (varpool_output_debug_info): Remove.
14540         * cgraphunit.c (varpool_output_debug_info): Remove.
14541         * dwarf2out.c (deferred_locations_struct): New struct
14542         (deferred_locations): New type.
14543         (deferred_locations_list): New static var.
14544         (deffer_location): New function.
14545         (gen_variable_die): Use it.
14546         (decls_for_scope): Output info on local static vars.
14547         (dwarf2out_finish): Process deferred locations.
14548         * varpool.c (varpool_output_debug_info): Remove.
14549
14550 2009-02-27  Jan Hubicka  <jh@suse.cz>
14551
14552         PR debug/39267
14553         * tree.h (TREE_PROTECTED): Fix comment.
14554         (BLOCK_HANDLER_BLOCK): Remove.
14555         (struct tree_block): Remove handler_block add body_block.
14556         (inlined_function_outer_scope_p): New.
14557         (is_body_block): Remove.
14558         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
14559         * dwarf2out.c (is_inlined_entry_point): Remove.
14560         (add_high_low_attributes): Use inlined_function_outer_scope_p.
14561         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
14562         code.
14563         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
14564         * gimplify.c (gimplify_expr): Gimplify body blocks.
14565         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
14566         block with multiple subblocks.
14567         (dump_scope_block): Prettier output; dump more flags and info.
14568         (dump_scope_blocks): New.
14569         (remove_unused_locals): Use dump_scope_blocks.
14570         * tree-flow.h (dump_scope_blocks): Declare.
14571         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
14572         * stmt.c (is_body_block): Remove.
14573         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
14574         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
14575
14576 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
14577
14578         PR middle-end/39308
14579         * graphite.c (graphite_loop_normal_form): Do not call
14580         number_of_iterations_exit from a gcc_assert.
14581
14582 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14583
14584         * config/s390/s390.c (s390_swap_cmp): Look for conditional
14585         jumps if COND is NULL.
14586         (find_cond_jump): New function.
14587         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
14588         * config/s390/s390.md: Remove z10_cobra attribute value.
14589
14590 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
14591
14592         * config/alpha/alpha.h (alpha_expand_mov): Return false if
14593         force_const_mem returns NULL_RTX.
14594
14595 2009-02-26  Jan Hubicka  <jh@suse.cz>
14596
14597         PR debug/39267
14598         * cgraph.h (varpool_output_debug_info): Remove.
14599         * cgraphunit.c (varpool_output_debug_info): Remove.
14600         * dwarf2out.c (deferred_locations_struct): New struct
14601         (deferred_locations): New type.
14602         (deferred_locations_list): New static var.
14603         (deffer_location): New function.
14604         (gen_variable_die): Use it.
14605         (decls_for_scope): Output info on local static vars.
14606         (dwarf2out_finish): Process deferred locations.
14607         * varpool.c (varpool_output_debug_info): Remove.
14608
14609 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
14610
14611         PR rtl-optimization/39241
14612         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
14613         to subreg_offset_representable_p.
14614
14615 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
14616
14617         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
14618         execute function prototype.  Get f and nregs from max_reg_num
14619         and get_insns.  Remove the first backward pass as it's dead,
14620         guard the forward pass by flag_expensive_optimizations.
14621         (rest_of_handle_regmove): Delete.
14622         (pass_regmove): Replace it with regmove_optimize.
14623
14624 2009-02-25  Martin Jambor  <mjambor@suse.cz>
14625
14626         PR tree-optimization/39259
14627         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
14628         calls_alloca function flags.
14629         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
14630         calls are detected.
14631
14632 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
14633
14634         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
14635         flags_set_1_rtx, flags_set_1_set): Delete.
14636         (regmove_optimize): Do not call mark_flags_life_zones.
14637
14638 2009-02-24  Julian Brown  <julian@codesourcery.com>
14639
14640         PR target/35965
14641         * config/arm/arm.c (require_pic_register): Only set
14642         cfun->machine->pic_reg once per function.
14643
14644 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
14645
14646         * doc/invoke.texi (Link Options): Document an easier way to pass
14647         options that take arguments to the GNU linker using -Xlinker and -Wl.
14648
14649 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
14650
14651         PR target/33785
14652         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
14653
14654 2009-02-24  Richard Guenther  <rguenther@suse.de>
14655
14656         PR debug/39285
14657         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
14658
14659 2009-02-24  Richard Guenther  <rguenther@suse.de>
14660             Zdenek Dvorak  <ook@ucw.cz>
14661
14662         PR tree-optimization/39233
14663         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
14664         from converting them to a generic type.
14665
14666 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
14667
14668         PR tree-optimization/39260
14669         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
14670         contains a condition with a real type.
14671         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
14672
14673 2009-02-23  Jason Merrill  <jason@redhat.com>
14674
14675         PR c++/38880
14676         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
14677         narrowing_initializer_constant_valid_p.
14678         (narrowing_initializer_constant_valid_p): Don't return
14679         null_pointer_node for adding a pointer to itself.
14680
14681 2009-02-23  Jan Hubicka  <jh@suse.cz>
14682
14683         PR c/12245
14684         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
14685         resizing.
14686
14687 2009-02-23  Jan Hubicka  <jh@suse.cz>
14688
14689         PR tree-optimization/37709
14690         * tree.c (block_ultimate_origin): Move here from dwarf2out.
14691         * tree.h (block_ultimate_origin): Declare.
14692         * dwarf2out.c (block_ultimate_origin): Move to tree.c
14693         * tree-ssa-live.c (remove_unused_scope_block_p):
14694         Eliminate blocks containig no instructions nor live variables nor
14695         nested blocks.
14696         (dump_scope_block): New function.
14697         (remove_unused_locals): Enable removal of dead blocks by default;
14698         enable dumping at TDF_DETAILS.
14699
14700 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
14701
14702         * config/i386/i386.c (classify_argument): Don't allow COImode
14703         and OImode.
14704         (function_arg_advance_32): Don't allow OImode.
14705         (function_arg_32): Likewise.
14706         (function_value_32): Likewise.
14707         (return_in_memory_32): Likewise.
14708         (function_arg_64): Remove OImode comment.
14709
14710 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
14711
14712         PR target/39261
14713         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
14714         ix86_expand_vector_set for V4DImode in 64bit mode only.
14715         (ix86_expand_vector_init_one_var): Likewise.
14716
14717 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
14718
14719         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
14720
14721 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
14722
14723         PR bootstrap/39257
14724         * loop-iv.c: Revert last change.
14725         * emit-rtl.c: Likewise.
14726
14727 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
14728
14729         PR target/39256
14730         * config/i386/i386.c (type_natural_mode): Remove an extra
14731         space in the warning message.
14732         (function_value_32): Handle 32-byte vector modes.
14733         (return_in_memory_32): Likewise.
14734
14735 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
14736
14737         * loop-iv.c (truncate_value): New function.
14738         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
14739         of lowpart_subreg.
14740         (lowpart_subreg): Move to...
14741         * emit-rtl.c: ...here.
14742
14743 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
14744
14745         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
14746         accidental and undocumented change at revision 140860.
14747
14748 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
14749
14750         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
14751         take gimple_seq * arguments.
14752         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
14753         types_compatible_p langhook.
14754
14755 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
14756             Joseph Myers  <joseph@codesourcery.com>
14757
14758         * config/arm/arm.c (arm_builtin_va_list): New function.
14759         (arm_expand_builtin_va_start): Likewise.
14760         (arm_gimplify_va_arg_expr): Likewise.
14761         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
14762         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
14763         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
14764         (va_list_type): New variable.
14765         (arm_mangle_type): Mangle va_list_type appropriately.
14766
14767 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
14768
14769         PR middle-end/39157
14770         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
14771         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
14772         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
14773         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
14774         parameter to 1000 for -O1 by default.
14775         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
14776         parameter.
14777         * loop-invariant.c: Include params.h.
14778         (move_loop_invariants): Don't call move_single_loop_invariants on
14779         very large loops.
14780
14781 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
14782
14783         * calls.c (emit_library_call_value_1): Use slot_offset instead of
14784         offset when calculating bounds for indexing stack_usage_map.  Fixes
14785         a buffer overflow with certain target setups.
14786
14787 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
14788
14789         PR target/39240
14790         * calls.c (expand_call): Clear try_tail_call if caller and callee
14791         disagree in promotion of function return value.
14792
14793 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
14794
14795         PR target/39175
14796         * c-common.c (c_determine_visibility): If visibility changed and
14797         DECL_RTL has been already set, call make_decl_rtl to update symbol
14798         flags.
14799
14800 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
14801
14802         PR c++/39188
14803         * varasm.c (assemble_variable): Don't check DECL_NAME when
14804         globalizing a variable.
14805
14806 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
14807
14808         PR c/38483
14809         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
14810         expression before any __builtin_trap call.
14811         * c-typeck.c (build_function_call): Convert and check function
14812         arguments before generating a call to a trap.  Evaluate the
14813         function arguments before the trap.
14814
14815 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
14816
14817         PR target/39228
14818         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
14819         (UNSPEC_FXAM_MEM): New unspec.
14820         (fxam<mode>2_i387_with_temp): New insn and split pattern.
14821         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
14822         memory using fxam<mode>2_i387_with_temp to remove excess precision.
14823
14824 2009-02-19  Richard Guenther  <rguenther@suse.de>
14825
14826         PR tree-optimization/39207
14827         PR tree-optimization/39074
14828         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
14829         storedanything_tree): New.
14830         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
14831         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
14832         (build_succ_graph): Add edges from STOREDANYTHING to all
14833         non-direct nodes.
14834         (init_base_vars): Initialize STOREDANYTHING.
14835         (compute_points_to_sets): Free substitution info after
14836         building the succ graph.
14837         (ipa_pta_execute): Likewise.
14838
14839         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
14840         field.
14841         (do_ds_constraint): Do not add to special var or non-pointer
14842         field solutions.
14843         (type_could_have_pointers): Split out from ...
14844         (could_have_pointers): ... here.  For arrays use the element type.
14845         (create_variable_info_for): Initialize may_have_pointers.
14846         (new_var_info): Likewise.
14847         (handle_lhs_call): Make the HEAP variable unknown-sized.
14848         (intra_create_variable_infos): Use a type with pointers for
14849         PARM_NOALIAS, make it unknown-sized.
14850
14851 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
14852
14853         PR target/39224
14854         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
14855
14856 2009-02-18  Jason Merrill  <jason@redhat.com>
14857
14858         PR target/39179
14859         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
14860         value if DECL_EXTERNAL.
14861         * tree-sra.c (sra_walk_gimple_assign): Likewise.
14862         * target.h (gcc_target::binds_local_p): Clarify "module".
14863         * tree.h (TREE_PUBLIC): Clarify "module".
14864
14865 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
14866
14867         PR target/38891
14868         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
14869         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
14870
14871 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
14872
14873         PR target/39082
14874         * c.opt (Wabi): Support C and ObjC.
14875         (Wpsabi): New.
14876
14877         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
14878
14879         * config/i386/i386.c (classify_argument): Warn once about the ABI
14880         change when passing union with long double.
14881
14882         * doc/invoke.texi: Update -Wabi for warning psABI changes.
14883
14884 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
14885
14886         PR c/35447
14887         * c-parser.c (c_parser_compound_statement): Always enter and leave
14888         a scope.
14889
14890 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14891
14892         PR target/34587
14893         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
14894
14895 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
14896
14897         PR tree-optimization/36922
14898         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
14899         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
14900         Likewise.
14901
14902 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
14903
14904         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
14905         to 0 for EABI64.
14906
14907 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
14908
14909         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
14910
14911 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
14912
14913         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
14914         tree sharing.
14915
14916 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
14917             Richard Sandiford  <rdsandiford@googlemail.com>
14918
14919         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
14920         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
14921         (loongson_biadd): ...this.
14922
14923 2009-02-17  Richard Guenther  <rguenther@suse.de>
14924
14925         PR tree-optimization/39202
14926         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
14927         a var make sure to follow existing collapses.
14928
14929 2009-02-17  Richard Guenther  <rguenther@suse.de>
14930
14931         PR middle-end/39214
14932         * langhooks.c (lhd_print_error_function): Check for NULL block.
14933
14934 2009-02-17  Richard Guenther  <rguenther@suse.de>
14935
14936         PR tree-optimization/39204
14937         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
14938         of the PHI arg.
14939
14940 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
14941
14942         * config/soft-fp/double.h: Update from glibc CVS.
14943
14944 2009-02-17  Richard Guenther  <rguenther@suse.de>
14945
14946         PR tree-optimization/39207
14947         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
14948         strict-aliasing warnings for pointers pointing to NULL.
14949
14950 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
14951
14952         PR c/35446
14953         * c-parser.c (c_parser_braced_init): Call pop_init_level when
14954         skipping until next close brace.
14955
14956 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
14957
14958         PR target/37049
14959         * config/i386/i386.c (ix86_expand_push): Set memory alignment
14960         to function argument boundary.
14961
14962 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
14963
14964         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
14965         in the lea_add. Reload eventually constraints it properly.
14966         * config/picochip/constraints.md: Remove the target constraint
14967         "b", since it is not needed anymore.
14968
14969 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
14970
14971         * gthr-dce.h: Uglify function parameter and local variable names.
14972         * gthr-gnat.h: Likewise.
14973         * gthr-mipssde.h: Likewise.
14974         * gthr-nks.h: Likewise.
14975         * gthr-posix95.h: Likewise.
14976         * gthr-posix.h: Likewise.
14977         * gthr-rtems.h: Likewise.
14978         * gthr-single.h: Likewise.
14979         * gthr-solaris.h: Likewise.
14980         * gthr-tpf.h: Likewise.
14981         * gthr-vxworks.h: Likewise.
14982         * gthr-win32.h: Likewise.
14983
14984 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
14985
14986         PR target/39196
14987         * config/i386/i386.md: Restrict the new peephole2 to move
14988         between MMX/SSE registers.
14989
14990 2009-02-15  Richard Guenther  <rguenther@suse.de>
14991
14992         Revert
14993         2009-02-13  Richard Guenther  <rguenther@suse.de>
14994
14995         * configure.ac: Enable LFS.
14996         * configure: Re-generate.
14997         * config.in: Likewise.
14998
14999 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15000
15001         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
15002         spu_srqwbyte, spu_srqwbytebc): Define.
15003         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
15004         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
15005         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
15006         "shrqby_<mode>"): New insn-and-split patterns.
15007         * config/spu/spu.c (expand_builtin_args): Determine and return
15008         number of operands using spu_builtin_description data.
15009         (spu_expand_builtin_1): Use it.
15010
15011 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
15012
15013         PR target/38056
15014         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
15015         TARGET_CONST_GP.
15016
15017 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15018
15019         PR target/39149
15020         * config/i386/i386.c (override_options): Correct warning
15021         messages for -malign-loops, -malign-jumps and -malign-functions.
15022
15023 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15024
15025         PR target/39152
15026         * config/i386/i386.md: Restrict the new peephole2 to move
15027         between the general purpose registers.
15028
15029 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
15030
15031         PR target/39162
15032         * config/i386/i386.c (type_natural_mode): Add a new argument.
15033         Return the original mode and warn ABI change if vector size is 32byte.
15034         (function_arg_advance): Updated.
15035         (function_arg): Likewise.
15036         (ix86_function_value): Likewise.
15037         (ix86_return_in_memory): Likewise.
15038         (ix86_sol10_return_in_memory): Likewise.
15039         (ix86_gimplify_va_arg): Likewise.
15040         (function_arg_32): Don't warn ABX ABI change here.
15041         (function_arg_64): Likewise.
15042
15043 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
15044
15045         * loop-iv.c (implies_p): In the final case, test that operands 0
15046         of the two comparisons match.
15047
15048         * config/bfin/bfin.c (find_prev_insn_start): New function.
15049         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
15050         (find_next_insn_start): Move.
15051
15052 2009-02-13  Richard Guenther  <rguenther@suse.de>
15053
15054         * configure.ac: Enable LFS.
15055         * configure: Re-generate.
15056         * config.in: Likewise.
15057
15058 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
15059
15060         PR c/35444
15061         * c-parser.c (c_parser_parms_list_declarator): Discard pending
15062         sizes on syntax error after some arguments have been parsed.
15063
15064 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
15065
15066         * doc/invoke.texi (-fira): Remove.
15067
15068 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15069
15070         * caller-save.c: Replace regclass.c with reginfo.c in comments.
15071         * recog.c: Likewise.
15072         * rtl.h: Likewise.
15073
15074 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
15075
15076         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
15077         (umul_ppmm): Likewise.
15078         (count_leading_zeros): Likewise.
15079         (count_trailing_zeros): Likewise.
15080         (UMUL_TIME): Likewise.
15081
15082 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15083
15084         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
15085         soft-fp/t-softfp to tmake_file.
15086
15087         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
15088         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
15089         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
15090         IA64_BUILTIN_INFQ]: New.
15091         (ia64_init_builtins): Initialize __builtin_infq,
15092         __builtin_fabsq and __builtin_copysignq if not HPUX.
15093         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
15094         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
15095
15096         * config/ia64/lib1funcs.asm (__divtf3): Define only if
15097         SHARED is defined.
15098         (__fixtfti): Likewise.
15099         (__fixunstfti): Likewise.
15100         (__floattitf): Likewise.
15101
15102         * config/ia64/libgcc-glibc.ver: New.
15103         * config/ia64/t-fprules-softfp: Likewise.
15104         * config/ia64/sfp-machine.h: Likewise.
15105
15106         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
15107         (LIBGCC2_TF_CEXT): Likewise.
15108         (TF_SIZE): Likewise.
15109         (TARGET_INIT_LIBFUNCS): Likewise.
15110
15111         * config/ia64/t-glibc (SHLINB_MAPFILES):
15112         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
15113
15114 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
15115
15116         * config/i386/i386.c (construct_container): Rewrite processing
15117         BLKmode with X86_64_SSE_CLASS.
15118
15119 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
15120
15121         PR target/39152
15122         * config/i386/i386.md: Replace simplify_replace_rtx with
15123         replace_rtx in the new peephole2.
15124
15125 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
15126
15127         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
15128         loop unrolling do not happen at -O2.
15129
15130 2009-02-12  Michael Matz  <matz@suse.de>
15131
15132         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
15133
15134 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
15135
15136         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
15137         for -g3.
15138
15139 2009-02-12  Ben Elliston  <bje@au.ibm.com>
15140
15141         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
15142         patterns when updating the back chain.  Missed in the 2009-02-10
15143         change.
15144
15145 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
15146
15147         * doc/extend.texi (Decimal Floating Types): Update identifier of
15148         draft TR and list of missing support.
15149
15150 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
15151
15152         PR middle-end/39154
15153         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
15154         bit to variable length decl's flags, add it also to its
15155         pointer replacement variable.
15156
15157 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
15158             Jakub Jelinek  <jakub@redhat.com>
15159
15160         PR target/39118
15161         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
15162         (memory_blockage): New expander.
15163         (*memory_blockage): New insn pattern.
15164         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
15165         instead of general blockage at the end of function prologue when
15166         frame pointer is used to access red zone area.  Do not emit blockage
15167         when profiling, it is emitted in generic code.
15168         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
15169         function epilogue when frame pointer is used to access red zone area.
15170
15171 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
15172
15173         PR target/38824
15174         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
15175         by arithmetic with memory operands.
15176         * config/i386/predicates.md (commutative_operator): New.
15177
15178 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
15179
15180         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
15181         bulleted lists.
15182
15183 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
15184
15185         * alias.h (record_alias_subset): Declare.
15186         * alias.c (record_alias_subset): Make global.
15187
15188 2009-02-10  Nick Clifton  <nickc@redhat.com>
15189
15190         * tree-parloops.c: Change license to GPLv3.
15191         * ipa-struct-reorg.c: Change license to GPLv3.
15192         * ipa-struct-reorg.h: Change license to GPLv3.
15193
15194 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
15195
15196         PR c/39084
15197         * c-decl.c (start_struct): Return NULL on error.
15198
15199 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
15200
15201         PR middle-end/39124
15202         * cfgloopmanip.c (remove_path): Call remove_bbs after
15203         cancel_loop_tree, not before it.
15204
15205         PR target/39139
15206         * function.h (struct function): Add has_local_explicit_reg_vars bit.
15207         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
15208         VAR_DECLs were seen.
15209         * tree-ssa-live.c (remove_unused_locals): Recompute
15210         cfun->has_local_explicit_reg_vars.
15211         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
15212         copies or clearings if cfun->has_local_explicit_reg_vars.
15213
15214 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
15215
15216         PR target/39118
15217         * config/i386/i386.c (expand_prologue): Emit blockage at the end
15218         of function prologue when frame pointer is used to access
15219         red zone area.
15220
15221 2009-02-10  Richard Guenther  <rguenther@suse.de>
15222
15223         PR middle-end/39127
15224         * gimplify.c (gimple_regimplify_operands): Always look if
15225         we need to create a temporary.
15226
15227 2009-02-10  Richard Guenther  <rguenther@suse.de>
15228
15229         PR tree-optimization/39132
15230         * tree-loop-distribution.c (todo): New global var.
15231         (generate_memset_zero): Trigger TODO_rebuild_alias.
15232         (tree_loop_distribution): Return todo.
15233
15234 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
15235
15236         PR target/39119
15237         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
15238         (x86_64_reg_class_name): Removed.
15239         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
15240         first one isn't X86_64_SSE_CLASS or any other ones aren't
15241         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
15242         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
15243         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
15244         and 3 X86_64_SSEUP_CLASS.
15245         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
15246         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
15247
15248 2009-02-10  Ben Elliston  <bje@au.ibm.com>
15249
15250         * config/rs6000/rs6000.md (allocate_stack): Always use an update
15251         form instruction to update the stack back chain word, even if the
15252         user has disabled the generation of update instructions.
15253         (movdi_<mode>_update_stack): New.
15254         (movsi_update_stack): Likewise.
15255         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
15256         always use an update form instruction to update the stack back
15257         chain word.
15258
15259 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
15260
15261         PR middle-end/38953
15262         * graphite.c (if_region_set_false_region): After moving a region in
15263         the false branch of a condition, remove the empty dummy basic block.
15264         (gloog): Remove wrong fix for PR38953.
15265
15266 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15267
15268         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
15269         generation due to implicit sign extension.
15270
15271 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
15272
15273         PR middle-end/38981
15274         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
15275         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
15276
15277 2009-02-09  Richard Guenther  <rguenther@suse.de>
15278
15279         PR middle-end/35202
15280         * convert.c (convert_to_real): Disable (float)fn((double)x)
15281         to fnf(x) conversion if errno differences may occur and
15282         -fmath-errno is set.
15283
15284 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
15285
15286         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
15287         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
15288         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
15289
15290 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
15291
15292         PR c/35434
15293         * c-common.c (handle_alias_attribute): Disallow attribute for
15294         anything not a FUNCTION_DECL or VAR_DECL.
15295
15296 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
15297
15298         PR c/39035
15299         * real.c (do_compare): Special-case compare of zero against
15300         decimal float value.
15301
15302 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
15303
15304         PR c/36432
15305         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
15306         as indicating flexible array members unless the field itself is
15307         being declarared as the incomplete array.
15308
15309 2009-02-06  Jan Hubicka  <jh@suse.cz>
15310
15311         PR tree-optimization/38844
15312         * ipa-inline.c (try_inline): Stop inlining recursion when edge
15313         is already inlined.
15314
15315 2009-02-06  Richard Guenther  <rguenther@suse.de>
15316
15317         PR middle-end/38977
15318         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
15319         fork because we may expand it as __gcov_fork.
15320
15321 2009-02-06  Nick Clifton  <nickc@redhat.com>
15322
15323         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
15324
15325 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
15326
15327         PR tree-optimization/35659
15328         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
15329         vn_phi_eq): Shortcut if hashcode does not match.
15330         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
15331         NULL operands.
15332         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
15333         and avoid iterative_hash_expr.
15334         (FOR_EACH_VALUE_ID_IN_SET): New.
15335         (value_id_compare): Remove.
15336         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
15337         sort expressions by value id.
15338
15339 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
15340
15341         PR target/38991
15342         * config/sh/predicates.md (general_movsrc_operand): Don't check
15343         the subreg of system registers here.
15344
15345 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
15346
15347         PR c++/39106
15348         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
15349         on the copied decl.
15350
15351 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
15352
15353         PR rtl-optimization/39110
15354         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
15355         addresses, not aligned ones.
15356
15357 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
15358             Richard Guenther  <rguenther@suse.de>
15359
15360         PR tree-optimization/39100
15361         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
15362         comment says and add edges.
15363
15364 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
15365
15366         PR c/35435
15367         * c-common.c (handle_tls_model_attribute): Ignore attribute for
15368         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
15369
15370 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
15371
15372         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
15373         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
15374         register_bb_in_sese, new_sese, free_sese): Moved.
15375         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
15376         outermost_loop_in_scop, build_scop_iteration_domain,
15377         expand_scalar_variables_ssa_name, get_vdef_before_scop,
15378         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
15379         Use loop_in_sese_p instead of loop_in_scop_p.
15380         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
15381         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
15382         (scopdet_basic_block_info): Fix bug in scop detection.
15383         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
15384         eq_loop_to_cloog_loop): Remove.
15385         (nb_loops_around_loop_in_scop, nb_loop
15386         ref_nb_loops): Moved here...
15387         * graphite.h (ref_nb_loops): ... from here.
15388         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
15389         (loop_domain_dim, loop_iteration_vector_dim): Remove.
15390         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
15391         * testsuite/gcc.dg/graphite/scop-19.c: New
15392
15393 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
15394             Hans-Peter Nilsson  <hp@axis.com>
15395
15396         PR rtl-optimization/37889
15397         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
15398         Move offset handling from PLUS to before the switch.  Use new
15399         arguments when considering SYMBOL_REFs too.
15400         (rtx_addr_can_trap_p): Pass dummy offset and size.
15401         (enum may_trap_p_flags): Remove.
15402         (may_trap_p_1): Pass size from MEM_SIZE.
15403
15404         PR rtl-optimization/38921
15405         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
15406         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
15407         * rtlanal.c (may_trap_after_code_motion_p): Delete.
15408         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
15409
15410 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
15411
15412         AVX Programming Reference (January, 2009)
15413         * config/i386/sse.md (*vpclmulqdq): New.
15414
15415 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
15416
15417         PR tree-optimization/38977
15418         PR gcov-profile/38292
15419         * calls.c (special_function_p): Disregard __builtin_ prefix.
15420
15421 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
15422
15423         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
15424         non-indexable addresses even before reload.
15425
15426 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
15427
15428         PR c/29129
15429         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
15430         as having variable size.  Do not give an error for unnamed
15431         parameters with [*] declarators.  Give a warning for type names
15432         with [*] declarators and mark them as variable size.
15433         * c-parser.c (c_parser_sizeof_expression): Do not give an error
15434         for sizeof applied to [*] type names.
15435
15436 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15437
15438         PR C++/36607
15439         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
15440
15441 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
15442
15443         * gcc.c (process_command): Update copyright notice dates.
15444         * gcov.c (print_version): Likewise.
15445         * gcov-dump.c (print_version): Likewise.
15446         * mips-tfile.c (main): Likewise.
15447         * mips-tdump.c (main): Likewise.
15448
15449 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
15450
15451         PR c/35433
15452         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
15453         for composite type involving a zero-length array type.
15454
15455 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
15456
15457         PR target/35318
15458         * function.c (match_asm_constraints_1): Skip over
15459         initial optional % in the constraint.
15460
15461         PR inline-asm/39059
15462         * c-parser.c (c_parser_postfix_expression): If fixed point is not
15463         supported, don't accept FIXED_CSTs.
15464         * c-decl.c (finish_declspecs): Error if fixed point is not supported
15465         and _Sat is used without _Fract/_Accum.  Set specs->type to
15466         integer_type_node for cts_fract/cts_accum if fixed point is not
15467         supported.
15468
15469 2009-02-02  Catherine Moore  <clm@codesourcery.com>
15470
15471         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
15472
15473 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
15474
15475         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
15476         (ABI_HAS_64BIT_SYMBOLS): Use it.
15477         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
15478
15479 2009-02-02  Paul Brook  <paul@codesourcery.com>
15480
15481         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
15482
15483 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
15484
15485         PR inline-asm/39058
15486         * recog.h (asm_operand_ok): Add constraints argument.
15487         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
15488         recurse on matching constraint.
15489         (check_asm_operands): Pass constraints as 3rd argument to
15490         asm_operand_ok.  Don't look up matching constraint here.
15491         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
15492         to asm_operand_ok.
15493
15494 2009-02-02  Ben Elliston  <bje@au.ibm.com>
15495
15496         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
15497         TARGET_NARROW_VOLATILE_BITFIELD macro names.
15498
15499 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15500
15501         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
15502         information.  Remove some obsolete information.  Reorganize.
15503
15504         * config/pa/fptr.c: Revert license to GPL 2.
15505         * config/pa/milli64.S: Likewise.
15506
15507 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
15508
15509         PR target/38904
15510         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
15511         LIBRARY name in, instead of hard-coding it.
15512         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
15513         extra target make frag to tmake_files according to EH model.
15514         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
15515         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
15516         frags that define makefile variable EH_MODEL appropriately.
15517         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
15518         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
15519         to "-sjlj" according to type of EH configured.
15520         (LIBGCC_SONAME):  Concatenate it to shared library base name.
15521         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
15522         to "_sjlj" according to type of EH configured.
15523         (LIBGCC_SONAME):  Concatenate it to shared library base name.
15524         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
15525         (SHLIB_LINK):  Add missing semicolon to if-else construct.
15526         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
15527         string value of "pe_dll" command-line option.
15528         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
15529         (SHLIB_SONAME):  Use it when overriding t-cygming default.
15530         (SHLIB_IMPLIB):  Override t-cygming default.
15531         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
15532         string value of "pe_dll" command-line option.
15533
15534 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
15535
15536         PR target/38952
15537         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
15538         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
15539
15540 2009-01-31  Richard Guenther  <rguenther@suse.de>
15541
15542         PR tree-optimization/38937
15543         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
15544         computing the transitive closure.
15545
15546 2009-01-30  Richard Guenther  <rguenther@suse.de>
15547
15548         PR tree-optimization/39041
15549         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
15550         Propagate variable indices only if the types match for this stmt.
15551
15552 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
15553
15554         PR target/39013
15555         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
15556         inline but never defined.
15557
15558 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
15559
15560         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
15561         (*insv_h_di_reg_extimm): New insn.
15562         (*insv_l<mode>_reg_extimm): New insn.
15563
15564 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15565
15566         * config/picochip/picochip.c (flag_conserve_stack): set
15567         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
15568         fconserve-stack. Reduce call-overhead used by inliner.
15569
15570 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
15571
15572         PR/38157
15573         * common.opt (flag_conserve_stack): Initialised to zero.
15574
15575 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
15576
15577         PR/39002
15578         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
15579         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
15580         method.
15581
15582 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
15583
15584         * ira-color.c (allocno_reload_assign): Update comments.
15585         * regmove.c (regmove_optimize): Likewise.
15586
15587         * ra.h: Removed.
15588
15589 2009-01-29  Robert Millan  <rmh@aybabtu.com>
15590
15591         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
15592         * config/i386/kopensolaris-gnu.h: New file.  Undefine
15593         `MD_UNWIND_SUPPORT'.
15594         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
15595
15596 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
15597
15598         PR tree-optimization/39007
15599         * tree-loop-distribution.c (generate_builtin): Use
15600         recompute_dominator to compute the immediate dominator of the
15601         basic block just after the loop.
15602
15603 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15604
15605         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
15606         (ASM_OUTPUT_DWARF_PCREL): Define.
15607
15608 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
15609
15610         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
15611         * doc/passes.texi: Remove entries about regclass, local-alloc, and
15612         global.  Modify entries about regmove and IRA.
15613
15614         * ra-conflict.c: Remove the file.
15615
15616         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
15617
15618         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
15619         (pass_regclass_init): Rename to pass_reginfo_init.
15620
15621         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
15622
15623         * toplev.h (flag_ira): Remove.
15624
15625         * caller-save.c (setup_save_areas): Remove flag_ira.
15626
15627         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
15628
15629         * global.c: Remove the file.
15630
15631         * opts.c (decode_options): Remove flag_ira.
15632
15633         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
15634
15635         * regmove.c: Modify file description.
15636         (find_use_as_address, try_auto_increment): Define them only if
15637         AUTO_INC_DEC is defined.
15638         (replacement_quality, replace_in_call_usage, fixup_match_1,
15639         stable_and_no_regs_but_for_p): Remove.
15640         (reg_set_in_bb): Make it static.
15641         (regmove_optimize): Remove flag_ira and code which worked for
15642         !flag_ira.
15643
15644         * local-alloc.c: Remove the file.
15645
15646         * common.opt (fira): Remove.
15647
15648         * ira.c: Include except.h.
15649         (eliminable_regset): Move from global.c.
15650         (mark_elimination): Ditto.  Remove flag_ira.
15651         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
15652         equiv_mem_modified, validate_equiv_mem_from_store,
15653         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
15654         contains_replace_regs, memref_referenced_p, memref_used_between_p,
15655         no_equiv, recorded_label_ref): Move from local-alloc.c.
15656         (update_equiv_regs): Ditto.  Make it static.
15657         (print_insn_chain, print_insn_chains): Move it from global.c.
15658         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
15659         (build_insn_chain): Ditto.  Make it static.
15660         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
15661         Rename to init_live_subregs.
15662         (gate_ira): Remove flag_ira.
15663
15664         * regclass.c: Rename reginfo.c.  Change file description.
15665         (FORBIDDEN_INC_DEC_CLASSES): Remove.
15666         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
15667         (init_reg_sets_1): Remove code for evaluation of
15668         reg_class_superclasses and losing_caller_save_reg_set.
15669         (init_regs): Remove init_reg_autoinc.
15670         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
15671         ok_for_base_p_nonstrict): Remove.
15672         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
15673         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
15674         corresponding entries.
15675         (dump_regclass, record_operand_costs, scan_one_insn,
15676         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
15677         record_address_regs, auto_inc_dec_reg_p): Remove.
15678         (gt-regclass.h): Rename to gt-reginfo.h.
15679
15680         * rtl.h (dump_global_regs, retry_global_alloc,
15681         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
15682
15683         * Makefile.in (RA_H): Remove.
15684         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
15685         Rename regclass.o to reginfo.o.
15686         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
15687         gt-reginfo.h.
15688         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
15689         (GTFILES): Rename regclass.c to reginfo.c.
15690
15691         * passes.c (init_optimization_passes): Remove pass_local_alloc and
15692         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
15693
15694         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
15695         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
15696         Remove flag_ira.
15697         (finish_spills): Ditto.  Remove code for !flag_ira.
15698
15699 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
15700
15701         PR middle-end/35854
15702         * doc/invoke.texi (rtl debug options): Complete rewrite.
15703         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
15704         to auto_inc_dec".
15705         * mode-switching.c (pass_mode_switching): Rename pass from
15706         "mode-sw" to "mode_sw".
15707         * except.c (pass_convert_to_eh_ranges): Rename pass from
15708         "eh-ranges" to "eh_ranges".
15709         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
15710         to "subreg1".
15711
15712
15713 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
15714             Alexander Monakov  <amonakov@ispras.ru>
15715
15716         PR middle-end/38857
15717         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
15718         register.
15719         (move_exprs_to_boundary): Change return type and pass through
15720         should_move from move_op.  Relax assert.  Update usage ...
15721         (schedule_expr_on_boundary): ... here.  Use should_move instead of
15722         cant_move.
15723         (move_op_orig_expr_found): Indicate that insn was disconnected from
15724         stream.
15725         (code_motion_process_successors): Do not call after_merge_succs
15726         callback if original expression was not found when traversing any of
15727         the branches.
15728         (code_motion_path_driver): Change return type.  Update prototype.
15729         (move_op): Update comment.  Add a new parameter (should_move).  Update
15730         prototype.  Set *should_move based on indication provided by
15731         move_op_orig_expr_found.
15732
15733 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
15734
15735         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
15736         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
15737         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
15738         * config/rs6000/rs6000.c (rs6000_override_options): Default
15739         avoid-indexed-addresses on for Power6, off for everything else.
15740         (avoiding_indexed_address_p): New function.
15741         (rs6000_legitimize_address): Use it.
15742         (rs6000_legitimate_address): Likewise.
15743         * config/rs6000/rs6000.md (movXX_updateX): Likewise
15744
15745 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
15746
15747         PR tree-optimization/38997
15748         * tree-loop-distribution.c (generate_memset_zero): Use
15749         POINTER_PLUS_EXPR for a pointer addition.
15750
15751 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
15752
15753         * config/s390/s390.md (bswap<mode>2): New pattern added.
15754
15755 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
15756
15757         * config/s390/s390.md (*tls_load_31): Added type attribute.
15758
15759 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
15760
15761         * config/s390/s390.md: Fix a few comments.
15762
15763 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
15764
15765         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
15766         (*tm<mode>_full): Fixed z10prop attribute.
15767         (*tst<mode>_extimm): Fixed z10prop attribute.
15768         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
15769         (*tstqiCCT_cconly): Fixed z10prop attribute.
15770         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
15771         (*movsi_larl): Fixed z10prop attribute.
15772         (*movsi_zarch): Fixed z10prop attribute.
15773         (*movsi_eas): Fixed z10prop attribute.
15774         (*movhi): Fixed z10prop attribute.
15775         (*movqi): Fixed z10prop attribute.
15776         (*movstrictqi): Fixed z10prop attribute.
15777         (*mov<mode>): Fixed z10prop attribute.
15778         (*movcc): Fixed z10prop attribute.
15779         (*sethighpartdi_64): Fixed z10prop attribute.
15780         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
15781         (*negdi2_sign_cc): Fixed z10prop attribute.
15782         (*negdi2_sign): Fixed z10prop attribute.
15783         (*absdi2_sign_cc): Fixed z10prop attribute.
15784         (*absdi2_sign): Fixed z10prop attribute.
15785         (*negabsdi2_sign_cc): Fixed z10prop attribute.
15786         (*negabsdi2_sign): Fixed z10prop attribute.
15787         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
15788         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
15789         (doloop_si64): Fixed z10prop attribute.
15790         (doloop_si31): Fixed z10prop attribute.
15791         (doloop_long): Fixed z10prop attribute.
15792         (indirect_jump): Fixed z10prop attribute.
15793         (nop): Fixed z10prop attribute.
15794         (main_base_64): Fixed z10prop attribute.
15795         (reload_base_64): Fixed z10prop attribute.
15796
15797 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
15798
15799         PR rtl-optimization/38740
15800         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
15801         if !optimize.
15802         * config/mips/mips.c (mips_reorg): Likewise.
15803
15804 2009-01-28  Richard Guenther  <rguenther@suse.de>
15805
15806         PR tree-optimization/38926
15807         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
15808         with the correct value id to a value.
15809         (do_regular_insertion): Use the value number of edoubleprime
15810         for the value number of the expr.
15811
15812         Revert
15813         2008-08-21  Richard Guenther  <rguenther@suse.de>
15814
15815         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
15816         a PHI ask VN if it is already available.
15817         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
15818         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
15819
15820 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
15821
15822         PR middle-end/38934
15823         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
15824         set to varying whenever max has TREE_OVERFLOW set, similarly
15825         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
15826
15827 2009-01-28  Richard Guenther  <rguenther@suse.de>
15828
15829         PR middle-end/38908
15830         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
15831         uninitialized aggregate uses in call arguments.
15832
15833 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
15834
15835         PR tree-optimization/38984
15836         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
15837         the nothing_id variable if -fno-delete-null-pointer-checks.
15838
15839 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
15840
15841         PR target/38988
15842         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
15843         (set_got_offset_rex64): Ditto.
15844
15845 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
15846
15847         PR target/38941
15848         * doc/extend.texi: Improve local variable with asm reg.
15849
15850 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
15851
15852         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
15853         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
15854         was not supplied then set warn_packed_bitfield_compat to the
15855         default value of 1.
15856         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
15857         against 1.
15858
15859 2009-01-27  Richard Guenther  <rguenther@suse.de>
15860
15861         PR tree-optimization/38503
15862         * cfgexpand.c (expand_gimple_basic_block): Ignore
15863         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
15864         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
15865         variables that cannot have TBAA applied.
15866         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
15867         statements.
15868
15869 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
15870
15871         PR middle-end/38969
15872         * calls.c (initialize_argument_information): Do not wrap complex
15873         arguments in SAVE_EXPR.
15874
15875 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
15876
15877         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
15878         (INSTALL_LIBGCC): Revert typo commit.
15879
15880 2009-01-26  Richard Guenther  <rguenther@suse.de>
15881
15882         PR tree-optimization/38745
15883         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
15884         from special handling.
15885
15886 2009-01-26  Richard Guenther  <rguenther@suse.de>
15887
15888         PR tree-optimization/38745
15889         * tree-ssa.c (execute_update_addresses_taken): Do not include
15890         variables that cannot possibly be a register in not_reg_needs.
15891         Do not clear TREE_ADDRESSABLE on vars that may not become
15892         registers.
15893         * tree-ssa.c (update_alias_info_1): Include those in the set
15894         of addressable vars.
15895
15896 2009-01-26  Richard Guenther  <rguenther@suse.de>
15897
15898         PR middle-end/38851
15899         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
15900         * tree-ssa-dse.c: Include langhooks.h
15901         (execute_simple_dse): Remove stores with zero size.
15902
15903 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
15904
15905         PR c/38957
15906         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
15907         as PLUS_EXPR.
15908
15909 2009-01-24  Julian Brown  <julian@codesourcery.com>
15910
15911         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
15912         config/arm/linux-atomic.c.
15913         * config/arm/linux-atomic.c: New.
15914
15915 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
15916
15917         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
15918         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
15919         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
15920
15921 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15922
15923         PR c/38938
15924         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
15925         properly.
15926
15927 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
15928
15929         PR tree-optimization/38953
15930         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
15931         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
15932         (gloog): Split the exit of the scop when the scop exit is a loop exit.
15933         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
15934         changed the CFG.
15935
15936 2009-01-24  Paul Brook  <paul@codesourcery.com>
15937
15938         * config/arm/neon.md (neon_type): Move to arm.md.
15939         (neon_mov<VSTRUCT>): Add neon_type attribute.
15940         * config/arm/arm.md (neon_type): Move to here.
15941         (conds): Add "unconditioal" and use as default for NEON insns.
15942
15943 2009-01-24  Ben Elliston  <bje@au.ibm.com>
15944
15945         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
15946         void *' warning from -Wc++-compat.
15947         * Makefile.in (dominance.o-warn): Remove.
15948
15949 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
15950
15951         PR tree-optimization/38932
15952         * fold-const.c (fold_unary_ignore_overflow): New.
15953         * tree.h (fold_unary_ignore_overflow): Declare.
15954         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
15955         * tree-ssa-sccvn.c (visit_reference_op_load,
15956         simplify_unary_expression): Likewise.
15957
15958 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
15959
15960         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
15961         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
15962         regardless of their type.
15963         * c-common.c (handle_packed_attribute): Don't ignore packed on
15964         bitfields.
15965         * c.opt (Wpacked-bitfield-compat): New warning option.
15966         * stor-layout.c (place_field): Warn if offset of a field changed.
15967         * doc/extend.texi (packed): Mention the ABI change.
15968         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
15969         (Warning Options): Add it to the list.
15970
15971 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
15972
15973         * c-opts.c (c_common_post_options): Fix a typo in comments.
15974
15975 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
15976
15977         PR middle-end/38615
15978         * gimplify.c (gimplify_init_constructor): Fix promotion of const
15979         variables to static.
15980         * doc/invoke.texi (-fmerge-all-constants): Update description.
15981
15982 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
15983
15984         PR target/38931
15985         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
15986         (*movdi_1_rex64): Use type "mmx" for alternative 5.
15987
15988 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
15989
15990         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
15991         a word boundary.
15992         (LOCAL_ALIGNMENT): Similarly.
15993
15994 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
15995             Joseph Myers  <joseph@codesourcery.com>
15996
15997         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
15998         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
15999         * config/arm/arm-tune.md: Regenerate.
16000         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
16001         -march=iwmmxt2.
16002
16003 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
16004
16005         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
16006         version number to five.
16007
16008 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
16009
16010         PR c++/38930
16011         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
16012         * c-common.c (set_underlying_type): Likewise.
16013         (is_typedef_decl ): Likewise
16014         * tree.h: Likewise
16015         (set_underlying_type): Likewise.
16016         (is_typedef_type): Likewise.
16017
16018 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
16019
16020         PR middle-end/38587
16021         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
16022         crossing setjmps.
16023
16024 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
16025
16026         PR bootstrap/37660
16027         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
16028         (LIBGCC_SPEC):  Don't define.
16029         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
16030
16031 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
16032
16033         PR rtl-optimization/38879
16034         * alias.c (base_alias_check): Unaligned access via AND address can
16035         alias all surrounding object types except those with sizes equal
16036         or wider than the size of unaligned access.
16037
16038 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
16039
16040         PR c++/26693
16041         * c-decl.c (clone_underlying_type): Move this ...
16042         * c-common.c (set_underlying_type): ... here.
16043         Also, make sure the function properly sets TYPE_STUB_DECL() on
16044         the newly created typedef variant type.
16045         (is_typedef_decl ): New entry point.
16046         * tree.h: Added a new member member_types_needing_access_check to
16047         struct tree_decl_non_common.
16048         (set_underlying_type): New entry point.
16049         (is_typedef_type): Likewise.
16050
16051 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
16052
16053         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
16054         Check whether two instructions have memory references that
16055         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
16056         are helper functions for traversing.
16057         * alias.h (insn_alias_sets_confilict_p): New prototypes.
16058         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
16059         not to draw dependency edge for instructions with non-conflicting
16060         alias sets.
16061
16062 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
16063
16064         PR other/38758
16065         * longlong.h: Update copyright years.  Use soft-fp license notice.
16066         Sync __clz_tab declaration with glibc.
16067
16068 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
16069
16070         PR target/30687
16071         * doc/extend.texi (syscall_linkage): New.
16072         (version_id): Modify.
16073
16074 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16075             Richard Guenther  <rguenther@suse.de>
16076
16077         PR tree-optimization/38747
16078         PR tree-optimization/38748
16079         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
16080         conversion if the base address is an indirect reference and the
16081         aliasing sets could cause issues.
16082
16083 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
16084
16085         * common.opt (fgraphite, fgraphite-identity): Add comment for
16086         explaining why these options are not documented.
16087
16088 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
16089
16090         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
16091         gimple_call_lhs is NULL.
16092
16093 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
16094
16095         PR target/38868
16096         * emit-rtl.c (adjust_address_1): Make sure memref is never
16097         overwritten.
16098
16099 2009-01-20  Ben Elliston  <bje@au.ibm.com>
16100
16101         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16102         const qualifier from arg parameter. Remove unnecessary cast to char *.
16103         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
16104         const qualifier from arg 2.
16105
16106 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
16107
16108         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
16109
16110 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
16111
16112         PR c/38869
16113         * rtl.h (reinit_regs): New prototype.
16114         * regclass.c: Include ira.h.
16115         (reinit_regs): New.
16116         * Makefile.in (regclass.o): Add ira.h.
16117         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
16118
16119 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
16120
16121         PR target/38736
16122         * c-common.c (handle_aligned_attribute): Use
16123         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
16124         default alignment value.
16125
16126         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
16127
16128         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
16129         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
16130
16131         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
16132         __BIGGEST_ALIGNMENT__.
16133
16134         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
16135
16136 2009-01-18  Richard Guenther  <rguenther@suse.de>
16137
16138         PR tree-optimization/38819
16139         * tree-flow.h (operation_could_trap_helper_p): Declare.
16140         * tree-eh.c (operation_could_trap_helper_p): Export.
16141         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
16142         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
16143         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
16144         are about to insert a possibly trapping instruction and fail
16145         in this case.
16146
16147 2009-01-18  Andreas Schwab  <schwab@suse.de>
16148
16149         * doc/install.texi (Configuration): Remove obsolete paragraph
16150         about use of --with-gnu-ld with --with-gnu-as.
16151
16152 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
16153
16154         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
16155         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
16156         Follow spelling conventions.
16157
16158 2009-01-18  Ben Elliston  <bje@au.ibm.com>
16159
16160         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
16161         C++ warning about implicit conversion from void * to struct
16162         bitmap_head_def *.
16163         (bitmap_obstack_free): Likewise for bitmap_element *.
16164         * Makefile.in (bitmap.o-warn): Remove.
16165
16166 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
16167
16168         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
16169
16170 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
16171             Tobias Grosser  <tobi.grosser@amd.com>
16172
16173         * graphite.c (graphite_trans_scop_block): Do not block single
16174         nested loops.
16175
16176 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
16177
16178         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
16179         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
16180         test with assertion.
16181
16182 2009-01-16  Richard Guenther  <rguenther@suse.de>
16183
16184         PR tree-optimization/38835
16185         PR middle-end/36227
16186         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
16187         and INT + PTR -> (INT)(PTR p+ INT) folding.
16188         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
16189
16190 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
16191
16192         PR target/38554
16193         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
16194         the subreg from a lowpart subreg if it is also casting the value.
16195
16196 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16197             Tobias Grosser  <tobi.grosser@amd.com>
16198
16199         * graphite.c (compare_prefix_loops): New.
16200         (build_scop_canonical_schedules): Rewritten.
16201         (graphite_transform_loops): Move build_scop_canonical_schedules
16202         after build_scop_iteration_domain.
16203
16204 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
16205             Tobias Grosser  <tobi.grosser@amd.com>
16206
16207         * graphite.c (add_conditions_to_domain): Add the loops to
16208         the dimension of the iteration domain.  Do copy the domain
16209         only when it exists.
16210         (build_scop_conditions_1): Do not call add_conditions_to_domain.
16211         (add_conditions_to_constraints): New.
16212         (can_generate_code_stmt, can_generate_code): Removed.
16213         (gloog): Do not call can_generate_code.
16214         (graphite_transform_loops): Call add_conditions_to_constraints
16215         after building the iteration domain.
16216
16217 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
16218
16219         PR tree-optimization/38789
16220         * tree-ssa-threadedge.c
16221         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
16222         __builtin_constant_p.
16223
16224 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
16225
16226         * dce.c (delete_unmarked_insns): Reversed the order that insns are
16227         examined before deleting them.
16228
16229 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
16230
16231         * function.c (aggregate_value_p): Correctly extract the function
16232         type from CALL_EXPR_FN lookup.
16233
16234 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
16235
16236         * config/picochip/picochip.c (picochip_override_options): Revert
16237         CFI asm flag disable commited previously.
16238
16239 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
16240             Tobias Grosser  <tobi.grosser@amd.com>
16241             Jan Sjodin  <jan.sjodin@amd.com>
16242
16243         * graphite.c (scan_tree_for_params): On substractions negate
16244         all the coefficients of the term.
16245         (clast_to_gcc_expression_red): New.  Handle reduction expressions
16246         of more than two operands.
16247         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
16248         (get_vdef_before_scop): Handle also the case of default definitions.
16249
16250 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
16251
16252         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
16253         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
16254         Also use them when walking CALL_INSN_FUNCTION_USAGE.
16255
16256 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
16257             Joey Ye  <joey.ye@intel.com>
16258
16259         PR middle-end/37843
16260         * cfgexpand.c (expand_stack_alignment): Don't update stack
16261         boundary nor check incoming stack boundary here.
16262         (gimple_expand_cfg): Update stack boundary and check incoming
16263         stack boundary here.
16264
16265 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
16266
16267         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
16268
16269 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
16270
16271         PR rtl-optimization/38245
16272         * calls.c (expand_call): Add stack arguments to
16273         CALL_INSN_FUNCTION_USAGE even for pure calls (when
16274         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
16275         in regs and partially in memory or BLKmode arguments.
16276         (emit_library_call_value_1): Add stack arguments to
16277         CALL_INSN_FUNCTION_USAGE even for pure calls (when
16278         ACCUMULATE_OUTGOING_ARGS).
16279         * dce.c: Include tm_p.h.
16280         (find_call_stack_args): New function.
16281         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
16282         argument.
16283         (mark_insn): Call find_call_stack_args for CALL_Ps.
16284         (prescan_insns_for_dce): Walk insns backwards in bb rather than
16285         forwards.  Allocate and free arg_stores bitmap if needed, pass it
16286         down to deletable_insn_p, don't mark stores set in arg_stores
16287         bitmap, clear the bitmap at the beginning of each bb.
16288         * Makefile.in (dce.o): Depend on $(TM_P_H).
16289
16290 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
16291
16292         PR target/22599
16293         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
16294         to make sure the insn is a conditional test (bug 22599).  Reformat a
16295         few long lines.
16296
16297 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
16298
16299         PR middle-end/38431
16300         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
16301         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
16302         (gloog): Do not call cleanup_tree_cfg.
16303         (graphite_transform_loops): Call cleanup_tree_cfg after all
16304         scops have been code generated.
16305
16306 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
16307         * doc/gty.texi (Invoking the garbage collector): Added new node
16308         and section documenting ggc_collect.
16309
16310 2009-01-14  Richard Guenther  <rguenther@suse.de>
16311
16312         PR tree-optimization/38826
16313         PR middle-end/38477
16314         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
16315         initialization notes only if we actually emitted a warning.
16316         (intra_create_variable_infos): Add constraints for a result decl
16317         that is passed by hidden reference.
16318         (build_pred_graph): Mark all related variables non-direct on
16319         address-taking.
16320
16321 2009-01-14  Nick Clifton  <nickc@redhat.com>
16322
16323         * ira-conflicts.c: Include addresses.h for the definition of
16324         base_reg_class.
16325         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
16326         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
16327
16328 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16329
16330         PR target/38811
16331         * Makefile.in (ira-lives.o): Add except.h.
16332
16333         * ira-lives.c: Include except.h.
16334         (process_bb_node_lives): Process can_throw_internal.
16335
16336 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
16337
16338         PR rtl-optimization/38774
16339         * combine.c (simplify_set): When undoing cc_use change, don't do
16340         PUT_CODE on the newly created comparison, but instead put back the
16341         old comparison.
16342
16343 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
16344
16345         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
16346         values.  Remove duplicate arm8 entry.
16347
16348 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
16349
16350         PR tree-optimization/38786
16351         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
16352         the SSA_NAME case of expand_scalar_variables_expr.
16353         Set the type of an expression to the type of its assign statement.
16354         (expand_scalar_variables_expr): Also gather the scalar computation
16355         used to index the memory access.  Do not pass loop_p.
16356         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
16357         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
16358         the gimple_stmt_iterator where it inserts new code.
16359         Do not pass loop_p.
16360         (copy_bb_and_scalar_dependences): Do not pass loop_p.
16361         (translate_clast): Update call to copy_bb_and_scalar_dependences.
16362
16363 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
16364
16365         * graphite.h (debug_value): Removed.
16366         * graphite.c (debug_value): Removed.
16367
16368 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
16369
16370         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
16371         ldrd/strd with two 32-bit instructions.
16372
16373 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
16374
16375         * config/arm/arm.c (struct processors): Pass for speed down into
16376         cost helper functions.
16377         (const_ok_for_op): Handle COMPARE and inequality nodes.
16378         (arm_rtx_costs_1): Rewrite.
16379         (arm_size_rtx_costs): Update prototype.
16380         (arm_rtx_costs): Pass speed down to helper functions.
16381         (arm_slowmul_rtx_costs): Rework cost calculations.
16382         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
16383         (arm_9e_rtx_costs): Likewise.
16384
16385 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
16386
16387         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
16388         relocations of local symbols wider than UNITS_PER_WORD are not valid.
16389         (alpha_legitimize_address): Do not split local symbols wider than
16390         UNITS_PER_WORD into HIGH/LO_SUM parts.
16391
16392 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
16393
16394         PR bootstrap/38580
16395         * gcc.c (process_command): Replace call to execvp with calls
16396         to pex_one and exit.
16397
16398 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
16399
16400         PR target/29141
16401         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
16402         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
16403         variant for devices with 3-byte PC.
16404         (__tablejump_elpm__): New.
16405
16406 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
16407
16408         PR c/32041
16409         * c-parser.c (c_parser_postfix_expression): Allow `->' in
16410         offsetof member-designator, handle it as `[0].'.
16411
16412 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16413
16414         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
16415         function when not using named sections on targets with named sections
16416         if branch distance is less than 262132.
16417
16418 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
16419
16420         * combine.c (combine_instructions):  Recompute
16421         optimize_this_for_speed_p  for each BB in the main combine loop.
16422
16423 2009-01-12  Tomas Bily  <tbily@suse.cz>
16424
16425         PR middlend/38385
16426         * tree-loop-distribution.c (prop_phis): New function.
16427         (generate_builtin): Call prop_phis.
16428         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
16429
16430 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
16431
16432         PR tree-optimization/38807
16433         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
16434         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
16435
16436 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
16437
16438         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
16439         subreg of op0 to the original op0.
16440
16441 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
16442
16443         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
16444
16445 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
16446
16447         PR debug/7055
16448         * mips-tfile.c (parse_def): Fix parsing of def strings
16449         starting with digits.
16450
16451 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
16452
16453         PR target/38695
16454         * config/arm/arm.c (arm_is_long_call_p): Don't call
16455         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
16456
16457 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
16458
16459         * regrename.c (regrename_optimize): Fix dumping.
16460         (find_oldest_value_reg): Preserve REG_POINTER.
16461         (copy_hardreg_forward_1): Likewise.
16462
16463 2009-01-09  Diego Novillo  <dnovillo@google.com>
16464
16465         * gimple.h (struct gimple_statement_base) <uid>: Document
16466         the restrictions on its use.
16467         (gimple_uid): Tidy.
16468         (gimple_set_uid): Tidy.
16469
16470 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16471
16472         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
16473         zero guard even if align_bytes != 0 and count is smaller than
16474         size_needed.
16475
16476 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
16477
16478         PR rtl-optimization/38495
16479         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
16480         (add_range_and_copies_from_move_list): Print all added ranges.
16481         Add ranges to memory optimized destination.
16482
16483 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16484
16485         PR target/38686
16486         PR target/38708
16487         * config/i386/i386.c (override_options): Reject
16488         -mstringop-strategy=rep_8byte with -m32.
16489         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
16490         to 1.  Do count comparison against epilogue_size_needed at compile
16491         time even when count_exp was constant forced into register.  For
16492         size_needed don't jump to epilogue, instead just avoid aligning
16493         and invoke the body algorithm.  If need_zero_guard, add zero guard
16494         even if count is non-zero, but smaller than size_needed + number of
16495         bytes that could be stored for alignment.
16496         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
16497         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
16498         but smaller than size_needed + number of bytes that could be stored
16499         for alignment.  Compare size_needed with epilogue_size_needed instead
16500         of desired_align - align, don't adjust size_needed, pass
16501         epilogue_size_needed to the epilogue expanders.
16502
16503         PR c/35742
16504         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
16505
16506 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16507
16508         * pa.c (last_address): Change to unsigned.
16509         (update_total_code_bytes): Change argument to unsigned.  Don't
16510         check if insn addresses are set.
16511         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
16512         addresses are not set.
16513         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
16514
16515 2009-01-09  Nick Clifton  <nickc@redhat.com>
16516
16517         * config/sh/symbian.c: Replace uses of DECL_INLINE with
16518         DECL_DECLARED_INLINE_P.
16519
16520 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
16521
16522         PR middle-end/38347
16523         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
16524         GET_MODE (op0) in operand_subword_force calls.
16525
16526         PR middle-end/38771
16527         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
16528         fold_convert arg0 operands to TREE_TYPE (op0) first.
16529
16530 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
16531
16532         * params.def (ira-max-conflict-table-size): Decrease default value
16533         to 1000.
16534
16535 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
16536
16537         PR tree-optimization/37031
16538         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
16539         on parameter_set.
16540         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
16541         allocate it using gc instead of heap, use VEC_quick_push instead of
16542         VEC_safe_push.
16543         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
16544         instead of heap, use VEC_quick_push instead of VEC_safe_push.
16545         * tree-data-ref.h (struct access_matrix): Change matrix to gc
16546         allocated vector from heap allocated.
16547         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
16548         * tree-loop-linear.c (linear_transform_loops): Allocate nest
16549         vector only after perfect_loop_nest_depth call.
16550
16551 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
16552             Jan Sjodin  <jan.sjodin@amd.com>
16553
16554         PR tree-optimization/38559
16555         * graphite.c (debug_value, copy_constraint,
16556         swap_constraint_variables, scale_constraint_variable, ): New.
16557         (get_lower_bound, get_upper_bound): Removed.
16558         (graphite_trans_bb_strip_mine): Clean up this code that works
16559         only for constant number of iterations.  Fully copy upper and
16560         lower bound constraints, not only the constant part of them.
16561         * graphite.h (debug_value): Declared.
16562
16563 2009-01-08  Ira Rosen  <irar@il.ibm.com>
16564
16565         PR tree-optimization/37194
16566         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
16567         Don't add the cost of cost model guard in prologue to scalar
16568         outside cost in case of known number of iterations.
16569
16570 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
16571             Alan Modra  <amodra@bigpond.net.au>
16572
16573         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
16574         non-word-aligned REG+CONST addressing.
16575
16576 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
16577
16578         PR target/38706
16579         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
16580         free_after_compilation when outputting a thunk.
16581         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
16582         Do not call free_after_compilation here.
16583
16584 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
16585
16586         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
16587         (ix86_valid_target_attribute_inner_p): Ditto.
16588
16589 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
16590
16591         PR tree-optimization/38492
16592         PR tree-optimization/38498
16593         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
16594         * tree-chrec.h (scev_is_linear_expression): Declared.
16595         * graphite.c (graphite_cannot_represent_loop_niter): New.
16596         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
16597         (graphite_loop_normal_form): Use gcc_assert.
16598         (scan_tree_for_params): Use CASE_CONVERT.
16599         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
16600         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
16601         Use gcc_assert.  Discard scops that contain unhandled cases.
16602         (build_scop_conditions): Return a boolean status for unhandled cases.
16603         (strip_mine_profitable_p): Print the loop number, not its depth.
16604         (is_interchange_valid): Pass the depth of the loop nest, don't
16605         recompute it wrongly.
16606         (graphite_trans_bb_block): Same.
16607         (graphite_trans_bb_block): Print tentative of loop blocking.
16608         (graphite_trans_scop_block): Do not print that the loop has been
16609         blocked.
16610         (graphite_transform_loops): Do not handle scops that contain condition
16611         scalar phi nodes.
16612
16613 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16614
16615         AVX Programming Reference (December, 2008)
16616         * config/i386/avxintrin.h (_mm256_stream_si256): New.
16617         (_mm256_stream_pd): Likewise.
16618         (_mm256_stream_ps): Likewise.
16619
16620         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
16621         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
16622         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
16623         (bdesc_special_args): Add __builtin_ia32_movntdq256,
16624         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
16625         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
16626         (ix86_expand_special_args_builtin): Likewise.
16627
16628         * config/i386/sse.md (AVXMODEDI): New.
16629         (avx_movnt<mode>): Likewise.
16630         (avx_movnt<mode>): Likewise.
16631         (<sse>_movnt<mode>): Remove AVX support.
16632         (sse2_movntv2di): Likewise.
16633
16634 2009-01-07  Richard Guenther  <rguenther@suse.de>
16635
16636         PR middle-end/38751
16637         * fold-const.c (extract_muldiv): Remove obsolete comment.
16638         (fold_plusminus_mult_expr): Undo MINUS_EXPR
16639         to PLUS_EXPR canonicalization for the canonicalization.
16640
16641 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
16642
16643         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
16644         hosted cross-compilers generating less efficient code.
16645
16646 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
16647
16648         * function.h (rtl_data): Add a dbr_scheduled_p field.
16649         * reorg.c (dbr_schedule): Set it.
16650         (gate_handle_delay_slots): Check it.
16651         * config/mips/mips.c (mips_base_delayed_branch): Delete.
16652         (mips_reorg): Check flag_delayed_branch instead of
16653         mips_base_delayed_branch.
16654         (mips_override_options): Don't set mips_base_delayed_branch
16655         or flag_delayed_branch.
16656
16657 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
16658
16659         PR rtl-optimization/38426.
16660         * ira.c (ira): Set current_function_is_leaf earlier.
16661
16662 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
16663
16664         PR rtl-optimization/38722
16665         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
16666         too early, only set a flag and modify after last possible
16667         undo_all point.
16668
16669 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
16670
16671         PR c/34252
16672         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
16673         * real.c (decimal_single_format): Correct values of emin and emax.
16674         (decimal_double_format): Ditto.
16675         (decimal_quad_format): Ditto.
16676         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
16677         computation of DECnn_MIN and DECnn_MAX for corrected values of
16678         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
16679         __DECnn_MIN__, and adjust its computation for the corrected value
16680         of emin.
16681
16682 2009-01-06  Jan Hubicka  <jh@suse.cz>
16683
16684         PR target/38744
16685         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
16686
16687 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
16688
16689         * doc/contrib.texi (Contributors): Slightly adjust the end note.
16690         Add Robert Clark to the list of testers.
16691
16692 2009-01-06  Jan Hubicka  <jh@suse.cz>
16693             Kai Tietz  <kai.tietz@onevision.com>
16694
16695         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
16696         * config/i386/i386.c (ix86_expand_call): Add clobbers.
16697
16698 2009-01-06  Jan Hubicka  <jh@suse.cz>
16699             Kai Tietz  <kai.tietz@onevision.com>
16700
16701         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
16702         for w64 ABI.
16703         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
16704         (ix86_nsaved_regs): Count only general purpose regs.
16705         (ix86_nsaved_sseregs): New.
16706         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
16707         to 16 for w64; compute padding and size of sse reg save area.
16708         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
16709         general purpose regs.
16710         (ix86_emit_save_sse_regs_using_mov): New.
16711         (ix86_expand_prologue): Save SSE regs if needed.
16712         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
16713         (ix86_emit_restore_sse_regs_using_mov): New.
16714         (ix86_expand_epilogue): Save SSE regs if needed.
16715
16716 2009-01-06  Jan Hubicka  <jh@suse.cz>
16717             Kai Tietz  <kai.tietz@onevision.com>
16718
16719         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
16720         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
16721         functions when accumulate outgoing args is off.
16722
16723 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
16724
16725         PR bootstrap/38742
16726         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
16727         before using pseudos_have_intersected_live_ranges_p.
16728
16729         * ira-int.h (ira_assert): Always define.
16730
16731 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
16732
16733         AVX Programming Reference (December, 2008)
16734         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
16735         (_mm256_permute2_pd): Likewise.
16736         (_mm_permute2_ps): Likewise.
16737         (_mm256_permute2_ps): Likewise.
16738         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
16739         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
16740
16741         * config/i386/i386.c (ix86_builtins): Remove
16742         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
16743         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
16744         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
16745         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
16746         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
16747         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
16748         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
16749         __builtin_ia32_vpermil2ps256.
16750         (ix86_init_mmx_sse_builtins): Updated.
16751         (ix86_expand_args_builtin): Likewise.
16752
16753 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16754
16755         * pa.c (output_call): Relocate non-jump insns in the delay slot of
16756         long absolute calls when generating PA 2.0 code.
16757
16758 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
16759
16760         PR rtl-optimization/38583
16761         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
16762
16763         * params.def (ira-max-conflict-table-size): New.
16764
16765         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
16766
16767         * ira.h (ira_conflicts_p): New external definition.
16768
16769         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
16770         table.  Report this.  Return result of building.
16771         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
16772         building conflict table.
16773
16774         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
16775         (ira_color): Use ira_conflicts_p.
16776
16777         * global.c: Include ira.h.
16778         (pseudo_for_reload_consideration_p, build_insn_chain): Use
16779         ira_conflicts_p.
16780
16781         * Makefile.in (global.o): Add ira.h.
16782
16783         * ira-build.c (mark_all_loops_for_removal,
16784         propagate_some_info_from_allocno): New.
16785         (remove_unnecessary_allocnos): Call
16786         propagate_some_info_from_allocno.
16787         (remove_low_level_allocnos): New.
16788         (remove_unnecessary_regions): Add parameter.  Call
16789         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
16790         parameter to remove_unnecessary_regions.
16791         (ira_build): Remove all regions but root if the conflict table was
16792         not built.  Update conflict hard regs for allocnos crossing calls.
16793
16794         * ira.c (ira_conflicts_p): New global.
16795         (ira): Define and use ira_conflicts_p.
16796
16797         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
16798         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
16799         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
16800
16801 2009-01-06  Ben Elliston  <bje@au.ibm.com>
16802
16803         * gengtype-lex.l (YY_NO_INPUT): Define.
16804
16805 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
16806
16807         PR c/34911
16808         * c-common.c (handle_vector_size_attribute): Also reject
16809         BOOLEAN_TYPE types.
16810
16811 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
16812
16813         PR tree-optimization/38492
16814         * graphite.c (rename_map_elt, debug_rename_elt,
16815         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
16816         rename_map_elt_info, eq_rename_map_elts,
16817         get_new_name_from_old_name, bb_in_sese_p): Moved around.
16818         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
16819         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
16820         (sese_build_livein_liveouts): New.
16821         (new_sese, free_sese): New.
16822         (new_scop): Call new_sese.
16823         (free_scop): Call free_sese.
16824         (rename_variables_from_edge, rename_phis_end_scop): Removed.
16825         (register_old_new_names): Renamed register_old_and_new_names.
16826         (register_scop_liveout_renames, add_loop_exit_phis,
16827         insert_loop_close_phis, struct igp,
16828         default_liveout_before_guard, add_guard_exit_phis,
16829         insert_guard_phis, copy_renames): New.
16830         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
16831         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
16832         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
16833         (scop_adjust_phis_for_liveouts): New.
16834         (gloog): Call scop_adjust_phis_for_liveouts.
16835
16836         * graphite.h (struct sese): Documented.  Added fields liveout,
16837         num_ver and livein.
16838         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
16839         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
16840         (struct scop): Added field liveout_renames.
16841         (SCOP_LIVEOUT_RENAMES): New.
16842
16843 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16844
16845         PR tree-optimization/38510
16846         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
16847         (translate_clast): Call recompute_all_dominators before
16848         graphite_verify.
16849         (gloog): Call recompute_all_dominators before graphite_verify.
16850
16851 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
16852             Jan Sjodin  <jan.sjodin@amd.com>
16853
16854         PR tree-optimization/38500
16855         * graphite.c (create_sese_edges): Call fix_loop_structure after
16856         splitting blocks.
16857
16858 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
16859
16860         * config.gcc: Add m32r*-*-rtems*.
16861         * config/m32r/rtems.h: New file.
16862
16863 2009-01-05  Ben Elliston  <bje@au.ibm.com>
16864
16865         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
16866         (.po.pox): Likewise.
16867         (po/gcc.pot): Likewise.
16868
16869 2009-01-04  David S. Miller  <davem@davemloft.net>
16870
16871         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
16872         (STARTING_FRAME_OFFSET): Always set to zero.
16873
16874 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
16875
16876         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
16877         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
16878         fixed-point types, and vectors of the same.
16879
16880 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
16881
16882         * config/mips/sync.md (*mb_barrier): Rename to...
16883         (*memory_barrier): ...this.
16884
16885 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
16886
16887         * doc/extend.texi (Function Attributes): Move @cindex after @item
16888         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
16889         and put in alphabetical order. Fix 'target' name and put in order.
16890         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
16891         typos.
16892
16893 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
16894
16895         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
16896         (memory_barrier): Expand as unspec instead of unspec_volatile.
16897         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16898         (*memory_barrier): Define as unspec instead of unspec_volatile.
16899         Use (match_dup 0) as input operand.
16900
16901         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
16902         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
16903         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
16904         scratch register.  Remove operand 1.
16905         (*stbar): Define as unspec instead of unspec_volatile.
16906         Use (match_dup 0) as input operand, remove (const_int 8).
16907         (*membar): Define as unspec instead of unspec_volatile.
16908         Use (match_dup 0) as input operand, remove input operand 2.
16909
16910         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
16911         (memory_barrier): Expand as unspec instead of unspec_volatile.
16912         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16913         (*memory_barrier): Define as unspec instead of unspec_volatile.
16914         Use (match_dup 0) as input operand.
16915
16916         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
16917         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16918         Set volatile flag on operand 0.
16919         (*memory_barrier): New insn pattern.
16920
16921         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
16922         insn operands.
16923         (*memory_barrier): Use (match_dup 0) as input operand.
16924
16925         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
16926         Remove mem:BLK from insn operands.  Use Pmode scratch register.
16927         Set volatile flag on operand 0.
16928         (*mb_internal): New insn pattern.
16929
16930         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
16931
16932 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
16933
16934         PR middle-end/38586
16935         * function.c (struct temp_slot): Move to the section of the file
16936         that deals with temp slots.  Remove field 'address'.
16937         (temp_slot_address_table): New hash table of address -> temp slot.
16938         (struct temp_slot_address_entry): New struct, items for the table.
16939         (temp_slot_address_compute_hash, temp_slot_address_hash,
16940         temp_slot_address_eq, insert_temp_slot_address): Support functions
16941         for the new table.
16942         (find_temp_slot_from_address): Rewrite to use the new hash table.
16943         (remove_unused_temp_slot_addresses): Remove addresses of temp
16944         slots that have been made available.
16945         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
16946         worker function for remove_unused_temp_slot_addresses.
16947         (assign_stack_temp_for_type): Don't clear the temp slot address list.
16948         Add the temp slot address to the address -> temp slot map.
16949         (update_temp_slot_address): Update via insert_temp_slot_address.
16950         (free_temp_slots): Call remove_unused_temp_slot_addresses.
16951         (pop_temp_slots): Likewise.
16952         (init_temp_slots): Allocate the address -> temp slot map, or empty
16953         the map if it is already allocated.
16954         (prepare_function_start): Initialize temp slot processing.
16955
16956 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
16957
16958         PR middle-end/38584
16959         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
16960         Calculate the size of all stack vars assuming no packing of stack
16961         vars will happen, replacing a quadratic algorithm with a linear one.
16962
16963 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
16964
16965         PR target/38707
16966         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
16967         can't be used.
16968
16969 2009-01-03  Diego Novillo  <dnovillo@google.com>
16970
16971         * doc/contrib.texi: Update contributions.
16972
16973 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
16974
16975         PR c++/38705
16976         * builtins.c (fold_builtin_memory_op): Give up if either operand
16977         is volatile.  Set srctype or desttype to non-qualified version
16978         of the other type.
16979
16980         PR c/38700
16981         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
16982         and FUNCTION_DECLs.
16983
16984 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
16985
16986         PR rtl-optimization/35805
16987         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
16988         problem if fast dce is able to remove any instructions.
16989         * dce.c (dce_process_block): Fix dump message.
16990
16991 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
16992
16993         PR 33649
16994         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
16995
16996 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
16997
16998         PR middle-end/38690
16999         * tree-flow.h (op_code_prio, op_prio): New prototypes.
17000         * tree-pretty-print.c (op_code_prio): New function.
17001         (op_prio): No longer static.  Use op_code_prio.
17002         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
17003         Use op_prio and op_code_prio to determine if () should be
17004         printed around operand(s) or not.
17005
17006         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
17007         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
17008         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
17009         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
17010         pp_character instead of pp_string for single letter printing.
17011
17012 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
17013
17014         * doc/extend.texi: Fix '#pragma GCC option' typo.
17015
17016 2009-01-02  Richard Guenther  <rguenther@suse.de>
17017
17018         * doc/install.texi (--enable-checking): Mention different
17019         default for stage1.
17020         (--enable-stage1-checking): Document.
17021
17022 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
17023
17024         PR middle-end/30142
17025         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
17026         case to be an error.
17027
17028 2009-01-02  Ben Elliston  <bje@au.ibm.com>
17029
17030         * config/fp-bit.h (pack_d): Constify argument.
17031         * config/fp-bit.c (makenan): Constify return type. Remove casts.
17032         (isnan): Constify argument.
17033         (isinf): Likewise.
17034         (iszero): Likewise.
17035         (pack_d): Likewise.
17036         (_fpadd_parts): Constify return type.
17037         (_fpmul_parts): Likewise.
17038         (_fpdiv_parts): Likewise.
17039
17040 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
17041
17042         PR c/36489
17043         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
17044         warn about overwriting initializer with side-effects or
17045         -Woverride-init if !IMPLICIT.
17046         (output_init_element): Likewise.  Pass IMPLICIT down to
17047         add_pending_init.
17048         (process_init_element): Add IMPLICIT argument.  Pass it down
17049         to output_init_element.
17050         (push_init_element, pop_init_level, set_designator): Adjust
17051         process_init_element callers.
17052         (set_nonincremental_init, set_nonincremental_init_from_string):
17053         Adjust add_pending_init callers.
17054         (output_pending_init_elements): Adjust output_init_element callers.
17055         * c-tree.h (process_init_element): Adjust prototype.
17056         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
17057         process_init_element callers.
17058
17059 \f
17060 Copyright (C) 2009 Free Software Foundation, Inc.
17061
17062 Copying and distribution of this file, with or without modification,
17063 are permitted in any medium without royalty provided the copyright
17064 notice and this notice are preserved.