OSDN Git Service

2008-05-26 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-26  Richard Guenther  <rguenther@suse.de>
2
3         * tree-ssa-sccvn.c (expr_has_constants): Declare.
4         (visit_reference_op_load): Initialize VN_INFO->has_constants
5         properly.
6
7 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
8
9         PR middle-end/36253
10         * caller-save.c (insert_restore): Verify alignment of spill
11         space.
12         (insert_save): Likewise.
13
14         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
15
16         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
17         (STACK_SLOT_ALIGNMENT): Likewise.
18
19         * function.c (LOCAL_ALIGNMENT): Removed.
20         (get_stack_local_alignment): New.
21         (assign_stack_local): Use it.  Set alignment on stack slot.
22         (assign_stack_temp_for_type): Use get_stack_local_alignment.
23
24         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
25         (STACK_SLOT_ALIGNMENT): New.
26
27         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
28         stack slot in XFmode.
29
30         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
31
32 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
33
34         PR/36321
35         * config/i386/i386.md (allocate_stack_worker_64): Make sure
36         argument operand in rax isn't removed.
37
38 2008-05-26  Richard Guenther  <rguenther@suse.de>
39
40         PR middle-end/36300
41         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
42         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
43
44 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
45
46         PR bootstrap/36331
47         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
48
49 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
50
51         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
52         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
53
54 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
55
56          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
57         build a trampoline if we don't want one.
58         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
59         return zero for nested functions if we don't want a trampoline.
60
61 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
62
63         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
64
65 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
66
67         PR fortran/18428
68         * c.opt: Removed undocumented option '-lang-fortran'.
69         * c-common.h: Removed global variable 'lang_fortran'.
70         * c-opts.c (c_common_handle_option): Removed code to handle
71         option '-lang-fortran'. Updated includes.
72         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
73         definition of '__GFORTRAN__'.
74         (define__GNUC__): Reimplemented to use BASEVER and
75         cpp_define_formatted.
76         (builtin_define_with_value_n): Removed.
77         * c-incpath.h: Renamed to ...
78         * incpath.h: ... this.
79         * c-incpath.c: Renamed to ...
80         * incpath.c: ... this. Updated includes.
81         * fix-header.c: Updated includes.
82         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
83         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
84         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
85
86 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
87
88         * tree.h: Update the table of flags used on tree nodes.
89         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
90         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
91         (FORCED_LABEL): Add access check.
92         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
93         (ASM_INPUT_P): Likewise.
94         (ASM_VOLATILE_P): Likewise.
95         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
96         (OMP_SECTION_LAST): Access private_flag directly.
97         (OMP_RETURN_NOWAIT): Likewise.
98         (OMP_PARALLEL_COMBINED): Likewise.
99         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
100         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
101         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
102         deprecated_flag directly.
103
104 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
105
106         * final.c (frame_pointer_needed): Removed.
107         * flags.h (frame_pointer_needed): Likewise.
108
109         * function.h (rtl_data): Add frame_pointer_needed.
110         (frame_pointer_needed): New.
111
112 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
113
114         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
115
116 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
117
118         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
119         SRC is a REG.
120
121 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
122
123         * c-common.c (strip_array_types): Move function to..
124         * tree.c: ..here.
125         (get_inner_array_type): Delete.
126         * c-common.h (strip_array_types): Move declaration to..
127         * tree.h: ..here.
128         (get_inner_array_type): Delete.
129         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
130         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
131         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
132         * config/pa/pa.c (emit_move_sequence): Likewise.
133
134 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
135
136         * config/i386/i386.md (*sse_prologue_save_insn): Set length
137         attribute to 34.
138
139 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
140
141         * function.c: Include target hook for nonlocal_goto frame value.
142
143 2008-05-24  Richard Guenther  <rguenther@suse.de>
144
145         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
146         a scalar variable can be only accessed through a pointer
147         or a union.
148
149 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
150
151         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
152         * doc/extend.texi: Likewise.
153
154 2008-05-23  DJ Delorie  <dj@redhat.com>
155
156         * config/m32c/jump.md (untyped_call): Add.
157
158         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
159         for A24 to PSImode.
160         (m32c_address_cost): Detail costs for indirect offsets.
161
162 2008-05-23  Rafael Espindola  <espindola@google.com>
163
164         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
165         if a node is a SUBREG.
166         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
167         is a SUBREG.
168
169 2008-05-23  Paul Brook  <paul@codesourcery.com>
170             Carlos O'Donell  <carlos@codesourcery.com>
171
172         * doc/extend.texi: Clarify use of __attribute__((naked)).
173         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
174         * target.h (gcc_target): Add allocate_stack_slots_for_args.
175         * function.c (use_register_for_decl): Use
176         targetm.calls.allocate_stack_slots_for_args.
177         * target-def.h (TARGET_CALLS): Add 
178         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
179         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
180         New function.
181         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
182
183 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
184
185         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
186
187 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
188
189         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
190         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
191         is only rounded once.
192
193 2008-05-23  Richard Guenther  <rguenther@suse.de>
194
195         * tree-ssa-operands.c (mark_difference_for_renaming): Use
196         bitmap_xor.
197
198 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
199             Jakub Jelinek  <jakub@redhat.com>
200
201         PR target/36079
202         * configure.ac: Handle --enable-cld.
203         * configure: Regenerated.
204         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
205         * config/i386/i386.h (struct machine_function): Add needs_cld field.
206         (ix86_current_function_needs_cld): New define.
207         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
208         (cld): New isns pattern.
209         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
210         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
211         * config/i386/i386.opt (mcld): New option.
212         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
213         TARGET_CLD and ix86_current_function_needs_cld.
214         (override_options): Use -mcld by default for 32-bit code if
215         USE_IX86_CLD.
216
217         * doc/install.texi (Options specification): Document --enable-cld.
218         * doc/invoke.texi (Machine Dependent Options)
219         [i386 and x86-64 Options]: Add -mcld option.
220         (Intel 386 and AMD x86-64 Options): Document -mcld option.
221
222 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
223         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
224         (return_in_memory_64): Likewise.
225         (return_in_memory_ms_64): Likewise.
226
227 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
228
229         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
230         * builtins.c (fold_builtin_fpclassify): New.
231         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
232         * builtins.def (BUILT_IN_FPCLASSIFY): New.
233         * c-common.c (handle_type_generic_attribute): Adjust to accept
234         fixed arguments before an elipsis.
235         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
236         * doc/extend.texi: Document __builtin_fpclassify.
237
238 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
239
240         * omp-low.c (gate_expand_omp_ssa): Remove.
241         (pass_expand_omp_ssa): Remove.
242         (gate_expand_omp): Do not check for flag_openmp_ssa.
243         * common.opt (-fopenmp-ssa): Remove.
244         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
245
246 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
247
248         * config/sh/sh.opt (mfixed-range): New option.
249         * config/sh/sh-protos.h (sh_fix_range): Declare.
250         * config/sh/sh.c (sh_fix_range): New function.
251         * config/sh/sh.h (sh_fixed_range_str): Declare.
252         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
253         is not empty.
254         * doc/invoke.texi (SH Options): Document -mfixed-range.
255
256 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
257
258         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
259         it before the redeclaration.
260
261 2008-05-22  Anatoly Sokolov <aesok@post.ru>
262
263         * config/avr/avr.c (get_sequence_length): Add new function.
264         (expand_prologue, expand_epilogue): Remove duplicate code.
265
266 2008-05-22  Rafael Espindola  <espindola@google.com>
267
268         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
269         sharing.
270
271 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
272
273         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
274         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
275
276         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
277         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
278         (vect_update_misalignment_for_peel): Likewise.
279         (vector_alignment_reachable_p): Likewise.
280         * tree-vect-transform.c (vectorizable_load): Likewise.
281         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
282         (get_vectype_for_scalar_type): Pass mode of scalar_type
283         to UNITS_PER_SIMD_WORD.
284
285         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
286         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
287         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
288         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
289         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
290
291 2008-05-22  Ira Rosen  <irar@il.ibm.com>
292
293         PR tree-optimization/36293
294         * tree-vect-transform.c (vect_transform_strided_load): Don't check
295         if the first load must be skipped because of a gap.
296
297 2008-05-22  Richard Guenther  <rguenther@suse.de>
298
299         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
300         more cases of offset disambiguation that is possible if
301         strict-aliasing rules apply.
302         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
303         for basic offset and type-based disambiguation.
304
305 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
306
307         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
308         ix86_expand_vector_set on V16QImode for SSE4.1.
309
310 2008-05-21  Tom Tromey  <tromey@redhat.com>
311
312         * c.opt (Wimport): Mark as undocumented.
313         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
314         -Wno-import.
315         (Warning Options): Likewise.
316         * doc/cppopts.texi: Don't mention -Wimport.
317
318 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
319
320         PR tree-optimization/36287
321         PR tree-optimization/36286
322         * lambda-code.c (build_access_matrix): Do not use the loop->num
323         for computing the number of induction variables: use the loop depth
324         instead.
325
326 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
327
328         PR/36280
329         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
330         option -f(no-)leading-underscore.
331
332 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
333
334         * config/i386/i386.c (ix86_expand_vector_init_general): Use
335         GET_MODE_NUNITS (mode).
336
337 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
338
339         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
340         (-mmulhw): Add 464 to description.
341         (-mdlmzb): Likewise.
342         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
343         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
344         464fp entries.
345         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
346         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
347         * config/rs6000/rs6000.md: Update comments for 464.
348
349 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
350
351         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
352
353 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
354
355         * config/i386/sse.md (vec_extractv4sf): Removed.
356         (vec_extractv2df): Likewise.
357         (vec_extractv2di): Likewise.
358         (vec_extractv4si): Likewise.
359         (vec_extractv8hi): Likewise.
360         (vec_extractv16qi): Likewise.
361         (vec_extract<mode>): New.
362
363 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
364
365         * config/i386/sse.md (vec_setv4sf): Removed.
366         (vec_setv2df): Likewise.
367         (vec_setv2di): Likewise.
368         (vec_setv4si): Likewise.
369         (vec_setv8hi): Likewise.
370         (vec_setv16qi): Likewise.
371         (vec_set<mode>): New.
372
373 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
374
375         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
376         goto for vec_concat and vec_interleave.
377
378 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
379
380         * config/i386/sse.md (vec_initv4sf): Removed.
381         (vec_initv2df): Likewise.
382         (vec_initv2di): Likewise.
383         (vec_initv4si): Likewise.
384         (vec_initv8hi): Likewise.
385         (vec_initv16qi): Likewise.
386         (vec_init<mode>): New.
387
388 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
389
390         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
391
392 2008-05-21  Tom Tromey  <tromey@redhat.com>
393
394         * ggc-zone.c (lookup_page_table_if_allocated): New function.
395         (zone_find_object_offset): Likewise.
396         (gt_ggc_m_S): Likewise.
397         (highest_bit): Likewise.
398         * ggc-page.c (gt_ggc_m_S): New function.
399         * stringpool.c (string_stack): Remove.
400         (init_stringpool): Update.
401         (ggc_alloc_string): Use ggc_alloc.
402         (maybe_delete_ident): New function.
403         (ggc_purge_stringpool): Likewise.
404         (gt_ggc_m_S): Remove.
405         * ggc-common.c (ggc_protect_identifiers): New global.
406         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
407         ggc_protect_identifiers.
408         * ggc.h (ggc_protect_identifiers): Declare.
409         (gt_ggc_m_S): Update.
410         (ggc_purge_stringpool): Declare.
411         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
412         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
413         special case.
414         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
415
416 2008-05-21  David S. Miller  <davem@davemloft.net>
417
418         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
419         tmake_file.
420
421 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
422
423         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
424         once finished.
425
426 2008-05-20  David Daney  <ddaney@avtrex.com>
427
428         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
429         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
430         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
431         UNSPEC_UPDATE_GOT_VERSION): Renumber.
432         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
433         (atomic_hiqi_op): New define_code_iterator.
434         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
435         mips_expand_compare_and_swap_12.
436         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
437         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
438         (sync_<optab><mode>, sync_old_<optab><mode>,
439         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
440         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
441         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
442         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
443         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
444         (test_and_set_12): New insn.
445         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
446         sync_new_<optab><mode>, sync_old_nand<mode>,
447         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
448         clobber to operand 0 for SI and DI mode insns.
449         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
450         mips_gen_fn_4): New typedefs.
451         (mips_gen_fn_ptrs): Define new union type.
452         (mips_expand_compare_and_swap_12): Remove declaration.
453         (mips_expand_atomic_qihi): Declare function.
454         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
455         (mips_expand_atomic_qihi): ... this.  Use new generator function
456         parameter.
457         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
458         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
459         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
460         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
461         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
462         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
463         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
464         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
465         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
466         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
467         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
468         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
469
470 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
471
472         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
473         the missing break.
474
475 2008-05-20  Anatoly Sokolov <aesok@post.ru>
476
477         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
478         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
479         (avr_attribute_table): Add 'OS_main' function attribute.
480         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
481         functions with 'OS_main' attribute.
482
483 2008-05-20  Richard Guenther  <rguenther@suse.de>
484
485         PR tree-optimization/35204
486         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
487         helper, split out from ...
488         (DFS): ... here.  Make the DFS walk non-recursive.
489
490 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
491             Jan Sjodin  <jan.sjodin@amd.com>
492
493         PR tree-optimization/36181
494         * tree-parloops.c (loop_has_vector_phi_nodes): New.
495         (parallelize_loops): Don't parallelize when the loop has vector
496         phi nodes.
497
498 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
499             Sebastian Pop  <sebastian.pop@amd.com>
500
501         * tree-loop-linear.c (gather_interchange_stats): Look in the access
502         matrix, and never look at the tree representation of the memory
503         accesses.
504         (linear_transform_loops): Computes parameters and access matrices.
505         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
506         when fails.
507         (access_matrix_get_index_for_parameter): New.
508         * tree-data-ref.h (struct access_matrix): New.
509         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
510         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
511         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
512         am_vector_index_for_loop): New.
513         (struct data_reference): Add field access_matrix.
514         (DR_ACCESS_MATRIX): New.
515         (compute_data_dependences_for_loop): Update declaration.
516         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
517         * lambda.h (lambda_vector_vec_p): Declared.
518         * lambda-code.c: Depend on pointer-set.h.
519         (lambda_collect_parameters_from_af, lambda_collect_parameters,
520         av_for_af_base, av_for_af, build_access_matrix,
521         lambda_compute_access_matrices): New.
522         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
523
524 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
525
526         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
527         $SOURCEDIR/include.
528
529 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
530             Sebastian Pop  <sebastian.pop@amd.com>
531
532         PR tree-optimization/36206
533         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
534         FOLD_CONVERSIONS.
535         (instantiate_scev_1): Rename flags to fold_conversions.
536         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
537         outeside instantiation_loop.
538         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
539         (evolution_function_is_affine_or_constant_p): Removed.
540         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
541         instantiate_scev.
542         (analyze_siv_subscript): Pass in the loop nest number.
543         Call evolution_function_is_affine_in_loop instead of 
544         evolution_function_is_affine_p.
545         (analyze_overlapping_iterations): Pass in the loop nest number.
546
547 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
548             Sebastian Pop  <sebastian.pop@amd.com>
549
550         PR tree-optimization/36206
551         * tree-chrec.h (chrec_fold_op): New.
552         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
553         and other trees.
554
555 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
556
557         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
558         (DIRS_EQ): New.
559         (remove_duplicates): Do not set inode on non-inode systems.
560         Use DIRS_EQ.
561
562 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
563
564         * config.gcc (tm_file): Update comments about relative pathnames.
565
566 2008-05-20  Richard Guenther  <rguenther@suse.de>
567
568         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
569         * tree-ssa-sccvn.c (process_scc): Likewise.
570         * tree-ssa-sink.c (execute_sink_code): Likewise.
571         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
572         * tree-vrp.c (process_assert_insertions): Likewise.
573         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
574         (perform_tree_ssa_dce): Likewise.
575         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
576         (dump_dominator_optimization_stats): Likewise.
577         * tree-vectorizer.c (vectorize_loops): Likewise.
578
579 2008-05-20  Richard Guenther  <rguenther@suse.de>
580
581         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
582
583 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
584
585         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
586         (ix86_i386elf_return_in_memory): Likewise.
587         (ix86_i386interix_return_in_memory): Likewise.
588         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
589         (SUBTARGET_RETURN_IN_MEMORY): New.
590         * config/i386/i386elf.h: Likewise.
591         * config/i386/ptx4-i.h: Likewise.
592         * config/i386/sol2-10.h: Likewise.
593         * config/i386/sysv4.h: Likewise.
594         * config/i386/vx-common.h: Likewise.
595         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
596         * config/i386/i386.c (ix86_return_in_memory): Made static and
597         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
598         (ix86_i386elf_return_in_memory): Removed.
599         (ix86_i386interix_return_in_memory): Removed.
600         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
601         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
602
603 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
604
605         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
606
607 2008-05-19  Xinliang David Li  <davidxl@google.com>
608
609         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
610         * opts.c: Ditto.
611         * common.opt: Ditto.
612         * doc/invoke.texi: Ditto.
613
614 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
615
616         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
617         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
618
619 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
620
621         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
622         sizes of operand array from 8/4 to 4/2.
623         (ix86_expand_vector_init_general): Change size of operand array
624         from 32 to 16.  Remove op0, op1 and half_mode.
625
626 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
627
628         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
629         (ix86_expand_vector_init_interleave): Likewise.
630         (ix86_expand_vector_init_general): Use them.  Assert word_mode
631         == SImode when n_words == 4.
632
633 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
634
635         * config/i386/i386.c (ix86_secondary_reload): New static function.
636         (TARGET_SECONDARY_RELOAD): New define.
637         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
638         * config/i386/i386.md (reload_outqi): Remove.
639
640 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
641
642         PR middle-end/35509
643         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
644         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
645         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
646         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
647         (fold_builtin_1): Likewise.
648         * builtins.def (BUILT_IN_ISINF_SIGN): New.
649         c-common.c (check_builtin_function_arguments): Handle
650         BUILT_IN_ISINF_SIGN.
651         * doc/extend.texi: Document __builtin_isinf_sign.
652         * fold-const.c (operand_equal_p): Handle COND_EXPR.
653
654 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
655
656         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
657         EH cleanup at the end of the pass, search for those that have been
658         turned into forwarder blocks and do the cleanup on their successor.
659
660 2008-05-18  Richard Guenther  <rguenther@suse.de>
661
662         * tree-cfg.c (verify_gimple_expr): Allow conversions from
663         pointers to sizetype and vice versa.
664
665 2008-05-18 Xinliang David Li   <davidxl@google.com>
666
667         * gcc/tree-ssa-dce.c: Coding style fix.
668         (check_pow): Documentation comment. 
669         (check_log): Documenation comment. Coding style fix.
670         (is_unnecessary_except_errno_call): Ditto.
671         (gen_conditions_for_pow): Ditto.
672         (gen_conditions_for_log): Ditto.
673         (gen_shrink_wrap_conditions): Ditto.
674         (shrink_wrap_one_built_in_calls): Ditto.
675         * gcc/doc/invoke.texi: Better documentation string.
676         * ChangeLog: Fix wrong change log entries from 
677         May 17 checkin on function call DCE.
678
679 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
680
681         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
682
683 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
684
685         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
686         * df-problems.c (simulation routines): Fixed block comment to
687         properly say how to add forwards scanning functions.
688         
689 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
690
691         * tree-inline.c (setup_one_parameter): Remove dead code.
692
693 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
694
695         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
696         a BIT_AND_EXPR only for an INTEGER_TYPE.
697
698 2008-05-17 Xinliang David Li   <davidxl@google.com>
699
700         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
701         (check_pow, check_log, is_unnecessary_except_errno_call): New 
702         functions to check for eliminating math functions that are pure 
703         except for setting errno.
704         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
705         general condition expressions for shrink-wrapping pow/log calls.
706         (gen_shrink_wrap_conditions): Ditto.
707         (shrink_wrap_one_built_in_call): Ditto.
708         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
709         (mark_operand_necessary): If debugging, output if OP is necessary.
710         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
711         unnecessary.
712         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
713         opt level >= 2.
714         * gcc/common.opt: New user flag -ftree-builtin-dce.
715         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
716
717 2008-05-16  David S. Miller  <davem@davemloft.net>
718
719         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
720         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
721
722 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
723
724         PR target/36246
725         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
726
727 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
728
729         * ifcvt.c (dead_or_predicable): Rename
730         df_simulate_one_insn_backwards to df_simulate_one_insn.
731         * recog.c (peephole2_optimize): Ditto.
732         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
733         Ditto.
734         * df.h: Rename df_simulate_one_insn_backwards to
735         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
736         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
737         scanning of defs and uses.
738         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
739         (df_simulate_one_insn_forwards): Removed.
740
741 2008-05-16  Doug Kwan  <dougkwan@google.com>
742
743         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
744         QNaN & SNaN.
745         (real_from_string): Handle NaNs and Inf as approriate.
746
747 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
748
749         * doc/gty.texi (Source Files Containing Type Information): Note
750         that headers should appear first in the gtfiles list.
751
752 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
753
754         * tree.def (COND_EXEC): Properly documented this code.
755
756 2008-05-16  Diego Novillo  <dnovillo@google.com>
757
758         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
759         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
760         the new field.
761
762 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
763
764         * tree-ssa-dse (max_stmt_uid): Removed.
765         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
766         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
767         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
768         * function.h (cfun.last_stmt_uid): New field.
769         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
770         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
771         New functions.
772         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
773         (create_stmt_ann): Initialize the ann->uid field.
774         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
775         with new calls.
776         * tree-flow.h (renumber_gimple_stmt_uids): New function.
777
778 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
779
780         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
781         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
782         (init_empty_tree_cfg): Call it.
783
784 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
785
786         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
787         Update all users.
788
789 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
790
791         * doc/invoke.text (-fdump-tree-*-verbose): New option.
792         * tree-dump.c (dump_options): New verbose option.
793         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
794         Add verbose dump.
795         * tree-pass.h (TDF_VERBOSE): New dump flag.
796         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
797         (tree-flow.h): Added include.
798         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
799
800 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
801
802         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
803
804         From Jie Zhang  <jie.zhang@analog.com>
805         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
806         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
807         mcpu=bf561-none and mcpu=bf561-0.2.
808         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
809         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
810         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
811         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
812         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
813         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
814         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
815         option.
816         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
817         (cputype_selected): Remove.
818         (bfin_handle_option): Don't use cputype_selected.
819         (override_options): When no mcpu option, enable all workarounds.
820         Don't use bfin_workarounds.
821         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
822         processor type.
823         (DEFAULT_CPU_TYPE): Don't define.
824
825 2008-05-16  Richard Guenther  <rguenther@suse.de>
826
827         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
828         on deletion of the last stmt.
829
830 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
831
832         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
833         V8HImode for SSE2 and V16QImode for SSE4.1.
834
835 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
836
837         * cgraph.h (compute_inline_parameters): Made public.
838         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
839         variable_generate_summary, function_write_summary,
840         variable_write_summary, variable_read_summary.  Added generate_summary,
841         write_summary, read_summary.
842         * cgraphunit.c (cgraph_process_new_functions): Changed call from
843         pass_ipa_inline.function_generate_summary, to
844         compute_inline_parameters. 
845         * ipa-inline.c (compute_inline_parameters): Made public and added
846         node parameter.
847         (compute_inline_parameters_for_current): New function.
848         (pass_inline_param): Now calls compute_inline_parameters_for_current.
849         (inline_generate_summary): Removed parameter and made to loop over
850         all cgraph nodes.
851         (pass_ipa_inline): Updated for new IPA_PASS structure.
852         * passes.c (execute_ipa_summary_passes): Now is called once per
853         pass rather than once per node*pass.
854         
855 2008-05-15  Anatoly Sokolov <aesok@post.ru>
856
857         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
858         avr_have_mul_p, avr_asm_only_p): Remove variables.
859         (avr_override_options): Remove initialization of removed variables.
860         (avr_file_start):  Convert removed variables to fields of 
861         'struct base_arch_s *avr_current_arch'. 
862         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
863         (AVR_HAVE_MUL): (Ditto.).
864         (AVR_HAVE_MOVW): (Ditto.).
865         (AVR_HAVE_LPMX): (Ditto.). 
866         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
867         avr_asm_only_p): Remove declaration.
868
869 2008-05-15  Diego Novillo  <dnovillo@google.com>
870
871         * config/arm/arm.c (arm_return_in_memory): Fix return type.
872         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
873
874 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
875
876         PR middle-end/36194
877         * combine.c (check_conversion): Rename back to check_promoted_subreg.
878         Don't call record_truncated_value from here.
879         (record_truncated_value): Turn it into a for_each_rtx callback.
880         (record_truncated_values): New function.
881         (combine_instructions): Call note_uses with record_truncated_values.
882         Change name of check_conversion to check_promoted_subreg. 
883
884 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
885
886         * doc/sourcebuild.texi: Document support for torture tests.
887
888 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
889
890         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
891         to alternative 4 of operand 2.
892
893 2008-05-15  Richard Guenther  <rguenther@suse.de>
894
895         * tree-pass.h (current_pass): Declare.
896         (get_pass_for_id): Likewise.
897         * passes.c (passes_by_id, passes_by_id_size): New globals.
898         (set_pass_for_id): New function.
899         (get_pass_for_id): Likewise.
900         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
901         (execute_function_todo): Flush per function statistics.
902         * toplev.c (compile_file): Init statistics.
903         (general_init): Do early statistics initialization.
904         (finalize): Finish statistics.
905         * statistics.h (statistics_early_init): Declare.
906         (statistics_init): Likewise.
907         (statistics_fini): Likewise.
908         (statistics_fini_pass): Likewise.
909         (statistics_counter_event): Likewise.
910         (statistics_histogram_event): Likewise.
911         * statistics.c: New file.
912         * Makefile.in (OBJS-common): Add statistics.o.
913         (statistics.o): Add dependencies.
914         * doc/invoke.texi (-fdump-statistics): Document.
915
916         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
917         (insert): Likewise.
918         (execute_pre): Use statistics_counter_event.
919         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
920         (substitute_and_fold): Increment it.  Use statistics_counter_event.
921
922 2008-05-15  Diego Novillo  <dnovillo@google.com>
923
924         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
925
926         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
927         * tree-ssa-alias.c (new_type_alias): Remove references to
928         sub-variables from comment.
929         * tree-ssa-operands.c (swap_tree_operands): Likewise.
930
931 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
932
933         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
934         attribute to 1 only for insertps alternative.
935
936 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
937
938         * config/bfin/bfin.md (loadbytes): New pattern.
939         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
940         (bfin_init_builtins): Initialize it.
941         (bdesc_1arg): Add it.
942
943 2008-05-15  Sa Liu  <saliu@de.ibm.com>
944
945         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
946         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
947         * testsuite/lib/target-supports.exp: Add
948         check_effective_target_fortran_integer_16.
949
950 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
951
952         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
953         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
954         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
955         (TARGET_RETURN_IN_MEMORY): Define.
956
957 2008-05-15  Richard Guenther  <rguenther@suse.de>
958
959         PR middle-end/36244
960         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
961         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
962         represent unmodifiable vars.
963
964 2008-05-15  Richard Guenther  <rguenther@suse.de>
965
966         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
967         INDIRECT_REF and TARGET_MEM_REF.
968         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
969         TARGET_MEM_REF.
970
971 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
972             H.J. Lu  <hongjiu.lu@intel.com>
973
974         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
975         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
976         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
977         insn alternatives.  Add missing alternatives.
978         (*vec_concatv2di_rex64_sse4_1): Likewise.
979         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
980         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
981         Require TARGET_SSE.
982
983 2008-05-15  Richard Guenther  <rguenther@suse.de>
984
985         PR tree-optimization/36009
986         PR tree-optimization/36204
987         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
988         (determine_invariantness_stmt): Record the loop a store is
989         always executed in.
990         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
991         dependency.
992
993 2008-05-15  Richard Guenther  <rguenther@suse.de>
994
995         PR tree-optimization/34330
996         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
997         through the pointer will alias the SMT.
998
999 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1000
1001         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1002
1003 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1004
1005         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1006
1007 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1008             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1009
1010         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1011         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1012         (vashl_optab): New optab for vector/vector shifts.
1013         (vashr_optab): Ditto.
1014         (vlshr_optab): Ditto.
1015         (vrotl_optab): Ditto.
1016         (vrotr_optab): Ditto.
1017         (optab_subtype): New enum for optab_for_tree_code call.
1018         (optab_for_tree_code): Add enum optab_subtype argument.
1019
1020         * optabs.c (optab_for_tree_code): Take an additional argument to
1021         distinguish between a vector shift by a scalar and vector shift by
1022         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1023         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1024         vector shift by a vector.
1025         (expand_widen_pattern_expr): Pass additional argument to
1026         optab_for_tree_code.
1027
1028         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1029         vrotl_optab, vrotr_optab.
1030
1031         * expr.c (expand_expr_real_1): Update calls to
1032         optab_for_tree_code to distinguish between vector shifted by a
1033         scalar and vector shifted by a vector.
1034         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1035         (supportable_narrowing_operation): Ditto.
1036         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1037         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1038         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1039         (vect_create_epilog_for_reduction): Ditto.
1040         (vectorizable_reduction): Ditto.
1041         (vectorizable_operation): Ditto.
1042         (vect_strided_store_supported): Ditto.
1043         (vect_strided_load_supported): Ditto.
1044         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1045         * expmed.c (expand_shift): Ditto.
1046
1047         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1048         scalar type.
1049         (ashr@var{m}3): Ditto.
1050         (vashl@var{m}3): Document new vector/vector shift standard name.
1051         (vashr@var{m}3): Ditto.
1052         (vlshr@var{m}3): Ditto.
1053         (vrotl@var{m}3): Ditto.
1054         (vrotr@var{m}3): Ditto.
1055
1056         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1057         (PPERM_INVERT): Ditto.
1058         (PPERM_REVERSE): Ditto.
1059         (PPERM_REV_INV): Ditto.
1060         (PPERM_ZERO): Ditto.
1061         (PPERM_ONES): Ditto.
1062         (PPERM_SIGN): Ditto.
1063         (PPERM_INV_SIGN): Ditto.
1064         (PPERM_SRC1): Ditto.
1065         (PPERM_SRC2): Ditto.
1066
1067         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1068         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1069         allows a memory operand to be the value being added, and split it
1070         to improve vectorization.
1071         (sse5_pmacsdqh_mem): Ditto.
1072         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1073         (sse5_mulv2div2di3_high): Ditto.
1074         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1075         (vec_pack_trunc_v4si): Ditto.
1076         (vec_pack_trunc_v2di): Ditto.
1077         (sse5_pcmov_<mode>): Remove code that tried to use use
1078         andps/andnps instead of pcmov.
1079         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1080         pmacsdqh instructions.
1081         (vec_widen_smult_lo_v4si): Ditto.
1082
1083         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1084         (PPERM_INVERT): Ditto.
1085         (PPERM_REVERSE): Ditto.
1086         (PPERM_REV_INV): Ditto.
1087         (PPERM_ZERO): Ditto.
1088         (PPERM_ONES): Ditto.
1089         (PPERM_SIGN): Ditto.
1090         (PPERM_INV_SIGN): Ditto.
1091         (PPERM_SRC1): Ditto.
1092         (PPERM_SRC2): Ditto.
1093         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1094         true/false tests.
1095         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1096         comparisons.
1097         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1098         says ignore whether the last reference is a memory operand.
1099
1100 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1101             Paolo Bonzini <bonzini at gnu dot org>
1102
1103         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1104         shift patterns.
1105
1106         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1107         (vlshr<mode>3): Rename from vlshr<mode>3.
1108         (vashr<mode>3): Rename from vashr<mode>3.
1109         (mulv4sf3): Change the names of vector shift patterns.
1110         (mulv4si3): Ditto.
1111         (negv4sf2): Ditt.
1112
1113         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1114         shift insns.
1115
1116         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1117         (SI_SHLHI): Ditto.
1118         (SI_SHL): Ditto.
1119         (SI_SHLI): Ditto.
1120         (SI_ROTH): Ditto.
1121         (SI_ROTHI): Ditto.
1122         (SI_ROT): Ditto.
1123         (SI_ROTI): Ditto.
1124         (SPU_RL_0): Ditto.
1125         (SPU_RL_1): Ditto.
1126         (SPU_RL_2): Ditto.
1127         (SPU_RL_3): Ditto.
1128         (SPU_RL_4): Ditto.
1129         (SPU_RL_5): Ditto.
1130         (SPU_RL_6): Ditto.
1131         (SPU_RL_7): Ditto.
1132         (SPU_SL_0): Ditto.
1133         (SPU_SL_1): Ditto.
1134         (SPU_SL_2): Ditto.
1135         (SPU_SL_3): Ditto.
1136         (SPU_SL_4): Ditto.
1137         (SPU_SL_5): Ditto.
1138         (SPU_SL_6): Ditto.
1139         (SPU_SL_7): Ditto.
1140
1141         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1142         (floatunssidf2_internal): Change vector/vector shift names.
1143         (floatunsdidf2_internal): Ditto.
1144         (mulv8hi3): Ditto.
1145         (ashrdi3): Ditto.
1146         (ashrti3): Ditto.
1147         (cgt_df): Ditto.
1148         (cgt_v2df): Ditto.
1149         (dftsv): Ditto.
1150         (vashl<mode>3): Rename from ashl<mode>3.
1151         (vashr<mode>3): Rename from ashr<mode>3.
1152         (vlshr<mode>3): Rename from lshr<mode>3.
1153         (vrotl<mode>3): Rename from rotl<mode>3.
1154
1155 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1156
1157         PR target/36224
1158         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1159         multiply gives the wrong value when doing widening multiplies.
1160         (vec_widen_smult_lo_v4si): Ditto.
1161
1162 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1163
1164         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1165         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1166         emit_library_call_value. 
1167         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1168         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1169         * calls.c (initialize_argument_information, precompute_arguments, 
1170         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1171         (precompute_arguments): Removed flags parameter.
1172         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1173         
1174 2008-05-14  Richard Guenther  <rguenther@suse.de>
1175
1176         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1177         Make sure to register the store if the use is a PHI_NODE.
1178
1179 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1180
1181         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1182         memory if the component is to be referenced in BLKmode according
1183         to get_inner_reference.
1184
1185 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1186
1187         * calls.c (emit_library_call_value_1): Restore code clearing
1188         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1189
1190 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1191             Nicolas Roche  <roche@adacore.com>
1192
1193         * configure.ac: Add support for a "gcc_subdir" variable in
1194         config-lang.in, to denote a subdirectory where the language/GCC
1195         integration files are to be found.
1196         * configure: Regenerate.
1197
1198 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1199
1200         PR tree-optimization/36098
1201         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1202         value for the first load in the group in case of a gap.
1203         (vect_build_slp_tree): Check that there are no gaps in loads.
1204
1205 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1206
1207         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1208         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1209         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1210         emit_insn and remove unneeded code to construct extra args.
1211         (emit_no_conflict_block): Removed.
1212         * optabls.h: (emit_no_conflict_block): Removed.
1213         * cse.c (cse_extended_basic_block): Remove search for
1214         REG_NO_CONFLICT note.
1215         * global.c: Removed incorrect comment added in revision 117.
1216         * expr.c (convert_move): Change call to emit_no_conflict_block to
1217         emit_insn.
1218         * recog.c: Change comments so that they do not mention
1219         REG_NO_CONFLICT.
1220         * local_alloc.c (combine_regs): Removed last parameter.
1221         (no_conflict_p): Removed.
1222         (block_alloc): Removed note, no_conflict_combined_regno and set
1223         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1224         (combine_regs): Removed already_dead and code to look for
1225         REG_NO_CONFLICT notes.
1226         * lower_subreg (remove_retval_note): Removed code to look for
1227         REG_NO_CONFLICT block.
1228         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1229         (resolve_clobber): Remove code to process libcalls that have
1230         REG_NO_CONFLICT notes.
1231         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1232         case.
1233         * combine.c (can_combine_p, distribute_notes):  Removed
1234         REG_NO_CONFLICT case.
1235         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1236         to emit_insns.
1237         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1238         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1239         Ditto.
1240         * reg-notes.def (NO_CONFLICT): Removed.
1241
1242 2008-05-14  David S. Miller  <davem@davemloft.net>
1243
1244         * config/sparc/sparc.c (sparc_profile_hook): If
1245         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1246         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1247         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1248
1249 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1250
1251         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1252
1253 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1254
1255         PR target/36222
1256         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1257         and op1 expansion before vector concat to have less live pseudos.
1258
1259 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1260
1261         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1262         ix86_expand_vector_set if supported.
1263
1264 2008-05-13  Diego Novillo  <dnovillo@google.com>
1265             Kenneth Zadeck  <zadeck@naturalbridge.com>
1266
1267         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1268
1269         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1270         phinodes_print_statistics, init_ssanames, fini_ssanames,
1271         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1272         release_ssa_name, release_defs, replace_ssa_name_symbol,
1273         ssanames_print_statistics): Move ...
1274         * tree-flow.h: ... here.
1275         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1276         Use FN instead of cfun.
1277         (make_ssa_name_fn): Rename from make_ssa_name.
1278         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1279         * tree-flow-inline.h (make_ssa_name): Move from
1280         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1281         * omp-low.c (expand_omp_parallel):
1282         * tree-flow-inline.h (redirect_edge_var_map_result):
1283         * tree-ssa.c (init_tree_ssa): Add argument FN.
1284         Use it instead of cfun.  Update all users.
1285
1286 2008-05-13  Tom Tromey  <tromey@redhat.com>
1287
1288         PR preprocessor/22168:
1289         * doc/cpp.texi (Top): Update menu.
1290         (Alternatives to Wrapper #ifndef): New node.
1291         (Other Directives): Document deprecation.
1292         (Obsolete Features): Remove menu.
1293         (Assertions): Merge node into Obsolete Features.
1294         (Obsolete once-only headers): Move earlier; rename to Alternatives
1295         to Wrapper #ifndef.
1296         * doc/cppopts.texi: Update.
1297         * c.opt (Wdeprecated): Enable for C and ObjC.
1298         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1299         (C++ Dialect Options): Move -Wno-deprecated from here to...
1300         (Warning Options): ... here.
1301
1302 2008-05-13  Richard Guenther  <rguenther@suse.de>
1303
1304         PR middle-end/36227
1305         * fold-const.c (fold_sign_changed_comparison): Do not allow
1306         changes in pointer-ness.
1307
1308 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1309
1310         PR target/24713
1311         * config/sh/sh.c (sh_expand_prologue): Don't clear
1312         RTX_FRAME_RELATED_P for push insns.
1313
1314 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1315
1316         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1317
1318 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1319
1320         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1321         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1322         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1323
1324 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1325
1326         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1327         (*vec_concatv4sf_sse): This.
1328         (*sse2_concatv2si): Renamed to ...
1329         (*vec_concatv2si_sse2): This.
1330         (*sse1_concatv2si): Renamed to ...
1331         (*vec_concatv2si_sse): This.
1332         (*vec_concatv2di_rex): Renamed to ...
1333         (*vec_concatv2di_rex64): This.
1334         (*vec_concatv2si_sse4_1): New.
1335         (*vec_concatv2di_rex64_sse4_1): Likewise.
1336
1337 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1338
1339         PR rtl-optimization/36111
1340         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1341         that was created for swappable operands.
1342
1343 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1344
1345         PR ada/36001
1346         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1347         * configure.ac: Add call to ACX_PROG_GNAT.
1348
1349 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1350
1351         * optc-gen.awk: Fix comment typo.
1352
1353 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1354
1355         * pretty-print.c (pp_integer_with_precision): Use
1356         HOST_LONG_LONG_FORMAT.
1357
1358 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1359
1360         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1361                 
1362 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1363
1364         * config/i386/i386.c (bdesc_ptest): Removed.
1365         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1366         (bdesc_args): Add __builtin_ia32_ptestz128,
1367         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1368         (ix86_init_mmx_sse_builtins): Updated.
1369         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1370         (ix86_expand_builtin): Updated.
1371
1372 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1373
1374         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1375         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1376
1377 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1378
1379         * value-prof.c (interesting_stringop_to_profile): Do not
1380         return early for BUILT_IN_MEMPCPY.
1381
1382 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1383
1384         * calls.c (expand_call): Don't use callgraph to increase
1385         preferred_stack_boundary.
1386
1387         * cgraph.h (cgraph_rtl_info): Use unsigned on
1388         preferred_incoming_stack_boundary.
1389
1390         * final.c (rest_of_clean_state): Use unsigned on
1391         preferred_stack_boundary.
1392
1393 2008-05-09  Tom Tromey  <tromey@redhat.com>
1394
1395         PR preprocessor/22231:
1396         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1397         proceeding.
1398
1399 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1400
1401         PR tree-optimization/36129
1402         * tree-ssa-ccp.c: Include value-prof.h.
1403         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1404         built-in function was folded to a constant.
1405         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1406
1407 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1408             Sebastian Pop  <sebastian.pop@amd.com>
1409
1410         * tree-scalar-evolution.c: Document instantiate_scev.
1411         (instantiate_parameters_1): Renamed instantiate_scev_1.
1412         Don't use the same loop for instantiation_loop and evolution_loop.
1413         (instantiate_scev): New.
1414         (instantiate_parameters): Moved...
1415         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1416         same loop twice.  Maintains the semantics for this function.
1417         * tree-scalar-evolution.h (instantiate_scev): Declare.
1418         (instantiate_parameters): ...here.  Now static inline.
1419         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1420         instead of resolve_mixers.
1421
1422 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1423
1424         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1425
1426 2008-05-09  Tomas Bily  <tbily@suse.cz>
1427
1428         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1429         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1430         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1431         * c-common.c (c_common_truthvalue_conversion): Likewise.
1432         * tree-object-size.c (compute_object_offset): Likewise.
1433         * tree-inline.c (estimate_num_insns_1): Likewise.
1434         * varasm.c (const_hash_1, compare_constant, copy_constant)
1435         (compute_reloc_for_constant, output_addressed_constants)
1436         (initializer_constant_valid_p): Likewise.
1437         * c-omp.c (check_omp_for_incr_expr): Likewise.
1438         * gimplify.c (gimplify_expr): Likewise.
1439         * c-typeck.c (c_finish_return): Likewise.
1440         * tree-vectorizer.c (supportable_widening_operation)
1441         (supportable_narrowing_operation): Likewise.
1442         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1443         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1444         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1445         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1446         (descr_info_loc): Likewise.
1447         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1448         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1449         (fold_unary): Likewise.
1450         * builtins.c (get_pointer_alignment): Likewise.
1451         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1452         (instantiate_parameters_1): Likewise.
1453         * tree.c (expr_align, stabilize_reference): Likewise.
1454         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1455         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1456         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1457         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1458         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1459         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1460         Likewise.
1461         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1462         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1463         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1464         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1465         (forward_propagate_comparison)
1466         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1467         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1468         * emit-rtl.c (component_ref_for_mem_expr)
1469         (set_mem_attributes_minus_bitpos): Likewise.
1470         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1471         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1472         Likewise.
1473         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1474         (build_function_call, pointer_diff, build_compound_expr)
1475         (c_finish_return): Likewise.
1476         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1477         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1478         Likewise.
1479         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1480         * expr.c (is_aligning_offset): Likewise.
1481         * tree-ssa-alias.c (is_escape_site): Likewise.
1482         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1483         (check_all_va_list_escapes): Likewise.
1484         * tree-ssa-loop-ivopts.c (determine_base_object)
1485         (determine_common_wider_type): Likewise.
1486         * dojump.c (do_jump): Likewise.
1487         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1488         * tree-gimple.c (is_gimple_cast): Likewise.
1489         * fold-const.c (decode_field_reference, )
1490         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1491         (fold_binary): Likewise.
1492         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1493         (already_warned_in_frontend_p): Likewise.
1494         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1495         * tree.c (really_constant_p, get_unwidened): Likewise.
1496         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1497         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1498         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1499         Likewise.
1500         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1501         CONVERT_EXPR_P.
1502         (CONVERT_EXPR_P): Define.
1503         (CASE_CONVERT): Define.
1504         
1505 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1506
1507         PR middle-end/36117
1508         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1509         (delete_unmarked_insns): When deleting a call, call
1510         delete_unreachable_blocks.
1511         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1512         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1513
1514 2008-05-08  Richard Guenther  <rguenther@suse.de>
1515
1516         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1517         (-ftree-salias): Likewise.
1518         (salias-max-implicit-fields): Remove param documentation.
1519         (salias-max-array-elements): Likewise.
1520         * tree-pass.h (pass_create_structure_vars): Remove.
1521         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1522         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1523         * tree-ssa-alias.c (create_structure_vars): Remove.
1524         (gate_structure_vars): Likewise.
1525         (pass_create_structure_vars): Likewise.
1526         (gate_build_alias): Likewise.
1527         (pass_build_alias): Adjust to run always and dump the function.
1528         * common.opt (ftree-salias): Hide.
1529         * passes.c (init_optimization_passes): Remove
1530         pass_create_structure_vars, adjust comment.
1531         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1532         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1533         * opts.c (decode_options): Do not set flag_tree_salias.
1534         (common_handle_option): Add OPT_ftree_salias to the backward
1535         compatibility section.
1536
1537 2008-05-08  Richard Guenther  <rguenther@suse.de>
1538
1539         * tree-flow-inline.h (var_can_have_subvars): Move ...
1540         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1541         * tree-flow.h (var_can_have_subvars): Remove.
1542         (push_fields_onto_fieldstack): Remove.
1543         (sort_fieldstack): Likewise.
1544         (struct fieldoff): Move ...
1545         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1546         alias_set and base_for_components fields.
1547         (sort_fieldstack): Make static.
1548         (push_fields_onto_fieldstack): Likewise.  Remove code that
1549         handles anything but RECORD_TYPEs.  Remove alias_set and
1550         base_for_components handling.
1551         (create_variable_info_for): Adjust.
1552
1553 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1554
1555         * common.opt (Wframe-larger-than=): Shorten the help message
1556         to one line.
1557         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1558
1559 2008-05-08  Rafael Espindola  <espindola@google.com>
1560
1561         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1562         trap.
1563         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1564         trap and that both operands are gimple values.
1565         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1566         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1567         is a fp operation.
1568
1569 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1570
1571         * read-rtl.c (join_c_conditions): Return the first string if the
1572         two strings are equal.
1573
1574 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1575
1576         * gensupport.h (pred_data): Add a "num_codes" field.
1577         (add_predicate_code): Declare.
1578         * gensupport.c (add_predicate_code): New function.
1579         (std_pred_table): Add an "allows_const_p" field.
1580         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1581         Remove the (incomplete) list of such codes from the codes field.
1582         (init_predicate_table): Use add_predicate_code.  Add all
1583         RTX_CONST_OBJs if allows_const_p is true.
1584         * genrecog.c (process_define_predicate): Use add_predicate_code.
1585
1586 2008-05-08  David Daney  <ddaney@avtrex.com>
1587             Richard Sandiford  <rsandifo@nildram.co.uk>
1588         
1589         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1590         special case of constant zero operands.
1591         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1592         old and new values.  Special case constant zero values.
1593         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1594         fails.
1595         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1596         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1597
1598 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1599
1600         PR target/36090
1601         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1602         similar RTX_CONST_OBJ before CONST_INT.
1603
1604 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1605
1606         * stmt.c (expand_stack_restore): Change sa mode if needed.
1607
1608 2008-05-08  Richard Guenther  <rguenther@suse.de>
1609
1610         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1611         return type to bool.
1612         (ix86_sol10_return_in_memory): Likewise.
1613         (ix86_i386elf_return_in_memory): Likewise.
1614         (ix86_i386interix_return_in_memory): Likewise.
1615         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1616         (ix86_sol10_return_in_memory): Likewise.
1617         (ix86_i386elf_return_in_memory): Likewise.
1618         (ix86_i386interix_return_in_memory): Likewise.
1619
1620 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1621
1622         PR bootstrap/36180
1623         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1624         fndecl argument.
1625         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1626         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1627         declared in front.
1628
1629 2008-05-08  Richard Guenther  <rguenther@suse.de>
1630
1631         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1632         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1633         (DR_SUBVARS): Remove.
1634         * tree-dfa.c (dump_subvars_for): Remove.
1635         (debug_subvars_for): Likewise.
1636         (dump_variable): Do not dump subvars.
1637         (remove_referenced_var): Do not remove subvars.
1638         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1639         (lookup_subvars_for_var): Remove.
1640         (get_subvars_for_var): Likewise.
1641         (get_subvars_at): Likewise.
1642         (get_first_overlapping_subvar): Likewise.
1643         (overlap_subvar): Likewise.
1644         * tree-flow.h (subvar_t): Remove.
1645         (struct var_ann_d): Remove subvars field.
1646         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1647         argument.  Remove special handling of SFTs.
1648         (compute_tag_properties): Likewise.
1649         (set_initial_properties): Likewise.
1650         (compute_call_clobbered): Likewise.
1651         (count_mem_refs): Likewise.
1652         (compute_memory_partitions): Likewise.
1653         (compute_flow_insensitive_aliasing): Likewise.
1654         (setup_pointers_and_addressables): Likewise.
1655         (new_type_alias): Likewise.
1656         (struct used_part): Remove.
1657         (used_portions): Likewise.
1658         (struct used_part_map): Likewise.
1659         (used_part_map_eq): Likewise.
1660         (used_part_map_hash): Likewise.
1661         (free_used_part_map): Likewise.
1662         (up_lookup): Likewise.
1663         (up_insert): Likewise.
1664         (get_or_create_used_part_for): Likewise.
1665         (create_sft): Likewise.
1666         (create_overlap_variables_for): Likewise.
1667         (find_used_portions): Likewise.
1668         (create_structure_vars): Likewise.
1669         * tree.def (STRUCT_FIELD_TAG): Remove.
1670         * tree.h (MTAG_P): Adjust.
1671         (struct tree_memory_tag): Remove base_for_components and
1672         unpartitionable flags.
1673         (struct tree_struct_field_tag): Remove.
1674         (SFT_PARENT_VAR): Likewise.
1675         (SFT_OFFSET): Likewise.
1676         (SFT_SIZE): Likewise.
1677         (SFT_NONADDRESSABLE_P): Likewise.
1678         (SFT_ALIAS_SET): Likewise.
1679         (SFT_UNPARTITIONABLE_P): Likewise.
1680         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1681         (union tree_node): Remove sft field.
1682         * alias.c (get_alias_set): Remove special handling of SFTs.
1683         * print-tree.c (print_node): Remove handling of SFTs.
1684         * tree-dump.c (dequeue_and_dump): Likewise.
1685         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1686         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1687         * tree-predcom.c (set_alias_info): Do not set subvars.
1688         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1689         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1690         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1691         (add_vars_for_offset): Remove.
1692         (add_virtual_operand): Remove special handling of SFTs.
1693         (add_call_clobber_ops): Likewise.
1694         (add_call_read_ops): Likewise.
1695         (get_asm_expr_operands): Likewise.
1696         (get_modify_stmt_operands): Likewise.
1697         (get_expr_operands): Likewise.
1698         (add_to_addressable_set): Likewise.
1699         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1700         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1701         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1702         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1703         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1704         (tree_node_structure): Likewise.
1705         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1706         handling of SFTs.
1707         (find_what_p_points_to): Likewise.
1708
1709 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1710
1711         * config/spu/spu.md: Fixed subti3 pattern.
1712
1713 2008-05-08  Richard Guenther  <rguenther@suse.de>
1714
1715         PR middle-end/36154
1716         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1717         sure to create a representative for trailing arrays for PTA.
1718
1719 2008-05-08  Richard Guenther  <rguenther@suse.de>
1720
1721         PR middle-end/36172
1722         * fold-const.c (operand_equal_p): Two objects which types
1723         differ in pointerness are not equal.
1724
1725 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1726
1727         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1728         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1729         (emit_library_call_value_1): Add new variable fndecl initialized by
1730         NULL_TREE. It should be the decl type of orgfun, but this information
1731         seems not to be available here, so it uses the default calling abi.
1732         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1733         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1734         by TARGET_RETURN_IN_MEMORY.
1735         * config/i386/i386-interix.h: Likewise.
1736         * config/i386/i386.h: Likewise.
1737         * config/i386/i386elf.h: Likewise.
1738         * config/i386/ptx4-i.h: Likewise.
1739         * config/i386/sol2-10.h: Likewise.
1740         * config/i386/sysv4.h: Likewise.
1741         * config/i386/vx-common.h: Likewise.
1742         * config/cris/cris.h: Removed #if 0 clause.
1743         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
1744         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1745         argument.
1746         (ix86_sol10_return_in_memory): Likewise.
1747         (ix86_i386elf_return_in_memory): New.
1748         (ix86_i386interix_return_in_memory): New.
1749         * config/mt/mt-protos.h (mt_return_in_memory): New.
1750         * config/mt/mt.c: Likewise.
1751         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1752         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
1753         * config/bfin/bfin.h: Likewise.
1754         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1755         argument.
1756         * config/bfin/bfin.c: Likewise.
1757         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1758         * config/alpha/unicosmk.h: Likewise.
1759         * config/i386/cygming.h: Likewise.
1760         * config/iq2000/iq2000.h: Likewise.
1761         * config/mips/mips.h: Likewise.
1762         * config/mn10300/mn10300.h: Likewise.
1763         * config/rs6000/rs6000.h: Likewise.
1764         * config/score/score.h: Likewise.
1765         * config/spu/spu.h: Likewise.
1766         * config/v850/v850.h: Likewise.
1767         * defaults.h: Likewise.
1768         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
1769         * expr.c (emit_block_move): Adjust use of
1770         OUTGOING_REG_PARM_STACK_SPACE.
1771         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1772         OUTGOING_REG_PARM_STACK_SPACE.
1773         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1774
1775 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
1776
1777         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1778         on OMP_RETURN for OMP_FOR.
1779
1780         PR debug/35896
1781         * dwarf2out.c (dw_expand_expr, common_check): Removed.
1782         (fortran_common): New function.
1783         (gen_variable_die): Call fortran_common instead of common_check,
1784         adjust for it returning tree instead of rtx.  Formatting.
1785
1786 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1787
1788         PR rtl/7335
1789         PR rtl/33826
1790         * see.c (see_copy_insn): Copy new pure const attributes for new call.
1791         * c-decl.c (merge_decls): Ditto.
1792         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1793         to RTL_CONST_OR_PURE_CALL_P.
1794         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1795         Initialized DECL_LOOPING_CONST_PURE.
1796         (process_call_operands): Set tree_side_effects properly.
1797         * tree.h (TREE_READONLY_DECL_P): Removed.
1798         (DECL_IS_PURE): Renamed to DECL_PURE_P.
1799         (DECL_LOOPING_OR_CONST_P): New macro.
1800         (struct tree_function_decl): Added looping_const_or_pure_p.
1801         (ECF_*) Renumbered.
1802         (ECF_LOOPING_OR_CONST_P): New macro.
1803         * rtlanal.c (pure_const_p): Removed.
1804         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
1805         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
1806         to RTL_CONST_CALL_P.
1807         * ipa-pure-const.c (pure_const_state_e): Added looping field.
1808         (check_decl, check_tree, check_call, scan_function): Initialize
1809         looping.
1810         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
1811         (static_execute): Set looping true for recursive functions.
1812         Undo setting state to IPA_NEITHER for recursive functions.
1813         * cse.c (cse_insn): 
1814         * ifcvt.c (noce_can_store_speculate_p): Changed
1815         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
1816         RTL_CONST_OR_PURE_CALL_P.
1817         * dse.c (scan_insn): Ditto.
1818         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
1819         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
1820         RTL_CONST_OR_PURE_CALL_P.
1821         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
1822         pure_call_p to RTL_CONST_CALL_P.
1823         * gimplify.c (gimplify_call_expr): Clear side effects for
1824         non-looping pure and constant calls.
1825         * calls.c (emit_call_1): Set rtl flags from ecf flags.
1826         (flags_from_decl_or_type): Set ecf flags from decl flags.
1827         (initialize_argument_information): Turn off
1828         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
1829         Change const to pure if callee_copies is true rather than just
1830         turning off const.
1831         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
1832         way of marking pure calls.
1833         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
1834         Remove hack that was supposed to fix pr7335 and remove old
1835         way of marking pure calls.
1836         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
1837         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
1838         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
1839         RTL_CONST_OR_PURE_CALL_P.
1840         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
1841         * loop-invariant.c (find_exits, find_invariant_bb): Changed
1842         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
1843         * sched-deps.c (schedule_analyze): Ditto.
1844         * rtl.h (struct rtx_def): Use call field, unchanging field, and
1845         return_val field of calls to represent pure and const function info.
1846         (CONST_OR_PURE_CALL_P): Deleted macro.
1847         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1848         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
1849         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
1850         TREE_READONLY.
1851         * tree-optimize.c (execute_fixup_cfg): Added test for
1852         ECF_LOOPING_CONST_OR_PURE.
1853         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
1854         DECL_PURE_P.
1855         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
1856         effects for looping pure or const calls.
1857         (verify_gimple_expr): Added verification code. 
1858         * config/alpha/alpha.c (alpha_legitimize_address,
1859         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
1860         RTL_CONST_CALL_P.
1861         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
1862         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
1863         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
1864         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
1865         RTL_CONST_OR_PURE_CALL_P.
1866         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
1867         and const calls to be deleted.
1868
1869 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
1870
1871         PR target/35714
1872         * config/i386/mmx.md (mmx_subv2sf3): New expander.
1873         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
1874         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
1875         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
1876         to handle nonimmediate operands.
1877         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
1878         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
1879         to handle nonimmediate operands.
1880         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
1881         (mmx_pmulhrwv4hi3): New expander.  Use
1882         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1883         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
1884         (sse2_umulv1siv1di3): New expander.  Use
1885         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1886         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
1887         (mmx_eq<mode>3): New expander.  Use
1888         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1889         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
1890         (mmx_uavgv8qi3): New expander.  Use
1891         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1892         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
1893         (mmx_uavgv4hi3): New expander.  Use
1894         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1895
1896         * config/i386/sse.md
1897         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
1898         to handle nonimmediate operands.
1899         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
1900         to handle nonimmediate operands.
1901         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
1902         to handle nonimmediate operands.
1903         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
1904         to handle nonimmediate operands.
1905         (sse2_unpckhpd_exp): New expander.  Use
1906         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1907         (sse2_unpcklpd_exp): New expander.  Use
1908         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1909         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
1910         to handle nonimmediate operands.
1911         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
1912         to handle nonimmediate operands.
1913         (*sse2_<plusminus_insn><mode>3): Rename from
1914         sse2_<plusminus_insn><mode>3 insn pattern.
1915         (sse2_<plusminus_insn><mode>3): New expander.  Use
1916         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1917         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
1918         (sse2_umulv2siv2di3): New expander.  Use
1919         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1920         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
1921         (sse4_1_mulv2siv2di3): New expander.  Use
1922         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1923         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
1924         (sse2_pmaddwd): New expander.  Use
1925         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1926         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
1927         (sse2_eq<mode>3): New expander.  Use
1928         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1929         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
1930         (sse4_1_eqv2di3): New expander.  Use
1931         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1932         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1933         (sse2_uavgv16qi3): New expander.  Use
1934         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1935         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
1936         (sse2_uavgv16qi3): New expander.  Use
1937         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1938         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
1939         (sse2_uavgv8hi3): New expander.  Use
1940         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1941         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
1942         (ssse3_pmulhrswv8hi3): New expander.  Use
1943         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1944         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
1945         (ssse3_pmulhrswv4hi3): New expander.  Use
1946         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
1947
1948         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
1949         (<sse>_vmmul<mode>3): Ditto.
1950         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
1951         (divv2df3): Ditto.
1952         (ssse3_pmaddubsw128): Use register_operand for operand 1.
1953         (ssse3_pmaddubsw): Ditto.
1954
1955         * config/i386/i386.c (struct_builtin_description)
1956         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
1957         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
1958         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
1959         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
1960         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
1961         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
1962         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
1963         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
1964         (ix86_fixup_binary_operands): Assert that src1
1965         and src2 must have the same mode when swapped.
1966         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
1967         and ix86_binary_operator_ok.  Do not force operands in registers
1968         when optimizing.
1969
1970 2008-05-07  Jan Hubicka  <jh@suse.cz>
1971
1972         * cgraph.c (dump_cgraph_node): Update.
1973         * cgraph.h (cgraph_local_info): Break out inline summary.
1974         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
1975         hook.
1976         * ipa-inline (inline_summary): New accestor function.
1977         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
1978         cgraph_decide_inlining, compute_inline_parameters): Update.
1979         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
1980
1981 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
1982
1983         Cleanup ColdFire scheduling support and add V4 pipeline model.
1984
1985         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
1986         (define_attr cpu): Add cfv4 value.
1987         (define_attr type, define_attr type1): Merge into a single 'type'
1988         attribute.  Update all uses.
1989         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
1990         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
1991         Update all uses.
1992         (define_attr opx_mem, define_attr opy_mem): Remove.
1993         (define_attr op_mem): Clean up, update comment.
1994         (define_attr size): Use specific values instead of general int.
1995         (define_attr guess, define_attr split): Remove.  Update all uses.
1996         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
1997         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
1998         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
1999         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2000         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2001         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2002         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2003         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2004         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2005         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2006         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2007         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2008         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2009         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2010         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2011         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2012         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2013         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2014         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2015         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2016         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2017         Update or set attributes.
2018         (stack_tie): New fake instruction.
2019
2020         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2021         (m68k_sched_attr_size): Update declaration.
2022         (m68k_sched_attr_type2): Remove.
2023         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2024         Declare new bypass predicates.
2025
2026         * config/m68k/m68k.c (m68k_sched_issue_rate,
2027         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2028         implementations.
2029         (TARGET_SCHED_ISSUE_RATE,
2030         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2031         (override_options): Handle scheduling for ColdFire V4 core.
2032         (m68k_expand_prologue): Emit stack_tie.
2033         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2034         'OP_TYPE_FPN'.  Update all uses.
2035         (sched_guess_p): Remove.
2036         (sched_address_type): Handle symbolic addresses.
2037         (sched_get_operand): New static function.
2038         (sched_operand_type): Merge into sched_attr_op_type.
2039         (sched_attr_op_type): Handle FP registers, handle quick constants,
2040         update.
2041         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2042         (m68k_sched_attr_size): Update.  Move logic to ...
2043         (sched_get_attr_size_int): New static function.
2044         (sched_get_opxy_mem_type): New static function.
2045         (m68k_sched_attr_op_mem): Update.
2046         (m68k_sched_attr_type2): Remove.
2047         (sched_cfv4_bypass_data): New static variable.
2048         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2049         (m68k_sched_issue_rate): Implement scheduler hook.
2050         (struct _sched_ib: enabled_p): New field.
2051         (m68k_sched_variable_issue): Update.  Handle V4.
2052         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2053         sched_dump_class_func_t, sched_dump_split_class,
2054         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2055         sched_dump_dfa_class, m68k_sched_dump): Remove.
2056         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2057         hook.
2058         (m68k_sched_init_global): Remove statisctics dumping, introduce
2059         sanity check that all instructions have pipeline reservations.  Handle
2060         ColdFire V4 core.
2061         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2062         Handle ColdFire V4 core.
2063         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2064         New static functions.
2065         (m68k_sched_address_bypass_p): New bypass predicate.
2066         (sched_get_indexed_address_scale): New static function.
2067         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2068
2069         * cf.md: Update comments.
2070         (define_attr type2): Remove.  Use 'type' attribute instead.
2071         Update all uses.
2072         (cf_ib): Rename to cfv123_ib.  Update all uses.
2073         (cf_oep): Rename to cfv123_oep.  Update all uses.
2074         (cf_chr): Rename to cfv123_chr.  Update all uses.
2075         (cf_mem): Rename to cfv123_mem.  Update all uses.
2076         (cf_mac): Move to more appropriate place.
2077         (cfv123_guess): New automaton and cpu_unit.
2078         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2079         Update uses of 'size' attribute.  Handle before reload scheduling.
2080         (cfv123_guess): New dummy reservation for unhandled instructions.
2081         (cfv4_*): Pipeline description of ColdFire V4 core.
2082         (ignore): New reservation to handle 'ignore' type.
2083
2084 2008-05-07  Ian Lance Taylor  <iant@google.com>
2085
2086         PR middle-end/36013
2087         * gimplify.c (find_single_pointer_decl_1): Don't look through
2088         indirections.
2089         (find_single_pointer_decl): Adjust comments.
2090
2091 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2092
2093         PR middle-end/36137
2094         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2095         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2096
2097         PR middle-end/36106
2098         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2099         integral type rather than floating point, then VIEW_CONVERT_EXPR
2100         to the floating point type.
2101
2102 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2103
2104         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2105         TFmode op0 to register.
2106
2107 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2108
2109         * c-decl.c (grokdeclarator): Comment typo.
2110
2111 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2112
2113         * tree-flow.h: Remove prototype for computed_goto_p.
2114         * tree-cfg.c (computed_goto_p): Make static.
2115
2116 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2117
2118         PR target/35657
2119         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2120         (contains_aligned_value_p): This.  Handle _Decimal128.
2121         (ix86_function_arg_boundary): Only align _Decimal128 to its
2122         natural boundary and handle it properly.
2123
2124 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2125
2126         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2127         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2128         (ipcp_method_set_orig_node): Removed.
2129         (ipcp_cval_get_cvalue_type): Removed.
2130         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2131         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2132         (ipcp_cval_set_cvalue_type): Removed.
2133         (ipcp_cval_get_cvalue): Removed.
2134         (ipcp_cval_set_cvalue): Removed.
2135         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2136         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2137         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2138         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2139         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2140         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2141         (ipcp_get_ith_lattice): Changed parameters.
2142         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2143         (ipcp_lattice_from_jfunc): Changed parameters.
2144         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2145         (ipcp_method_cval_print): Added temporary variable info.
2146         (ipcp_redirect): Removed already unused local variable caller.
2147         (ipcp_redirect): New temporary variable orig_callee_info
2148         (ipcp_redirect): Removed newly unused local variable callee.
2149         (ipcp_redirect): Removed (a bit confusing) local variable type.
2150         (ipcp_insert_stage): Added local variable info.
2151         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2152         renamed too
2153         (ipcp_formal_create): Removed.
2154         (ipcp_method_cval_set): Removed.
2155         (ipcp_propagate_stage): Renamed lattice variables.
2156         (ipcp_method_cval_set_cvalue_type): Removed.
2157         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2158         (ipcp_print_all_lattices): Changed printed strings to refer to 
2159         lattices rather than cvals.
2160         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2161         (ipcp_propagate_const): Changed formal parameters.
2162         (build_const_val): Changed formal parameters.
2163         (ipcp_insert_stage): Removed useless variable cvalue
2164         (build_const_val): Changed formal parameters.
2165         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2166         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2167         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2168         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2169         (ipcp_print_func_profile_counts): Changed string from "method" to 
2170         "function"
2171         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2172         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2173         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2174         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2175         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2176         (ipcp_lat_is_const): Changed parameters and made inline.
2177         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2178         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2179         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2180         the predicate condition directly
2181         (ipcp_propagate_stage): Added local variable args. Removed local
2182         variable callee.  (Both are mere code simplifications.)
2183         (ipcp_method_dont_insert_const): Renamed to
2184         ipcp_node_not_modifiable_p.
2185         (ipcp_node_not_modifiable_p): Made inline.
2186         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2187         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2188         (ipcp_print_all_lattices): Removed variable cvalue
2189         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2190         Updated comments.
2191
2192 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2193
2194         * tree-sra.c (try_instantiate_multiple_fields): Early return
2195         if field has POINTER_TYPE.
2196
2197 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2198
2199         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2200         by using 'q' specifier for instruction.
2201         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2202
2203 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2204
2205         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2206         Change mode of zero_extract from QImode to HImode.
2207         (sign bit tests peepholes): (Ditto.).
2208
2209 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2210
2211         * config/i386/mmx.md: Remove double backslashes from asm templates.
2212         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2213         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2214         to handle nonimmediate operands.
2215         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2216         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2217         to handle nonimmediate operands.
2218         (*mmx_<code>v2sf3_finite): New insn pattern.
2219         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2220         (mmx_<code>v2sf3): New expander.  Use
2221         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2222         (mmx_<plusminus_insn><mode>3): New expander.  Use
2223         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2224         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2225         (mmx_add<mode>3): Removed.
2226         (mmx_ssadd<mode>3): Ditto.
2227         (mmx_usadd<mode>3): Ditto.
2228         (mmx_sub<mode>3): Ditto.
2229         (mmx_sssub<mode>3): Ditto.
2230         (mmx_ussub<mode>3): Ditto.
2231         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2232         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2233         to handle nonimmediate operands.
2234         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2235         insn pattern.
2236         (mmx_smulv4hi3_highpart): New expander.  Use
2237         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2238         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2239         insn pattern.
2240         (mmx_umulv4hi3_highpart): New expander.  Use
2241         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2242         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2243         (mmx_<code>v4hi3): New expander.  Use
2244         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2245         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2246         (mmx_<code>v8qi3): New expander.  Use
2247         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2248         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2249         (mmx_<code><mode>3): New expander.  Use
2250         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2251
2252 2008-05-05  Jan Hubicka  <jh@suse.cz>
2253
2254         PR tree-optimization/36118
2255         * passes.c (pass_init_dump_file): Fix dump header.
2256
2257 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2258
2259         PR middle-end/36141
2260         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2261         VCE for function decls.
2262
2263 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2264
2265         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2266
2267 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2268
2269         * config/i386/i386.md (sat_plusminus): New.
2270         (plusminus_insn): Likewise.
2271         (plusminus_mnemonic): Likewise.
2272         (addsub): Removed.
2273         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2274         (*<addsub><mode>3_cc_overflow): Renamed to ...
2275         (*<plusminus_insn><mode>3_cc_overflow): This.
2276         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2277         (*<plusminus_insn>si3_zext_cc_overflow): This.
2278
2279         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2280         (<plusminus_insn><mode>3): This.
2281         (*<addsub><mode>3): Renamed to ...
2282         (*<plusminus_insn><mode>3): This.
2283         (<sse>_vm<addsub><mode>3): Renamed to ...
2284         (<sse>_vm<plusminus_insn><mode>3): This.
2285         (sse3_h<addsub>v4sf3): Renamed to ...
2286         (sse3_h<plusminus_insn>v4sf3): This.
2287         (sse3_h<addsub>v2df3): Renamed to ...
2288         (sse3_h<plusminus_insn>v2df3): This.
2289         (<plusminus_insn><mode>3): New.
2290         (*<plusminus_insn><mode>3): Likewise.
2291         (sse2_<plusminus_insn><mode>3): Likewise.
2292         (add<mode>): Removed.
2293         (*add<mode>3): Likewise.
2294         (sse2_ssadd<mode>3): Likewise.
2295         (sse2_usadd<mode>3): Likewise.
2296         (sub<mode>3): Likewise.
2297         (*sub<mode>3): Likewise.
2298         (sse2_sssub<mode>3): Likewise.
2299         (sse2_ussub<mode>3): Likewise.
2300
2301 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2302
2303         * gthr-single.h: Add in required interface elements as per gthr.h.
2304         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2305         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2306         Generalize UNUSED macro. 
2307         (__gthread_once): Add.
2308         (__gthread_key_create): Add.
2309         (__gthread_key_delete): Add.
2310         (__gthread_getspecific): Add.
2311         (__gthread_setspecific): Add.
2312         
2313 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2314
2315         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2316         the same size types for the indirect reference on the rhs, then
2317         create a VCE.
2318
2319 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2320
2321         * config/i386/i386.md
2322         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2323         one insn template instead of template series.
2324         (*xordi_1_rex64): Ditto.
2325         (*xordi_2_rex64): Ditto.
2326
2327 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2328
2329         PR tree-optimization/36119
2330         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2331         in case of SLP.
2332
2333 2008-06-04  Jan Hubicka  <jh@suse.cz>
2334
2335         tree-optimization/36100
2336         * tree-pass.h (pass_O0_always_inline): Declare.
2337         * ipa-inline.c (inline_transform): Remove dead code.
2338         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2339         pass_O0_always_inline): New.
2340         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2341
2342 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2343
2344         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2345         mnemonic in this_param move for TARGET_64BIT.
2346
2347 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2348
2349         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2350         (*strmovsi_rex_1): Ditto.
2351         (*strsetsi_1): Ditto.
2352         (*strsetsi_rex_1): Ditto.
2353
2354         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2355         adddicc expanders using SWI mode iterator.
2356
2357 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2358
2359         PR target/36121
2360         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2361         argument handling.
2362
2363 2008-05-04  David S. Miller  <davem@davemloft.net>
2364
2365         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2366         (sparc*-*-linux*): Use linux.h in tm_file.
2367         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2368         compiler defaulting to 32-bit.
2369         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2370         no longer needed.
2371         * config/sparc/linux.h: Remove definitions now obtained
2372         properly from linux.h
2373         * config/sparc/linux64.h: Likewise.
2374         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2375         don't want this setting for 32-bit builds in a biarch compiler.
2376         * doc/install.texi: Add sparc-linux to list of targets
2377         supporting --enable-targets=all.
2378
2379 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2380
2381         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2382
2383 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2384
2385         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2386         after V4SI_FTYPE_V8HI.
2387         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2388         case V4SI_FTYPE_V2DF.
2389
2390 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2391
2392         * doc/invoke.texi (max-flow-memory-locations): Removed.
2393         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2394         
2395 2008-05-03  Richard Guenther  <rguenther@suse.de>
2396
2397         PR middle-end/34973
2398         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2399
2400 2008-05-02  David S. Miller  <davem@davemloft.net>
2401
2402         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2403
2404 2008-05-02  Simon Baldwin <simonb@google.com>
2405
2406         PR bootstrap/36108
2407         * c-common.h (warn_array_subscript_range): Removed.
2408         * c-common.c (warn_array_subscript_range): Ditto.
2409         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2410         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2411
2412 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2413
2414         * config/i386/i386.c (ix86_special_builtin_type): New.
2415         (bdesc_special_args): Likewise.
2416         (ix86_expand_special_args_builtin): Likewise.
2417         (ix86_init_mmx_sse_builtins): Updated.
2418         (ix86_expand_builtin): Updated.
2419         (ix86_expand_store_builtin): Removed.
2420         (ix86_expand_unop_builtin): Likewise.
2421
2422         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2423         * config/i386/mmintrin.h (__v2sf): Here.
2424
2425         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2426         const __v2sf.
2427         (_mm_loadl_pi): Likewise.
2428         (_mm_storeh_pi): Replace __v2si with __v2sf.
2429         (_mm_storel_pi): Likewise.
2430
2431         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2432         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2433         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2434         __builtin_ia32_loadlpd.
2435
2436 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2437
2438         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2439         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2440         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2441         (ix86_init_mmx_sse_builtins): Updated.
2442         (ix86_expand_args_builtin): Likewise.
2443         (ix86_expand_builtin): Likewise.
2444         (ix86_expand_unop1_builtin): Renamed to ...
2445         (ix86_expand_unop_vec_merge_builtin): This.
2446
2447 2008-05-01  Jan Hubicka  <jh@suse.cz>
2448
2449         PR bootstrap/36100
2450         * ipa-inline.c (inline_generate_summary): Make static.
2451         (inline_transform): Do not call inlining at -O0; make static.
2452         * passes.c (execute_todo): Add sanity check.
2453         (execute_one_ipa_transform_pass): Execute proper flags.
2454
2455 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2456
2457         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2458         (DECL_NONADDRESSABLE_P): Likewise.
2459         * alias.c (record_component_aliases): Fix comment.
2460
2461 2008-05-01  Simon Baldwin <simonb@google.com>
2462
2463         * c-common.h (warn_array_subscript_range): New function.
2464         * c-common.c (warn_array_subscript_range): Ditto.
2465         * tree-vrp.c (check_array_ref): Corrected code to agree with
2466         comment, ignoring only arrays of size 0 or size 1.
2467         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2468
2469 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2470
2471         * config/i386/i386.c (ix86_builtin_type): Replace
2472         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2473         (bdesc_args): Updated.
2474         (ix86_init_mmx_sse_builtins): Likewise.
2475         (ix86_expand_args_builtin): Likewise.
2476
2477         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2478         with __v1di.
2479
2480         * doc/extend.texi: Correct __builtin_ia32_palignr.
2481
2482 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2483
2484         PR target/36095
2485         * config/i386/i386.c (bdesc_crc32): Removed.
2486         (ix86_expand_crc32): Likewise.
2487         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2488         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2489         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2490         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2491         UINT_FTYPE_UINT_UCHAR.
2492         (bdesc_args): Updated. Add crc32 builtins.
2493         (ix86_init_mmx_sse_builtins): Updated.
2494         (ix86_expand_args_builtin): Updated to support subreg.
2495
2496         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2497
2498 2008-05-01  Jan Hubicka  <jh@suse.cz>
2499
2500         * tree-pass.h (opt_pass): Add IPA_PASS.
2501         (varpool_node, cgraph_node): Forward declare.
2502         (ipa_opt_pass): Define.
2503         (pass_ipa_inline): Turn into ipa_opt_pass.
2504         (pass_apply_inline): Remove.
2505         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2506         (apply_inline): Turn into ....
2507         (inline_transform): ... this one.
2508         (inline_generate_summary): New function.
2509         (pass_apply_inline): Remove.
2510         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2511         vector.
2512         (struct function): Add ipa_transforms_to_apply.
2513         * passes.c (register_one_dump_file): Work on IPA_PASS.
2514         (init_optimization_passes): Remove pass_inline_parameters and
2515         pass_apply_inline.
2516         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2517         (execute_one_pass) ... here; apply transforms when possible.
2518         (add_ipa_transform_pass, execute_ipa_summary_asses,
2519         execute_one_ipa_transform_pass): New.
2520         (execute_ipa_pass_list): Update for IPA_PASS type.
2521
2522 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2523
2524         * config/i386/i386.c (ix86_builtin_type): Add
2525         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2526         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2527         (bdesc_args): Add SSE4a builtins.
2528         (ix86_init_mmx_sse_builtins): Updated.
2529         (ix86_expand_args_builtin): Likewise.
2530         (ix86_expand_builtin): Likewise.
2531
2532 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2533
2534         * config/i386/i386.c (ix86_builtin_type): Add
2535         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2536         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2537         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2538         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2539         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2540         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2541         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2542         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2543         and DI_FTYPE_DI_DI_INT.
2544         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2545         (ix86_init_mmx_sse_builtins): Updated.
2546         (ix86_expand_args_builtin): Likewise.
2547         (ix86_expand_builtin): Likewise.
2548         (ix86_expand_binop_imm_builtin): Removed.
2549
2550         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2551
2552 2008-04-30  Richard Guenther  <rguenther@suse.de>
2553
2554         PR tree-optimization/32921
2555         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2556
2557 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2558
2559         * config/arm/arm.c (arm_unwind_emit): Use
2560         crtl->all_throwers_are_sibcalls instead of
2561         cfun->all_throwers_are_sibcalls.
2562         (arm_output_fn_unwind): Likewise.
2563         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2564         instead of cfun->uses_pic_offset_table.
2565         (frv_expand_prologue): Likewise.
2566         (frv_frame_pointer_required): Likewise.
2567         (frv_expand_fdpic_call): Likewise.
2568         (frv_emit_movsi): Likewise.
2569         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2570         cfun->returns_pcc_struct instead of
2571         current_function_returns_pcc_struct.
2572         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2573         instead of cfun->calls_eh_return.
2574         (m32c_pushm_popm): Likewise.
2575         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2576         "extern" declaration.
2577
2578 2008-04-30  Richard Guenther  <rguenther@suse.de>
2579
2580         PR tree-optimization/21636
2581         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2582         constant address.
2583         (evaluate_stmt): Print the likely value.
2584         (ccp_visit_stmt): Avoid excessive vertical spacing.
2585
2586 2008-04-30  Rafael Espindola  <espindola@google.com>
2587
2588         * builtins.c (fold_call_expr): Return realret.
2589         * tree-ssa-threadedge.c
2590         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2591         __builtin_object_size.
2592
2593 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2594
2595         * gcc.c (wrapper_string): New variable.
2596         (insert_wrapper): New function.
2597         (execute): New option -wrapper.
2598         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2599
2600 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2601
2602         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2603         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2604         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2605         from...
2606         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2607         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2608         config/rs6000/e500crtres64gprctr.asm,
2609         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2610         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2611         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2612         config/rs6000/e500crtsav64gprctr.asm,
2613         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2614         config/rs6000/e500crtsavg64gprctr.asm: New files.
2615         * config/rs6000/t-ppccomm: Add build rules for new files.
2616         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2617         * config/rs6000/t-netbsd: Add build rules for new files.
2618         (LIB2FUNCS_STATIC_EXTRA): New variable.
2619         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2620         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2621         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2622
2623 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2624
2625         * config/i386/i386.c (ix86_builtin_type): Add
2626         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2627         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2628         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2629         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2630         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2631         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2632         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2633         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2634         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2635         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2636         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2637         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2638         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2639         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2640         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2641         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2642         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2643         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2644         V1DI_FTYPE_V2SI_V2SI.
2645         (bdesc_2arg): Moved to ...
2646         (bdesc_args): Here.
2647         (ix86_init_mmx_sse_builtins): Updated.
2648         (ix86_expand_args_builtin): Updated.  Take a pointer
2649         to const struct builtin_description.  Handle comparison
2650         builtin functions.
2651         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2652         (ix86_expand_builtin): Updated.
2653
2654         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2655         (ssse3_pmaddubsw128): This.
2656         (ssse3_pmaddubswv4hi3): Renamed to ...
2657         (ssse3_pmaddubsw): This.
2658
2659         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2660         (__builtin_ia32_packssdw128): Likewise.
2661         (__builtin_ia32_packuswb128): Likewise.
2662         (__builtin_ia32_pmaddubsw): Likewise.
2663         (__builtin_ia32_pmaddubsw128): Likewise.
2664
2665 2008-04-30  Richard Guenther  <rguenther@suse.de>
2666
2667         PR tree-optimization/14847
2668         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2669         (recognize_bits_test): Use it.
2670         (recognize_single_bit_test): Likewise.
2671
2672 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2673
2674         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2675         instead of setting number of formal parameters to zero.
2676         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2677         either.
2678         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2679         which are called with variable number of arguments.
2680         (ipcp_insert_stage): Explicitely skipping all nodes which are
2681         called with variable number of arguments.
2682         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2683         number of parameters.
2684
2685         * ipa-prop.h (struct ipa_node_params): Added flag
2686         called_with_var_arguments
2687         (ipa_set_param_count): Added.  Changed sole setter to use it.
2688         (ipa_get_param_count): Added.  All readers of param_count
2689         converted to use it instead.
2690         (ipa_set_called_with_variable_arg): Added.
2691         (ipa_is_called_with_var_arguments): Added.
2692         (ipa_get_ith_param): Added.  All readers of param_decls converted
2693         to use it instead.
2694         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2695         changed to use it. 
2696         (ipa_get_cs_argument_count): Added, all readers of argument_count
2697         changed to cal it.
2698         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2699         to use it.
2700         
2701         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2702         (struct ipcp_lattice): Renamed cval_type to type
2703         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2704
2705         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2706         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2707         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2708         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2709         (build_const_val): Changed the type of parameter cvalue to tree
2710         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2711         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2712         
2713         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2714         constant 
2715
2716         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2717         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2718         (ipa_add_method): Renamed to ipa_push_func_to_list
2719         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2720         (ipa_callsite_param_count): Removed.
2721         (ipa_callsite_param_count_set): Removed.
2722         (ipa_callsite_param): Removed.
2723         (ipa_callsite_callee): Removed.
2724         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2725         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2726         (ipa_method_formal_count): Removed.
2727         (ipa_method_formal_count_set): Removed.
2728         (ipa_method_get_tree): Removed.
2729         (ipa_method_tree_map_create): Removed.
2730         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2731         (ipa_create_param_decls_array): Creates the array itself
2732         (ipa_create_param_decls_array): Temporary variable info instead of 
2733         a few dereferences.
2734         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2735         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2736         (get_type): Removed.
2737         (ipa_jf_get_info_type): Removed.
2738         (ipa_node_create): Renamed to ipa_create_node_params
2739         (ipa_free): Renamed to ipa_free_all_node_params
2740         (ipa_nodes_create): Renamed to ipa_create_all_node_params
2741         (ipa_edges_create): Renamed to ipa_create_all_edge_args
2742         (ipa_edges_free): Renamed to ipa_free_all_edge_args
2743         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2744         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
2745         ipa_free_all_edge_args
2746         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2747         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2748         (ipa_create_methodlist_node): Removed.
2749         (ipa_methodlist_method): Removed.
2750         (ipa_methodlist_method_set): Removed.
2751         (ipa_methodlist_next_method): Removed.
2752         (ipa_methodlist_next_method_set): Removed.
2753         (ipa_method_is_modified): Removed.
2754         (ipa_method_modify_create): Removed.
2755         (ipa_method_modify_init): Temporary variable info instead of a few 
2756         dereferences.
2757         (ipa_detect_param_modifications): Temporary variable info instead of 
2758         a few dereferences.
2759         (ipa_compute_jump_functions): Temporary variable info instead of 
2760         a few dereferences.
2761         (ipa_method_modify_set): Removed.
2762         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2763         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
2764         than craph_node as the first parameter.
2765         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2766         (ipa_method_modify_init): Removed.
2767         (ipa_compute_jump_functions): Added a temp variable instead of 
2768         repeatadly dereferencing the cgraph_edge.aux pointer
2769         (ipa_callsite_param_set_type): Removed.
2770         (ipa_compute_jump_functions): i renamed to index and moved to 
2771         an inner block
2772         (ipa_callsite_param_set_info_type_formal): Removed.
2773         (ipa_callsite_param_set_info_type): Removed.
2774         (ipa_callsite_param_map_create): Removed.
2775         (ipa_callsite_tree): Removed.
2776         (ipa_callsite_caller): Removed.
2777         (ipa_pop_func_from_list): return_method removed to return_func
2778
2779         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2780         prefixed all values with IPA_. Changed all users.
2781         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
2782         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
2783         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
2784         (union parameter_info): Renamed to jump_func_value.
2785         (union jump_func_value): Renamed value to constant
2786         (struct ipa_jump_func): Renamed info_type to value
2787         (struct ipa_node): Renamed to ipa_node_params
2788         (struct ipa_node_params): Renamed ipa_arg_num to param_count
2789         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2790         (struct ipa_node_params): Renamed ipa_mod to modified_flags
2791         (struct ipa_edge): Renamed to ipa_edge_args
2792         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2793         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2794         (struct ipa_methodlist): Renamed to ipa_func_list
2795         (struct ipa_func_list): method_p renamed to node, next_method
2796         renamed to next
2797         (ipa_methodlist_p): Removed, switched all users to struct pointer
2798         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2799
2800 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
2801
2802         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2803         (rs6000_emit_epilogue): Use backchain to restore only when we
2804         have a large frame.  Make use of frame pointer to restore if we
2805         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
2806
2807 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
2808
2809         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2810         Add mode to zero_extract.
2811         (sign bit tests peepholes): (Ditto.).
2812
2813 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2814
2815         * config/i386/i386.c (ix86_builtins): Replace Prescott New
2816         Instructions in comments with SSE3.
2817         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
2818         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
2819         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
2820         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
2821         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
2822         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
2823         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
2824         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
2825         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
2826         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
2827         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
2828         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
2829         (bdesc_sse_args): Renamed to ...
2830         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
2831         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
2832         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
2833         IX86_BUILTIN_FABSQ.
2834         (bdesc_1arg): Moved to ...
2835         (bdesc_args): Here.
2836         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
2837         Instructions in comments with SSE3.
2838         (ix86_expand_sse_operands_builtin): Renamed to ...
2839         (ix86_expand_args_builtin): This.  Updated.
2840         (ix86_expand_unop1_builtin): Update comments.
2841         (ix86_expand_builtin): Updated.
2842
2843 2008-04-29  Richard Guenther  <rguenther@suse.de>
2844
2845         PR tree-optimization/36078
2846         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
2847         Update virtual SSA form after cleaning up the CFG.
2848
2849 2008-04-29  Richard Guenther  <rguenther@suse.de>
2850
2851         PR middle-end/15255
2852         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
2853
2854 2008-04-29  Richard Guenther  <rguenther@suse.de>
2855
2856         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
2857         (compute_may_aliases): Do not call finalize_ref_all_pointers.
2858         (compute_flow_insensitive_aliasing): Do not treat
2859         PTR_IS_REF_ALL pointers special.
2860         (get_smt_for): Likewise.
2861         (may_alias_p): Re-structure.
2862         (is_escape_site): A ref-all pointer conversion is not an escape site.
2863         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
2864         PTR_IS_REF_ALL pointers special.
2865         * tree-ssa-structalias.h (struct alias_info): Remove
2866         ref_all_symbol_mem_tag field.
2867         (PTR_IS_REF_ALL): Remove.
2868
2869 2008-04-29  Richard Guenther  <rguenther@suse.de>
2870
2871         PR middle-end/36077
2872         * fold-const.c (extract_muldiv_1): In combining division constants
2873         make sure to never overflow.
2874
2875 2008-04-29  Nick Clifton  <nickc@redhat.com>
2876
2877         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
2878
2879 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2880
2881         PR bootstrap/35169
2882         * optc-gen.awk: Work around HP-UX/IA awk bug.
2883
2884 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
2885
2886         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
2887         2008-04-25 commit.
2888
2889 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
2890
2891         PR target/36073
2892         * config/i386/i386.md
2893         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
2894         Change operand 1 predicate to nonimmediate_operand.
2895
2896 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
2897
2898         PR debug/36060
2899         * dwarf2out.c (struct die_struct): Mark as chain_circular through
2900         die_sub field.
2901         * gengtype.c (walk_type, write_func_for_structure): Handle
2902         chain_circular.
2903         * doc/gty.texi: Document chain_circular.
2904
2905 2008-04-28  Richard Guenther  <rguenther@suse.de>
2906
2907         PR tree-optimization/36066
2908         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
2909         SCEV and loop.
2910
2911 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
2912
2913         PR target/36064
2914         * config/i386/i386.md
2915         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
2916         Use match_scratch instead of match_operand for operands 3 and 4.
2917
2918 2008-04-27  Richard Guenther  <rguenther@suse.de>
2919
2920         PR tree-optimization/18754
2921         PR tree-optimization/34223
2922         * tree-pass.h (pass_complete_unrolli): Declare.
2923         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
2924         loop size before and after unconditionally of UL_NO_GROWTH in effect.
2925         Rewrite loop into loop closed SSA form if it is not already.
2926         (tree_unroll_loops_completely): Re-structure to iterate over
2927         innermost loops with intermediate CFG cleanups.
2928         Unroll outermost loops only if requested or the code does not grow
2929         doing so.
2930         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
2931         loops are available.
2932         (tree_vectorize): Instead do so here.
2933         (tree_complete_unroll): Also unroll outermost loops.
2934         (tree_complete_unroll_inner): New function.
2935         (gate_tree_complete_unroll_inner): Likewise.
2936         (pass_complete_unrolli): New pass.
2937         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
2938         uses outside of the loop.
2939         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
2940         form if it is available.  
2941         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
2942         * passes.c (init_optimization_passes): Schedule complete inner
2943         loop unrolling pass before the first CCP pass after final inlining.
2944
2945 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2946
2947         * targhooks.h (default_emutls_var_fields,
2948         default_emutls_var_init): Declare.
2949         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
2950         * target.h (struct gcc_target): Add struct emutls member.
2951         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
2952         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
2953         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
2954         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
2955         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
2956         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
2957         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
2958         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
2959         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
2960         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
2961         emit debug information.
2962         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
2963         * varasm.c: Include targhooks.h.
2964         (emutls_object_section, emutls_tmpl_section): New.
2965         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
2966         (EMUTLS_SEPARATOR): New.
2967         (prefix_name): New.
2968         (get_emutls_object_name): New.
2969         (default_emutls_var_fields): New, broken out of ...
2970         (get_emutls_object_type): ... here.  Adjust to use target hooks.
2971         (get_emutls_init_templ_addr): Adjust to use target hooks.
2972         (emutls_decl): Adjust to use target hooks.
2973         (emutls_finish): Likewise.
2974         (default_emutls_var_init): New, broken out of ...
2975         (assemble_variable): ... here.  Adjust to use target hooks.
2976         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
2977         SECCAT_EMUTLS_TMPL.
2978         * c-common.c (handle_section_attribute): Prevent overriding
2979         sections for emulated tls with special sections.
2980         * config/i386/i386.c (x86_64_elf_select_section): Add
2981         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
2982         (x86_64_elf_unique_section): Likewise.
2983         * config/vxworks.c: Include tree.h.
2984         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
2985         (vxworks_override_options): Set TLS scheme.
2986         * doc/tm.texi (Emulated TLS): New node.
2987
2988 2008-04-26  Simon Baldwin <simonb@google.com>
2989
2990         PR c/35652
2991         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
2992         with propagated string constants.
2993
2994 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
2995
2996         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
2997         constraint for operand 2 when operand 0 is memory operand.
2998         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
2999         operand 0 is memory operand.
3000         (fix_trunc<mode>_i387_with_temp): Ditto.
3001         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3002         operand 2 when operand 1 is memory operand.
3003         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3004         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3005         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3006         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3007         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3008         operands 2,3 and 4 when operand 1 is memory operand.
3009         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3010         is memory operand.
3011         (fistdi2_floor_with_temp): Ditto.
3012         (fist<mode>2_floor_with_temp): Ditto.
3013         (fistdi2_ceil_with_temp): Ditto.
3014         (fist<mode>2_ceil_with_temp): Ditto.
3015         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3016
3017 2008-04-26  David Daney  <ddaney@avtrex.com>
3018
3019         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3020         unspec_volitile.
3021         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3022         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3023         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3024         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3025         (compare_and_swap_12): New insn.
3026         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3027         * config/mips/mips.c (mips_force_binary): New function.
3028         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3029         (mips_expand_compare_and_swap_12): New function.
3030         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3031
3032 2008-04-25  Jan Hubicka  <jh@suse.cz>
3033
3034         PR testsuite/35843
3035         * cfgexpand.c (pass_expand): Turn into RTL pass.
3036         * passes.c (execute_one_pass): Do pass typechecking after execution.
3037         * tree-pass.h (pass_expand): Turn into RTL pass.
3038
3039         * function.h (struct rtl_data): Move here fields
3040         accesses_prior_frames, calls_eh_return, saves_all_registers,
3041         has_nonlocal_goto, has_asm_statement, is_thunk,
3042         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3043         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3044         arg_pointer_save_area_init from struct function; turn into bool.
3045         (struct function): Move
3046         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3047         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3048         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3049         tail_call_emit, arg_pointer_save_area_init
3050         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3051         (current_function_returns_struct, current_function_returns_pcc_struct,
3052         current_function_calls_setjmp, current_function_calls_alloca,
3053         current_function_accesses_prior_frames,
3054         current_function_calls_eh_return, current_function_is_thunk,
3055         current_function_stdarg, current_function_profile,
3056         current_function_limit_stack, current_function_uses_pic_offset_table,
3057         current_function_uses_const_pool, current_function_has_nonlocal_label,
3058         current_function_saves_all_registers,
3059         current_function_has_nonlocal_goto,
3060         current_function_has_asm_statement): Remove accesor macros.
3061         * ra-conflict.c (global_conflicts): Update.
3062         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3063         (suitable_for_tail_call_opt_p): Update.
3064         * builtins.c (expand_builtin_return_addr): Update.
3065         (expand_builtin_setjmp_setup): Update.
3066         (expand_builtin_nonlocal_goto): Update.
3067         * final.c (final_start_function): Update.
3068         (profile_function): Update.
3069         (leaf_function_p): Update.
3070         (only_leaf_regs_used): Update.
3071         * df-scan.c (df_get_exit_block_use_set): Update.
3072         * dojump.c (clear_pending_stack_adjust): Update.
3073         * tree-stdarg.c (gate_optimize_stdarg): Update.
3074         * gimple-low.c (lower_function_body): Update.
3075         * global.c (compute_regsets): Update.
3076         (global_alloc): Update.
3077         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3078         * expr.c (expand_assignment): Update.
3079         * dse.c (dse_step0): Update.
3080         (dse_step1): Update.
3081         * c-decl.c (store_parm_decls): Update.
3082         * local-alloc.c (combine_regs): Update.
3083         (find_free_reg): Update.
3084         * function.c (assign_parms_augmented_arg_list): Update.
3085         (assign_parm_find_data_types): Update.
3086         (assign_parms): Update.
3087         (allocate_struct_function): Update.
3088         (expand_function_start): Update.
3089         (expand_function_end): Update.
3090         (get_arg_pointer_save_area): Update.
3091         (thread_prologue_and_epilogue_insns): Update.
3092         (rest_of_match_asm_constraints): Update.
3093         * stor-layout.c (variable_size): Update.
3094         * gcse.c (gcse_main): Update.
3095         (bypass_jumps): Update.
3096         * gimplify.c (gimplify_function_tree): Update.
3097         * calls.c (emit_call_1): Update.
3098         (expand_call): Update.
3099         * bt-load.c (compute_defs_uses_and_gen): Update.
3100         * except.c (sjlj_assign_call_site_values): Update.
3101         (sjlj_emit_function_enter): Update.
3102         (can_throw_external): Update.
3103         (set_nothrow_function_flags): Update.
3104         (expand_builtin_unwind_init): Update.
3105         (expand_eh_return): Update.
3106         (convert_to_eh_region_ranges): Update.
3107         (output_function_exception_table): Update.
3108         * emit-rtl.c (gen_tmp_stack_mem): Update.
3109         * cfgexpand.c (expand_used_vars): Update.
3110         (tree_expand_cfg): Update.
3111         * cfgcleanup.c (rest_of_handle_jump): Update.
3112         * explow.c (allocate_dynamic_stack_space): Update.
3113         * varasm.c (assemble_start_function): Update.
3114         (force_const_mem): Update.
3115         (mark_constant_pool): Update.
3116         * tree-optimize.c (tree_rest_of_compilation): Update.
3117         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3118         * tree-cfg.c (notice_special_calls): Update.
3119         (is_ctrl_altering_stmt): Update.
3120         (tree_can_make_abnormal_goto): Update.
3121         (tree_purge_dead_abnormal_call_edges): Update.
3122         * config/alpha/predicates.md: Update.
3123         * config/alpha/alpha.c (alpha_sa_mask): Update.
3124         (alpha_sa_size): Update.
3125         (alpha_does_function_need_gp): Update.
3126         (alpha_expand_prologue): Update.
3127         (alpha_start_function): Update.
3128         (alpha_output_function_end_prologue): Update.
3129         (alpha_expand_epilogue): Update.
3130         * config/frv/frv.c (frv_stack_info): Update.
3131         (frv_expand_epilogue): Update.
3132         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3133         (s390_register_info): Update.
3134         (s390_frame_info): Update.
3135         (s390_init_frame_layout): Update.
3136         (s390_can_eliminate): Update.
3137         (save_gprs): Update.
3138         * config/spu/spu.c (spu_split_immediate): Update.
3139         (need_to_save_reg): Update.
3140         (spu_expand_prologue): Update.
3141         (spu_expand_epilogue): Update.
3142         * config/sparc/sparc.md: Update.
3143         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3144         (sparc_tls_got): Update.
3145         (legitimize_pic_address): Update.
3146         (sparc_emit_call_insn): Update.
3147         (sparc_expand_prologue): Update.
3148         (output_return): Update.
3149         (print_operand): Update.
3150         (sparc_function_ok_for_sibcall): Update.
3151         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3152         * config/m32r/m32r.md: Update.
3153         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3154         (m32r_compute_frame_size): Update.
3155         (m32r_expand_prologue): Update.
3156         (m32r_expand_epilogue): Update.
3157         (m32r_legitimize_pic_address): Update.
3158         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3159         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3160         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3161         (gen_push): Update.
3162         (ix86_save_reg): Update.
3163         (ix86_compute_frame_layout): Update.
3164         (ix86_expand_prologue): Update.
3165         (ix86_expand_epilogue): Update.
3166         * config/sh/sh.c (output_stack_adjust): Update.
3167         (calc_live_regs): Update.
3168         (sh5_schedule_saves): Update.
3169         (sh_expand_prologue): Update.
3170         (sh_expand_epilogue): Update.
3171         (sh_setup_incoming_varargs): Update.
3172         (sh_allocate_initial_value): Update.
3173         (sh_get_pr_initial_val): Update.
3174         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3175         * config/sh/sh.md (label:): Update.
3176         * config/avr/avr.c (out_movhi_mr_r): Update.
3177         * config/crx/crx.h (enum): Update.
3178         * config/xtensa/xtensa.h (along): Update.
3179         * config/stormy16/stormy16.c Update.
3180         (xstormy16_compute_stack_layout): Update.
3181         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3182         (fr30_expand_prologue): Update.
3183         * config/cris/cris.c (cris_conditional_register_usage): Update.
3184         (cris_reg_saved_in_regsave_area): Update.
3185         (cris_initial_frame_pointer_offset): Update.
3186         (cris_simple_epilogue): Update.
3187         (cris_expand_prologue): Update.
3188         (cris_expand_epilogue): Update.
3189         (cris_expand_pic_call_address): Update.
3190         (cris_asm_output_symbol_ref): Update.
3191         (cris_asm_output_label_ref): Update.
3192         * config/cris/cris.md Update.
3193         * config/iq2000/iq2000.c (compute_frame_size): Update.
3194         (iq2000_expand_epilogue): Update.
3195         * config/mt/mt.h (save_direction): Update.
3196         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3197         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3198         (ia64_secondary_reload_class): Update.
3199         * config/m68k/m68k.c (m68k_save_reg): Update.
3200         (m68k_expand_prologue): Update.
3201         (m68k_expand_epilogue): Update.
3202         (legitimize_pic_address): Update.
3203         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3204         (first_reg_to_save): Update.
3205         (first_altivec_reg_to_save): Update.
3206         (compute_vrsave_mask): Update.
3207         (compute_save_world_info): Update.
3208         (rs6000_stack_info): Update.
3209         (spe_func_has_64bit_regs_p): Update.
3210         (rs6000_ra_ever_killed): Update.
3211         (rs6000_emit_eh_reg_restore): Update.
3212         (rs6000_emit_allocate_stack): Update.
3213         (rs6000_emit_prologue): Update.
3214         (rs6000_emit_epilogue): Update.
3215         (rs6000_output_function_epilogue): Update.
3216         (output_profile_hook): Update.
3217         (rs6000_elf_declare_function_name): Update.
3218         * config/rs6000/rs6000.h (rs6000_args): Update.
3219         * config/rs6000/rs6000.md: Update.
3220         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3221         * config/arc/arc.c (arc_output_function_epilogue): Update.
3222         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3223         * config/darwin.c (machopic_function_base_name): Update.
3224         * config/score/score3.c (score3_compute_frame_size): Update.
3225         (rpush): Update.
3226         (rpop): Update.
3227         (score3_epilogue): Update.
3228         * config/score/score7.c (score7_compute_frame_size): Update.
3229         (score7_prologue): Update.
3230         (score7_epilogue): Update.
3231         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3232         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3233         * config/arm/arm.c (use_return_insn): Update.
3234         (require_pic_register): Update.
3235         (arm_load_pic_register): Update.
3236         (arm_compute_save_reg0_reg12_mask): Update.
3237         (arm_compute_save_reg_mask): Update.
3238         (thumb1_compute_save_reg_mask): Update.
3239         (output_return_instruction): Update.
3240         (arm_output_function_prologue): Update.
3241         (arm_output_epilogue): Update.
3242         (arm_get_frame_offsets): Update.
3243         (arm_expand_prologue): Update.
3244         (thumb_pushpop): Update.
3245         (thumb_exit): Update.
3246         (thumb1_expand_prologue): Update.
3247         (thumb1_expand_epilogue): Update.
3248         (arm_unwind_emit): Update.
3249         (arm_output_fn_unwind): Update.
3250         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3251         * config/arm/arm.md: Update.
3252         * config/pa/pa.md: Update.
3253         * config/pa/pa.c (legitimize_pic_address): Update.
3254         (compute_frame_size): Update.
3255         (hppa_expand_prologue): Update.
3256         (hppa_expand_epilogue): Update.
3257         (borx_reg_operand): Update.
3258         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3259         (HARD_REGNO_RENAME_OK): Update.
3260         * config/mips/mips.c (mips_global_pointer): Update.
3261         (mips_save_reg_p): Update.
3262         (mips_compute_frame_info): Update.
3263         (mips_frame_pointer_required): Update.
3264         (mips_expand_prologue): Update.
3265         (mips_expand_epilogue): Update.
3266         (mips_can_use_return_insn): Update.
3267         (mips_reorg_process_insns): Update.
3268         * config/v850/v850.c (compute_register_save_size): Update.
3269         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3270         * config/mmix/mmix.c (along): Update.
3271         (mmix_expand_epilogue): Update.
3272         * config/bfin/bfin.c (legitimize_pic_address): Update.
3273         (must_save_p): Update.
3274         (stack_frame_needed_p): Update.
3275         (add_to_reg): Update.
3276         (bfin_expand_prologue): Update.
3277         * stmt.c (expand_asm_operands): Update.
3278         * reload1.c (reload): Update.
3279         (init_elim_table): Update.
3280
3281 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3282         
3283         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3284         
3285 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3286
3287         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3288         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3289         (mov<mode>): Removed.
3290         (*movv4sf_internal): Likewise.
3291         (*movv2df_internal): Likewise.
3292
3293 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3294
3295         * config.gcc (crx-*-elf): Remove deprecation.
3296
3297 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3298
3299         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3300         __gcc_deregister_frame with atexit.
3301         (deregister_frame_dtor): Remove.
3302
3303 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3304             Nathan Sidwell  <nathan@codesourcery.com>
3305
3306         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3307         (misel): Likewise.
3308         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3309         (rs6000_isel): Likewise.
3310         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3311         (rs6000_isel): New variable.
3312         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3313
3314 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3315
3316         PR c++/35758
3317         * c-common.c (handle_vector_size_attribute): Call
3318         lang_hooks.types.reconstruct_complex_type instead of
3319         reconstruct_complex_type.
3320         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3321         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3322         * langhooks.h (struct lang_hooks_for_types): Add
3323         reconstruct_complex_type hook.
3324         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3325         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3326
3327 2008-04-24  Richard Guenther  <rguenther@suse.de>
3328
3329         * c-common.h (check_builtin_function_arguments): Declare.
3330         * c-common.c (validate_nargs): New function.
3331         (check_builtin_function_arguments): Likewise.
3332         * c-typeck.c (build_function_call): Call
3333         check_builtin_function_arguments.
3334         * builtins.c (fold_builtin_classify): Remove error reporting code.
3335         (fold_builtin_unordered_cmp): Likewise.
3336         (fold_builtin_1): Likewise.
3337         (fold_builtin_n): Likewise.
3338
3339 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3340
3341         PR tree-optimization/36008
3342         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3343         the original op1, rather than delta by step.
3344
3345 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3346             Sebastian Pop  <sebastian.pop@amd.com>
3347
3348         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3349         eliminate_local_variables_stmt, eliminate_local_variables,
3350         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3351         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3352         of code delimited by two edges in the CFG.
3353         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3354         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3355         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3356         the case of parallelisation of reductions.
3357         (expr_invariant_in_region_p): New.
3358
3359         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3360         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3361
3362 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3363             Richard Guenther  <rguenther@suse.de>
3364
3365         PR tree-optimization/36034
3366         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3367         incapable of dealing with loads with gaps.
3368
3369 2008-04-24  Rafael Espindola  <espindola@google.com>
3370
3371         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3372         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3373         vrp_evaluate_conditional.
3374         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3375         (vrp_evaluate_conditional): Split the cond argument.
3376         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3377         (simplify_stmt_for_jump_threading): Update call to
3378         vrp_evaluate_conditional.
3379
3380 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3381
3382         PR tree-optimization/35982
3383         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3384         interleaved data-refs are of the same type.
3385
3386 2008-04-24  Danny Smith  <dannysmith@users.net>
3387
3388         * c-format.c (check_format_info_main): Use strncmp rather than a
3389         magic prefix to handle multichar length specs.
3390         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3391         Don't prefix "I64" and "I32" with '\0'.
3392
3393 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3394
3395         PR target/36015
3396         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3397         in registers for -m32 only if stdarg_p (fntype).
3398
3399 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3400
3401         PR rtl-optimization/36006
3402         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3403         temp to op0 in order to avoid invalid rtx sharing.
3404
3405 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3406
3407         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3408         check TREE_INVARIANT.
3409         * tree-gimple.c (is_gimple_address): New.
3410         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3411         * tree-gimple.h (is_gimple_address): New.
3412         * tree.h (decl_address_invariant_p): New.
3413         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3414         (build_string): Likewise.
3415         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3416         (tree_invariant_p_1): Likewise.
3417         (save_expr): Use it.
3418         (tree_invariant_p): New.
3419         (skip_simple_arithmetic): Use it.
3420         (stabilize_reference_1): Use it.
3421         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3422         simplify.
3423         (build1_stat): Drop code to compute TREE_INVARIANT.
3424         (build2_stat): Drop code to compute TREE_INVARIANT.
3425         (build3_stat): Drop code to compute TREE_INVARIANT.
3426         (build4_stat): Drop code to compute TREE_INVARIANT.
3427         (build5_stat): Drop code to compute TREE_INVARIANT.
3428         (build7_stat): Drop code to compute TREE_INVARIANT.
3429         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3430         * tree.h (struct tree_base): Remove invariant_flag.
3431         (TREE_INVARIANT): Remove.
3432         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3433         (fold_builtin_expect): Check TREE_CONSTANT.
3434         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3435         * c-tree.h (c_expr_to_decl): Drop third parameter.
3436         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3437         (build_c_cast): Don't set TREE_INVARIANT.
3438         (pop_init_level): Don't set TREE_INVARIANT.
3439         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3440         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3441         TREE_CONSTANT.
3442         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3443         (gimplify_addr_expr): Adjust comment.
3444         * tree-mudflap.c (mf_build_string):
3445         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3446         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3447         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3448         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3449         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3450         * langhooks.h (struct lang_hooks): Drop third parameter from
3451         expr_to_decl.
3452
3453 2008-04-23  Richard Guenther  <rguenther@suse.de>
3454
3455         PR tree-optimization/27799
3456         PR tree-optimization/32921
3457         PR tree-optimization/32624
3458         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3459         SMTs aliases and the tag itself into the solution.
3460         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3461         merge the points-to solution back into the SMT aliases.
3462         (may_alias_p): Use alias_set_subset_of instead of
3463         aliases_conflict_p.  A pointer which points to
3464         memory with alias set zero may access any variable.
3465
3466 2008-04-23  Richard Guenther  <rguenther@suse.de>
3467
3468         * alias.c (alias_set_subset_of): Correctly handle asking
3469         if zero is a subset of an alias set with zero child.
3470         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3471         (compute_flow_insensitive_aliasing): Correctly walk all
3472         pointers.  Do not unnecessarily union sets.
3473
3474 2008-04-23  Richard Guenther  <rguenther@suse.de>
3475
3476         PR middle-end/36021
3477         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3478
3479 2008-04-22  Tomas Bily  <tbily@suse.cz>
3480
3481         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3482         unreachable case.
3483         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3484         NON_LVALUE_EXPR.
3485         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3486         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3487         * tree-inline.c (estimate_num_insns_1): Likewise.
3488         * varasm.c (const_hash_1, compare_constant, copy_constant)
3489         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3490         * emit-rtl.c (component_ref_for_mem_expr)
3491         (set_mem_attributes_minus_bitpos): Likewise.
3492         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3493         (is_aligning_offset): Likewise.
3494         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3495         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3496         * dojump.c (do_jump): Likewise.
3497         * builtins.c (get_pointer_alignment, get_memory_rtx)
3498         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3499         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3500
3501 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3502
3503         PR rtl-optimization/36017
3504         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3505         expanding the library call.
3506
3507 2008-04-22  Ian Lance Taylor  <iant@google.com>
3508
3509         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3510         than size_in_bytes.
3511
3512 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3513
3514         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3515         of LR/CTR moves for Power6.
3516
3517 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3518
3519         PR middle-end/36003
3520         * passes.c (init_optimization_passes): Remove
3521         pass_fast_rtl_byte_dce.
3522         
3523 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3524
3525         PR target/29096
3526         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3527         builtin functions to generate faster code.
3528         (_mm_cvtpu16_ps): Ditto.
3529         (_mm_cvtpi32x2_ps): Ditto.
3530
3531 2008-04-22  Nick Clifton  <nickc@redhat.com>
3532
3533         * common.opt (ftree-loop-distribution): Add Optimization
3534         attribute.
3535
3536         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3537         (frv_expand_builtin_va_start): Likewise.
3538
3539         * config/arm/arm.c (thumb_find_work_register): Fix location of
3540         argument register count.
3541
3542 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3543
3544         Support scheduling for ColdFire V1 and V3 microarchitecture.
3545         Improve scheduling of multiplication instructions.
3546
3547         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3548         (mac): New instruction attribute.
3549         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3550         (m68k_sched_mac): New variable.
3551         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3552         Handle cfv1 and cfv3.
3553         (max_insn_size): New static variable.
3554         (struct _sched_ib): New type.
3555         (sched_ib): New static variable.
3556         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3557         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3558         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3559         Update.
3560         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3561         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3562         new variables.  Update.
3563         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3564         Add modeling of cfv3 instruction buffer.  Update.
3565         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3566         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3567         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3568         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3569         a particular reservation applies to.
3570         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3571         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3572         to mul_l and mul_w.
3573         (cf_ib_*): Simplify description of instruction buffer.
3574         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3575         (cf_mem): Split into cf_mem1 and cf_mem2.
3576         (cf_v2_move_??): Rename to cfv12_alu_??.
3577         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3578         (cf_v2_mul_??): Remove reservations.
3579         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3580         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3581         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3582         appropriate place.
3583         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3584         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3585         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3586         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3587         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3588         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3589         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3590         expansions of the above reservations for instructions of sizes
3591         1, 2 and 3 words.
3592
3593 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3594
3595         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3596
3597 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3598
3599         * coverage.c: Include tree-pass.h.
3600         (coverage_counter_alloc): Print da_file_name to the dump file.
3601
3602 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3603
3604         * sbitmap.c (sbitmap_range_empty_p): New function.
3605         * sbitmap.h (sbitmap_range_empty_p): New function.
3606         * bitmap.h: Now includes obstack.h.
3607
3608 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3609             Kenneth Zadeck  <zadeck@naturalbridge.com>
3610
3611         * dbgcnt.def (ra_byte_scan): Added.
3612         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3613         when the last hit happens for a counter.  
3614         * timevar.def (TV_DF_BYTE_LR): New variable.
3615         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3616         * passes.c (pass_fast_rtl_byte_dce): New pass.
3617         * fwprop.c (update_df): Added mode to call df_ref_create.
3618         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3619         DF_REF_EXTRACT_OFFSET.
3620         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3621         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3622         (df_mm): New enum.
3623         (df_ref_extract): Added mode field.
3624         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3625         DF_REF_EXTRACT_OFFSET.
3626         (DF_REF_EXTRACT_MODE): New macro.
3627         (df_byte_lr_bb_info): New structure.
3628         (df_print_byte_regset, df_compute_accessed_bytes, 
3629         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3630         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3631         df_byte_lr_simulate_uses,
3632         df_byte_lr_simulate_artificial_refs_at_top,
3633         df_byte_lr_simulate_artificial_refs_at_end,
3634         df_compute_accessed_bytes): New function.
3635         (df_ref_create): Add parameter.
3636         (df_byte_lr_get_bb_info): New inline function.
3637         * df-scan.c (df_ref_record, df_uses_record,
3638         df_ref_create_structure): Added mode parameter.
3639         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3640         df_defs_record, df_uses_record, df_get_conditional_uses,
3641         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3642         df_entry_block_defs_collect, df_exit_block_uses_collect):
3643         Added mode parameter to calls to df_ref_record, df_uses_record,
3644         df_ref_create_structure.
3645         (df_ref_equal_p, df_ref_compare): Added test for modes.
3646         (df_ref_create_structure): Added code to set mode.  Renamed
3647         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3648         DF_REF_EXTRACT_OFFSET.
3649         * df-core.c (df_print_byte_regset): New function.
3650         * df-byte-scan.c: New file.
3651         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3652         calls to BITMAP_FREE.  
3653         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3654         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3655         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3656         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3657         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3658         df_byte_lr_local_compute, df_byte_lr_init,
3659         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3660         df_byte_lr_transfer_function, df_byte_lr_free, 
3661         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3662         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3663         df_byte_lr_simulate_uses,
3664         df_byte_lr_simulate_artificial_refs_at_top,
3665         df_byte_lr_simulate_artificial_refs_at_end): New function.
3666         * dce.c (byte_dce_process_block): New function.
3667         (dce_process_block): au is now passed in rather than computed
3668         locally.  Changed loops that look at artificial defs to not look
3669         for conditional or partial ones, because there never are any.  
3670         (fast_dce): Now is able to drive byte_dce_process_block or 
3671         dce_process_block depending on the kind of dce being done.
3672         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3673         (rest_of_handle_fast_byte_dce): New function.
3674         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3675         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3676
3677 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3678
3679         PR fortran/35019
3680         * gcc.h: Added fortran options that take arguments to
3681         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3682         macros.
3683
3684 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3685
3686         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3687         scalarization if on the LHS and not a full access.
3688
3689 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3690
3691         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3692
3693 2008-04-18  Rafael Espindola  <espindola@google.com>
3694
3695         * tree-vrp.c (find_case_label_index): Fix the binary search.
3696         (find_case_label_range): New.
3697         (vrp_visit_switch_stmt): Use find_case_label_range.
3698         (simplify_switch_using_ranges): Use find_case_label_range.
3699
3700 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3701
3702         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3703         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3704
3705 2008-04-18  Tom Tromey  <tromey@redhat.com>
3706
3707         PR libcpp/15500:
3708         * doc/cpp.texi (Implementation-defined behavior): Mention
3709         -finput-charset.
3710
3711 2008-04-18  Ian Lance Taylor  <iant@google.com>
3712
3713         * fold-const.c (pointer_may_wrap_p): New static function.
3714         (fold_comparison): Add another test for pointer overflow.  Use
3715         pointer_may_wrap_p to disable some false positives.
3716
3717 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3718           
3719         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3720         (fname_as_string): Match updated cpp_interpret_string prototype.
3721         (fix_string_type): Support char16_t* and char32_t*.
3722         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
3723         derivative) nodes.  Register as builtin if C++0x.
3724         (c_parse_error): Support CPP_CHAR{16,32}.
3725         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
3726         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
3727         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
3728         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
3729         CTI_CHAR32_ARRAY_TYPE>: New elements.
3730         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
3731         char32_type_node, signed_char32_type_node, char16_array_type_node,
3732         char32_array_type_node): New defines.
3733         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
3734         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3735         (lex_string): Support CPP_STRING{16,32}, match updated
3736         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
3737         (lex_charconst): Support CPP_CHAR{16,32}.
3738         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
3739         and CPP_STRING{16,32}.
3740
3741 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3742
3743         PR bootstrap/35457
3744         * aclocal.m4: Regenerate.
3745         * configure: Regenerate.
3746
3747 2008-04-18  Jan Hubicka  <jh@suse.cz>
3748
3749         * except.c (dw2_size_of_call_site_table,
3750         sjlj_size_of_call_site_table): Use vector API for call_site_record.
3751
3752         * cgraphbuild.c (build_cgraph_edges): Update.
3753         * tree-pass.h: Update comment.
3754         * final.c (leaf_function_p): Update.
3755         (leaf_renumber_regs): Update.
3756         (rest_of_clean_state): Update.
3757         * omp-low.c (expand_omp_parallel): Update.
3758         * ipa-reference.c (analyze_function): Update.
3759         * reorg.c (find_end_label): Update.
3760         (optimize_skip): Update.
3761         (fill_simple_delay_slots): Update.
3762         (fill_simple_delay_slots): Update.
3763         (make_return_insns): Update.
3764         (dbr_schedule): Update.
3765         * gimple-low.c (record_vars_into): Update.
3766         * cfgbuild.c (make_edges): Update.
3767         * function.c (assign_stack_local): Update.
3768         (assign_parm_adjust_stack_rtl): Update.
3769         (locate_and_pad_parm): Update.
3770         (allocate_struct_function): Do not initialize stack_alignment_needed
3771         and preferred_stack_boundary here.
3772         (stack_protect_prologue): Update.
3773         (stack_protect_epilogue): Update.
3774         (expand_function_start): Initialize stack_alignment_needed,
3775         preferred_stack_boundary and max_jumptable_ents.
3776         (expand_function_end): Update.
3777         (free_after_compilation): Do not NULLify epilogue_delay_list.
3778         * function.h (struct rtl_data): Add stack_protect_guard,
3779         stack_alignment_needed,
3780         preferred_stack_boundary, epilogue_delay_list.
3781         (struct function): Remove value_histograms, stack_alignment_needed,
3782         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
3783         last_label_uid,
3784         unexpanded_var_list, stack_protect_guard.
3785         (current_function_epilogue_delay_list): Remove.
3786         * ipa-type-escape.c (analyze_function): Update.
3787         * gimplify.c (pop_gimplify_context): Update comment.
3788         * calls.c (expand_call): Update.
3789         (emit_library_call_value_1): Update.
3790         * except.c (set_nothrow_function_flags): Update.
3791         * cfgexpand.c (get_decl_align_unit): Update.
3792         (create_stack_guard): Update.
3793         (estimated_stack_frame_size): Update.
3794         (expand_used_vars): Update.
3795         (tree_expand_cfg): Free histogram earliers, init expansion variables.
3796         * explow.c (allocate_dynamic_stack_space): Update.
3797         * tree-ssa-live.c (remove_unused_locals): Update.
3798         * varasm.c (mark_constant_pool): Update.
3799         * tree-inline.c (remap_decls): Update.
3800         (initialize_cfun): Update.
3801         (declare_return_variable): Update.
3802         (inline_forbidden_p): Update.
3803         (expand_call_inline): Update.
3804         (declare_inline_vars): Update.
3805         (tree_function_versioning): Update.
3806         * tree-flow.h (value_histograms): New.
3807         (VALUE_HISTOGRAMS): New macro.
3808         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
3809         last_label_uid.
3810         * tree-cfg.c (set_bb_for_stmt): Update.
3811         (replace_by_duplicate_decl): Update.
3812         (move_block_to_fn): Update.
3813         (new_label_mapper): Update.
3814         (dump_function_to_file): Update.
3815         * ipa-struct-reorg.c (build_data_structure): Update.
3816         * cfgrtl.c (print_rtl_with_bb): Update.
3817         * reload1.c (reload): Update.
3818         (reload): Update.
3819         * config/i386/i386.c (setup_incoming_varargs_64,
3820         ix86_compute_frame_layout): Update.
3821         * config/arc/arc.c (arc_output_function_epilogue): Update.
3822
3823 2008-04-18  Marius Strobl <marius@FreeBSD.org>
3824
3825         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
3826         for FreeBSD as well.
3827         * gthr-posix95.h: Likewise.
3828
3829 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
3830
3831         PR rtl-optimization/35838
3832         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
3833         out the byte offset of the first subreg.
3834
3835 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
3836
3837         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
3838         to split_ti instead of three separate calls with single member arrays.
3839         (subti3 splitter): Ditto.
3840         (adddi3 splitter): Ditto with split_di.
3841         (subdi3 splitter): Ditto.
3842         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
3843         two separate calls with single member arrays.  Swap match_dup
3844         operands 1 and 2 to better fit into the array.
3845         (negdi2 splitter): Ditto with split_di.
3846         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
3847         two separate calls with single member arrays.  Swap match_dup operands
3848         6 and 7 to better fit into the array.
3849
3850 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
3851
3852         * config/i386/i386.c (sse_builtin_type): New.
3853         (bdesc_sse_args): Likewise.
3854         (bdesc_sse_3arg): Removed.
3855         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
3856         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
3857         IX86_BUILTIN_ROUNDPS.
3858         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
3859         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
3860         IX86_BUILTIN_ROUNDPS.
3861         (ix86_expand_sse_4_operands_builtin): Removed.
3862         (ix86_expand_sse_operands_builtin): New.
3863         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
3864         and CODE_FOR_sse4_1_roundps.
3865         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
3866         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
3867
3868 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
3869
3870         PR target/35907
3871         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
3872         regs before frame pop when needed.  If use_backchain_to_restore_sp
3873         then load backchain into a temp reg to restore vr and vrsave.  Add
3874         code to restore vr after frame pop if possible.
3875
3876 2008-04-17  Richard Guenther  <rguenther@suse.de>
3877
3878         * tree-vn.c (expressions_equal_p): Do not check type
3879         equality or compatibility before calling operand_equal_p.
3880         * fold-const.c (operand_equal_p): Check equivalence of
3881         integer constants before bailing out due to signedness or
3882         precision differences.
3883         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
3884         spurious differences in type qualification.  Ignore types
3885         for COMPONENT_REFs at all.
3886
3887 2008-04-17  Christian Bruel  <christian.bruel@st.com>
3888
3889         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
3890         msw_skip comparison.
3891         
3892 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
3893
3894         PR c/35739
3895         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
3896         reg type.
3897
3898         PR tree-optimization/35899
3899         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
3900         rather than TREE_OPERAND.
3901
3902 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
3903
3904         PR target/35944
3905         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
3906         temporary registers.  Change operand predicate to general_operand.
3907         (remainderxf3): Ditto.
3908
3909 2008-04-16  Richard Guenther  <rguenther@suse.de>
3910
3911         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
3912         * tree-affine.c (aff_combination_expand): Look through some
3913         conversions.
3914
3915 2008-04-15  Doug Kwan  <dougkwan@google.com>
3916
3917         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
3918         for hex printing.
3919         * tree-pretty-print.c (dump_generic_node): Ditto.
3920         * final.c (output_addr_const): Ditto.
3921         * dwarf2out.c (output_cfi): Ditto.
3922         * c-pretty-print.c (pp_c_integer_constant): Ditto.
3923         * print-rtl.c (print_rtx): Ditto.
3924         * print-tree.c (print_node_brief, print_node): Ditto.
3925         * c-common.c (match_case_to_enum_1): Ditto.
3926         * sched-vis.c (print_value): Ditto.
3927         * config/i386/i386.c (print_operand): Cast to long unsigned int
3928         for hex printing.
3929
3930 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
3931         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
3932         MS Windows VirtualProtect function.
3933
3934 2008-04-15  Jan Hubicka  <jh@suse.cz>
3935
3936         * gengtype.c (write_root): Param_is argument is OK.
3937         * expr.c (expand_expr_real_1): Update call of get_exception_*.
3938         * function.h: Include varray.h
3939         (rtl_eh): New stucture based on except.c one.
3940         (call_site_record): New forward declaration and vector type.
3941         * calls.c (emit_call_1): Do not call
3942         note_current_region_may_contain_throw.
3943         * except.c (eh_status): Remove cur_region, try_region since they are
3944         unused.
3945         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
3946         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
3947         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
3948         Remove call_site_data_used, call_site_data_size.
3949         Turn call_site_record into vector in function.h.
3950         (note_current_region_may_contain_throw): Remove.
3951         (get_exception_pointer, get_exception_filter): Do not take struct
3952         function argument; update.
3953         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
3954         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
3955         build_post_landing_pads, dw2_build_landing_pads,
3956         sjlj_assign_call_site_values, sjlj_mark_call_sites,
3957         sjlj_emit_function_enter, sjlj_emit_function_enter, 
3958         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
3959         sjlj_build_landing_pads, finish_eh_generation,
3960         remove_exception_handler_label, remove_eh_handler,
3961         maybe_remove_eh_handler, add_reachable_handler,
3962         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
3963         add_action_record, collect_one_action_chain, add_call_site,
3964         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
3965         sjlj_output_call_site_table, output_function_exception_table,
3966         * except.h (note_current_region_may_contain_throw): Remove
3967         (get_exception_pointer, get_exception_filter): Do not take struct
3968         function argument.
3969         * Makefile.in (GTFILES): Put varargs before struct function.
3970
3971 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3972
3973         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
3974         punt for STRING_CST.
3975         (get_constraint_for): Deal with STRING_CST here instead.
3976
3977 2008-04-15  Richard Guenther  <rguenther@suse.de>
3978
3979         * tree-ssa-propagate.c (substitute_and_fold): Substitute
3980         statements in a basic-block with a backward walk.  Do not
3981         substitute into dead statements but instead remove those.
3982
3983 2008-04-15  Richard Guenther  <rguenther@suse.de>
3984
3985         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
3986         to zero, thus disable creation of SFTs.
3987
3988 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
3989
3990         * tree-predcom.c (suitable_reference_p): Return false if the
3991         reference can throw.
3992
3993 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
3994
3995         PR c/35751
3996         * c-decl.c (finish_decl): If extern or static var has variable
3997         size, set TREE_TYPE (decl) to error_mark_node.
3998
3999 2008-04-15  Rafael Espindola  <espindola@google.com>
4000
4001         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4002         variable arg1.
4003
4004 2008-04-15  Richard Guenther  <rguenther@suse.de>
4005
4006         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4007         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4008         (visit_reference_op_load): Do walk vuse-vdef chains on
4009         vn_reference_lookup.
4010         (visit_reference_op_store): But do not here.
4011         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4012         vn_reference_lookup.
4013         (vn_lookup_with_vuses): But do so here.
4014
4015 2008-04-14  Ian Lance Taylor  <iant@google.com>
4016
4017         * fold-const.c (fold_overflow_warning): Remove assertion.
4018
4019 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4020
4021         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4022         temp1 local variables.
4023
4024 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4025
4026         PR target/35661
4027         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4028         ".text.unlikely" section as executable.
4029
4030 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4031
4032         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4033         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4034         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4035         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4036         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4037         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4038         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4039
4040 2008-04-14  Ian Lance Taylor  <iant@google.com>
4041
4042         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4043         * fold-const.c (fold_comparison): If appropriate, test
4044         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4045         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4046         reassociating a pointer type.
4047         * doc/invoke.texi (Optimize Options): Document that
4048         -fstrict-overflow applies to pointer wraparound.
4049
4050 2008-04-13  Jan Hubicka  <jh@suse.cz>
4051
4052         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4053
4054 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4055
4056         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4057         we are going to "save the world".
4058
4059 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4060
4061         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4062         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4063         operand 0 constraint, not "=".
4064
4065 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4066
4067         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4068
4069 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4070
4071         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4072         of size of positions_needed * CHAR_BIT.
4073
4074 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4075
4076         PR middle-end/35897
4077         * dse.c (store_info): Change positions_needed to unsigned
4078         HOST_WIDE_INT.
4079         (lowpart_bitmask): New.
4080         (record_store): Cast to unsigned HOST_WIDE_INT for
4081         positions_needed.  Assert width <= size of positions_needed *
4082         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4083         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4084         lowpart_bitmask to set mask.
4085
4086 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4087
4088         * config/bfin/constraints.md: New file.
4089         * config/bfin/bfin.md: Include it.
4090         (adddi3): Use satisfies_constraint functions instead of the old macros.
4091         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4092         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4093         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4094         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4095         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4096         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4097         EXTRA_CONSTRAINT): Delete.
4098         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4099         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4100         of the old macros.
4101         * config/bfin/bfin.c: Include "tm-constrs.h".
4102         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4103         Use satisfies_constraint functions instead of the old macros.
4104         * doc/md.texi (Blackfin Constraints): Update file name reference.
4105
4106 2008-04-11  Richard Guenther  <rguenther@suse.de>
4107
4108         PR tree-optimization/35869
4109         * tree-vrp.c (execute_vrp): Move switch statement update after
4110         jump threading.  Schedule another cfg cleanup run.
4111
4112 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4113
4114         PR c/35744
4115         * attribs.c (decl_attributes): Return early on errorneous node.
4116
4117 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4118
4119         * tree.h (struct tree_base): Added a new flag default_def_flag.
4120         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4121
4122 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4123
4124         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4125
4126 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4127
4128         PR target/35768
4129         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4130         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4131         (icacheflush): Likewise.
4132         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4133         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4134
4135 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4136
4137         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4138
4139 2008-04-10  Rafael Espindola  <espindola@google.com>
4140
4141         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4142         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4143         (extract_range_from_expr): The same.
4144
4145 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4146
4147         * config/mips/mips.md (GPR2): New mode iterator.
4148         (seq): Add comment.
4149         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4150         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4151         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4152         Rewrite these to take two modes, the mode of comparison and the
4153         mode of the destination.
4154         * config/mips/mips.c (mips_expand_scc): Instead of having
4155         paradoxical subreg as destination, expand "narrowing" scc if mode
4156         of comparison is SI and target is requested in DI mode.
4157         (mips_emit_int_order_test): Update comment.  Make mode of
4158         comparison match CMP0 rather than TARGET.  When creating inverse
4159         target use mode of TARGET.
4160
4161 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4162
4163         * gcov-dump.c (tag_summary): Only print summaries for the first
4164         GCOV_COUNTERS_SUMMABLE counters.
4165
4166 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4167
4168         * config/i386/i386.md (absneg): New code iterator.
4169         (absnegprefix): New code attribute.
4170         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4171         patterns using absneg code iterator.
4172         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4173         using absneg code iterator.
4174         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4175         *neg<mode>2 patterns using absneg code iterator.
4176         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4177         *negextendsfdf2 patterns using absneg code iterator.
4178         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4179         *negextendsfxf2 patterns using absneg code iterator.
4180         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4181         *negextendsfdf2 patterns using absneg code iterator.
4182         * config/i386/sse.md (<code><mode>2): Macroize expander from
4183         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4184
4185 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4186
4187         * config/s390/s390.h: Remove the remains of the recent search
4188         & replace action of current_function_outgoing_args_size.
4189
4190 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4191
4192         PR tree-optimization/35821
4193         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4194         NEW_STMT_LIST is not NULL.
4195
4196 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4197
4198         PR libstdc++/35597
4199         * toplev.c (process_options): Remove -ffunction-sections debugging
4200         warning.
4201
4202 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4203
4204         PR middle-end/PR28690
4205         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4206         than gen_rtx_fmt_ee to perform more canonicalizations.
4207
4208 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4209
4210         PR driver/35665
4211         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4212
4213 2008-04-09  Richard Guenther  <rguenther@suse.de>
4214
4215         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4216         (dump_function_to_file): Dump function arguments with types.
4217
4218 2008-04-08  Richard Guenther  <rguenther@suse.de>
4219
4220         * fold-const.c (fold_widened_comparison): Do not allow
4221         sign-changes that change the result.
4222
4223 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4224
4225         PR target/35839
4226         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4227         kinds of indirect references.
4228
4229 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4230
4231         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4232         GNU Fortran language string.
4233
4234 2008-04-08  Rafael Espindola  <espindola@google.com>
4235
4236         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4237         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4238         * tree.h (tree_call_nonnegative_warnv_p): New.
4239
4240 2008-04-08  Jan Hubicka  <jh@suse.cz>
4241
4242         * function.c (free_after_compilation): Clear out regno_reg_rtx
4243         pointer.
4244
4245 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4246
4247         Revert
4248         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4249
4250         PR middle-end/PR28690
4251         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4252         same precedence as REG_POINTER and MEM_POINTER operands.
4253
4254 2008-04-08  Richard Guenther  <rguenther@suse.de>
4255
4256         PR middle-end/35834
4257         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4258         for adding index to base.
4259
4260 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4261
4262         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4263         (MINGW_ENABLE_EXECUTE_STACK): New.
4264         (IN_LIBGCC2): For libgcc include windows.h file for
4265         function declarations.
4266
4267 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4268
4269         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4270         and tem2 if tem1 is not a REG or MULT.
4271
4272 2008-04-08  Jan Hubicka  <jh@suse.cz>
4273
4274         * function.h (incomming_args): Break out of struct function.
4275         (function_subsections): Break out of struct function.
4276         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4277         return_rtx and hard_reg_initial_vals from struct function.
4278         Kill inl_max_label_num.
4279         (current_function_pops_args, current_function_args_info,
4280         current_function_args_size, current_function_args_size,
4281         current_function_pretend_args_size,
4282         current_function_outgoing_args_size,
4283         current_function_internal_arg_pointer, current_function_return_rtx):
4284         Kill compatibility accestor macros.
4285         * builtins.c (expand_builtin_apply_args_1): Update.
4286         (expand_builtin_next_arg): Update.
4287         * df-scan.c (df_get_call_refs): Update.
4288         * dbxout.c (dbxout_function_end): Update.
4289         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4290         (output_line_info): Update.
4291         (secname_for_decl): Update.
4292         (dwarf2out_var_location): Update.
4293         * function.c (free_after_compilation): Update.
4294         (assign_parm_find_stack_rtl): Update.
4295         (assign_parms): Update.
4296         (expand_dummy_function_end): Update.
4297         (expand_function_end): Update.
4298         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4299         (expand_call): Update.
4300         (emit_library_call_value_1): Update.
4301         (store_one_arg): Update.
4302         * varasm.c (initialize_cold_section_name): Update.
4303         (unlikely_text_section): Update.
4304         (unlikely_text_section_p): Update.
4305         (assemble_start_function): Update.
4306         (assemble_end_function): Update.
4307         (default_section_type_flags): Update.
4308         (switch_to_section): Update.
4309         * integrate.c (set_decl_abstract_flags): Update.
4310         (get_hard_reg_initial_val): Update.
4311         (has_hard_reg_initial_val): Update.
4312         (allocate_initial_values): Update.
4313         * resource.c (init_resource_info): Update.
4314         * config/alpha/alpha.c (NUM_ARGS): Update.
4315         (direct_return): Update.
4316         (alpha_va_start): Update.
4317         (alpha_sa_size): Update.
4318         (alpha_initial_elimination_offset): Update.
4319         (alpha_expand_prologue): Update.
4320         (alpha_start_function): Update.
4321         (alpha_expand_epilogue): Update.
4322         (unicosmk_initial_elimination_offset):
4323         * config/alpha/alpha.md (call expander): Update.
4324         * config/s390/s390.c (s390_register_info): Update.
4325         (s390_register_info): Update.
4326         (s390_frame_info): Update.
4327         (s390_initial_elimination_offset): Update.
4328         (s390_build_builtin_va_list): Update.
4329         (s390_va_start): Update.
4330         * config/spu/spu.c (direct_return): Update.
4331         (spu_expand_prologue): Update.
4332         (spu_initial_elimination_offset): Update.
4333         (spu_build_builtin_va_list): Update.
4334         (spu_va_start): Update.
4335         * config/sparc/sparc.c (sparc_init_modes): Update.
4336         (sparc_compute_frame_size): Update.
4337         (function_value): Update.
4338         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4339         * config/i386/i386.md (return expander): Update.
4340         * config/i386/i386.c (ix86_va_start): Update.
4341         (ix86_can_use_return_insn_p): Update.
4342         (ix86_compute_frame_layout): Update.
4343         (ix86_expand_epilogue): Update.
4344         * config/sh/sh.c (output_stack_adjust): Update.
4345         (calc_live_regs): Update.
4346         (sh_expand_prologue): Update.
4347         (sh_builtin_saveregs): Update.
4348         (sh_va_start): Update.
4349         (initial_elimination_offset): Update.
4350         (sh_allocate_initial_value): Update.
4351         (sh_function_ok_for_sibcall): Update.
4352         (sh_get_pr_initial_val): Update.
4353         * config/sh/sh.md (return expander): Update.
4354         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4355         * config/crx/crx.c (crx_compute_frame): UPdate.
4356         (crx_initial_elimination_offset): UPdate.
4357         * config/xtensa/xtensa.c (compute_frame_size): Update
4358         (xtensa_builtin_saveregs): Update.
4359         (xtensa_va_start): Update.
4360         (order_regs_for_local_alloc): Update.
4361         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4362         (xstormy16_expand_builtin_va_start): Update.
4363         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4364         * config/m68hc11/m68hc11.md (return expanders): Update.
4365         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4366         (expand_epilogue): Update.
4367         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4368         (cris_simple_epilogue): Update.
4369         (cris_expand_prologue): Update.
4370         (cris_expand_epilogue): Update.
4371         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4372         (compute_frame_size): Update.
4373         * config/mt/mt.c (mt_compute_frame_size): Update.
4374         * config/mn10300/mn10300.c (expand_prologue): Update.
4375         (expand_epilogue): Update.
4376         (initial_offset): Update.
4377         (mn10300_builtin_saveregs):
4378         * config/mn10300/mn10300.md (return expander): Update.
4379         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4380         (ia64_initial_elimination_offset): Update.
4381         (ia64_initial_elimination_offset): Update.
4382         (ia64_expand_prologue): Update.
4383         * config/m68k/m68k.md (return expander): Update.
4384         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4385         (rs6000_stack_info): Update.
4386         * config/mcore/mcore.c (layout_mcore_frame): Update.
4387         (mcore_expand_prolog): Update.
4388         * config/arc/arc.c (arc_compute_frame_size): Update.
4389         * config/score/score3.c (score3_compute_frame_size): Update.
4390         * config/score/score7.c (score7_compute_frame_size): Update.
4391         * config/arm/arm.c (use_return_insn): Update.
4392         (thumb_find_work_register): Update.
4393         (arm_compute_save_reg_mask): Update.
4394         (arm_output_function_prologue): Update.
4395         (arm_output_epilogue): Update.
4396         (arm_size_return_regs): Update.
4397         (arm_get_frame_offsets): Update.
4398         (arm_expand_prologue): Update.
4399         (thumb_exit): Update.
4400         (thumb_unexpanded_epilogue): Update.
4401         (thumb1_output_function_prologue): Update.
4402         * config/pa/pa.md (return expander): Update.
4403         * config/pa/pa.c (compute_frame_size): Update.
4404         (hppa_builtin_saveregs): Update.
4405         * config/mips/mips.c (mips_va_start): Update.
4406         (mips16_build_function_stub): Update.
4407         (mips_compute_frame_info): Update.
4408         (mips_restore_gp): Update.
4409         (mips_output_function_prologue): Update.
4410         (mips_expand_prologue): Update.
4411         * config/v850/v850.c (compute_frame_size): Update.
4412         (expand_prologue): * config/mmix/mmix.c (along): update.
4413         (mmix_initial_elimination_offset): update.
4414         (mmix_reorg): update.
4415         (mmix_use_simple_return): update.
4416         (mmix_expand_prologue): update.
4417         (mmix_expand_epilogue): Update.
4418         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4419         (emit_link_insn): Update.
4420
4421 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4422
4423         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4424         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4425         instructions.
4426         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4427         atmega103 device.
4428
4429 2008-04-07  Jan Hubicka  <jh@suse.cz>
4430
4431         * function.h (rtl): Rename to x_rtl.
4432         (crtl): New define.
4433         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4434         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4435         used_temp_slots avail_temp_slots, temp_slot_level,
4436         nonlocal_goto_handler_labels): Update accesstors.
4437         (rtl): New global variable.
4438         (struct function): Move some fileds to rtl_data.
4439         (get_arg_pointer_save_area): Update prototype.
4440         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4441         get_arg_pointer_save_area.
4442         * expr.c (init_expr): Update
4443         * function.c (get_frame_size): Update
4444         (assign_stack_local): Update
4445         (expand_function_end): Update.
4446         (get_art_pointer_save_area): Update
4447         * function.h 
4448         * emit-rtl.c (rtl): Declare.
4449         (regno_reg_rtx): Declare.
4450         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4451         Update.
4452         (gen_reg_rtx): Update.
4453         * varasm.c (n_deferred_constatns): Update accestor.
4454         (init_varasm_status): Do not allocate varasm_status.
4455         (force_const_mem, get_pool_size, output_constant_pool): Update.
4456         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4457         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4458         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4459         * sparc/sparc.h (INIT_EXPANDERS): Update.
4460         * ia64/ia64.h (INIT_EXPANDERS): Update.
4461
4462 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4463
4464         * reload.c (push_secondary_reload): Add missing break to for loop.
4465
4466 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4467
4468         PR middle-end/PR28690
4469         * rtlanal.c: Update copyright years.
4470         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4471         as REG_POINTER and MEM_POINTER operands.
4472         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4473         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4474         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4475         * gcse.c: Update copyright years.
4476         (pre_delete): Call gen_reg_rtx_and_attrs.
4477         (hoist_code): Likewise.
4478         (build_store_vectors): Likewise.
4479         (delete_store): Likewise.
4480         * loop-invariant.c (move_invariant_reg): Likewise.
4481         Update copyright years.
4482
4483 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4484
4485         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4486         control string instead of quoted.
4487
4488 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4489
4490         * doc/rtl.texi: Rewrite of subreg section.
4491
4492 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4493
4494         PR/35842
4495         * config/i386/i386.c (legitimize_pic_address): Add treating
4496         of dllimport SYM_REF's.
4497         (legitimize_dllimport_symbol): Add prototype.
4498
4499 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4500
4501         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4502         reference in constructor with non self-referential type.
4503
4504 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4505
4506         Removal of Return with Depressed Stack Pointer support
4507         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4508         (ECF_SP_DEPRESSED): Likewise.
4509         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4510         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4511         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4512         (expand_call): Do not test ECF_SP_DEPRESSED.
4513         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4514         * function.c (keep_stack_depressed): Delete.
4515         (handle_epilogue_set): Likewise.
4516         (update_epilogue_consts): Likewise.
4517         (emit_equiv_load): Likewise.
4518         (thread_prologue_and_epilogue_insns): Remove support for Return with
4519         Depressed Stack Pointer.
4520         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4521
4522 2008-04-06  Richard Guenther  <rguenther@suse.de>
4523
4524         PR tree-optimization/35400
4525         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4526         information from SSA_NAMEs.
4527
4528 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4529
4530         * config/avr/avr.h (avr_mega_p): Remove declaration.
4531         (AVR_MEGA): Remove macro.
4532         * config/avr/avr.c (avr_mega_p): Remove variable.
4533         (avr_override_options): Remove inicializion of avr_mega_p.
4534         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4535         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4536         (avr_jump_mode): (Ditto.).
4537         (avr_output_progmem_section_asm_op): (Ditto.).
4538         (avr_asm_init_sections): (Ditto.).
4539         (avr_asm_init_sections): (Ditto.).
4540         (avr_rtx_costs): (Ditto.).
4541         * config/avr/avr.md: (Ditto.).
4542         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4543         '__AVR_MEGA__'.
4544
4545 2008-04-06  Richard Guenther  <rguenther@suse.de>
4546
4547         PR tree-optimization/35842
4548         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4549         is_gimple_invariant_address.
4550
4551 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4552
4553         * gcc.c (default_compilers): Sync Fortran extensions list with
4554         that in fortran/lang-specs.h.
4555         * doc/invoke.texi: Likewise.
4556         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4557         * dwarf2out.c (gen_compile_unit_die): Likewise.
4558
4559 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4560
4561         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4562
4563 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4564
4565         PR target/12329
4566         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4567         attribute is used for nested functions.
4568
4569 2008-04-05  Jan Hubicka  <jh@suse.cz>
4570
4571         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4572
4573         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4574         letter argument.
4575         (dump_files): Update.
4576         (enable_rtl_dump_file): Do not accept letter argument.
4577         * tree-pass.h (dump_file_info): Remove letter argument.
4578         * toplev.c (decode_d_option): Update -da handling.
4579         * toplev.h (enable_rtl_dump_file): Update prototype.
4580         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4581         it out based on pass type.
4582         (register_dump_files_1): Likewise.
4583         (init_optimization_passes): Update register_one_dump_file calls.
4584         (execute_one_pass): Sanity check that IPA passes are called at IPA
4585         level and RTL passes at RTL level.
4586         (execute_pass_list): IPA pass can not be after or subpass of
4587         GIMPLE/RTL pass.
4588         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4589         disallov RTL subpasses of IPA subpasses.
4590
4591 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4592
4593         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4594         builtins that return exactly once and do not throw. Cache call to
4595         call_expr_flags.
4596
4597 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4598
4599         PR rtl-optimization/34916
4600         PR middle-end/35519
4601         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4602         between instruction pairs.
4603
4604 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4605
4606         * doc/invoke.texi: Document -mbitops for SH.
4607         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4608         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4609         * config/sh/sh.c (print_operand): Add %t operand code.
4610         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4611         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4612         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4613         (extendqihi2): Likewise.
4614         (movqi_i): Likewise.
4615         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4616         (extv): Use bld instruction for SH2A if possible.
4617         (extzv): Likewise.
4618         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4619         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4620         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4621         (bset.b, bclr.b): Define peepholes.
4622         * config/sh/sh.opt (mbitops): New option.
4623
4624 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4625
4626         PR target/35620
4627         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4628         and view convert expression.
4629
4630 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4631
4632         PR target/35364
4633         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4634
4635 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4636
4637         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4638
4639         * config/i386/cpuid.h (bit_AES): New.
4640         (bit_PCLMUL): Likewise.
4641
4642         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4643         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4644         SSE2 if AES or PCLMUL is enabled.
4645         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4646         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4647         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4648         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4649         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4650         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4651         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4652         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4653         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4654         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4655         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4656         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4657         __builtin_ia32_aeskeygenassist128 and
4658         __builtin_ia32_pclmulqdq128.
4659         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4660         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4661         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4662
4663         * config/i386/i386.h (TARGET_AES): New.
4664         (TARGET_PCLMUL): Likewise.
4665         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4666
4667         * config/i386/i386.md (UNSPEC_AESENC): New.
4668         (UNSPEC_AESENCLAST): Likewise.
4669         (UNSPEC_AESDEC): Likewise.
4670         (UNSPEC_AESDECLAST): Likewise.
4671         (UNSPEC_AESIMC): Likewise.
4672         (UNSPEC_AESKEYGENASSIST): Likewise.
4673         (UNSPEC_PCLMUL): Likewise.
4674
4675         * config/i386/i386.opt (maes): New.
4676         (mpclmul): Likewise.
4677
4678         * config/i386/sse.md (aesenc): New pattern.
4679         (aesenclast): Likewise.
4680         (aesdec): Likewise.
4681         (aesdeclast): Likewise.
4682         (aesimc): Likewise.
4683         (aeskeygenassist): Likewise.
4684         (pclmulqdq): Likewise.
4685
4686         * config/i386/wmmintrin.h: New.
4687
4688         * doc/extend.texi: Document AES and PCLMUL built-in function.
4689
4690         * doc/invoke.texi: Document -maes and -mpclmul.
4691
4692 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4693
4694         * function.c (free_after_parsing): Replace with
4695         cxx_push_function_context from C++ front-end.
4696         (allocate_struct_function): Don't call langhook.
4697         * langhooks.h (struct lang_hooks_for_functions): Delete.
4698         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4699         member "function".
4700         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4701         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4702         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4703         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4704         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4705         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4706         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4707
4708         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4709         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4710         
4711 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4712
4713         PR c/35440
4714         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4715         for all types.
4716
4717 2008-04-04  Richard Guenther  <rguenther@suse.de>
4718
4719         PR middle-end/35823
4720         * fold-const.c (optimize_minmax_comparison): Use the correct
4721         type for the constant in the simplified comparison.
4722
4723 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
4724
4725         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
4726         Pass L2 size as "--param l2-cache-size" to the compiler.
4727         (decode_l2_cache): New function to decode L2 cache parameters using
4728         0x8000006 extended cpuid function.
4729         (detect_caches_amd): Determine parameters of L2 cache using
4730         decode_l2_caches function.
4731         (decode_caches_intel): Decode L2 cache parameters.
4732         (detect_caches_intel): Determine L2 cache parameters using
4733         decode_caches_intel and decode_l2_caches functions.
4734
4735 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
4736
4737         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
4738         secondary input reload for subword loads from the constant pool.
4739
4740 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
4741
4742         PR target/35713
4743         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
4744           constants of the appropriate size for runtime calculations.
4745
4746         PR c/35712
4747         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
4748           decimal-float literal constant zero.
4749
4750 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
4751
4752         PR c/35738
4753         * c-parser.c (c_parser_omp_atomic): Call
4754         default_function_array_conversion on the RHS.
4755
4756         PR middle-end/35818
4757         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
4758         call is_variable_sized if decl has incomplete type.
4759
4760 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
4761
4762         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
4763
4764 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
4765
4766         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
4767         iterators.
4768         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
4769         (sgt<u>): Merge sgt and sgtu into new expander.
4770         (sgt, sgtu): Remove expanders.
4771         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
4772         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
4773         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
4774         *sgtu_<mode>_mips16 into new pattern.
4775         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
4776         (sge<u>): Merge sge and sgeu into new expander.
4777         (sge, sgeu): Remove expanders.
4778         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
4779         new pattern.
4780         (*sge_<mode>, second *sge_<mode>): Remove patterns.
4781         (slt<u>): Merge slt and sltu into new expander.
4782         (slt, sltu): Remove expanders.
4783         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
4784         (*slt_<mode>, *sltu_<mode>): Remove patterns.
4785         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
4786         *sltu_<mode>_mips16 into new pattern.
4787         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
4788         (sle<u>): Merge sle and sleu into new expander.
4789         (sle, sleu): Remove expanders.
4790         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
4791         (*sle_<mode>, *sleu_<mode>): Remove patterns.
4792         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
4793         *sleu_<mode>_mips16 into new pattern.
4794         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
4795
4796 2008-04-03  Jan Hubicka  <jh@suse.cz>
4797
4798         PR tree-optimization/35795
4799         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
4800         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4801         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
4802         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4803         * score/score3.c (score3_output_mi_thunk): Likewise.
4804         * score/score7.c (score7_output_mi_thunk): Likewise.
4805         * mips/mips.c (mips_output_mi_thunk): Likewise.
4806
4807 2008-04-03  Richard Guenther  <rguenther@suse.de>
4808
4809         * tree-vrp.c (extract_range_from_unary_expr): Handle all
4810         conversions.  Simplify code.
4811
4812 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4813
4814         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
4815
4816 2008-04-03  Tom Tromey  <tromey@redhat.com>
4817             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4818
4819         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4820         * config/bfin/t-bfin-linux (generated_files): Add
4821         linux-sysroot-suffix.h.
4822         * doc/install.texi (Prerequisites): Require make 3.80.
4823         * doc/sourcebuild.texi (Front End Directory): Document new
4824         variable.
4825         * Makefile.in (generated_files): New variable.
4826         (ALL_HOST_OBJS): New variable.
4827         ($(ALL_HOST_OBJS)): New target.
4828
4829 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
4830
4831         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
4832         (remap_block): Call id->transform_lang_insert_block instead
4833         of langhook.
4834         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
4835         Set id.transform_lang_insert_block to NULL.
4836         (clone_body): Move to cp/optimize.c
4837         * tree-inline.h (struct copy_body_data): Change
4838         transform_lang_insert_block to function pointer.
4839         (copy_generic_body, copy_decl_no_change): Export.
4840         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
4841         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
4842         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
4843
4844         * c-tree.h (insert_block): Kill.
4845         * c-decl.c (insert_block): Kill.
4846
4847 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
4848
4849         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4850         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
4851         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
4852         argument.
4853         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
4854         argument, call {push,pop}_function_context from here.
4855         * c-parser.c: Use c_{push,pop}_function_context.
4856
4857         * function.c (push_function_context_to): Move meat ...
4858         (push_function_context): ... here.  Simplify.
4859         * function.c (pop_function_context_from): Move meat ...
4860         (pop_function_context): ... here.  Simplify.
4861         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
4862         leave_nested).
4863         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4864         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
4865         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
4866         * tree.h (push_function_context_to, pop_function_context_from): Remove.
4867
4868 2008-04-03  Ben Elliston  <bje@au.ibm.com>
4869
4870         * expmed.c (extract_force_align_mem_bit_field): Remove.
4871
4872 2008-04-03  Richard Guenther  <rguenther@suse.de>
4873
4874         PR middle-end/35800
4875         * expr.h (try_casesi): Adjust prototype.
4876         * expr.c (try_casesi): Take fallback label as extra parameter.
4877         Use that for gen_casesi if default_label is NULL.
4878         * stmt.c (expand_case): Pass fallback label to try_casesi,
4879         make sure to fill gaps with a fallback label if default_label
4880         is not present.
4881
4882 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
4883
4884         PR target/35801
4885         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
4886
4887 2008-04-03  Ben Elliston  <bje@au.ibm.com>
4888
4889         * expmed.c (extract_split_bit_field): Remove if (0) code.
4890         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
4891         (do_ds_constraint): Likewise.
4892
4893 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
4894
4895         * doc/cppopts.texi (-dU): Document.
4896         * c-common.h (flag_dump_macros): Update comment.
4897         * c-opts.c (handle_OPT_d): Handle -dU.
4898         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
4899         dump_queued_macros, cb_used_define, cb_used_undef): New.
4900         (init_pp_output): Handle -dU.
4901         (cb_line_change): Call dump_queued_macros.
4902         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
4903
4904 2008-04-02  Anatoly Sokolov <aesok@post.ru>
4905
4906         * config/avr/predicates.md (io_address_operand): New predicate. 
4907         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
4908         * config/avr/avr.c (avr_io_address_p): Remove function.
4909         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
4910         'avr_io_address_p' function.
4911         (out_movhi_r_mr): (Ditto.).
4912         (out_movqi_mr_r): (Ditto.).
4913         (out_movhi_mr_r): (Ditto.).
4914         (avr_address_cost): (Ditto.).
4915
4916 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
4917
4918         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
4919         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
4920         in 32bit mode when XMM registers are available to avoid store
4921         forwarding stalls.
4922         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
4923         corresponding post-reload splitters.
4924
4925 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
4926
4927         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
4928         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
4929         __builtin_ia32_roundss.
4930         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
4931         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
4932         __builtin_ia32_roundss.
4933         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
4934         IX86_BUILTIN_SHUFPD here.
4935
4936 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
4937
4938         * config/i386/i386.md (plogic): New.
4939         (plogicprefix): Likewise.
4940
4941         * config/i386/mmx.md (mmx_<code><mode>3): New.
4942         (mmx_and<mode>3): Removed.
4943         (mmx_ior<mode>3): Likewise.
4944         (mmx_xor<mode>3): Likewise.
4945
4946         * config/i386/sse.md (<code><mode>3): New.
4947         (*<code><mode>3): Likewise.
4948         (*<code><mode>3): Likewise.
4949         (<code><mode>3): Likewise.
4950         (*sse_<code><mode>3): Likewise.
4951         (*sse2_<code><mode>3): Likewise.
4952         (<code>tf3): Likewise.
4953         (*<code>tf3): Likewise.
4954         (and<mode>3): Likewise.
4955         (*and<mode>3): Likewise.
4956         (ior<mode>3): Removed.
4957         (*ior<mode>3): Likewise.
4958         (xor<mode>3): Likewise.
4959         (*xor<mode>3): Likewise.
4960         (*and<mode>3): Likewise.
4961         (*ior<mode>3): Likewise.
4962         (*xor<mode>3): Likewise.
4963         (and<mode>3): Likewise.
4964         (*sse_and<mode>3): Likewise.
4965         (*sse2_and<mode>3): Likewise.
4966         (andtf3): Likewise.
4967         (*andtf3): Likewise.
4968         (ior<mode>3): Likewise.
4969         (*sse_ior<mode>3): Likewise.
4970         (*sse2_ior<mode>3): Likewise.
4971         (iortf3): Likewise.
4972         (*iortf3): Likewise.
4973         (xor<mode>3): Likewise.
4974         (*sse_xor<mode>3): Likewise.
4975         (*sse2_xor<mode>3): Likewise.
4976         (xortf3): Likewise.
4977         (*xortf3): Likewise.
4978
4979 2008-04-02  Richard Guenther  <rguenther@suse.de>
4980
4981         PR tree-optimization/14495
4982         PR tree-optimization/34793
4983         * tree-vrp.c (struct switch_update): New structure.
4984         (to_remove_edges, to_update_switch_stmts): New VECs.
4985         (simplify_switch_using_ranges): New function.  Remove not taken
4986         case labels and edges.
4987         (simplify_stmt_using_ranges): Call it.
4988         (identify_jump_threads): Mark edges we have queued for removal
4989         so we don't thread them.
4990         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
4991         case label vector.
4992         * tree-cfg.c (group_case_labels): Deal with missing default label.
4993         (tree_verify_flow_info): Allow missing default label.
4994         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
4995         (emit_case_nodes): Likewise.
4996         (expand_case): Do not rely on the default label to be present.
4997         * expr.c (try_casesi): Deal with NULL default_label.
4998         (do_tablejump): Likewise.
4999
5000 2008-04-02  Richard Guenther  <rguenther@suse.de>
5001
5002         PR tree-optimization/14495
5003         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5004         SWITCH_EXPR here ...
5005         (vrp_visit_switch_stmt): ... but here (new function).
5006         (find_case_label_index): New helper function.
5007         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5008
5009 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5010
5011         * fwprop.c: Fix ISO-C99ism.
5012
5013 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5014
5015         PR bootstrap/35752
5016         * Makefile.in (objdir): Set it here.
5017         * configure.ac: Not here.  Find dynamic linker characteristics.
5018         * exec-tool.in: Use them.
5019         * aclocal.m4: Regenerate.
5020         * configure: Regenerate.
5021
5022 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5023
5024         * expr.c (expand_var): Delete it.
5025         * expr.h (expand_var): Delete prototype.
5026         * function.c (expand_function_start): Use expand_decl instead.
5027         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5028         langhook.
5029
5030 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5031
5032         PR rtl-optimization/35542
5033         * fwprop.c (forward_propagate_and_simplify): Replace
5034         loc_reg_mentioned_in_p with reg_mentioned_p.
5035
5036 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5037
5038         PR rtl-optimization/35281
5039         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5040         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5041         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5042         (varying_mem_p): Move above propagate_rtx.
5043         (all_uses_available_at): Do not check MEMs.
5044
5045 2008-04-02  Rafael Espindola  <espindola@google.com>
5046
5047         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5048         (register_edge_assert_for_2): Split the cond argument.
5049         (register_edge_assert_for_1): Adjust for the change in
5050         register_edge_assert_for_2.
5051         (register_edge_assert_for): Split the cond argument.
5052         (find_switch_asserts): Adjust for the change in
5053         register_edge_assert_for.
5054
5055 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5056
5057         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5058         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5059         offsets for 64-bit mingw.
5060         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5061         abi for x86_64-pc-mingw.
5062
5063 2008-04-02  Richard Guenther  <rguenther@suse.de>
5064
5065         * tree-vrp.c (extract_range_from_assert): Make sure to not
5066         produce range min/max with TREE_OVERFOW set.
5067         If merging a anti-range and a range keep the anti-range if
5068         the range covers all values of the type.
5069         (register_edge_assert_for_2): Only allow sign-changing
5070         conversions in detecting canonical range checks.  Also
5071         register an assert for the unsigned name if useful.
5072
5073         PR tree-optimization/35787
5074         * tree-vrp.c (vrp_val_max): New function.
5075         (vrp_val_min): Likewise.
5076         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5077         (vrp_val_is_min): Likewise.
5078         (supports_overflow_infinity): Use vrp_val_{min,max}.
5079         (negative_overflow_infinity): Likewise.
5080         (positive_overflow_infinity): Likewise.
5081         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5082         (is_positive_overflow_infinity): Likewise.
5083         (is_overflow_infinity): Likewise.
5084         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5085         vrp_val_is_{min,max}.
5086         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5087         to ranges if possible.  Avoid empty ranges.
5088
5089 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5090
5091         PR middle-end/35705
5092         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5093         the expression is a function address.
5094
5095 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5096
5097         PR fortran/35154, fortran/23057
5098         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5099         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5100         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5101         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5102         in common.
5103         (dbxout_syms): Check for COMMON-based symbol and wrap in
5104         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5105         in bracket for efficiency.
5106
5107         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5108         using DW_TAG_common_block + member offset.
5109         (add_pubname_string): New function.
5110         (dw_expand_expr): New function to find block name and offset for
5111         COMMON var.
5112         (common_check): New function to check whether symbol in Fortran COMMON.
5113         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5114
5115 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5116
5117         PR c/35436
5118         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5119
5120 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5121
5122         * config/v850/v850.md (casesi): Remove if (0) code.
5123         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5124         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5125
5126 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5127
5128         * config/i386/i386.md (rex64suffix): New mode attribute.
5129         (floathi<mode>2): Disable expander for SSE math.
5130         (*floathi<mode>2_1): New insn insn_and_split pattern.
5131         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5132         corresponding post-reload splitters.
5133         (*floathi<mode>2_i387): New macroized insn pattern.
5134         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5135         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5136         insn_and_split pattern.
5137         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5138         New macroized instruction patterns and corresponding post-reload
5139         splitters.
5140         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5141         and corresponding post-reload splitters.
5142         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5143         New macroized instruction patterns.
5144         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5145         macroized instruction patterns and corresponding post-reload splitters.
5146         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5147         corresponding post-reload splitters.
5148         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5149         New macroized instruction patterns.
5150         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5151         corresponding post-reload splitters.
5152         (*floatsi<mode>2_i387): New macroized instruction patterns.
5153
5154 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5155
5156         * config/i386/i386.md (smaxmin): New.
5157         (umaxmin): Likewise.
5158         (maxminiprefix): Likewise.
5159         (maxminfprefix): Likewise.
5160         (<code><mode>3): Likewise.
5161         (smin<mode>3): Removed.
5162         (smax<mode>3): Likewise.
5163
5164         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5165         (mmx_<code>v4hi3): Likewise.
5166         (mmx_<code>v8qi3): Likewise.
5167         (mmx_smaxv2sf3): Removed.
5168         (mmx_sminv2sf3): Likewise.
5169         (mmx_umaxv8qi3): Likewise.
5170         (mmx_smaxv4hi3): Likewise.
5171         (mmx_uminv8qi3): Likewise.
5172         (mmx_sminv4hi3): Likewise.
5173
5174         * config/i386/sse.md (<addsub><mode>3): New.
5175         (*<addsub><mode>3): Likewise.
5176         (<sse>_vm<addsub><mode>3): Likewise.
5177         (<maxmin><mode>3): Likewise.
5178         (*<maxmin><mode>3_finite): Likewise.
5179         (*<maxmin><mode>3): Likewise.
5180         (<sse>_vm<maxmin><mode>3): Likewise.
5181         (sse3_h<addsub>v4sf3): Likewise.
5182         (sse3_h<addsub>v2df3): Likewise.
5183         (<maxmin>v16qi3): Likewise.
5184         (*<maxmin>v16qi3): Likewise.
5185         (<maxmin>v8hi3): Likewise.
5186         (*<maxmin>v8hi3): Likewise.
5187         (*sse4_1_<maxmin><mode>3): Likewise.
5188         (*sse4_1_<maxmin><mode>3): Likewise.
5189         (add<mode>3): Removed.
5190         (*add<mode>3): Likewise.
5191         (<sse>_vmadd<mode>3): Likewise.
5192         (sub<mode>3): Likewise.
5193         (*sub<mode>3): Likewise.
5194         (<sse>_vmsub<mode>3): Likewise.
5195         (smin<mode>3): Likewise.
5196         (*smin<mode>3_finite): Likewise.
5197         (*smin<mode>3): Likewise.
5198         (<sse>_vmsmin<mode>3): Likewise.
5199         (smax<mode>3): Likewise.
5200         (*smax<mode>3_finite): Likewise.
5201         (*smax<mode>3): Likewise.
5202         (<sse>_vmsmax<mode>3): Likewise.
5203         (sse3_haddv4sf3): Likewise.
5204         (sse3_haddv2df3): Likewise.
5205         (sse3_hsubv4sf3): Likewise.
5206         (sse3_hsubv2df3): Likewise.
5207         (umaxv16qi3): Likewise.
5208         (*umaxv16qi3): Likewise.
5209         (smaxv8hi3): Likewise.
5210         (*smaxv8hi3): Likewise.
5211         (*sse4_1_smax<mode>3): Likewise.
5212         (*sse4_1_umax<mode>3): Likewise.
5213         (uminv16qi3): Likewise.
5214         (*uminv16qi3): Likewise.
5215         (sminv8hi3): Likewise.
5216         (*sminv8hi3): Likewise.
5217         (*sse4_1_smin<mode>3): Likewise.
5218         (*sse4_1_umin<mode>3): Likewise.
5219
5220 2008-04-01  Rafael Espindola  <espindola@google.com>
5221
5222         * tree-cfg.c (verify_expr): remove in_phi.
5223         (verify_stmt): Don't call walk_tree with verify_expr. Use
5224         is_gimple_min_invariant instead of is_gimple_val.
5225
5226 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5227
5228         * doc/include/gpl_v3.texi: Update for manpage generation.
5229         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5230         gpl.texi.
5231         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5232         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5233         gpl_v3.texi instead of gpl.texi.
5234         (gpl.pod): New.
5235
5236 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5237
5238         PR pch/13675
5239         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5240
5241 2008-04-01  Rafael Espindola  <espindola@google.com>
5242
5243         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5244         (extract_code_and_val_from_cond): Use
5245         extract_code_and_val_from_cond_with_ops.
5246
5247 2008-04-01  Jan Hubicka  <jh@suse.cz>
5248
5249         * function.c (free_after_compilation): Free epilogue_delay_list.
5250         (prepare_function_start): Assert that previous compilation was freed.
5251
5252 2008-04-01  Jan Hubicka  <jh@suse.cz>
5253             Jim Wilson  <wilson@tuliptree.org>
5254             Andreas Tobler <andreast@gcc.gnu.org>
5255
5256         PR middle-end/35781
5257         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5258         rtl.emit instead cfun->emit.
5259         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5260         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5261
5262 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5263
5264         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5265
5266 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5267
5268         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5269         New options
5270         (fprofile-use): Add var flag_profile_use
5271         * coverage.c (coverage_begin_output): Do not open a gcno file for
5272         output only if -ftest-coverage is set.
5273         Do not add getpwd() to gcda file path.
5274         (build_gcov_info): Check the new flag
5275         flag_profile_datafile_relative_path.
5276         (coverage_init): Use profile_data_prefix.
5277         Read profile counter only if flag_profile_use is set.
5278         * opts.c (common_handle_option): New option fprofile-use=,
5279         fprofile-dir=, fprofile-generate=.
5280         * toplev.c (profile_data_prefix): New variable definition.
5281         * toplev.h (profile_data_prefix): New declaration.
5282         * doc/invoke.tex (Option Summary, Optimization Options):
5283         Add new options.
5284
5285 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5286
5287         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5288         use tmp consistently.
5289
5290         PR target/35695
5291         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5292         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5293         UNSPEC_FR_RECIP_APPROX_RES.
5294         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5295
5296 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5297
5298         PR c/35750
5299         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5300
5301 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5302
5303         PR middle-end/30186
5304         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5305         element of the vector via a pointer.
5306
5307 2008-03-31  Ian Lance Taylor  <iant@google.com>
5308
5309         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5310
5311 2008-03-31  Jan Hubicka  <jh@suse.cz>
5312
5313         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5314         get_arg_pointer_save_area.
5315         * expr.c (init_expr): Just clear out rtl.expr.
5316         * function.c (free_after_compilation): Clear out whole RTL structure.
5317         (get_func_frame_size): Merge into ...
5318         (get_frame_size): ... this one.
5319         (assign_stack_local_1): Merge into ...
5320         (assign_stack_local): ... this one.
5321         (expand_function_end): Update call of get_arg_pointer_save_area.
5322         (get_art_pointer_save_area): Remove cfun argument.
5323         * function.h (emit_status): regno_pointer_align does not need length
5324         attribute. Move x_regno_reg_rtx to ...
5325         (regno_reg_rtx): ... new global array.
5326         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5327         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5328         apply_args_value, forced_labels, stack_pointer_delta):
5329         Update accestors.
5330         (struct varasm_status): Move here from varasm.c
5331         (struct rtl_data): New. Move here some fields from struct function.
5332         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5333         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5334         used_temp_slots avail_temp_slots, temp_slot_level,
5335         nonlocal_goto_handler_labels): Update accesstors.
5336         (rtl): New global variable.
5337         (struct function): Move some fileds to rtl_data.
5338         (get_arg_pointer_save_area): Update prototype.
5339         * emit-rtl.c (rtl): Declare.
5340         (regno_reg_rtx): Declare.
5341         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5342         Update.
5343         (gen_reg_rtx): Update.
5344         (init_virtual_regs): Do not tate emit_status argument.
5345         (init_emit): Do not allocate emit.
5346         * varasm.c (varasm_statuc): Move to function.h.
5347         (n_deferred_constatns): Update accestor.
5348         (init_varasm_status): Do not allocate varasm_status.
5349         (force_const_mem, get_pool_size, output_constant_pool): Update.
5350         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5351         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5352
5353 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5354
5355         PR rtl-optimization/35729
5356         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5357         references.
5358
5359 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5360
5361         PR target/32000
5362         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5363         load/store if memory is unaligned.
5364         (*movti_rex64): Likewise.
5365
5366         * config/i386/predicates.md (misaligned_operand): New.
5367
5368 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5369
5370         PR tree-opt/35431
5371         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5372         complex types.
5373
5374 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5375
5376         * config/ia64/constraints.md: Add 'j' constraint.
5377         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5378         (movdi_internal): Likewise.
5379
5380 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5381
5382         PR c/35748
5383         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5384
5385 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5386
5387         PR target/35757
5388         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5389         proper error message for the third argument on blendpd and
5390         blendps.
5391
5392         * config/i386/sse.md (blendbits): New.
5393         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5394
5395 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5396
5397         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5398
5399 2008-03-30  Richard Guenther  <rguenther@suse.de>
5400
5401         PR middle-end/31023
5402         * fold-const.c (fold_sign_changed_comparison): Do leave
5403         conversions to base-types alone.
5404
5405 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5406
5407         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5408         the link register if one altivec register is be saved.
5409
5410 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5411
5412         * final.c (final_scan_insn): Remove if (0) code.
5413
5414 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5415
5416         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5417
5418 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5419
5420         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5421         of V4SFmode to ix86_binary_operator_ok.
5422
5423 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5424
5425         * config/i386/i386.c (override_options): Initialize
5426         ix86_veclib_handler to ix86_veclibabi_svml when
5427         -mveclibabi=svml is used.
5428         (ix86_veclibabi_svml): New function for SVML ABI style
5429         vectorization support.
5430         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5431
5432 2008-03-28  Rafael Espindola  <espindola@google.com>
5433
5434         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5435         (tree_binary_nonnegative_warnv_p): Make it public.
5436         (tree_single_nonnegative_warnv_p): Make it public.
5437         (tree_invalid_nonnegative_warnv_p): Make it public.
5438         (tree_unary_nonzero_warnv_p): Make it public.
5439         (tree_binary_nonzero_warnv_p): Make it public
5440         (tree_single_nonzero_warnv_p): Make it public.
5441         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5442         (extract_range_from_binary_expr): Split the expr argument.
5443         (extract_range_from_unary_expr): Split the expr argument.
5444         (extract_range_from_comparison): Split the expr argument.
5445         (extract_range_from_expr): Use the new aux functions.
5446         (vrp_evaluate_conditional_warnv): Use
5447         vrp_evaluate_conditional_warnv_with_ops.
5448         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5449         (tree_binary_nonzero_warnv_p): Declare.
5450         (tree_single_nonzero_warnv_p): Declare.
5451         (tree_expr_nonzero_warnv_p): Declare.
5452         (tree_unary_nonnegative_warnv_p): Declare.
5453         (tree_binary_nonnegative_warnv_p): Declare.
5454         (tree_single_nonnegative_warnv_p): Declare.
5455         (tree_invalid_nonnegative_warnv_p): Declare.
5456
5457 2008-03-28  Richard Guenther  <rguenther@suse.de>
5458
5459         PR tree-optimization/30317
5460         PR tree-optimization/30911
5461         PR tree-optimization/34793
5462         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5463         (struct assert_locus_d): New member EXPR.
5464         (register_new_assert_for): Add EXPR parameter to support
5465         ASSERT_EXPR <name, expr OP limit>.
5466         (register_edge_assert_for_1): Adjust callers.
5467         (find_assert_locations): Likewise.
5468         (process_assert_insertions_for): Build condition from expression.
5469         (extract_range_from_assert): Handle ASSERT_EXPRs
5470         of the form ASSERT_EXPR <name, expr OP limit>.
5471         (register_edge_assert_for_2): New helper registering
5472         asserts for comparisons.  Recognize range tests of the form
5473         (unsigned)i - CST1 OP CST2.
5474         (register_edge_assert_for_1): Use it.
5475         (register_edge_assert_for): Likewise.
5476         (needs_overflow_infinity): Integer sub-types
5477         do not need overflow infinities.
5478         (vrp_val_is_max): The extreme values of integer sub-types
5479         are those of the base type.
5480         (vrp_val_is_min): Likewise.
5481         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5482         expressions.
5483
5484 2008-03-28  Nick Clifton  <nickc@redhat.com>
5485
5486         PR target/31110
5487         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5488         Return GENERAL_REGS for stack adjustment reloads.
5489
5490 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5491
5492         PR target/31334
5493         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5494         const_vector when all the vectors are constant.
5495
5496 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5497
5498         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5499         comparisons.
5500         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5501         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5502         (scc_sf): New.
5503         (s<code>_sf): Use new scc_sf attribute for opcode names.
5504
5505 2008-03-27  Tom Tromey  <tromey@redhat.com>
5506
5507         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5508         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5509         config/spu/t-spu-elf, config/i386/t-interix,
5510         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5511         config/i386/x-darwin, config/i386/x-mingw32,
5512         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5513         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5514         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5515         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5516         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5517         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5518         config/score/t-score-elf, config/arm/t-strongarm-pe,
5519         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5520         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5521         Revert automatic dependency patch.
5522
5523 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5524
5525         PR target/35657
5526         * config/i386/i386.c (ix86_function_arg_boundary): Align
5527         decimal floating point to its natural boundary.
5528
5529 2008-03-27  Richard Guenther  <rguenther@suse.de>
5530
5531         PR middle-end/35716
5532         * fold-const.c (fold_comparison): Restrict distinct decl
5533         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5534         solely rely on operand_equal_p.
5535
5536 2008-03-27  Richard Guenther  <rguenther@suse.de>
5537
5538         PR c/32511
5539         * c-common.c (handle_weak_attribute): Reject combination of
5540         weak and inline.
5541
5542 2008-03-27  Richard Guenther  <rguenther@suse.de>
5543
5544         PR tree-optimization/32810
5545         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5546         conversions from DECL_INITIAL.
5547         (fold_const_aggregate_ref): Likewise from constructor elements.
5548
5549 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5550
5551         * tree-affine.h (aff_combination_expand): Declare.
5552         (get_inner_reference_aff): Likewise.
5553         * tree-affine.c (aff_combination_expand): Split out from
5554         tree_to_aff_combination_expand.
5555         (get_inner_reference_aff): New function.
5556         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5557         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5558         (struct lim_aux_data): sm_done field removed.
5559         (mem_ref_loc_p, mem_ref_locs_p): New types.
5560         (struct mem_ref): Added id, stored, accesses_in_loop,
5561         indep_loop, dep_loop, indep_ref, dep_ref fields.
5562         Removed is_stored, locs and next fields.
5563         (memory_accesses): New variable.
5564         (movement_possibility): Do not allow moving statements
5565         that store to memory.
5566         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5567         New functions.
5568         (determine_max_movement): For statements with memory references,
5569         find the outermost loop in that the reference is independent.
5570         (move_computations_stmt): Mark the virtual operands for renaming.
5571         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5572         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5573         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5574         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5575         create_vop_ref_mapping, analyze_memory_references,
5576         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5577         get_all_locs_in_loop, ref_always_accessed_p,
5578         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5579         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5580         store_motion_loop, store_motion): New functions.
5581         (struct vop_to_refs_elt): New type.
5582         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5583         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5584         (schedule_sm): Replaced by...
5585         (execute_sm): ... this.
5586         (determine_lsm_ref, hoist_memory_references,
5587         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5588         find_more_ref_vops, free_mem_ref, free_mem_refs,
5589         determine_lsm_loop, determine_lsm): Removed.
5590         (tree_ssa_lim_finalize): Free data structures used by store motion.
5591         (tree_ssa_lim): Call analyze_memory_references.  Use
5592         store_motion instead of determine_lsm.
5593
5594 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5595
5596         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5597         rename tmake_file to m68hc11/t-m68hc11.
5598         (mcore): Set inhibit_libc to true.
5599         * config.host (alpha*-dec-*vms*): Set extra_programs.
5600         (interix3*): Don't use host_xmake_file.
5601         * configure.ac: Let config.gcc override inhibit_libc.
5602         * configure: Regenerate.
5603
5604         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5605         * config/t-openbsd-thread: Remove commented out lines.
5606         
5607         * config/x-interix: Remove.
5608
5609         * config/m68hc11/t-m68hc11-gas: Rename to...
5610         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5611
5612         * config/mcore/t-mcore: Remove T_CFLAGS.
5613         * config/mcore/t-mcore-pe: Likewise.
5614
5615 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5616
5617         * configure.ac: Replace custom __GNU_SOURCE test with
5618         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5619         * aclocal.m4: Regenerate.
5620         * configure: Regenerate.
5621         * config.in: Regenerate.
5622
5623 2008-03-27  Richard Guenther  <rguenther@suse.de>
5624
5625         * fold-const.c (target.h): Include.
5626         (fold_comparison): Fold comparison of addresses of decls
5627         that bind locally or of constants.  Consolidate address folding code.
5628         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5629         results from fold_binary_to_constant.
5630         (compare_values_warnv): Likewise.
5631
5632 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5633
5634         PR middle-end/35429
5635         * fold-const.c (fold_truthop): Check for integeral types when folding
5636         a == 0 && b == 0 and a != 0 || b != 0 .
5637
5638 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5639
5640         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5641
5642 2008-03-26  Andreas Schwab  <schwab@suse.de>
5643
5644         * doc/invoke.texi: Fix use of @item vs. @itemx.
5645
5646 2008-03-26  Tom Tromey  <tromey@redhat.com>
5647
5648         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5649         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5650         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5651         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5652         build/genconstants.o, build/genemit.o, build/genextract.o,
5653         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5654         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5655         options.h.
5656
5657 2008-03-26  Richard Guenther  <rguenther@suse.de>
5658
5659         Revert
5660         2008-03-26  Richard Guenther  <rguenther@suse.de>
5661
5662         * fold-const.c (target.h): Include.
5663         (fold_comparison): Fold comparison of addresses of two decls
5664         that bind locally.  Consolidate address folding code.
5665
5666 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5667
5668         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5669         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5670         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5671         dconstsqrt2, dconstthird, dconste and/or dconst10.
5672         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5673         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5674         dconstsqrt2, dconste): Delete.
5675         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5676         Constify variable.
5677         * real.c (get_real_const): New.
5678         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5679         dconstsqrt2, dconste): Delete.
5680         (real_value_const, get_real_const): New.
5681
5682 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5683
5684         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5685
5686         * config/i386/i386.c (ix86_function_arg_boundary): Check
5687         BIGGEST_ALIGNMENT instead of 128.
5688         (setup_incoming_varargs_64): Likewise.
5689
5690 2008-03-26  Tom Tromey  <tromey@redhat.com>
5691
5692         * Makefile.in (DEPFILES): Add missing '/'.
5693
5694 2008-03-26  Richard Guenther  <rguenther@suse.de>
5695
5696         * fold-const.c (target.h): Include.
5697         (fold_comparison): Fold comparison of addresses of two decls
5698         that bind locally.  Consolidate address folding code.
5699
5700 2008-03-26  Nick Clifton  <nickc@redhat.com>
5701
5702         PR target/31232
5703         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5704         not allow INT+INT as a legitimate addressing mode.
5705
5706 2008-03-26  Richard Guenther  <rguenther@suse.de>
5707
5708         * tree-flow.h (widen_bitfield): Remove declaration.
5709         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5710         (widen_bitfield): Remove function.
5711         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5712         code.
5713
5714 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5715
5716         PR target/31558
5717         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5718         error_mark_node's.
5719
5720 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5721
5722         PR rtl-optimization/35232
5723         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
5724         (forget_old_reloads_1, forget_marked_reloads): Don't clear
5725         reg_reloaded_call_part_clobbered here.
5726         (reload_regs_reach_end_p): New function.
5727         (reload_reg_rtx_for_input): New variable.
5728         (reload_reg_rtx_for_output): Likewise.
5729         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
5730         when reassigning a pseudo register.  Load reloadreg from 
5731         reload_reg_rtx_for_input, moving the mode and register
5732         calculation to...
5733         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
5734         instead of the original when deciding whether an input reload
5735         would be a no-op or whether an output reload can be deleted.
5736         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
5737         when setting up new_spill_reg_store.  Load it from
5738         reload_reg_rtx_for_output, moving the mode and register
5739         calculation to...
5740         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
5741         instead of the original when deciding whether an output reload
5742         would be a no-op.  Do the same when modifying insn notes.
5743         Use rtx_equal_p instead of == to compare the registers.
5744         (inherit_piecemeal_p): Take a mode and two register numbers
5745         as argument.
5746         (emit_reload_insns): Clear new_spill_reg_store for every hard
5747         register in the reload register.  Remove spill registers
5748         from reg_reloaded_valid before considering whether to record
5749         inheritance information for them.  Use reload_reg_rtx_for_output
5750         instead of reg_rtx when recording output reloads.  Use
5751         reload_reg_rtx_for_input instead of reg_rtx when recording
5752         input reloads.  Set or clear reg_reloaded_call_part_clobbered
5753         at the same time as setting reg_reloaded_valid.
5754         (delete_output_reload): Add a new_reload_reg parameter and use it
5755         instead of rld[j].reg_rtx.
5756         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
5757         calls accordingly.
5758
5759 2008-03-25  Tom Tromey  <tromey@redhat.com>
5760
5761         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
5762         (build/genattr.o): Likewise.
5763         (build/genattrtab.o): Likewise.
5764         (build/gencodes.o): Likewise.
5765         (build/genconfig.o): Likewise.
5766         (build/genconstants.o): Likewise.
5767         (build/genemit.o): Likewise.
5768         (build/genextract.o): Likewise.
5769         (build/genflags.o): Likewise.
5770
5771 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
5772         
5773         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
5774         instead of size_int for integer types.
5775         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
5776         to match type of MINUS_EXPR.
5777         
5778 2008-03-25  Tom Tromey  <tromey@redhat.com>
5779
5780         * configure: Rebuilt.
5781         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
5782         Makefile.
5783
5784 2008-03-25  Tom Tromey  <tromey@redhat.com>
5785
5786         * config/x-solaris (host-solaris.o): Update.
5787         * config/x-linux (host-linux.o): Update.
5788         * config/x-hpux (host-hpux.o): Update.
5789         * config/x-darwin (host-darwin.o): Update.
5790         * config/v850/t-v850e (v850-c.o): Update.
5791         * config/v850/t-v850 (v850-c.o): Update.
5792         * config/t-vxworks (vxworks.o): Update.
5793         * config/t-sol2 (sol2-c.o, sol2.o): Update.
5794         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
5795         * config/spu/t-spu-elf (spu-c.o): Update.
5796         (spu.o): Remove.
5797         * config/sh/t-symbian (sh-c.o): Update.
5798         (symbian.o): Update.
5799         * config/sh/t-sh (sh-c.o): Update.
5800         * config/score/t-score-elf (score7.o, score3.o): Update.
5801         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
5802         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
5803         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
5804         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
5805         (rs6000.o): Remove.
5806         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5807         * config/m32c/t-m32c (m32c-pragma.o): Update.
5808         * config/ia64/t-ia64 (ia64-c.o): Update.
5809         * config/i386/x-mingw32 (host-mingw32.o): Update.
5810         * config/i386/x-i386 (driver-i386.o): Update.
5811         * config/i386/x-darwin (host-i386-darwin.o): Update.
5812         * config/i386/x-cygwin (host-cygwin.o): Update.
5813         * config/i386/t-nwld (nwld.o): Update.
5814         * config/i386/t-netware (netware.o): Update.
5815         * config/i386/t-interix (winnt.o): Update.
5816         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
5817         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
5818         msformat-c.o): Update.
5819         * config/bfin/t-bfin-linux (generated_files): Add
5820         linux-sysroot-suffix.h.
5821         * config/arm/t-wince-pe (pe.o): Update.
5822         * config/arm/t-strongarm-pe (pe.o): Update.
5823         * config/arm/t-pe (pe.o): Update.
5824         * config/arm/t-arm (arm-c.o): Update.
5825         * doc/install.texi (Prerequisites): Require make 3.80.
5826         * Makefile.in: Remove .o targets.
5827         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
5828         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
5829         (simple_generated_h, simple_generated_c): Move earlier.
5830         (generated_files): New variable.
5831         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
5832         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
5833         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
5834         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
5835         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
5836         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
5837         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
5838         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
5839         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
5840         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
5841         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
5842         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
5843         (.c.o): Remove.
5844         (COMPILE.base, COMPILE): New variables.
5845         (%.o): New pattern rule.
5846         (ALL_HOST_OBJS): New variable.
5847         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
5848         (dummy-checksum.o, cc1-checksum.o): Remove.
5849         (DRIVER_SHLIB): New variable.
5850         (DRIVER_DEFINES): Use it.
5851         (gencondmd.c): Move out of build/.
5852         (s-conditions): Update.
5853         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
5854         (ALL_BUILD_OBJS): Likewise.
5855         (build/%.o): Use BUILDCOMPILE.
5856         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
5857         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
5858         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
5859         build/gencheck.o, build/gencodes.o, build/genconditions.o,
5860         build/genconfig.o, build/genconstants.o, build/genemit.o,
5861         build/genextract.o, build/genflags.o, build/genmddeps.o,
5862         build/genopinit.o, build/genoutput.o, build/genpeep.o,
5863         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
5864         build/gen-protos.o, build/scan.o, build/fix-header.o,
5865         build/scan-decls.o): Simplify.
5866         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
5867         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
5868         prefix.o, toplev.o): Reduce to variable setting.
5869         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
5870         ($(out_object_file), gcc-options.o): New targets.
5871         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
5872         * configure: Rebuilt.
5873         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
5874         * doc/sourcebuild.texi (Front End Directory): Document new variable.
5875
5876 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
5877
5878         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
5879         complain when we hit an error, return ERROR_MARK_NODE.
5880
5881 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
5882
5883         * config/sh/constraints.md (Pso, Psz): New constraints.
5884         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
5885         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
5886
5887 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
5888
5889         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
5890         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
5891
5892 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
5893
5894         * config/sh/sh.md (prefetch): Add condition for SH2A target.
5895         (prefetch_sh2a): New.   
5896
5897 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
5898             Naveen.H.S  <naveen.hs@kpitcummins.com>
5899
5900         * config/sh/constraints.md (I28): New constraint.
5901         * config/sh/sh.c (broken_move): Add support for movi20s.
5902         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
5903
5904 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
5905             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
5906             Naveen.H.S  <naveen.hs@kpitcummins.com>
5907
5908         * config/sh/sh.c (SH_ATTRIBUTES): Define.
5909         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
5910         (print_operand): Handle resbank in %@ operand code.
5911         (sh_encode_section_info): New.
5912         (push_regs): Add conditions for resbank.
5913         (sh_expand_epilogue): Likewise.
5914         (sh_insert_attributes): Likewise.
5915         (sh_attribute_table): Likewise.
5916         (sh_handle_resbank_handler_attribute): New.
5917         (sh2a_handle_function_vector_handler_attribute): New.
5918         (sh2a_is_function_vector_call): New.
5919         (sh2a_get_function_vector_number): New.
5920         (sh2a_function_vector_p): New.
5921         (sh_cfun_resbank_handler_p): New.
5922         * config/sh/sh.md (calli): Emit jsr/n if possible.
5923         (calli_tbr_rel): New.
5924         (calli_pcrel): Emit jsr/n if possible.
5925         (return_i): Emit rts/n if possible.
5926         (call_valuei_tbr_rel): New.
5927         (call_valuei_pcrel): Add condition for SH2A target.
5928         (call_value): Likewise.
5929         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
5930         (sh2a_get_function_vector_number): Likewise.
5931         (sh2a_is_function_vector_call): Likewise.
5932         * doc/extend.texi: Document TBR relative addressing of SH2A.
5933         (resbank): Add description for SH2A.
5934
5935 2008-03-24  Richard Guenther  <rguenther@suse.de>
5936
5937         PR c/22371
5938         * gimplify.c (gimplify_modify_expr): For frontend type-correct
5939         pointer assignments change conversions according to middle-end rules.
5940         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
5941         * configure.ac: Include type checking in yes.
5942         * configure: Regenerate.
5943
5944 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5945
5946         * diagnostic.c (diagnostic_count_diagnostic): Delete.
5947         (diagnostic_report_diagnostic): Update. Handle ICEs here.
5948         
5949 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
5950
5951         * gthr-vxworks.h (UNUSED): Define.
5952
5953 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
5954
5955         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
5956
5957 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
5958
5959         * doc/extend.texi (Function Attributes): Add missing comma in the
5960         example of the "alloc_size" attribute.
5961         
5962 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
5963
5964         Revert:
5965         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
5966
5967         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
5968         32bit host.
5969
5970         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
5971
5972         PR target/35496
5973         * stor-layout.c (update_alignment_for_field): Set minimum alignment
5974         of the underlying type of a MS bitfield layout to the natural
5975         alignment of the type.
5976
5977         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
5978
5979         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
5980         to their natural alignment to avoid store forwarding stalls.
5981
5982 2008-03-22  Richard Guenther  <rguenther@suse.de>
5983
5984         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
5985         For PHI nodes verify the address is invariant.
5986         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
5987         (get_symbol_constant_value): Use is_gimple_min_invariant.
5988         (maybe_fold_stmt_indirect): Likewise.
5989
5990 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
5991
5992         PR rtl-optimization/33927
5993         * Makefile.in (dse.o): Depend on $(TM_P_H).
5994         * expr.h (extract_low_bits): Declare.
5995         * expmed.c (extract_low_bits): New function.
5996         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
5997         * dse.c: Include tm_p.h.
5998         (find_shift_sequence): Remove the read_reg argument and return the
5999         read value.  Emit the instructions instead of returning them.
6000         Iterate on new_mode rather than calculating it each time.
6001         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6002         source to NEW_MODE and extract_low_bits to convert the shifted
6003         value to READ_MODE.
6004         (replace_read): Allow the load and store to have different mode
6005         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6006         or extraction instructions before trying the replacement.  Update
6007         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6008
6009 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6010
6011         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6012         to their natural alignment to avoid store forwarding stalls.
6013
6014 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6015
6016         PR target/27946
6017         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6018         encouraging but not allowing gprs for input;
6019         change the input constraint to !f#r.
6020         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6021         gprs for output;
6022         change the output constraint to !f#r.
6023
6024 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6025
6026         PR target/13958
6027         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6028         corresponding post-reload splitters.
6029         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6030         when x87 FP math is selected.
6031         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6032         New function prototype.
6033         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6034         unreachable function to ease macroization of insn patterns.
6035
6036 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6037
6038         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6039         reference dumps if ddr is NULL or dependence is unknown.
6040
6041 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6042
6043         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6044         unsigned extension into account.
6045         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6046         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6047         Do computations on a scratch register.
6048
6049 2008-03-21  Richard Guenther  <rguenther@suse.de>
6050
6051         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6052         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6053         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6054         * tree-ssa-dom.c (record_equality): Likewise.
6055         * tree-inline.c (copy_body_r): Likewise.
6056         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6057         TREE_INVARIANT.
6058
6059 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6060
6061         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6062         as 'delete_unused' argument.
6063
6064 2008-03-20  Richard Guenther  <rguenther@suse.de>
6065
6066         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6067         special casing of constant qualifiers.
6068         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6069         care about them in general.
6070         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6071         regardless of their type.
6072         (fold_stmt_r): Forcefully fold *& if we end up with that.
6073
6074 2008-03-20  Paul Brook  <paul@codesourcery.com>
6075
6076         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6077         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6078         linker flags.
6079         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6080         definition.
6081         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6082         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6083
6084 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6085
6086         * common.opt (Wmudflap): New option.
6087         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6088         (mx_register_decls): Likewise.
6089         (mudflap_finish_file): Likewise.
6090         * doc/invoke.texi: Document -Wno-mudflap.
6091
6092 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6093
6094         * c-format.c (replace_format_name_to_system_name): New.
6095         (cmp_attribs): New.
6096         (convert_format_name_to_system_name): New.
6097         (decode_format_attr): Add use of convert_format_name_to_system_name.
6098         (format_types_orig): Add gnu_ prefix to names.
6099         (check_format_info_main): Special treating of \0 escaped names for
6100         supporting multi-character format specifiers as I32, I64.
6101         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6102         (gnu_target_overrides_format_attributes): New.
6103         * c-format.h: Add structure target_ovr_attr to hold
6104         system specific formatter names.
6105         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6106         msformat-c.o file to c_target_objs and cxx_target_objs.
6107         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6108         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6109         (TARGET_N_FORMAT_TYPES): New.
6110         * config/i386/msformat-c.c: New.
6111         * config/i386/t-cygming: Add build rule for msformat-c.o.
6112         * doc/extend.texi: Add new format names gnu_* and ms_* and
6113         further details.
6114         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6115
6116 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6117
6118         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6119         optimizations turned on under -O3.
6120         (ftree-vectorize): Add that the flag is turned on with -O3.
6121
6122 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6123
6124         * regmove.c (try_auto_increment): Fix spelling error in comment.
6125         * final.c (final_scan_insn): Likewise.
6126
6127 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6128
6129         PR target/14552
6130         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6131         allocator preferences for "y" and "r" class registers.
6132         ("*mov<mode>_internal"): Ditto.
6133         ("*movv2sf_internal_rex64"): Ditto.
6134         ("*movv2sf_internal"): Ditto.
6135
6136 2008-03-19  Michael Matz  <matz@suse.de>
6137
6138         PR middle-end/35616
6139         * calls.c (expand_call): Check overlap of arguments with call
6140         address for sibcalls.
6141
6142 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6143
6144         PR target/35496
6145         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6146         of the underlying type of a MS bitfield layout to the natural
6147         alignment of the type.
6148
6149 2008-03-19  Jan Hubicka  <jh@suse.cz>
6150
6151         PR other/35094
6152         * toplev.c (decode_d_option): Handle all CPP flags.
6153         * tree-vrp.c: Update tree_pass descriptors.
6154         * regrename.c: Update tree_pass descriptors.
6155         * fwprop.c: Update tree_pass descriptors.
6156         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6157         * tree-into-ssa.c: Update tree_pass descriptors.
6158         * tree-dump.c: Update tree_pass descriptors.
6159         * tree-complex.c: Update tree_pass descriptors.
6160         * tree-dump.h: Update tree_pass descriptors.
6161         * see.c: Update tree_pass descriptors.
6162         * cgraphbuild.c: Update tree_pass descriptors.
6163         * tracer.c: Update tree_pass descriptors.
6164         * tree-loop-distribution.c: Update tree_pass descriptors.
6165         * cgraph.c: Update tree_pass descriptors.
6166         * postreload-gcse.c: Update tree_pass descriptors.
6167         * postreload.c: Update tree_pass descriptors.
6168         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6169         * tree-tailcall.c: Update tree_pass descriptors.
6170         * tree-pass.h (tree_opt_pass): Rename to ...
6171         (opt_pass) ... this one; add "type" field and remove letter field.
6172         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6173         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6174         all_lowering_passes): Update declaration.
6175         * ipa-cp.c: Update tree_pass descriptors.
6176         * final.c: Update tree_pass descriptors.
6177         * omp-low.c: Update tree_pass descriptors.
6178         * tree-ssa-dse.c: Update tree_pass descriptors.
6179         * ipa-reference.c: Update tree_pass descriptors.
6180         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6181         * auto-inc-dec.c: Update tree_pass descriptors.
6182         * reorg.c: Update tree_pass descriptors.
6183         * cgraphunit.c: Update tree_pass descriptors.
6184         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6185         * tree-ssa-ccp.c: Update tree_pass descriptors.
6186         * df-core.c: Update tree_pass descriptors.
6187         * mode-switching.c: Update tree_pass descriptors.
6188         * tree-nomudflap.c: Update tree_pass descriptors.
6189         * modulo-sched.c: Update tree_pass descriptors.
6190         * ipa-pure-const.c: Update tree_pass descriptors.
6191         * cse.c: Update tree_pass descriptors.
6192         * web.c: Update tree_pass descriptors.
6193         * tree-stdarg.c: Update tree_pass descriptors.
6194         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6195         * tree-ssa-dom.c: Update tree_pass descriptors.
6196         * tree-nrv.c: Update tree_pass descriptors.
6197         * tree-ssa-alias.c: Update tree_pass descriptors.
6198         * loop-init.c: Update tree_pass descriptors.
6199         * gimple-low.c: Update tree_pass descriptors.
6200         * ipa-inline.c: Update tree_pass descriptors.
6201         * tree-ssa-sink.c: Update tree_pass descriptors.
6202         * global.c: Update tree_pass descriptors.
6203         * ifcvt.c: Update tree_pass descriptors.
6204         * jump.c: Update tree_pass descriptors.
6205         * predict.c: Update tree_pass descriptors.
6206         * tree-ssa-loop.c: Update tree_pass descriptors.
6207         * recog.c: Update tree_pass descriptors.
6208         * dse.c: Update tree_pass descriptors.
6209         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6210         * tree-eh.c: Update tree_pass descriptors.
6211         * regmove.c: Update tree_pass descriptors.
6212         * local-alloc.c
6213         * function.c: Update tree_pass descriptors.
6214         * tree-vectorizer.c: Update tree_pass descriptors.
6215         * gcse.c: Update tree_pass descriptors.
6216         * ipa-type-escape.c: Update tree_pass descriptors.
6217         * tree-if-conv.c: Update tree_pass descriptors.
6218         * init-regs.c: Update tree_pass descriptors.
6219         * ipa.c: Update tree_pass descriptors.
6220         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6221         * rtl-factoring.c: Update tree_pass descriptors.
6222         * lower-subreg.c: Update tree_pass descriptors.
6223         * bt-load.c: Update tree_pass descriptors.
6224         * tree-dfa.c: Update tree_pass descriptors.
6225         * except.c: Update tree_pass descriptors.
6226         * emit-rtl.c: Update tree_pass descriptors.
6227         * cfgexpand.c: Update tree_pass descriptors.
6228         * tree-cfgcleanup.c: Update tree_pass descriptors.
6229         * cfgcleanup.c: Update tree_pass descriptors.
6230         * tree-ssa-pre.c: Update tree_pass descriptors.
6231         * tree-sra.c: Update tree_pass descriptors.
6232         * tree-mudflap.c: Update tree_pass descriptors.
6233         * tree-ssa-copy.c: Update tree_pass descriptors.
6234         * cfglayout.c: Update tree_pass descriptors.
6235         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6236         * tree-ssa-dce.c: Update tree_pass descriptors.
6237         * tree-ssa.c: Update tree_pass descriptors.
6238         * regclass.c: Update tree_pass descriptors.
6239         * integrate.c: Update tree_pass descriptors.
6240         * tree-optimize.c: Update tree_pass descriptors.
6241         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6242         * tree-object-size.c: Update tree_pass descriptors.
6243         * combine.c: Update tree_pass descriptors.
6244         * tree-outof-ssa.c: Update tree_pass descriptors.
6245         * bb-reorder.c: Update tree_pass descriptors.
6246         * stack-ptr-mod.c: Update tree_pass descriptors.
6247         * var-tracking.c: Update tree_pass descriptors.
6248         * tree-profile.c: Update tree_pass descriptors.
6249         * tree-vect-generic.c: Update tree_pass descriptors.
6250         * reg-stack.c: Update tree_pass descriptors.
6251         * sched-rgn.c: Update tree_pass descriptors.
6252         * tree-ssa-structalias.c: Update tree_pass descriptors.
6253         * tree-cfg.c: Update tree_pass descriptors.
6254         * passes.c (current_pass): Update declaration.
6255         (finish_optimization_passes): Update.
6256         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6257         (register_one_dump_file, register_dump_files_1, next_pass_1):
6258         Update arguments.
6259         (init_optimization_passes): Update handling of new types.
6260         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6261         * ipa-struct-reorg.c: Update tree_pass descriptors.
6262         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6263         * combine-stack-adj.c: Update tree_pass descriptors.
6264         * cfgrtl.c: Update tree_pass descriptors.
6265         * dce.c: Update tree_pass descriptors.
6266         * tree-ssanames.c: Update tree_pass descriptors.
6267
6268 2008-03-19  Richard Guenther  <rguenther@suse.de>
6269
6270         PR middle-end/35609
6271         * tree-ssa.c (walk_data): New structure.
6272         (warn_uninitialized_var): If not always_executed warn with "maybe"
6273         instead of "is".
6274         (execute_early_warn_uninitialized): Compute post-dominators.
6275         Initialize always_executed before processing each basic block.
6276
6277 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6278
6279         PR target/35504
6280         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6281         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6282
6283 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6284
6285         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6286
6287 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6288
6289         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6290         is true.
6291         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6292         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6293         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6294         target after ignore has been set, and move there also the commputation
6295         of subtarget and original_target.
6296         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6297         (LANG_HOOKS_INITIALIZER): Remove it.
6298         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6299
6300 2008-03-18  Richard Guenther  <rguenther@suse.de>
6301
6302         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6303         found an expression with constants, note that in the VN for the lhs.
6304         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6305         fold them to constants if possible.  Run cleanup_cfg if done so.
6306         (execute_pre): Return todo.
6307         (do_pre): Likewise.
6308         (execute_fre): Likewise.
6309         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6310         of constants.
6311         (get_prop_source_stmt): Look through pointer conversions.
6312
6313 2008-03-18  Jan Hubicka  <jh@suse.cz>
6314
6315         * tree-pretty-print.c: Include predict.h.
6316         (dump_generic_node): Dump predictor.
6317         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6318         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6319         * gimple-low.c (lower_stmt): Likewise.
6320         * expr.c (expand_expr_real): Likewise.
6321         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6322         them.
6323         (build_predict_expr, build_predict_expr): New.
6324         * predict.h (predictor_name, build_predict_expr): Update.
6325         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6326         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6327         * predict.def (PRED_CONTINUE): Update hitrate.
6328         * tree.def (PREDICT_EXPR): Define.
6329         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6330         do not handle BIND_EXPR.
6331         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6332         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6333         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6334         operands.
6335
6336 2008-03-18  Michael Matz  <matz@suse.de>
6337
6338         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6339
6340 2008-03-18  Richard Guenther  <rguenther@suse.de>
6341
6342         * tree-gimple.h (is_gimple_invariant_address): Declare.
6343         (is_gimple_constant): Likewise.
6344         * tree-gimple.c (is_gimple_constant): New function.
6345         (is_gimple_invariant_address): Likewise.
6346         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6347         and is_gimple_invariant_address.
6348         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6349         previous change.
6350         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6351         an addressable base.
6352
6353 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6354
6355         PR middle-end/35611
6356         * gimplify.c (gimplify_expr): Gimplify second operand of
6357         OMP_ATOMIC_LOAD.
6358
6359 2008-03-17  Richard Guenther  <rguenther@suse.de>
6360
6361         PR tree-optimization/19637
6362         * fold-const.c (fold_unary): Remove restrictions of removing
6363         intermediate pointer-conversions (P2)(P1)P0.
6364         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6365         conversion to void pointer.
6366         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6367
6368 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6369
6370         PR debug/31510
6371         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6372         emulated thread local variables.
6373
6374 2008-03-16  Richard Guenther  <rguenther@suse.de>
6375
6376         PR middle-end/35607
6377         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6378         expand TREE_INVARIANT operations that are not gimple invariant.
6379
6380 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6381
6382         * doc/extend.texi (Alignment): Say that the ABI controls
6383         the __alignof__ for non-strict-alignment targets rather
6384         than being a recommendation.
6385
6386 2008-03-15  Paul Brook  <paul@codesourcery.com>
6387
6388         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6389         annotations.
6390         (arm_output_fn_unwind): Mark functions that can not be unwound.
6391
6392 2008-03-15  Paul Brook  <paul@codesourcery.com>
6393
6394         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6395         extension instructions.
6396
6397 2008-03-15  Richard Guenther  <rguenther@suse.de>
6398
6399         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6400         and fold constant aggregate refs.
6401         (fold_const_aggregate_ref): Handle string constants
6402         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6403         (evaluate_stmt): Simplify now that ccp_fold folds constant
6404         aggregate refs.
6405
6406 2008-03-15  Paul Brook  <paul@codesourcery.com>
6407
6408         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6409         (extzv): Use gen_extzv_t2.
6410         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6411
6412 2008-03-15  Richard Guenther  <rguenther@suse.de>
6413
6414         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6415         (fold_const_aggregate_ref): Likewise.
6416         (get_value): Return NULL if we don't have any values.
6417         (ccp_finalize): Set const_val to NULL after freeing it.
6418         * tree-flow.h (get_symbol_constant_value): Declare.
6419         (fold_const_aggregate_ref): Likewise.
6420         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6421
6422 2008-03-15  Richard Guenther  <rguenther@suse.de>
6423
6424         PR middle-end/35593
6425         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6426         to not produce negative array indices if not allowed.  Add
6427         parameter to indicate that.
6428         (maybe_fold_offset_to_component_ref): Allow negative array
6429         indices only for the first member of a structure.
6430         (maybe_fold_offset_to_reference): Allow negative array indices.
6431         (maybe_fold_stmt_addition): Likewise.
6432
6433 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6434             Anatoly Sokolov <aesok@post.ru>
6435
6436         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6437         (avr_arch): Add ARCH_AVR6.
6438         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6439         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6440         instead of fixed value 2.
6441         (print_operand_address): Use gs() asm specifier instead of pm().
6442         (avr_assemble_integer): (Ditto.).
6443         (avr_output_addr_vec_elt): (Ditto.).
6444         (print_operand): Handle "!" code.
6445         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6446         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6447         (AVR_HAVE_EIJMP_EICALL): Define.
6448         (AVR_3_BYTE_PC): Redefine.
6449         (AVR_2_BYTE_PC): (Ditto.).
6450         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6451         (LINK_SPEC): Add atmega2560 and atmega2561.
6452         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6453         (crtm2561.o).
6454         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6455         for 3 byte PC devices.
6456         (call_value_insn): (Ditto.).
6457         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6458         (indirect_jump): Use only for for 2 byte PC devices.
6459         (*tablejump): (Ditto.).
6460         (*indirect_jump_avr6): Add insn.
6461         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6462         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6463         instead of ijmp for 3 byte PC devices.
6464         (__tablejump2__): (Ditto.).
6465         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6466         (MULITLIB_DIRNAMES): (Ditto.). 
6467         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6468
6469 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6470
6471         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6472         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6473         ("mmx_psadbw"): Use V1DI mode for operand 0.
6474         * config/i386/i386-modes.def (V1SI): New vector mode.
6475         * config/i386/i386.c (struct builtin_description)
6476         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6477         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6478         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6479         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6480         v1di_ftype_v8qi_v8qi type.
6481         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6482
6483         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6484         __builtin_ia32_pmuludq]: Fix the mode of return value.
6485
6486 2008-03-15  Richard Guenther  <rguenther@suse.de>
6487
6488         PR middle-end/35595
6489         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6490         being a PHI_NODE.
6491
6492 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6493         
6494         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6495         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6496         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6497         unless TARGET_SERIALIZE_VOLATILE is enabled.
6498         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6499         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6500         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6501
6502 2008-03-14  Richard Guenther  <rguenther@suse.de>
6503
6504         PR tree-optimization/34172
6505         * tree-flow.h (refs_may_alias_p): Declare.
6506         (get_single_def_stmt): Likewise.
6507         (get_single_def_stmt_from_phi): Likewise.
6508         (get_single_def_stmt_with_phi): Likewise.
6509         * tree-dfa.c (refs_may_alias_p): New function.
6510         (get_single_def_stmt): Likewise.
6511         (get_single_def_stmt_from_phi): Likewise.
6512         (get_single_def_stmt_with_phi): Likewise.
6513         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6514         (vn_reference_lookup_1): New helper function.
6515         (vn_reference_lookup): Walk the virtual use-def chain to
6516         continue searching for a match if the def does not alias the
6517         reference we are looking for.
6518
6519 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6520
6521         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6522         archive and Perzl.  Update The Written Word listing.
6523
6524 2008-03-14  Richard Guenther  <rguenther@suse.de>
6525
6526         PR tree-optimization/34043
6527         PR tree-optimization/33989
6528         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6529         when doing FRE.
6530         (bitmap_find_leader): Use extra argument to verify dominance
6531         relationship inside a basic-block.
6532         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6533         (find_leader_in_sets): Adjust.
6534         (create_component_ref_by_pieces): Take extra argument for
6535         dominance check, handle lookup failures.
6536         (find_or_generate_expression): Likewise.
6537         (create_expression_by_pieces): Likewise.
6538         (insert_into_preds_of_block): Adjust.
6539         (create_value_expr_from): If asked for, verify all operands
6540         are in the blocks AVAIL_OUT set.
6541         (make_values_for_stmt): Check for SSA_NAMEs that are life
6542         over an abnormal edge.
6543         (compute_avail): Remove such check.
6544         (do_SCCVN_insertion): New function.
6545         (eliminate): If we do not find a leader suitable for replacement
6546         insert a replacement expression from SCCVN if available.
6547         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6548         (struct vn_ssa_aux): Add needs_insertion flag.
6549         * tree-ssa-sccvn.c (may_insert): New global flag.
6550         (copy_reference_ops_from_ref): Value-number union member access
6551         based on its size, not type and member if insertion is allowed.
6552         (visit_reference_op_load): For a weak match from union type
6553         punning lookup a view-converted value and insert a SSA_NAME
6554         for that value if that is not found.
6555         (visit_use): Make dumps shorter.  Do not disallow value numbering
6556         SSA_NAMEs that are life over an abnormal edge to constants.
6557         (free_scc_vn): Release inserted SSA_NAMEs.
6558         (run_scc_vn): New flag to specify whether insertion is allowed.
6559         Process SSA_NAMEs in forward order.
6560         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6561         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6562         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6563         pointer type to/from integral types that do not change the
6564         precision to regular conversions.
6565
6566 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6567
6568         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6569         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6570         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6571         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6572         input arguments and the mode of return value.  Built-in functions
6573         that operate on whole 64-bit MMX register now use V1DI mode.
6574
6575 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6576             Olga Golovanevsky  <olga@il.ibm.com>
6577
6578         PR tree-optimization/35041
6579         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6580         to locate the right position in a statement.
6581
6582 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6583
6584         PR target/34000
6585         PR target/35553
6586         * config/i386/xmmintrin.h:  Change all static inline functions to
6587         extern inline and add __gnu_inline__ attribute.
6588         * config/i386/bmintrin.h: Ditto.
6589         * config/i386/smmintrin.h: Ditto.
6590         * config/i386/tmmintrin.h: Ditto.
6591         * config/i386/mmintrin-common.h: Ditto.
6592         * config/i386/ammintrin.h: Ditto.
6593         * config/i386/emmintrin.h: Ditto.
6594         * config/i386/pmmintrin.h: Ditto.
6595         * config/i386/mmintrin.h: Ditto.
6596         * config/i386/mm3dnow.h: Ditto.
6597
6598 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6599
6600         PR middle-end/35185
6601         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6602         (lower_omp_2): New function.
6603         (lower_omp_1, lower_omp): Rewritten.
6604
6605 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6606
6607         PR 35054
6608         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6609         with the phrase "Microsoft Windows compilers".
6610         (Push/Pop Macro Pragmas): New subsection. Document
6611         #pragma push_macro and pragma pop_macro.
6612
6613 2008-03-12  Paul Brook  <paul@codesourcery.com>
6614
6615         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6616
6617 2008-03-12  Paul Brook  <paul@codesourcery.com>
6618
6619         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6620         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6621         (thumb2_addsi_shortim): Rename ...
6622         (thumb2_addsi_short): ... to this.  Allow register operands.
6623         (thumb2_subsi_short): New pattern.
6624         (thumb2_one_cmplsi2_short,
6625         thumb2_negsi2_short): New patterns and peepholes.
6626
6627 2008-03-12  Paul Brook  <paul@codesourcery.com>
6628
6629         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6630
6631 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6632
6633         * config/i386/i386.md (int_cond): New code iterator.
6634         (fp_cond): Ditto.
6635         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6636         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6637         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6638         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6639         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6640         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6641         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6642         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6643
6644 2008-03-12  Paul Brook  <paul@codesourcery.com>
6645
6646         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6647         instead of {arm,thumb}_compute_save_reg_mask.
6648         (output_return_instruction): Ditto.
6649         (thumb_unexpanded_epilogue): Ditto.
6650         (thumb1_expand_prologue): Ditto.
6651         (thumb1_output_function_prologue): Ditto.
6652         (arm_set_return_address): Ditto.
6653         (thumb_set_return_address): Ditto.
6654         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6655         regs to achieve stack alignment.
6656         (thumb1_compute_save_reg_mask): Fix compiler warning.
6657         (arm_output_epilogue): Use offsets->saved_regs_mask.
6658         Adjust stack pointer by poping call clobered registers.
6659         (arm_expand_prologue): Use offsets->saved_regs_mask.
6660         Adjust stack pointer by pushing extra registers.
6661         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6662
6663 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6664
6665         PR tree-opt/35422
6666         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6667         conversion to the operands of a multiplication.
6668
6669 2008-03-12  Richard Guenther  <rguenther@suse.de>
6670
6671         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6672         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6673         * timevar.def (TV_TREE_PHIPROP): Add.
6674         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6675         pass description.  Use TV_TREE_PHIPROP.
6676         * tree-ssa-forwprop.c: Remove phiprop code.
6677
6678 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6679
6680         PR middle-end/35549
6681         * omp-low.c (maybe_lookup_decl): Constify first argument.
6682         (use_pointer_for_field): Change last argument from bool to
6683         omp_context *.  Disallow shared copy-in/out in nested
6684         parallel if decl is shared in outer parallel too.
6685         (build_outer_var_ref, scan_sharing_clauses,
6686         lower_rec_input_clauses, lower_copyprivate_clauses,
6687         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6688
6689 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6690             Ira Rosen  <irar@il.ibm.com>
6691
6692         * tree-vectorizer.c (free_stmt_vec_info): New function.
6693         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6694         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6695         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6696         * tree-vect-transform.c (vectorizable_conversion): Free
6697         vec_oprnds0 if it was allocated.
6698         (vect_permute_store_chain): Remove unused VECs.
6699         (vectorizable_store): Free VECs that are allocated in the..
6700         function.
6701         (vect_transform_strided_load, vectorizable_load): Likewise.
6702         (vect_remove_stores): Simplify the code.
6703         (vect_transform_loop): Move code to vect_remove_stores().
6704         Call vect_remove_stores() and free_stmt_vec_info().
6705
6706 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6707
6708         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6709         TARGET_HPUX.  Revise comment.
6710         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6711         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6712         Use sr4 variant of `be' instruction when not generating PIC code.
6713         (attr_length_call): Adjust for above change.
6714
6715 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6716
6717         * ipa-reference.c (static_execute): Remove module_statics_const and
6718         associated setting code.
6719
6720 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6721
6722         PR target/35540
6723         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
6724         predicate for operand 1.
6725         (paritysi2_cmp): Use register_operand predicate for operand 2.
6726         Use earlyclobber modifier for operand 1.  Remove support for
6727         memory operands.
6728         (paritydi2_cmp): Use register_operand predicate for operand 3.
6729         Use earlyclobber modifier for operand 1.  Remove support for
6730         memory operands.
6731
6732 2008-03-11  Paul Brook  <paul@codesourcery.com>
6733             Vladimir Prus  <vladimir@codesourcery.com>
6734
6735         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
6736         (arm_compute_save_reg0_reg12_mask): Always
6737         check if register 11 must be saved.  Always safe hard frame pointer
6738         when frame_pointer_needeed.
6739         (arm_compute_save_reg_mask): Save IP and PC
6740         only with apcs frames.
6741         (arm_output_epilogue): Adjust Thumb2 codepath to
6742         be also invoked and work for ARM non-apcs frames.
6743         (arm_expand_prologue): Don't bother saving IP
6744         for non-apcs frame, since it's not clobbered by
6745         prologue code.  Implement non-apcs frame
6746         layout.
6747
6748 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6749
6750         PR rtl-optimization/35281
6751         * expr.c (convert_move): Use a new pseudo for the intermediate
6752         from_mode->word_mode result.
6753
6754 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6755
6756         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
6757         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
6758         * toplev.c (compile_file): Don't call it.
6759
6760 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6761
6762         PR middle-end/35526
6763         * expr.c (store_expr): Call emit_block_move if the mode
6764         of "temp" RTX is BLKmode.
6765
6766 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6767             Richard Guenther  <rguenther@suse.de>
6768
6769         PR tree-optimization/31358
6770         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
6771         the step with a NULL_TREE.
6772         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
6773         to sizetype if type is a pointer type.
6774         (add_candidate_1): Don't convert the base and step to
6775         the generic type if the orginal type is a pointer type.
6776         (add_iv_value_candidates): Use sizetype for the step
6777         if type is a pointer type.
6778         (cand_value_at): Likewise.
6779         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
6780         for pointer types.
6781         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
6782         Don't convert the tem affine to the type.
6783         (add_elt_to_tree): Use sizetype for the step if a pointer.
6784         Use POINTER_PLUS_EXPR for pointers.
6785         (aff_combination_to_tree): Use sizetype for the step if a
6786         pointer.
6787
6788 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
6789
6790         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
6791         Remove commutativity hint.
6792
6793 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
6794
6795         PR c/35438
6796         PR c/35439
6797         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
6798         errorneous type.  Check that v is a VAR_DECL.
6799
6800         PR middle-end/35099
6801         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
6802
6803 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
6804
6805         PR tree-optimization/35494
6806         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
6807         may be overriden at link and run time.
6808
6809 2008-03-10  Richard Guenther  <rguenther@suse.de>
6810
6811         PR tree-optimization/34677
6812         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
6813         (poolify_tree): Likewise.
6814         (modify_expr_template): Likewise.
6815         (poolify_modify_stmt): Likewise.
6816         (insert_fake_stores): Handle all component-ref style stores
6817         in addition to INDIRECT_REF.  Also handle complex types.
6818         Do not poolify the inserted load.
6819         (realify_fake_stores): Do not rebuild the tree but only
6820         make it a SSA_NAME copy.
6821         (init_pre): Remove initialzation of modify_expr_template.
6822         Do not allocate modify_expr_node_pool.
6823         (fini_pre): Do not free modify_expr_node_pool.
6824
6825 2008-03-10  Paul Brook  <paul@codesourcery.com>
6826
6827         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
6828         to avoid conflicts.
6829
6830 2008-03-10  Paul Brook  <paul@codesourcery.com>
6831             Mark Shinwell  <shinwell@codesourcery.com>
6832
6833         * config/arm/cortex-r4.md: New.
6834         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
6835         insn attributes.
6836         * config/arm/arm.md: Include cortex-r4.md.
6837         (insn): Add smmls, sdiv and udiv values.
6838         (generic_sched): Don't use generic scheduling for Cortex-R4.
6839         (arm_issue_rate): New function.
6840         (TARGET_SCHED_ISSUE_RATE): Define.
6841
6842 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
6843
6844         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
6845
6846 2008-03-10  Richard Guenther  <rguenther@suse.de>
6847
6848         * tree-ssa-pre.c (get_sccvn_value): Simplify.
6849         (compute_avail): Do not add stmt uses to AVAIL_OUT.
6850
6851 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
6852
6853         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
6854         Set default to true.
6855
6856 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6857
6858         * c.opt (Wsynth): Deprecate.
6859         * doc/invoke.texi (Option Summary, Warning Options): Document
6860         -Wno-format-contains-nul.
6861
6862 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
6863
6864         PR target/35496
6865         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
6866         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
6867
6868 2008-03-09  Ira Rosen  <irar@il.ibm.com>
6869
6870         * config/rs6000/rs6000.c (builtin_description): Rename vector
6871         left shift operations.
6872         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
6873         (altivec_vsl<VI_char>): Rename to ...
6874         (ashl<mode>3): ... new name.
6875         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
6876         gen_ashlv4si3.
6877         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
6878
6879 2008-03-08  Richard Guenther  <rguenther@suse.de>
6880
6881         * coverage.h (tree_coverage_counter_addr): Declare.
6882         * coverage.c (tree_coverage_counter_addr): New function.
6883         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
6884         before using again.
6885         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
6886         (tree_gen_one_value_profiler): Likewise.
6887         (tree_gen_ic_profiler): Likewise.
6888         (tree_gen_average_profiler): Likewise.
6889         (tree_gen_ior_profiler): Likewise.
6890
6891 2008-03-08  Richard Guenther  <rguenther@suse.de>
6892
6893         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
6894         (vn_binary_op_insert): Likewise.
6895         (vn_unary_op_lookup): Likewise.
6896         (vn_unary_op_insert): Likewise.
6897         (vn_nary_op_lookup): Declare.
6898         (vn_nary_op_insert): Likewise.
6899         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
6900         and binary hashes, use a single obstack for unary_op_pool
6901         and binary_op_pool.
6902         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
6903         a single struct vn_nary_op_s.  Store tree code length and
6904         a variable number of operands.
6905         (struct vn_reference_op_struct): Remove unused op2.
6906         (vn_reference_op_eq): Do not compare op2.
6907         (vn_reference_op_compute_hash): Do not compute hash of op2.
6908         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
6909         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
6910         with vn_nary_op_compute_hash.
6911         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
6912         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
6913         vn_nary_op_lookup.
6914         (vn_unary_op_insert, vn_binary_op_insert): Replace with
6915         vn_nary_op_insert.
6916         (visit_unary_op): Call nary functions.
6917         (visit_binary_op): Likewise.
6918         (process_scc): Adjust for struct vn_tables_s changes.
6919         (allocate_vn_table): Likewise.
6920         (free_vn_table): Likewise.
6921         * tree-vn.c (vn_add): Call nary functions.
6922         (vn_lookup): Likewise.
6923
6924 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
6925
6926         PR target/35498
6927         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
6928         wdst back after sync_compare_and_swapqhi_internal.
6929
6930 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
6931
6932         PR target/22152
6933         * config/i386/i386-modes.def (V1DI): New vector mode.
6934         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
6935         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
6936         (MMXMODE248): Ditto.
6937         (MMXMODE): Add V1DI mode.
6938         (mmxvecsize): Change DI mode to V1DI mode.
6939         ("mov<mode>): Use MMXMODEI8 mode iterator.
6940         ("*mov<mode>_internal_rex64"): Ditto.
6941         ("*mov<mode>_internal"): Ditto.
6942         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
6943         ("mmx_sub<mode>3"): Ditto.
6944         ("mmx_adddi3"): Remove insn pattern.
6945         ("mmx_subdi3"): Ditto.
6946         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
6947         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
6948         ("mmx_ashl<mode>3"): Ditto.
6949         ("mmx_lshrdi3"): Remove insn pattern.
6950         ("mmx_ashldi3"): Ditto.
6951         * config/i386/i386.c (classify_argument): Handle V1DImode.
6952         (function_arg_advance_32): Ditto.
6953         (function_arg_32): Ditto.
6954         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
6955         mmx_addv1di3 insn pattern.
6956         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
6957         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
6958         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
6959         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
6960         Remove definitions of built-in functions.
6961         (V1DI_type_node): New node.
6962         (v1di_ftype_v1di_int): Ditto.
6963         (v1di_ftype_v1di_v1di): Ditto.
6964         (v2si_ftype_v2si_si): Ditto.
6965         (v4hi_ftype_v4hi_di): Remove node.
6966         (v2si_ftype_v2si_di): Ditto.
6967         (ix86_init_mmx_sse_builtins): Handle V1DImode.
6968         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
6969         Redefine builtins using def_builtin_const with *_ftype_*_int node.
6970         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
6971         Add new builtins using def_builtin_const.
6972         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
6973         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
6974         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
6975         * config/i386/mmintrin.h (__v1di): New typedef.
6976         (_mm_add_si64): Cast arguments to __v1di type.
6977         (_mm_sub_si64): Ditto.
6978         (_mm_sll_pi16): Cast __count to __v4hi type.
6979         (_mm_sll_pi32): Cast __count to __v2si type.
6980         (_mm_sll_si64): Cast arguments to __v1di type.
6981         (_mm_srl_pi16): Cast __count to __v4hi type.
6982         (_mm_srl_pi32): Cast __count to __v2si type.
6983         (_mm_srl_si64): Cast arguments to __v1di type.
6984         (_mm_sra_pi16): Cast __count to __v4hi type.
6985         (_mm_sra_pi32): Cast __count to __v2si type.
6986         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
6987         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
6988         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
6989         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
6990         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
6991         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
6992         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
6993         (_mm_srai_pi32): Use __builtin_ia32_psradi.
6994         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
6995         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6996         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6997         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
6998
6999 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7000
7001         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7002
7003 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7004
7005         PR target/35373
7006         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7007         reg+const addressing for Altivec modes.  Don't generate reg+reg
7008         addressing for TFmode or TDmode quantities.
7009
7010 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7011
7012         * c-common.c (vector_types_convertible_p): Call langhook
7013         instead of comptypes.
7014
7015 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7016
7017         PR tree-opt/35402
7018         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7019         integral and scalar float variables which have a
7020         NULL DECL_INITIAL.
7021
7022 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7023
7024         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7025         dwarf_register_span hook when emitting unwind information for
7026         register-to-memory saves.
7027         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7028         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7029
7030 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7031
7032         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7033         for the same VAR_DECL.
7034
7035 2008-03-06  Tom Tromey  <tromey@redhat.com>
7036
7037         * treelang: Delete.
7038         * doc/standards.texi (Standards): Don't mention treelang.
7039         * doc/invoke.texi (Overall Options): Don't mention treelang.
7040         * doc/install.texi (Prerequisites): Don't mention bison or
7041         treelang.
7042         (Configuration): Don't mention treelang.
7043         (Building): Likewise.
7044         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7045
7046 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7047
7048         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7049         word-extractions out of a multi-word object.
7050
7051 2008-03-06  Richard Guenther  <rguenther@suse.de>
7052
7053         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7054         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7055         result type and precision.
7056         * expr.c (get_inner_reference): Set unsignedp based on the result
7057         type of BIT_FIELD_REF.
7058         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7059         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7060         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7061         for BIT_FIELD_REF.
7062         (sra_build_assignment): Likewise.
7063         (sra_build_elt_assignment): Likewise.
7064         (sra_explode_bitfield_assignment): Likewise.
7065         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7066         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7067         set BIT_FIELD_REF_UNSIGNED.
7068         (vectorizable_load): Likewise.
7069
7070 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7071
7072         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7073         at bb start.
7074
7075 2008-03-06  Richard Guenther  <rguenther@suse.de>
7076
7077         * alias.c (struct alias_set_entry): Move has_zero_child field
7078         to pack with alias_set.
7079
7080 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7081
7082         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7083         32bit host.
7084
7085 2008-03-05  Ian Lance Taylor  <iant@google.com>
7086
7087         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7088
7089 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7090
7091         * fwprop.c (update_df): Support width and offset parameters of
7092         df_ref_create.
7093         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7094         global_conflicts): Change DF_REF_EXTRACT to either
7095         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7096         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7097         * df-scan.c (df_ref_record, df_defs_record,
7098         df_ref_create_structure, df_def_record_1, df_uses_record,
7099         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7100         df_bb_refs_collect, df_entry_block_defs_collect,
7101         df_exit_block_uses_collect): Support new width and offset fields.
7102         (ref_extract_pool): New storage pool.
7103         (df_free_ref): New function.
7104         (df_reg_chain_unlink, df_free_collection_rec,
7105         df_sort_and_compress_refs): Call df_free_ref.
7106         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7107         of df_ref_extract.
7108         (df_ref_create_structure): Allocate df_ref_extract if offset and
7109         width fields are used.
7110         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7111         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7112         and SIGN_EXTRACT.
7113         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7114         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7115         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7116         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7117         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7118         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7119         (df_ref_extract): New structure.
7120         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7121         (df_ref_create): Add width and offset parameters.
7122         
7123 2008-03-05  Richard Guenther  <rguenther@suse.de>
7124
7125         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7126         Use ranges_overlap_p.
7127         (offset_overlaps_with_access): Rename
7128         to ranges_overlap_p and move ...
7129         * tree-flow-inline.h (ranges_overlap_p): ... here.
7130
7131         * tree.h (get_inner_reference, handled_component_p): Update
7132         comments.
7133
7134         * tree.h (record_component_aliases, get_alias_set,
7135         alias_sets_conflict_p, alias_sets_must_conflict_p,
7136         objects_must_conflict_p): Move declarations ...
7137         * alias.h (record_component_aliases, get_alias_set,
7138         alias_sets_conflict_p, alias_sets_must_conflict_p,
7139         objects_must_conflict_p): ... here.
7140         Include coretypes.h.
7141         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7142
7143 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7144
7145         * cfg.c: Include tree-flow.h.
7146         (remove_edge_raw): Call redirect_edge_var_map_clear.
7147         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7148         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7149         (redirect_edge_var_map_result): New.
7150         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7151         PENDING_STMT use with redirect_edge_var_map_*.
7152         * tree-ssa.c (edge_var_maps): New definition.
7153         (redirect_edge_var_map_add): New.
7154         (redirect_edge_var_map_clear): New.
7155         (redirect_edge_var_map_dup): New.
7156         (redirect_edge_var_map_vector): New.
7157         (redirect_edge_var_map_destroy): New.
7158         (ssa_redirect_edge): Replace PENDING_STMT use with
7159         redirect_edge_var_map_*.
7160         (flush_pending_stmts): Same.
7161         (delete_tree_ssa): Destroy edge var map.
7162         * tree-flow.h (struct _edge_var_map): New.
7163         Define edge_var_map vector type.
7164         Declare redirect_edge_var_map_* prototypes.
7165         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7166         * tree-cfg.c (reinstall_phi_args): Replace
7167         PENDING_STMT use with redirect_edge_var_map_*.
7168
7169 2008-03-05  Richard Guenther  <rguenther@suse.de>
7170
7171         PR tree-optimization/35472
7172         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7173         whose single use_stmt has a overlapping set of loaded and
7174         stored symbols as that use_stmt might be a noop assignment then.
7175
7176 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7177
7178         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7179
7180 2008-03-05  Richard Guenther  <rguenther@suse.de>
7181
7182         PR c++/35336
7183         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7184         should be constants.
7185         * tree-cfg.c (verify_expr): Verify it.
7186         * fold-const.c (fold_truthop): Remove code generating
7187         BIT_FIELD_REFs of structure bases.
7188         (fold_binary): Likewise.
7189         (fold_ternary): Position and size of BIT_FIELD_REFs are
7190         always host integers.
7191         (make_bit_field_ref): Remove.
7192         (optimize_bit_field_compare): Remove.
7193         (all_ones_mask_p): Remove.
7194
7195 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7196
7197         PR gcc/33009
7198         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7199         (split_block_and_df_analyze): New. Split basic block and rebuild
7200         dataflow.
7201         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7202         SPLIT_BLOCK.
7203         (split_pattern_seq): Likewise.
7204         (erase_matching_seqs): Likewise.
7205         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7206
7207 2008-03-04  Geoff Keating  <geoffk@apple.com>
7208
7209         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7210         declaration and code.
7211         (tree_invalid_nonnegative_warnv_p): Likewise.
7212
7213 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7214
7215         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7216         examples.  Truncate option-names then causing overfull hbox.
7217
7218 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7219
7220         PR target/35222
7221         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7222         on hpux10.
7223         * configure: Rebuilt.
7224
7225 2008-03-04  Rafael Espindola  <espindola@google.com>
7226
7227         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7228         (tree_unary_nonnegative_warnv_p): New.
7229         (tree_binary_nonnegative_warnv_p): New.
7230         (tree_single_nonnegative_warnv_p): New.
7231         (tree_invalid_nonnegative_warnv_p): New.
7232         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7233
7234 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7235
7236         PR 28322
7237         * opts.c (handle_option): Postpone 'unknown option' errors only for
7238         warning options.
7239
7240 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7241
7242         PR target/35453
7243         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7244         (_SIDD_XXX): This.
7245
7246 2008-03-04  Rafael Espindola  <espindola@google.com>
7247
7248         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7249         (tree_binary_nonzero_warnv_p): New.
7250         (tree_single_nonzero_warnv_p): New.
7251         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7252
7253 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7254
7255         PR middle-end/35456
7256         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7257         transformations for modes that have signed zeros.
7258         * ifcvt.c (noce_try_abs): Ditto.
7259
7260 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7261
7262         * config/i386/i386.c (override_options): Force
7263         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7264
7265 2008-03-04  Jan Hubicka  <jh@suse.cz>
7266
7267         PR c++/35262
7268         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7269         in last commit.
7270
7271 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7272
7273         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7274         label to probe the stack.
7275
7276 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7277
7278         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7279         (__gthr_win32_mutex_destroy): Declare.
7280         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7281         __gthr_win32_mutex_destroy.
7282         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7283
7284 2008-03-03  Jan Hubicka  <jh@suse.cz>
7285
7286         PR c++/35262
7287         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7288         aggressive on inlining cold calls.
7289
7290 2008-03-03  Richard Guenther  <rguenther@suse.de>
7291
7292         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7293         struct copies into the expression table.
7294         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7295         (try_to_simplify): Likewise.
7296         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7297         integral and pointer arguments which do not change the
7298         precision to NOP_EXPRs.
7299         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7300         VIEW_CONVERT_EXPR case.
7301
7302 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7303
7304         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7305         defined in a loop at depth 0 is invariant.
7306         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7307         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7308         be called at loop depth 0.
7309
7310 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7311
7312         PR driver/35420
7313         * gcc.c (process_command): Update copyright notice dates.
7314         * gcov.c (print_version): Likewise.
7315         * gcov-dump.c (print_version): Likewise.
7316         * mips-tfile.c (main): Likewise.
7317         * mips-tdump.c (main): Likewise.
7318
7319 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7320
7321         PR 24924
7322         * c-common.c (flag_permissive): Delete.
7323         (constant_expression_warnings): Check flags first.
7324         (constant_expression_error): New.
7325         * c-common.h (flag_permissive): Delete.
7326         (constant_expression_error): Declare.
7327         * flags.h (flag_permissive): Declare. Update description.
7328         * diagnostic.c (pedwarn): Update.
7329         (permerror): New.
7330         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7331         (permissive_error_kind): New.
7332         * toplev.c (flag_permissive): Define. Update description.
7333         * toplev.h (permissive_error_kind): Declare.
7334         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7335         (pedwarn_c90): Use pedantic_warning_kind.
7336         * c-opts.c (c_common_post_options): flag_permissive does not affect
7337         flag_pedantic_errors.
7338
7339 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7340
7341         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7342         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7343         __absvsi2, __absvDI2): Use unsigned arithmetic.
7344
7345 2008-03-02  Andi Kleen  <ak@suse.de>
7346             Richard Guenther  <rguenther@suse.de>
7347
7348         * struct-equiv.c: Remove file.
7349         * cfg_cleanup.c (condjump_equiv_p): Remove.
7350         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7351         (struct-equiv.o): Remove rule.
7352         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7353         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7354         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7355
7356 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7357
7358         * ifcvt.c (noce_process_if_block): Try to handle only the then
7359         block if the else block exists but isn't suitable.
7360
7361 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7362
7363         PR gcc/35063
7364         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7365         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7366         regression from previous patch.
7367
7368 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7369
7370         PR gcc/35063
7371         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7372         implemented.
7373         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7374         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7375         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7376         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7377         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7378         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7379         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7380         (__gthread_mutex_destroy_function): Rename to
7381         __gthread_mutex_destroy.
7382         * gthr-dce.h (__gthread_mutex_destroy): Call
7383         pthread_mutex_destroy.
7384         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7385         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7386         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7387
7388 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7389
7390         * df-scan.c (df_ref_chain_change_bb): Simplify.
7391         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7392         set_block_for_insn if there's any change.
7393         * df.h ((df_insn_change_bb): Fix prototype.
7394         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7395         df_insn_change_bb, don't call set_block_for_insn.
7396         * emit-rtl.c (reorder_insns): Likewise.
7397         * haifa-sched.c (move_insn): Likewise.
7398
7399 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7400
7401         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7402
7403 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7404
7405         * tree-flow-inline.h (next_readonly_imm_use): Return
7406         NULL_USE_OPERAND_P after the end.
7407
7408 2008-03-01  Richard Guenther  <rguenther@suse.de>
7409
7410         PR tree-optimization/35411
7411         * tree-sra.c (sra_build_assignment): Split conversion to
7412         final type to a separate statement if we are not assigning
7413         to a register.
7414
7415 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7416
7417         * fold-const.c (fold_convertible_p): Correct the logic to follow
7418         that in fold_convert().
7419
7420 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7421
7422         PR c++/35315
7423         * tree-inline.c (build_duplicate_type): When we make a
7424         duplicate type, make it unique in the canonical types system.
7425
7426 2008-02-29  Tom Tromey  <tromey@redhat.com>
7427
7428         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7429         input_file_stack_history, input_file_stack_restored): Remove.
7430         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7431         * input.h (struct file_stack): Remove.
7432         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7433         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7434         Likewise.
7435         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7436         type.
7437         (diagnostic_last_module_changed): Add 'map' argument.
7438         (diagnostic_set_last_function): Likewise.
7439         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7440         line map, not input_file_stack.
7441         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7442
7443 2008-02-29  Paul Brook  <paul@codesourcery.com>
7444
7445         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7446
7447 2008-02-29  Paul Brook  <paul@codesourcery.com>
7448
7449         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7450
7451 2008-02-29  Richard Guenther  <rguenther@suse.de>
7452
7453         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7454         vn_lookup_or_add.
7455         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7456         value for comparing for a store match.
7457         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7458         (try_to_simplify): Do not do a full-blown reference lookup.
7459
7460 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7461
7462         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7463         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7464
7465         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7466
7467 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7468
7469         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7470         strides against cache sizes.
7471
7472 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7473
7474         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7475         constant to fpul.
7476
7477 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7478
7479         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7480         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7481         is smaller than the original promoted value.
7482         (simplify_subreg): If OP is a SUBREG, try to preserve its
7483         SUBREG_PROMOTED_VAR_P information.
7484
7485 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7486
7487         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7488         (VN_INFO_GET): Allocate new objects on the obstack.
7489         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7490         for rpo_numbers_temp, for consistency.
7491         (free_scc_vn): Free the obstack.
7492
7493 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7494
7495         * doc/invoke.texi: Document -ftree-loop-distribution.
7496         * tree-loop-distribution.c: New.
7497         * tree-pass.h (pass_loop_distribution): New.
7498         * graphds.h (struct graph): Add htab_t indices.
7499         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7500         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7501         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7502         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7503         * tree-data-ref.c (debug_data_dependence_relations): New.
7504         (dump_data_dependence_relation): Also print data references.
7505         (free_data_ref): Extern.
7506         (same_access_functions): Moved...
7507         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7508         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7509         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7510         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7511         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7512         (stmts_from_loop): Skip LABEL_EXPR.
7513         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7514         New.
7515         (build_rdg): Initialize rdg->indices htab.
7516         (free_rdg, stores_from_loop, ref_base_address,
7517         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7518         have_similar_memory_accesses_1, ref_base_address_1,
7519         remove_similar_memory_refs): New.
7520         * tree-data-ref.h: Depend on tree-chrec.h.
7521         (debug_data_dependence_relations, free_data_ref): Declared.
7522         (same_access_functions): ... here.
7523         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7524         New.
7525         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7526         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7527         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7528         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7529         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7530         rdg_vertex_for_stmt): Declared.
7531         (struct rdg_edge): Add level.
7532         (RDGE_LEVEL): New.
7533         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7534         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7535         Declared.
7536         (rdg_has_similar_memory_accesses): New.
7537         * tree-vect-analyze.c: Remove unused static decls.
7538         * lambda.h (dependence_level): New.
7539         * common.opt (ftree-loop-distribution): New.
7540         * tree-flow.h (mark_virtual_ops_in_bb, 
7541         slpeel_tree_duplicate_loop_to_edge_cfg,
7542         rename_variables_in_loop): Declared.
7543         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7544         (OBJS-common): Add tree-loop-distribution.o.
7545         (tree-loop-distribution.o): New rule.
7546         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7547         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7548         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7549
7550 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7551
7552         PR target/33963
7553         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7554         other than structures and unions.
7555
7556 2008-02-28  Richard Guenther  <rguenther@suse.de>
7557
7558         Revert:
7559         2008-02-26  Richard Guenther  <rguenther@suse.de>
7560
7561         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7562         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7563         (lookup_decl_from_uid): Declare.
7564         (remove_decl_from_map): Likewise.
7565         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7566         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7567         (decl_for_uid_map): New global hashtable mapping DECL_UID
7568         to the decl tree.
7569         (init_ttree): Allocate it.
7570         (insert_decl_to_uid_decl_map): New helper function.
7571         (make_node_stat): Insert new decls into the map.
7572         (copy_node_stat): Likewise.
7573         (lookup_decl_from_uid): New function.
7574         (remove_decl_from_map): Likewise.
7575         (print_decl_for_uid_map_statistics): New helper.
7576         (dump_tree_statistics): Call it.
7577
7578         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7579         (referenced_var_iterator): Adjust.
7580         (FOR_EACH_REFERENCED_VAR): Adjust.
7581         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7582         (num_referenced_vars): Adjust.
7583         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7584         (first_referenced_var): Remove.
7585         (end_referenced_vars_p): Likewise.
7586         (next_referenced_var): Likewise.
7587         (referenced_var_iterator_set): New helper function.
7588         * tree-dfa.c (referenced_var_lookup): Adjust.
7589         (referenced_var_check_and_insert): Likewise.
7590         (remove_referenced_var): Likewise.
7591         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7592         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7593         (verify_call_clobbering): Likewise.
7594         (verify_memory_partitions): Likewise.
7595         (init_tree_ssa): Allocate bitmap instead of hashtable for
7596         referenced_vars.
7597         (delete_tree_ssa): Adjust.
7598         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7599         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7600         (compute_tag_properties): Likewise.
7601         (set_initial_properties): Likewise.
7602         (find_partition_for): Likewise.
7603         (update_reference_counts): Likewise.
7604         (dump_may_aliases_for): Likewise.
7605         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7606         (add_call_clobber_ops): Likewise.
7607         (add_call_read_ops): Likewise.
7608         (get_asm_expr_operands): Likewise.
7609         * tree-into-ssa.c (dump_decl_set): Likewise.
7610         (update_ssa): Likewise.
7611         * tree-sra.c (scan_function): Likewise.
7612         (decide_instantiations): Likewise.
7613         (scalarize_parms): Likewise.
7614         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7615         (dsa_named_for): Likewise.
7616         * tree-ssa-structalias.c (update_alias_info): Likewise.
7617         (merge_smts_into): Likewise.
7618
7619 2008-02-27  David Daney  <ddaney@avtrex.com>
7620
7621         PR target/34409
7622         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7623         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7624         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7625         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7626         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7627
7628 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7629
7630         PR target/25477
7631         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7632         (BUILT_IN_NEXTTOWARD): Remove.
7633         (BUILT_IN_NEXTTOWARDF): Ditto.
7634         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7635         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7636
7637 2008-02-27  Tom Tromey  <tromey@redhat.com>
7638
7639         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7640         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7641
7642 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7643
7644         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7645         update the respective field on newdecl.
7646
7647 2008-02-27  Revital Eres  <eres@il.ibm.com>
7648
7649         PR rtl-optimization/34999
7650         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7651         crossing edges that ends with a call insn.
7652         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7653         call insn and clear the EDGE_CROSSING flag of the crossing edge
7654         when fixing fallthru edges.
7655
7656 2008-02-27  Richard Guenther  <rguenther@suse.de>
7657
7658         PR middle-end/35390
7659         * fold-const.c (fold_unary): Return the correct argument,
7660         converted to the result type.
7661
7662 2008-02-27  Richard Guenther  <rguenther@suse.de>
7663
7664         PR middle-end/34971
7665         * expr.c (expand_expr_real_1): Assert on rotates that operate
7666         on partial modes.
7667         * fold-const.c (fold_binary): Use the types precision, not the
7668         bitsize of the mode if folding rotate expressions.  Build rotates
7669         only for full modes.
7670
7671 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7672
7673         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7674         and CPP_PRAGMA_EOL.
7675         * c-pragma.c (pragma_ns_name): New typedef.
7676         (registered_pp_pragmas): New variable.
7677         (c_pp_lookup_pragma): New function.
7678         (c_register_pragma_1): If flag_preprocess_only, do nothing
7679         for non-expanded pragmas, for expanded ones push pragma's
7680         namespace and name into registered_pp_pragmas vector.
7681         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7682         flag_preprocess_only, don't register GCC pch_preprocess
7683         pragma if flag_preprocess_only.
7684         * c-opts.c (c_common_init): Call init_pragma even if
7685         flag_preprocess_only.
7686         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7687         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7688         cpp_register_pragma if flag_preprocess_only.
7689
7690 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7691
7692         PR c/28800
7693         * c-parser.c (c_parser_translation_unit): Warn for empty
7694         translation unit, not empty source file.
7695
7696 2008-02-26  Paul Brook  <paul@codesourcery.com>
7697
7698         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7699         operand for Thumb-2.
7700         * config/arm/arm.h (reg_class): Add CORE_REGS.
7701         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7702         (BASE_REG_CLASS): Use CORE_REGS.
7703         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7704         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7705         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7706         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7707         ARM_REGNO_OK_FOR_INDEX_P.
7708         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7709         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7710         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7711         (ldm/stm peepholes): Ditto.
7712         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7713         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7714         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7715         * config/arm/constraints.md: Enable "k" constraint on ARM.
7716
7717 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7718
7719         * config/rs6000/rs6000.c: Annotate cache line size field in all
7720         instances of struct processor_costs.
7721
7722 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
7723
7724         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
7725         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
7726         jump_bypass): New counters.
7727         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
7728         * dce.c (gate_ud_dce): Same.
7729         (gate_fast_dce): Same.
7730         * dse.c (gate_dse1): New function.
7731         (gate_dse2): New function.
7732         (gate_dse): Merge results of new gate functions.
7733         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
7734         (gate_handle_jump_bypass): Add dbg_cnt.
7735         (gate_handle_gcse): Add dbg_cnt.
7736         * ifcvt.c (gate_handle_if_conversion): Same.
7737         (gate_handle_if_after_combine): Same.
7738         (gate_handle_if_after_reload): Same.
7739         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
7740
7741 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
7742
7743         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
7744         line sizes.
7745         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
7746
7747 2008-02-26  Jason Merrill  <jason@redhat.com>
7748
7749         PR c++/35315
7750         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
7751         alone if it's the naming decl for the type's main variant.
7752
7753 2008-02-26  Tom Tromey  <tromey@redhat.com>
7754
7755         * system.h (USE_MAPPED_LOCATION): Poison.
7756         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
7757         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
7758         (make_goto_expr_edges): Likewise.
7759         (remove_bb): Likewise.
7760         (execute_warn_function_return): Likewise.
7761         * basic-block.h (struct edge_def) <goto_locus>: Change type to
7762         location_t.
7763         * c-common.c (fname_decl): Remove old location code.
7764         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
7765         location code.
7766         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
7767         variant.
7768         (ASM_INPUT_SOURCE_LOCATION): Likewise.
7769         (gen_rtx_ASM_INPUT): Likewise.
7770         (gen_rtx_ASM_INPUT_loc): Likewise.
7771         (get_rtx_asm_OPERANDS): Remove.
7772         * cfglayout.c (insn_locators_alloc): Remove old location code.
7773         (set_curr_insn_source_location): Likewise.
7774         (curr_insn_locator): Likewise.
7775         * print-tree.c (print_node): Remove old location code.
7776         * tree-mudflap.c (mf_varname_tree): Remove old location code.
7777         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
7778         * cfgexpand.c (expand_gimple_cond_expr): Don't use
7779         location_from_locus.
7780         (construct_exit_block): Remove old location code.
7781         * emit-rtl.c (force_next_line_note): Remove old location code.
7782         * profile.c (branch_prob): Remove old location code.
7783         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
7784         LOC_LINE): Remove old-location variants.
7785         * langhooks.c (lhd_print_error_function): Remove old location
7786         code.
7787         * configure, config.in: Rebuilt.
7788         * configure.ac (--enable-mapped-location): Remove.
7789         * c-decl.c (c_init_decl_processing): Remove old location code.
7790         (finish_function): Likewise.
7791         * recog.c (decode_asm_operands): Remove old location code.
7792         * c-pch.c (c_common_read_pch): Remove old location code.
7793         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
7794         variants.
7795         * gimple-low.c (lower_function_body): Remove old location code.
7796         * toplev.c (unknown_location): Remove.
7797         (push_srcloc): Remove old-location variant.
7798         (process_options): Remove old location code.
7799         (lang_dependent_init): Likewise.
7800         * input.h (UNKNOWN_LOCATION): Move definition.
7801         (location_t): Undeprecate.
7802         (source_locus): Remove.
7803         (location_from_locus): Remove.
7804         (struct location_s): Remove.
7805         Remove all old-location code.
7806         (input_line, input_filename): Remove.
7807         * final.c (final_scan_insn): Remove old location code.
7808         * diagnostic.c (diagnostic_build_prefix): Remove
7809         USE_MAPPED_LOCATION test.
7810         * tree.h (gimple_stmt) <locus>: Now a location_t.
7811         (tree_exp) <locus>: Likewise.
7812         (DECL_IS_BUILTIN): Remove old-location variant.
7813         (annotate_with_file_line, annotate_with_locus): Likewise.
7814         (expr_locus, set_expr_locus): Update.
7815         * tree.c (build1_stat): Remove old location code.
7816         (last_annotated_node): Remove.
7817         (annotate_with_file_line): Remove old-location variant.
7818         (annotate_with_locus): Likewise.
7819         (expr_location): Remove old location code.
7820         (set_expr_location): Likewise.
7821         (expr_has_location): Likewise.
7822         (expr_locus): Likewise.
7823         (set_expr_locus): Likewise.
7824         (expr_filename): Don't use location_from_locus.
7825         (expr_lineno): Likewise.
7826         * rtl-error.c (location_for_asm): Remove old location code.
7827         * c-lex.c (cb_line_change): Remove old location code.
7828         (fe_file_change): Likewise.
7829         (cb_def_pragma): Likewise.
7830         (c_lex_with_flags): Likewise.
7831         * gengtype.c (do_typedef): Don't special-case location types.
7832         (define_location_structures): Remove.
7833         (main): Don't call define_location_structures.
7834         * tree-pretty-print.c (dump_implicit_edges): Remove old location
7835         code.
7836
7837 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7838
7839         PR 26264
7840         * builtins.def (BUILT_IN_STDARG_START): Remove.
7841         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
7842         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7843         * tree-inline.c (inline_forbidden_p_1): Likewise.
7844         
7845 2008-02-26  Richard Guenther  <rguenther@suse.de>
7846
7847         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7848         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7849         (lookup_decl_from_uid): Declare.
7850         (remove_decl_from_map): Likewise.
7851         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7852         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7853         (decl_for_uid_map): New global hashtable mapping DECL_UID
7854         to the decl tree.
7855         (init_ttree): Allocate it.
7856         (insert_decl_to_uid_decl_map): New helper function.
7857         (make_node_stat): Insert new decls into the map.
7858         (copy_node_stat): Likewise.
7859         (lookup_decl_from_uid): New function.
7860         (remove_decl_from_map): Likewise.
7861         (print_decl_for_uid_map_statistics): New helper.
7862         (dump_tree_statistics): Call it.
7863
7864         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7865         (referenced_var_iterator): Adjust.
7866         (FOR_EACH_REFERENCED_VAR): Adjust.
7867         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7868         (num_referenced_vars): Adjust.
7869         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7870         (first_referenced_var): Remove.
7871         (end_referenced_vars_p): Likewise.
7872         (next_referenced_var): Likewise.
7873         (referenced_var_iterator_set): New helper function.
7874         * tree-dfa.c (referenced_var_lookup): Adjust.
7875         (referenced_var_check_and_insert): Likewise.
7876         (remove_referenced_var): Likewise.
7877         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7878         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7879         (verify_call_clobbering): Likewise.
7880         (verify_memory_partitions): Likewise.
7881         (init_tree_ssa): Allocate bitmap instead of hashtable for
7882         referenced_vars.
7883         (delete_tree_ssa): Adjust.
7884         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7885         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7886         (compute_tag_properties): Likewise.
7887         (set_initial_properties): Likewise.
7888         (find_partition_for): Likewise.
7889         (update_reference_counts): Likewise.
7890         (dump_may_aliases_for): Likewise.
7891         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7892         (add_call_clobber_ops): Likewise.
7893         (add_call_read_ops): Likewise.
7894         (get_asm_expr_operands): Likewise.
7895         * tree-into-ssa.c (dump_decl_set): Likewise.
7896         (update_ssa): Likewise.
7897         * tree-sra.c (scan_function): Likewise.
7898         (decide_instantiations): Likewise.
7899         (scalarize_parms): Likewise.
7900         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7901         (dsa_named_for): Likewise.
7902         * tree-ssa-structalias.c (update_alias_info): Likewise.
7903         (merge_smts_into): Likewise.
7904
7905 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7906
7907         PR 34351
7908         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
7909         * c-opts.c (c_common_handle_option): Wall enables
7910         Wvolatile-register-var.
7911         * common.opt: Move Wvolatile-register-var to...
7912         * c.opt: ...here.
7913         
7914 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7915
7916         * common.opt (Wlarger-than=): New.
7917         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
7918         -Wlarger-than=.
7919         * opts.c (common_handle_option): Handle -Wlarger-than=.
7920         * optc-gen.awk: Likewise.
7921         * opth-gen.awk: Likewise.
7922         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
7923         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7924         
7925 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
7926
7927         * c-common.c (match_case_to_enum_1): Add appropriate
7928         OPT_W* parameter to warning.
7929         (c_do_switch_warnings): Likewise.
7930         * c-typeck.c (warning_init): Add one more parameter following
7931         'warning' function.
7932         (push_init_level): Update call to warning_init.
7933         (pop_init_level): Likewise.
7934         (add_pending_init): Likewise.
7935         (output_init_element: Likewise.
7936
7937 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7938
7939         PR 28322
7940         * toplev.c (toplev_main): If there are warnings or error, print
7941         errors for ignored options.
7942         * opts.c (ignored_options): New static variable.
7943         (postpone_unknown_option_error): New.
7944         (print_ignored_options): New.
7945         (handle_option): Postpone errors for unknown -Wno-* options.
7946         * opts.h (print_ignored_options): Declare.
7947         
7948 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
7949
7950         * config/mips/mips.md (loadgp_blockage, blockage): Change type
7951         to "ghost".
7952
7953 2008-02-25  Richard Guenther  <rguenther@suse.de>
7954
7955         Revert:
7956         2008-02-25  Richard Guenther  <rguenther@suse.de>
7957
7958         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7959         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7960         (lookup_decl_from_uid): Declare.
7961         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7962         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7963         (decl_for_uid_map): New global hashtable mapping DECL_UID
7964         to the decl tree.
7965         (init_ttree): Allocate it.
7966         (insert_decl_to_uid_decl_map): New helper function.
7967         (make_node_stat): Insert new decls into the map.
7968         (copy_node_stat): Likewise.
7969         (lookup_decl_from_uid): New function.
7970         (print_decl_for_uid_map_statistics): New helper.
7971         (dump_tree_statistics): Call it.
7972
7973         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7974         (referenced_var_iterator): Adjust.
7975         (FOR_EACH_REFERENCED_VAR): Adjust.
7976         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7977         (num_referenced_vars): Adjust.
7978         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7979         (first_referenced_var): Remove.
7980         (end_referenced_vars_p): Likewise.
7981         (next_referenced_var): Likewise.
7982         (referenced_var_iterator_set): New helper function.
7983         * tree-dfa.c (referenced_var_lookup): Adjust.
7984         (referenced_var_check_and_insert): Likewise.
7985         (remove_referenced_var): Likewise.
7986         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7987         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7988         (verify_call_clobbering): Likewise.
7989         (verify_memory_partitions): Likewise.
7990         (init_tree_ssa): Allocate bitmap instead of hashtable for
7991         referenced_vars.
7992         (delete_tree_ssa): Adjust.
7993         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7994         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7995         (compute_tag_properties): Likewise.
7996         (set_initial_properties): Likewise.
7997         (find_partition_for): Likewise.
7998         (update_reference_counts): Likewise.
7999         (dump_may_aliases_for): Likewise.
8000         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8001         (add_call_clobber_ops): Likewise.
8002         (add_call_read_ops): Likewise.
8003         (get_asm_expr_operands): Likewise.
8004         * tree-into-ssa.c (dump_decl_set): Likewise.
8005         (update_ssa): Likewise.
8006         * tree-sra.c (scan_function): Likewise.
8007         (decide_instantiations): Likewise.
8008         (scalarize_parms): Likewise.
8009         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8010         (dsa_named_for): Likewise.
8011         * tree-ssa-structalias.c (update_alias_info): Likewise.
8012         (merge_smts_into): Likewise.
8013
8014 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8015
8016         PR fortran/29549
8017         * doc/invoke.texi (-fcx-limited-range): Document new option.
8018         * toplev.c (process_options): Handle -fcx-fortran-rules.
8019         * common.opt: Add documentation for -fcx-fortran-rules.
8020
8021 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8022
8023         PR c/35162
8024         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8025         actual behaviour and C99.
8026         
8027 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8028
8029         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8030         (ASM_CPU_POWER6_SPEC): Likewise.
8031         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8032         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8033         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8034
8035 2008-02-25  Richard Guenther  <rguenther@suse.de>
8036
8037         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8038         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8039         (lookup_decl_from_uid): Declare.
8040         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8041         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8042         (decl_for_uid_map): New global hashtable mapping DECL_UID
8043         to the decl tree.
8044         (init_ttree): Allocate it.
8045         (insert_decl_to_uid_decl_map): New helper function.
8046         (make_node_stat): Insert new decls into the map.
8047         (copy_node_stat): Likewise.
8048         (lookup_decl_from_uid): New function.
8049         (print_decl_for_uid_map_statistics): New helper.
8050         (dump_tree_statistics): Call it.
8051
8052         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8053         (referenced_var_iterator): Adjust.
8054         (FOR_EACH_REFERENCED_VAR): Adjust.
8055         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8056         (num_referenced_vars): Adjust.
8057         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8058         (first_referenced_var): Remove.
8059         (end_referenced_vars_p): Likewise.
8060         (next_referenced_var): Likewise.
8061         (referenced_var_iterator_set): New helper function.
8062         * tree-dfa.c (referenced_var_lookup): Adjust.
8063         (referenced_var_check_and_insert): Likewise.
8064         (remove_referenced_var): Likewise.
8065         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8066         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8067         (verify_call_clobbering): Likewise.
8068         (verify_memory_partitions): Likewise.
8069         (init_tree_ssa): Allocate bitmap instead of hashtable for
8070         referenced_vars.
8071         (delete_tree_ssa): Adjust.
8072         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8073         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8074         (compute_tag_properties): Likewise.
8075         (set_initial_properties): Likewise.
8076         (find_partition_for): Likewise.
8077         (update_reference_counts): Likewise.
8078         (dump_may_aliases_for): Likewise.
8079         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8080         (add_call_clobber_ops): Likewise.
8081         (add_call_read_ops): Likewise.
8082         (get_asm_expr_operands): Likewise.
8083         * tree-into-ssa.c (dump_decl_set): Likewise.
8084         (update_ssa): Likewise.
8085         * tree-sra.c (scan_function): Likewise.
8086         (decide_instantiations): Likewise.
8087         (scalarize_parms): Likewise.
8088         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8089         (dsa_named_for): Likewise.
8090         * tree-ssa-structalias.c (update_alias_info): Likewise.
8091         (merge_smts_into): Likewise.
8092
8093 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8094
8095         PR target/35258
8096         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8097         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8098         * alias.h (nonoverlapping_memrefs_p): Likewise.
8099
8100 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8101
8102         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8103         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8104         __emultls_get_address, __emultls_register_common,
8105         __floatundi?f, and _Unwind_GetIPInfo.
8106         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8107         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8108         (gen_regparm_prefix): Likewise.
8109         (i386_nlm_encode_section_info): Sync with
8110         config/i386/winnt.c:i386_pe_encode_section_info().
8111         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8112         i386_nlm_mangle_decl_assembler_name): New.
8113         (netware_override_options): New.
8114         * config/i386/netware.h (netware_override_options): Declare.
8115         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8116         (i386_nlm_mangle_decl_assembler_name): Declare.
8117         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8118
8119 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8120
8121         PR other/32948
8122         * c-decl.c (grokdeclarator): Remove unused local variables
8123         `typedef_type' and `type_as_written'.
8124         * bb-reorder.c
8125         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8126         unused local variable `has_hot_blocks'.
8127         (fix_crossing_conditional_branches): Remove unused local variable
8128         `prev_bb'.
8129         
8130 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8131
8132         PR middle-end/19984
8133         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8134         using DEF_C99_BUILTIN.
8135         (BUILT_IN_NANF): Ditto.
8136         (BUILT_IN_NANL): Ditto.
8137
8138 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8139             Revital Eres  <eres@il.ibm.com>
8140
8141         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8142         regarding the order of two dependent insns in the same row.
8143
8144 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8145
8146         * stor-layout.c (layout_decl): Do not bump the alignment of a
8147         bit-field to more than byte alignment if it is packed.
8148
8149 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8150
8151         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8152         e300c2 and e300c3.
8153
8154 2008-02-24  Diego Novillo  <dnovillo@google.com>
8155
8156         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8157
8158         PR 33738
8159         * tree-vrp.c (vrp_evaluate_conditional): With
8160         -Wtype-limits, emit a warning when comparing against a
8161         constant outside the natural range of OP0's type.
8162         * c.opt (Wtype-limits): Move ...
8163         * common.opt (Wtype-limits): ... here.
8164
8165 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8166
8167         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8168         * config/rs6000/e300c2c3.md: New file.
8169         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8170         e300c2 and e300c3.
8171         (rs6000_override_options): Add e300c2 and e300c3 cases to
8172         processor_target_table. Do not allow usage of Altivec or Spe
8173         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8174         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8175         * config/rs6000/rs6000.h (processor_type): Add
8176         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8177         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8178         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8179         and ppce300c3. Include e300c2c3.md.
8180
8181 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8182
8183         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8184         instead of TARGET_STRICT_ALIGN.
8185
8186 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8187
8188         * explow.c (memory_address): Assert that the generated address is
8189         valid.
8190
8191 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8192
8193         PR target/25477
8194         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8195         * config/darwin-ppc-ldouble-patch.def: New file.
8196         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8197         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8198         SUBTARGET_INIT_BUILTINS if defined.
8199         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8200         New functions.
8201
8202 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8203
8204         PR rtl-opt/33512
8205         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8206         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8207
8208 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8209
8210         PR pch/35027
8211         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8212         file" warning condtional on -Winvalid-PCH.
8213
8214 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8215
8216         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8217
8218 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8219
8220         PR target/22076
8221         PR target/34256 
8222         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8223         prevent reload from using MMX registers.
8224         (*mov<mode>_internal): Ditto.
8225         (*movv2sf_internal_rex64): Ditto.
8226         (*movv2sf_internal): Ditto.
8227
8228 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8229
8230         PR documentation/31569
8231         * doc/install.texi2html: Use makeinfo --no-number-sections.
8232
8233 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8234
8235         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8236         ensure that we can address an entire entity > 8 bytes.  Don't
8237         generate reg+reg addressing for such data.
8238
8239 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8240
8241         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8242         strings when optimizing for size, unless the target cares about
8243         alignment.
8244
8245 2008-02-22  Tom Tromey  <tromey@redhat.com>
8246
8247         * regclass.c (current_pass): Remove declaration.
8248
8249 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8250
8251         * config/avr/libgcc.S (__RAMPZ__): Define.
8252         (__do_copy_data): Add for devices with 128KB code memory.
8253
8254 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8255
8256         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8257         Use spe_abi.
8258         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8259
8260 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8261
8262         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8263         GENNONACR_REGS.
8264
8265 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8266
8267         PR c/19999
8268         * c-typeck.c (build_binary_op): Warn about floating point
8269         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8270
8271 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8272
8273         PR target/34526
8274         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8275         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8276         add vrsave.
8277         (rs6000_override_options): Set altivec_abi as default, not override,
8278         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8279         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8280         is used; use new member spe_abi.
8281         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8282         spe_abi and altivec_abi.
8283
8284 2008-02-22  Tomas Bily  <tbily@suse.cz>
8285
8286         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8287
8288 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8289
8290         PR bootstrap/35273
8291         * config.build (build_file_translate): Set to `CMD //c' only if
8292         it works.
8293         * Makefile.in (build_file_translate): Improve comment.
8294
8295 2008-02-21  Jan Hubicka  <jh@suse.cz>
8296
8297         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8298         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8299         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8300
8301 2008-02-21  Michael Matz  <matz@suse.de>
8302
8303         PR target/35264
8304         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8305
8306 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8307
8308         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8309         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8310         as insn constraint.
8311         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8312         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8313         SSE_VEC_FLOAT_MODE_P as insn constraint.
8314         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8315         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8316         sse4a_movntdf using MODEF mode iterator.
8317         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8318         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8319         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8320         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8321         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8322         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8323         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8324
8325 2008-02-21  Richard Guenther  <rguenther@suse.de>
8326
8327         * tree.def (PAREN_EXPR): New tree code.
8328         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8329         and PAREN_EXPR.
8330         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8331         * expr.c (expand_expr_real_1): Likewise.
8332         * tree-inline.c (estimate_num_insns_1): Likewise.
8333         * tree-complex.c (expand_complex_move): Likewise.
8334         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8335         as plain x.
8336
8337 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8338
8339         PR target/35225
8340         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8341
8342 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8343
8344         PR target/35190
8345         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8346
8347         * config/sh/sh.c (find_barrier): Don't go past
8348         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8349
8350 2008-02-20  DJ Delorie  <dj@redhat.com>
8351
8352         * config/h8300/h8300.md (insv): Force source operand to be a register.
8353
8354         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8355         as a jump, not as a plain insn.
8356         
8357 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8358
8359         * doc/invoke.texi (Warning Options): Add new option
8360         -Wframe-larger-than=.
8361         (-Wframe-larger-than): Document.
8362
8363         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8364         Add declarations for new option variables.
8365
8366         * final.c (final_start_function): Check the frame size
8367         before emission and issue a Wframe-larger-than warning.
8368
8369         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8370         Add definitions for new option variables.
8371         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8372
8373         * common.opt (Wframe-larger-than=): New option.
8374
8375 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8376
8377         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8378         (<sse>_div<mode>3): Ditto.
8379         (<sse>_vmdiv<mode>3): Ditto.
8380         (<sse>_vmsqrt<mode>2): Ditto.
8381         (*smax<mode>3): Ditto.
8382         (sse5_frcz<mode>2): Ditto.
8383         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8384         as insn constraint.
8385
8386 2008-02-20  Richard Guenther  <rguenther@suse.de>
8387
8388         PR middle-end/35265
8389         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8390         be happy with INTEGRAL_TYPE_P.
8391
8392 2008-02-20  Richard Guenther  <rguenther@suse.de>
8393
8394         * fold-const.c (split_tree): Associate floatig-point expressions
8395         if flag_associative_math is set.
8396
8397 2008-02-20  Richard Guenther  <rguenther@suse.de>
8398
8399         * tree.h (fold_real_zero_addition_p): Declare.
8400         * fold-const.c (fold_real_zero_addition_p): Export.
8401         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8402         floating-point operations with zero and one.
8403
8404 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8405
8406         * doc/install.texi: Correct references to CFLAGS, replacing them
8407         with BOOT_CFLAGS.  Document flags used during bootstrap for
8408         target libraries.
8409                                 
8410 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8411
8412         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8413         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8414         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8415         insn constraint.
8416         (smin<mode>3): Ditto from similar patterns.
8417         (smax<mode>3): Ditto.
8418         (*ieee_smin<mode>3): Ditto.
8419         (*ieee_smax<mode>3): Ditto.
8420         * config/i386/sse.md (sse): New mode attribute.
8421         (mov<mode>): Macroize expander from movv4sf and movv2df using
8422         SSEMODEF2P mode iterator.
8423         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8424         SSE_VEC_FLOAT_MODE_P as insn constraint.
8425         (storent<mode>): Ditto.
8426         (storent<mode>): Macroize expander from storentsf and storentdf using
8427         MODEF mode iterator.
8428         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8429         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8430         (abs<mode>2): Ditto from similar patterns.
8431         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8432         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8433         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8434         (<sse>_vmsqrt<mode>2): Ditto.
8435         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8436         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8437         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8438         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8439         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8440         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8441         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8442         insn constraint.
8443         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8444         iterator and SSE_FLOAT_MODE_P as insn constraint.
8445         (<sse>_ucomi): Ditto from similar patterns.
8446         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8447         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8448         SSE_VEC_FLOAT_MODE_P as insn constraint.
8449         (vcond<mode>): Ditto from similar patterns.
8450         (and<mode>3, *and<mode>3): Ditto.
8451         (<sse>_nand<mode>3): Ditto.
8452         (ior<mode>3, *ior<mode>3): Ditto.
8453         (xor<mode>3, *xor<mode>3): Ditto.
8454         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8455         iterator and SSE_FLOAT_MODE_P as insn constraint.
8456         (*nand<mode>3): Ditto from similar patterns.
8457         (*ior<mode>3): Ditto.
8458         (*xor<mode>3): Ditto.
8459
8460 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8461
8462         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8463         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8464         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8465
8466 2008-02-19  Jan Hubicka  <jh@suse.cz>
8467
8468         * predict.c (tree_bb_level_predictions): Remove variable next
8469         mistakely introduced by previous commit.
8470
8471 2008-02-19  Jan Hubicka  <jh@suse.cz>
8472
8473         * predict.c (predict_paths_leading_to): Rewrite.
8474         (predict_paths_for_bb): New.
8475         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8476
8477 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8478
8479         PR bootstrap/35218
8480         * Makefile.in (build_file_translate): New.
8481         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8482         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8483         * configure.ac (build_file_translate): Substitute it.
8484         * configure: Regenerate.
8485
8486 2008-02-19  Jan Hubicka  <jh@suse.cz>
8487
8488         PR rtl-optimization/34408
8489         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8490         invalid sharing.
8491
8492 2008-02-19  Jan Hubicka  <jh@suse.cz>
8493
8494         PR middle-end/28779
8495         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8496         call_expr.
8497
8498 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8499
8500         PR Ada/35186
8501         * config/i386/i386-modes.def: Revert the last DI alignment
8502         change until Ada people can look into it.
8503
8504 2008-02-19  Nick Clifton  <nickc@redhat.com>
8505
8506         * opts.c (print_specific_help): Fix typo in --help text.
8507
8508 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8509
8510         PR target/35239
8511         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8512         32-bit inline asm without asm alternatives for host GCC < 3.0.
8513
8514 2008-02-19  Richard Guenther  <rguenther@suse.de>
8515
8516         PR tree-optimization/34989
8517         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8518         Allow propagation to INDIRECT_REF if we can simplify only.
8519
8520 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8521
8522         * c-common.c (warn_for_collisions_1): Use appropriate option when
8523         warning.
8524
8525 2008-02-19  Nick Clifton  <nickc@redhat.com>
8526
8527         PR other/31349
8528         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8529         (handle_options): Fix indentation.
8530         (print_filtered_help): If no language-specific options were
8531         displayed tell the user how to list all the options supported by
8532         the language's front-end.
8533         (print_specific_help): Fix indentation and remove duplicate line.
8534         (common_handle_option): Handle the -v option.
8535         For --help enable the display of undocumented options if the -v
8536         switch has been included on the command line.
8537         For --help= check for overlaps in the arguments between the option
8538         classes and the language names and issue a warning when they
8539         cannot be disambiguated.
8540         * c.opt (v): Pass on to the common option handler.
8541
8542 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8543
8544         * modulo-sched.c (sms_schedule): Change dump message when
8545         create_ddg function fails.
8546         (try_scheduling_node_in_cycle): Rename row to cycle.
8547         (print_partial_schedule): Rename CYCLE to ROW.
8548
8549 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8550             Zdenek Dvorak  <ook@ucw.cz>
8551
8552         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8553
8554 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8555
8556         PR target/33555
8557         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8558         (*x86_movdicc_0_m1_se): Ditto.
8559
8560 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8561
8562         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8563         (CMPtype): Define as __gcc_CMPtype.
8564         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8565         (CMPtype): Define as __gcc_CMPtype.
8566
8567 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8568
8569         Support valgrind 3.3 for --enable-checking=valgrind.
8570         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8571         here.
8572         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8573         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8574         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8575         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8576         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8577         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8578         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8579         respectively.
8580         * ggc-zone.c: Similar.
8581         * ggc-page.c: Similar.
8582
8583 2008-02-19  Paul Brook  <paul@codesourcery.com>
8584
8585         PR target/35071
8586         * config/arm/ieee754-df.S: Fix do_it typo.
8587         * config/arm/ieee754-sf.S: Fix do_it typo.
8588
8589 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8590
8591         PR target/35189
8592         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8593         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8594         (OPTION_MASK_ISA_SSE_SET): Likewise.
8595         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8596         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8597         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8598         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8599         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8600         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8601         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8602         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8603         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8604         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8605         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8606         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8607         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8608         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8609         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8610         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8611         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8612         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8613         (OPTION_MASK_ISA_SSE4): Removed.
8614         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8615         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8616         (override_options): Don't turn on implied SSE/MMX bits in
8617         ix86_isa_flags.
8618
8619 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8620
8621         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8622         32bit host.
8623
8624 2008-02-18  Joey Ye  <joey.ye@intel.com>
8625
8626         PR middle-end/34921
8627         * tree-nested.c (insert_field_into_struct): Set type alignment
8628         to field alignment if the former is less than the latter.
8629
8630 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8631
8632         * BASE-VER: Set to 4.4.0.
8633
8634 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8635
8636         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8637         * doc/cfg.texi: Likewise.
8638         * doc/extend.texi: Likewise.
8639         * doc/gty.texi: Likewise.
8640         * doc/invoke.texi: Likewise.
8641         * doc/loop.texi: Likewise.
8642         * doc/md.texi: Likewise.
8643         * doc/passes.texi: Likewise.
8644         * doc/rtl.texi: Likewise.
8645         * doc/sourcebuild.texi: Likewise.
8646         * doc/tm.texi: Likewise.
8647         * doc/tree-ssa.texi: Likewise.
8648
8649 2008-02-17  Richard Guenther  <rguenther@suse.de>
8650
8651         PR middle-end/35227
8652         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8653         without default definition.
8654
8655 2008-02-17  Richard Guenther  <rguenther@suse.de>
8656
8657         PR tree-optimization/35231
8658         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8659         if A | B != 1.
8660
8661 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8662
8663         Revert:
8664         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8665         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8666         libgcc_cmp_return mode.
8667
8668 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8669
8670         PR c/28368
8671         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8672
8673 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8674
8675         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8676         multilibs.
8677
8678 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8679
8680         * doc/c-tree.texi: Use `@.' where appropriate.
8681         * doc/extend.texi: Likewise.
8682         * doc/install.texi: Likewise.
8683         * doc/invoke.texi: Likewise.
8684         * doc/loop.texi: Likewise.
8685         * doc/makefile.texi: Likewise.
8686         * doc/md.texi: Likewise.
8687         * doc/passes.texi: Likewise.
8688         * doc/standards.texi: Likewise.
8689         * doc/tm.texi: Likewise.
8690
8691 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8692
8693         PR middle-end/35196
8694         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8695         in entry_bb.
8696         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8697         rather than in entry_bb.
8698
8699 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8700
8701         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8702         libgcc_cmp_return mode.
8703
8704 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8705
8706         PR middle-end/35130
8707         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8708         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8709
8710 2008-02-15  Richard Guenther  <rguenther@suse.de>
8711             Zdenek Dvorak  <ook@ucw.cz>
8712
8713         PR tree-optimization/35164
8714         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8715         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8716         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8717         Only propagate addresses which do not have abnormal SSA_NAMEs
8718         in their operands.
8719
8720 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
8721
8722         PR target/35088
8723         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
8724
8725 2008-02-15  Jan Hubicka  <jh@suse.cz>
8726
8727         PR middle-end/35149
8728         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
8729
8730 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8731
8732         PR middle-end/34621
8733         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
8734         when calculating alignment_pad.
8735
8736 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8737
8738         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
8739         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
8740         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
8741         and STACK_BOUNDARY define.
8742
8743 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
8744
8745         PR preprocessor/35061
8746         * c-pragma.c (handle_pragma_pop_macro): Check that
8747         pushed_macro_table has been allocated.
8748
8749 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
8750
8751         PR middle-end/35136
8752         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
8753         (force_gimple_operand): Likewise.
8754         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
8755         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
8756         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
8757         (find_interesting_uses_address): Check addressability and alignment
8758         of the base expression only after substituting bases of IVs into it.
8759
8760 2008-02-14  Michael Matz  <matz@suse.de>
8761
8762         PR target/34930
8763         * function.c (instantiate_virtual_regs_in_insn): Reload address
8764         before falling back to reloading the whole operand.
8765
8766 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
8767
8768         * config/s390/s390.c (s390_mainpool_start): Emit the pool
8769         before the first section switch note.
8770
8771 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8772
8773         * doc/bugreport.texi: Update copyright years.
8774         * doc/c-tree.texi: Likewise.
8775         * doc/cfg.texi: Likewise.
8776         * doc/cpp.texi: Likewise.
8777         * doc/cppinternals.texi: Likewise.
8778         * doc/fragments.texi: Likewise.
8779         * doc/frontends.texi: Likewise.
8780         * doc/gcc.texi: Likewise.
8781         * doc/gty.texi: Likewise.
8782         * doc/hostconfig.texi: Likewise.
8783         * doc/implement-c.texi: Likewise.
8784         * doc/libgcc.texi: Likewise.
8785         * doc/loop.texi: Likewise.
8786         * doc/makefile.texi: Likewise.
8787         * doc/options.texi: Likewise.
8788         * doc/passes.texi: Likewise.
8789         * doc/rtl.texi: Likewise.
8790         * doc/sourcebuild.texi: Likewise.
8791         * doc/standards.texi: Likewise.
8792         * doc/tree-ssa.texi: Likewise.
8793         * doc/trouble.texi: Likewise.
8794
8795         * doc/extend.texi: Use @: or add comma where appropriate.
8796         * doc/invoke.texi: Likewise.
8797         * doc/tm.texi: Likewise.
8798
8799 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
8800
8801         PR target/34393
8802         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
8803         to a reg.
8804
8805 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
8806
8807         * doc/md.texi (clz, ctz): Add reference.
8808         * doc/rtl.texi (clz, ctz): Likewise.
8809
8810 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8811
8812         PR other/35148
8813         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
8814         srcdir.
8815
8816 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
8817
8818         * config/s390/s390.c (struct constant_pool): New field
8819         emit_pool_after added.
8820         (s390_mainpool_start): Set the emit_pool_after flag according
8821         to the section switch notes.
8822         (s390_mainpool_finish): Consider emit_pool_after when emitting
8823         the literal pool at the end of the function.
8824         (s390_chunkify_start): Force literal pool splits at section
8825         switch notes.
8826
8827 2008-02-13  Michael Matz  <matz@suse.de>
8828
8829         PR debug/35065
8830         * var-tracking.c (clobber_variable_part): Correctly traverse the
8831         list.
8832
8833 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8834
8835         PR 29673
8836         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
8837         Add -fdump-ipa-inline.
8838         * tree-dump.c (dump_files): Remove tree-inlined dump.
8839         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
8840         
8841 2008-02-12  Richard Guenther  <rguenther@suse.de>
8842
8843         PR tree-optimization/35171
8844         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
8845         default defs.
8846
8847 2008-02-12  Richard Guenther  <rguenther@suse.de>
8848
8849         PR middle-end/35163
8850         * fold-const.c (fold_widened_comparison): Use get_unwidened in
8851         value-preserving mode.  Disallow final truncation.
8852
8853 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
8854
8855         PR middle-end/35136
8856         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
8857         code from here to...
8858         (force_gimple_operand): ...here.
8859
8860 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
8861
8862         PR c++/35144
8863         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
8864         non-compatible pointers.
8865         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
8866         different FIELD_DECLs, try harder by comparing field offsets, sizes
8867         and types.
8868
8869         PR inline-asm/35160
8870         * function.c (match_asm_constraints_1): Don't replace the same input
8871         multiple times.
8872
8873 2008-02-12  Anatoly Sokolov <aesok@post.ru>
8874
8875         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
8876         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
8877         (expand_epilogue): Restore RAMPZ register.
8878         * config/avr/avr.md (RAMPZ_ADDR): New constant.
8879
8880 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
8881
8882         * config/i386/cygwin.asm: (__alloca): Correct calling
8883         convention and alignment.
8884         (__chkstk): Force 8 byte stack alignment.
8885
8886 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
8887             Richard Guenther  <rguenther@suse.de>
8888
8889         PR tree-optimization/33992
8890         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
8891         the zero we compare against.
8892
8893 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
8894
8895         PR libfortran/35063
8896         * gthr-win32.h (__gthread_mutex_destroy_function): New function
8897         to CloseHandle after unlocking to prevent accumulation of handle
8898         count.
8899
8900 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8901
8902         PR middle_end/34150
8903         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
8904         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
8905         and update LABEL_NUSES during and after reload.
8906
8907 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
8908
8909         PR middle-end/34627
8910         * combine.c (simplify_if_then_else): Make sure the comparison is
8911         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
8912
8913 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
8914
8915         PR bootstrap/35051
8916         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
8917         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
8918         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
8919         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
8920         * tree.h (get_type_static_bounds): Likewise.
8921
8922 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8923
8924         * doc/invoke.texi (Option Summary, C++ Dialect Options)
8925         (Objective-C and Objective-C++ Dialect Options, Warning Options):
8926         Make -Wfoo language annotations match what the compiler outputs.
8927
8928 2008-02-08  Sa Liu  <saliu@de.ibm.com>
8929
8930         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
8931         intrinsics spu_convts, spu_convtu, spu_convtf.
8932
8933 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
8934
8935         * doc/extend.texi (Function Attributes) <noinline>: Mention
8936         asm ("") as method to keep calls.
8937
8938 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8939
8940         PR other/32754
8941         * doc/options.texi (Options): Replace references to opts.sh with
8942         optc-gen.awk.
8943         * opts-common.c: Likewise.
8944         * optc-gen.awk: Likewise.
8945         
8946 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
8947
8948         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
8949
8950 2008-02-07  Richard Henderson  <rth@redhat.com>
8951
8952         PR rtl-opt/33410
8953         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
8954         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
8955         funny mode.
8956
8957 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
8958
8959         PR tree-optimization/35085
8960         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
8961         for operand entry oe2 in addition to operand entry oe3 in order to
8962         expose more opportunities for vectorizer sum reduction.
8963
8964 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8965
8966         PR other/35107
8967         * Makefile.in (LIBS): Remove $(GMPLIBS).
8968         (cc1-dummy, cc1): Add $(GMPLIBS).
8969
8970 2008-02-06  Jan Hubicka  <jh@suse.cz>
8971
8972         PR target/23322
8973         * i386.md (moddf_integer): Do not produce partial memory stalls for
8974         targets where it hurts.
8975
8976 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
8977
8978         PR target/35083
8979         * optabs.c (expand_float): Do not check for decimal modes when
8980         expanding unsigned integer through signed conversion.
8981
8982 2008-02-06  Nick Clifton  <nickc@redhat.com>
8983
8984         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
8985         inside the clobber with a match_operand and duplicated operand
8986         number in the constraint.
8987         (ineqbranchsi): Delete redundant comment.
8988
8989 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
8990
8991         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
8992         builtin_define ("__USE_INIT_FINI__").
8993         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
8994         -msx multilibs.
8995         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
8996
8997 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8998
8999         PR documentation/30330
9000         * doc/invoke.texi (C++ Dialect Options)
9001         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9002         For each warning option -Wfoo that allows -Wno-foo, ensure both
9003         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9004         entry of -Wswitch-default, index -Wnormalized= including the
9005         `=', and -Wlarger-than-@var{len} including @var{len}.
9006
9007 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9008
9009         * config/i386/i386.md (floatunssisf2): Use
9010         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9011         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9012         Macroize expander using MODEF mode iterator.
9013
9014 2008-02-05  Diego Novillo  <dnovillo@google.com>
9015
9016         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9017
9018         PR 33738
9019         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9020
9021 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9022
9023         PR other/35070
9024         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9025
9026 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9027
9028         PR target/35084
9029         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9030         to indicate if a message should be generated.
9031         (init_cumulative_args): Updated.
9032         (function_value_32): Likewise.
9033
9034 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9035
9036         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9037
9038 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9039
9040         PR target/35083
9041         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9042         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9043
9044 2008-02-04  Diego Novillo  <dnovillo@google.com>
9045
9046         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9047
9048         PR 33738
9049         * tree-vrp.c (vrp_evaluate_conditional): With
9050         -Wtype-limits, emit a warning when comparing against a
9051         constant outside the natural range of OP0's type.
9052
9053 2008-02-04  Richard Guenther  <rguenther@suse.de>
9054
9055         PR middle-end/33631
9056         * expr.c (count_type_elements): Give for unions instead of
9057         guessing.
9058
9059 2008-02-04  Richard Guenther  <rguenther@suse.de>
9060
9061         PR middle-end/35043
9062         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9063         to TYPE_DOMAINs base type instead of using bitsizetype here.
9064
9065 2008-02-03  Jason Merrill  <jason@redhat.com>
9066
9067         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9068
9069 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9070
9071         PR other/29972
9072         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9073         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9074         (RS/6000 and PowerPC Options): Fix typos and markup.
9075         * doc/passes.texi (Tree-SSA passes): Likewise.
9076
9077 2008-02-02  Michael Matz  <matz@suse.de>
9078
9079         PR target/35045
9080         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9081         from record_last_reg_set_info.
9082         (record_last_reg_set_info): Take an RTX argument, iterate over all
9083         constituent hardregs.
9084         (record_last_set_info, record_opr_changes): Change calls to
9085         new signature or to record_last_reg_set_info_regno.
9086
9087 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9088
9089         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9090
9091 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9092
9093         PR rtl-optimization/34773
9094         * reg-notes.def (EQUAL): Mention significance of combination of
9095         REG_EQUAL and REG_RETVAL.
9096         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9097         insn that has a REG_RETVAL.
9098
9099 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9100
9101         PR bootstrap/33781
9102         * configure.ac (--enable-fixed-point): Disable unless explicitly
9103         requested on IRIX.
9104         * configure: Regenerate.
9105
9106 2008-02-01  Richard Guenther  <rguenther@suse.de>
9107
9108         PR other/35042
9109         * invoke.texi (-finline-limit): Remove no longer true parts
9110         of the documentation.  Note that there is no default value.
9111
9112 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9113             Mark Mitchell  <mark@codesourcery.com>
9114             Ben Elliston  <bje@au.ibm.com>
9115
9116         PR c/29326
9117         * doc/extend.texi (Other Builtins): Document.
9118
9119 2008-01-31  Tom Browder <tom.browder@gmail.com>
9120
9121         * doc/c-tree.texi (Types): Fix grammar.
9122         (Expression trees): Ditto.
9123         * doc/passes.texi (Tree-SSA passes): Ditto.
9124         
9125         * doc/configterms.texi (Configure Terms): Fix typo.
9126         * doc/cpp.texi (Common Predefined Macros): Ditto.
9127         * doc/md.texi (Machine Constraints): Ditto.
9128         
9129         * doc/makefile.texi (Makefile): Add comma.
9130
9131 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9132             Gerald Pfeifer  <gerald@pfeifer.com>
9133         
9134         * doc/sourcebuild.texi (Front End): Remove references to CVS
9135         and CVSROOT/modules.
9136         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9137         (Back End): Remove reference to CVS.
9138
9139 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9140
9141         PR target/34900
9142         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9143         comment from...
9144         (mips16_gp_pseudo_reg): ...here.
9145         * config/mips/mips.md (load_const_gp): Replace with...
9146         (load_const_gp_<mode>): ...this :P-based insn.
9147
9148 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9149
9150         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9151         options. Minor fixes.
9152         (-std): Move reference to standards closer to where language
9153         standards are first mentioned.
9154         
9155 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9156
9157         PR rtl-optimization/34995
9158         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9159         parameter and return a bool.  If the rtx parameter is nonnull,
9160         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9161         (find_reloads): Update call accordingly.  Pass the new operand
9162         if it needed no address reloads, otherwise pass null.
9163
9164 2008-01-30  Richard Henderson  <rth@redhat.com>
9165
9166         PR c/34993
9167         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9168         for unbounded arrays.
9169
9170 2008-01-30  Silvius Rus  <rus@google.com>
9171
9172         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9173
9174 2008-01-30  Jan Hubicka  <jh@suse.cz>
9175
9176         PR target/34982
9177         * i386.c (init_cumulative_args): Use real function declaration when
9178         calling locally.
9179
9180 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9181
9182         PR rtl-optimization/34998
9183         * global.c (build_insn_chain): Treat non-subreg_lowpart
9184         SUBREGs of pseudos as clobbering all the words covered by the
9185         SUBREG, not just all the bytes.
9186         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9187         original df_ref rather than an extract parameter.
9188         (global_conflicts): Update call accordingly.
9189
9190 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9191
9192         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9193         the overflow check to make it easier to read.
9194         (__fixtfdi): Change the type of the ll member in union
9195         long_double to UDItype_x.
9196
9197 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9198
9199         PR middle-end/34969
9200         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9201         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9202         * tree-inline.c (fold_marked_statements): Call
9203         cgraph_update_edges_for_call_stmt if folding a call statement.
9204         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9205         debug_generic_stmt calls, reset it back afterwards.
9206
9207         PR c/35017
9208         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9209         static decls.
9210         * c-typeck.c (build_external_ref): Don't pedwarn about
9211         static vars in current function's scope.
9212
9213 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9214
9215         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9216
9217 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9218
9219         PR c/35002
9220         * ipa-struct-reorg.c: Fix spelling.
9221         * params.def: Ditto.
9222
9223 2008-01-29  Richard Guenther  <rguenther@suse.de>
9224
9225         PR middle-end/35006
9226         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9227         field.
9228         * tree-inline.c (remap_type): Increment remapping_type_depth
9229         around remapping types.
9230         (copy_body_r): Only add referenced variables if they are referenced
9231         from code, not types.
9232
9233 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9234
9235         PR c++/34055
9236         PR c++/34103
9237         PR c++/34219
9238         PR c++/34606
9239         PR c++/34753
9240         PR c++/34754
9241         PR c++/34755
9242         PR c++/34919
9243         PR c++/34961
9244         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9245         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9246
9247 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9248
9249         PR target/34412
9250         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9251         pointer for tiny stack.
9252
9253 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9254
9255         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9256
9257 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9258
9259         * config/vx-common.h: Fix typo in comment.
9260
9261 2008-01-28  Ian Lance Taylor  <iant@google.com>
9262
9263         PR c++/34862
9264         PR c++/33407
9265         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9266         coalesce pointers if they have different DECL_NO_TBAA_P values.
9267         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9268         between variables with different DECL_NO_TBAA_P values.
9269
9270 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9271
9272         PR 31535
9273         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9274         are not legitimate small data references on SPE targets.
9275
9276 2008-01-28  David Daney  <ddaney@avtrex.com>
9277
9278         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9279
9280 2008-01-28  David Daney  <ddaney@avtrex.com>
9281
9282         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9283
9284 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9285
9286         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9287         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9288         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9289         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9290         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9291         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9292         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9293         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9294
9295 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9296
9297         * basic-block.h (condjump_equiv_p): Fix comment.
9298
9299 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9300
9301         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9302         print_generic_stmt_indented): Fix comment.
9303
9304 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9305
9306         * configure.ac (__stack_chk_fail): Add detecion for availability
9307         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9308         * configure: Regenerate.
9309
9310 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9311
9312         PR middle-end/34688
9313         * final.c (output_addr_const): Handle TRUNCATE.
9314
9315 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9316
9317         PR target/34711
9318         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9319         (zero_cost, infinite_cost): New constants.
9320         (struct cost_pair): Change type of cost to comp_cost.
9321         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9322         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9323         New functions.
9324         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9325         split_address_cost, ptr_difference_cost, difference_cost,
9326         get_computation_cost_at, get_computation_cost,
9327         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9328         determine_use_iv_cost_condition, determine_use_iv_costs,
9329         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9330         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9331         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9332         Change type of cost to comp_cost.
9333         (determine_iv_cost): Increase cost of non-original ivs, instead
9334         of decreasing the cost of original ones.
9335         (get_address_cost): Indicate the complexity of the addressing mode 
9336         in comp_cost.
9337         (try_add_cand_for): Prefer using ivs not specific to some object.
9338         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9339
9340 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9341             Janis Johnson  <janis187@us.ibm.com>
9342
9343         PR target/34814
9344         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9345         (TARGET_INSTANTIATE_DECLS): Likewise.
9346         * target.h (expand_to_rtl_hook): New target hook.
9347         (instantiate_decls): Likewise.
9348         * function.c (instantiate_decl): Make non-static.  Rename to...
9349         (instantiate_decl_rtl): ... this.
9350         (instantiate_expr): Use instantiate_decl_rtl.
9351         (instantiate_decls_1): Likewise.
9352         (instantiate_decls): Likewise.
9353         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9354         * function.h (instantiate_decl_rtl): Add prototype.
9355         * cfgexpand.c (target.h): New include.
9356         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9357         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9358         (TARGET_INSTANTIATE_DECLS): Likewise.
9359         (TARGET_INITIALIZER): New target hooks added.
9360         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9361         New prototype.
9362         * config/rs6000/rs6000.c (tree-flow.h): New include.
9363         (machine_function): Add sdmode_stack_slot field.
9364         (rs6000_alloc_sdmode_stack_slot): New function.
9365         (rs6000_instantiate_decls): Likewise.
9366         (rs6000_secondary_memory_needed_rtx): Likewise.
9367         (rs6000_check_sdmode): Likewise.
9368         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9369         (TARGET_INSTANTIATE_DECLS): Likewise.
9370         (rs6000_hard_regno_mode_ok): Allow SDmode.
9371         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9372         (rs6000_emit_move): Handle SDmode.
9373         (function_arg_advance): Likewise.
9374         (function_arg): Likewise.
9375         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9376         SDmode var args for 32-bit compiles.
9377         (rs6000_secondary_reload_class): Handle SDmode.
9378         (rs6000_output_function_epilogue): Likewise.
9379         (rs6000_function_value): Simplify if statement.
9380         (rs6000_libcall_value): Likewise.
9381         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9382         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9383         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9384         (movsd_hardfloat): New define_insn.
9385         (movsd_softfloat): Likewise.
9386         (movsd_store): Likewise.
9387         (movsd_load): Likewise.
9388         (extendsddd2): Likewise.
9389         (extendsdtd2): Likewise.
9390         (truncddsd2): Likewise.
9391         (movdd_hardfloat64): Fixup comment.
9392         (UNSPEC_MOVSD_LOAD): New constant.
9393         (UNSPEC_MOVSD_STORE): Likewise.
9394
9395 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9396
9397         PR c++/34965
9398         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9399         TRUTH_XOR_EXPR.
9400         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9401         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9402         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9403         and TRUTH_XOR_EXPR.
9404
9405 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9406
9407         PR target/34794
9408         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9409         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9410         __LONGDOUBLE128 too.
9411         * config/rs6000/aix61.h: New file.
9412
9413 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9414
9415         PR rtl-optimization/34959
9416         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9417         popcount and parity rtxes the same mode as their operand.
9418         Truncate or extend the result to the return value's mode
9419         if necessary.
9420
9421 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9422
9423         PR target/34981
9424         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9425         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9426         to GOT_VERSION_REGNUM.
9427         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9428         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9429         * config/mips/mips.c (mips_emit_call_insn): New function.
9430         (mips_call_tls_get_addr): Call mips_expand_call directly.
9431         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9432         emit_call_insn.
9433         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9434         (mips_expand_call): Update the call to mips16_build_call_stub
9435         accordingly and a remove redundant condition.  Assert that MIPS16
9436         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9437         the call insn.
9438         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9439         TARGET_USE_GOT.
9440         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9441         (mips_avoid_hazard): Remove hazard_set handling.
9442         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9443         (UNSPEC_RESTORE_GP): ...this.
9444         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9445         (FAKE_CALL_REGNO): Rename to...
9446         (GOT_VERSION_REGNUM): ...this.
9447         (type): Add "ghost" value.  Add an associated insn reservation.
9448         (hazard_set): Remove.
9449         (exception_receiver): Rename to...
9450         (restore_gp): ...this and update the unspec identifier accordingly.
9451         (exception_receiver, nonlocal_got_receiver): New expanders.
9452         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9453         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9454         (set_got_version, update_got_version): New patterns.
9455
9456 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9457
9458         PR target/34970
9459         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9460
9461 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9462
9463         PR other/31955
9464         * doc/install.texi2html: Generate gcc-vers.texi.
9465
9466 2008-01-25  DJ Delorie  <dj@redhat.com>
9467
9468         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9469
9470 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9471
9472         * config/c4x: Remove directory.
9473         * config.gcc (crx-*, mt-*): Mark obsolete.
9474         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9475         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9476         sh-*-rtemscoff*): Remove cases.
9477         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9478         * real.c (encode_c4x_single, decode_c4x_single,
9479         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9480         c4x_extended_format): Remove.
9481         * real.h (c4x_single_format, c4x_extended_format): Remove.
9482         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9483         on C4x.
9484         (Pragmas): Remove comment about c4x pragmas.
9485         * doc/install.texi (c4x): Remove target-specific instructions.
9486         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9487         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9488         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9489         refer to C4x source files as examples.
9490         (C4X_FLOAT_FORMAT): Remove documentation.
9491
9492 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9493
9494         * config/bfin/bfin.c (override_options): Reorder tests so that
9495         flag_pic gets enabled for -msep-data.
9496
9497 2008-01-25  Richard Guenther  <rguenther@suse.de>
9498
9499         PR middle-end/32244
9500         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9501         to its bitfield precision if required.
9502
9503 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9504
9505         PR middle-end/33880
9506         * tree-nested.c (walk_omp_for): New function.
9507         (convert_nonlocal_reference, convert_local_reference): Call
9508         walk_omp_for on OMP_FOR.
9509         (convert_call_expr): Call walk_body on OMP_FOR's
9510         OMP_FOR_PRE_INIT_BODY.
9511
9512 2008-01-25  Richard Guenther  <rguenther@suse.de>
9513
9514         PR tree-optimization/34966
9515         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9516         default defs and PHI_NODEs we have to insert after the
9517         defining statement.
9518
9519 2008-01-24  Nick Clifton  <nickc@redhat.com>
9520
9521         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9522         Provide a default definition.
9523         (LIBGCC2_UNITS_PER_WORD): Likewise.
9524
9525         * config/stormy16/stormy16.c: Include df.h for the prototype
9526         for df_regs_ever_live_p.
9527         (xstormy16_expand_builtin_va_start): Convert the stack offset
9528         into a component_ref and then use POINTER_PLUS_EXPR to add it
9529         to the incoming_virtual_args_rtx.
9530         (xstormy16_gimplify_va_arg_expr): Rename to
9531         xstormy16_gimplify_va_arg_expr.
9532         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9533         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9534         xstormy16_gimplify_va_arg_expr.
9535         Fix up some formatting issues.
9536
9537         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9538         Move to predicates.md.
9539         (xs_hi_general_operand): Likewise.
9540         (xs_hi_nonmemory_operand): Likewise.
9541         * config/stormy16/predicates.md:
9542         (xstormy16_carry_plus_operand): New predicate.
9543         (xs_hi_general_operand): New predicate.
9544         (xs_hi_nonmemory_operand): New predicate.
9545         * config/stormy16/stormy16-protos.h:
9546         (xstormy16_carry_plus_operand): Delete prototype.
9547         (xs_hi_general_operand): Likewise.
9548         (xs_hi_nonmemory_operand): Likewise.
9549
9550         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9551         modifiers as they are no longer needed and they can trigger
9552         reload spill failures.
9553
9554         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9555         with a match_operand in order to help reload.
9556
9557         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9558         constraint with 'e' for the 8th alternative as this version of
9559         the mov.w instruction only accepts the lower 8 registers.
9560
9561 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9562
9563         PR target/34856
9564         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9565         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9566         vector elements.
9567
9568 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9569
9570         PR middle-end/33333
9571         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9572
9573 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9574
9575         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9576         New functions.
9577         (remove_structure): Update allocations list before removing structure.
9578         
9579 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9580
9581         * ipa-struct-reorg.c (is_safe_cond_expr, 
9582         create_new_stmts_for_cond_expr): Use integer_zerop function,
9583         that recognize not only zero-pointer, but zero-integer too.
9584
9585 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9586
9587         PR other/22232
9588         * fixproto: Escape "." in sed expression that strips leading "./".
9589
9590 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9591
9592         PR driver/34904
9593         * gcc.c (SWITCH_OK): Removed.
9594         (SWITCH_LIVE): Changed to bit.
9595         (SWITCH_FALSE): Likewise.
9596         (SWITCH_IGNORE): Likewise.
9597         (switchstr): Change live_cond to unsigned int.
9598         (process_command): Replace SWITCH_OK with 0.
9599         (do_self_spec): Likewise.
9600         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9601         (give_switch): Likewise.
9602         (used_arg): Likewise.
9603         (do_spec_1): Set the SWITCH_IGNORE bit.
9604         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9605         bits.  Set the SWITCH_LIVE bit.
9606
9607 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9608
9609         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9610
9611 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9612
9613         PR tree-optimization/34472
9614         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9615         parameter to a "bool *" and set *DATA to false if there is
9616         an unsafe access.  Do not delete the structure here.
9617         (check_cond_exprs): Delete it here instead.
9618         (check_cond_exprs, exclude_cold_structs): Do not increase
9619         I when removing a structure.
9620
9621 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9622
9623         PR target/34856
9624         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9625         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9626
9627 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9628
9629         PR middle-end/34934
9630         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9631         a fixed vector for stack.
9632
9633 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9634
9635         PR c++/25701
9636         * doc/gcc.texi (Software development): Add a direntry for g++.
9637         
9638 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9639
9640         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9641         stale and straggling -fforce-addr comments above.
9642
9643         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9644         define.
9645         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9646         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9647
9648 2008-01-23  Michael Matz  <matz@suse.de>
9649
9650         PR debug/34895
9651         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9652         gen_type_die.
9653
9654 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9655
9656         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9657         malloc result type.
9658
9659 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9660
9661         * config/avr/avr.c (avr_current_arch): New variable.
9662         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9663         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9664         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9665         (avr_override_options): Init 'avr_current_arch'. 
9666         (base_arch_s): Move from here...
9667         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9668         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9669         'mega' to 'have_jmp_call'.
9670         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9671         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9672         macros.
9673         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9674         architectures.
9675         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9676         MULTILIB_MATCHES): (Ditto.).
9677
9678 2008-01-23  Richard Guenther  <rguenther@suse.de>
9679
9680         PR middle-end/31529
9681         * cgraphunit.c (cgraph_reset_node): Always mark the node
9682         not reachable if it is not queued already.
9683
9684 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9685
9686         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9687         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9688         (cputype_selected): New static variable.
9689         (bfin_handle_option): Set it if -mcpu is used.
9690         (override_option): Select default set of workarounds if no cpu type
9691         selected on the command line.
9692         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9693
9694         From  Michael Frysinger  <michael.frysinger@analog.com>
9695         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9696         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9697
9698         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9699         for bf547, bf523, bf524, and bf526.
9700         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9701         bf526.
9702         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9703         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9704         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9705         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9706         * doc/invoke.texi (Blackfin Options): Document that
9707         -mcpu now accept bf547, bf523, bf524, and bf526.
9708
9709 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9710
9711         PR rtl-optimization/34628
9712         * combine.c (try_combine): Stop and undo after the first combination
9713         if an autoincrement side-effect on the first insn has effectively
9714         been lost.
9715
9716 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9717
9718         PR target/34529
9719         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9720         Offset addresses are not valid for Altivec or paired float modes.
9721
9722 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
9723
9724         PR c++/34607
9725         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
9726         if DECL_INITIAL (decl) is error_mark_node.
9727
9728         PR c++/34914
9729         * c-common.c (handle_vector_size_attribute): Only allow
9730         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
9731         the same way as pointer, array etc. types.
9732         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
9733
9734         PR c++/34917
9735         * tree.c (build_type_attribute_qual_variant): Call
9736         build_qualified_type if attributes are equal, but quals are not.
9737
9738 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9739
9740         PR 32102
9741         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
9742         * flags.h (warn_strict_aliasing): Remove.
9743         (warn_strict_overflow): Remove.
9744         * opts.c (warn_strict_aliasing): Remove.
9745         (warn_strict_overflow): Remove.
9746         * c-opts.c (c_common_handle_option): -Wall only sets
9747         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
9748         (c_common_post_options): Give default values to -Wstrict-aliasing
9749         and -Wstrict-overflow if they are uninitialized.
9750         * common.opt (Wstrict-aliasing): Specify Var and Init.
9751         (Wstrict-overflow): Likewise.
9752
9753 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9754
9755         PR rtl-optimization/26854
9756         PR rtl-optimization/34400
9757         PR rtl-optimization/34884
9758         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
9759         DF_RD->gen.
9760         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
9761         (df_rd_bb_info.expanded_lr_out): Deleted
9762         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
9763         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
9764         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9765         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9766         Removed code to allocate, initialize or free expanded_lr_out.
9767         (df_rd_bb_local_compute_process_def): Restructured to make more
9768         understandable.
9769         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
9770         sets if the sets are being trimmed.
9771
9772 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9773
9774         PR bootstrap/32287
9775         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
9776         (as_vers): Likewise.
9777         * configure: Regenerated.
9778
9779 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9780
9781         PR middle-end/33092
9782         * tree-pass.h (pass_build_alias): New pass.
9783         * tree-ssa-alias.c (gate_build_alias): New.
9784         (pass_build_alias): New.
9785         * passes.c (init_optimization_passes): Add pass_build_alias after
9786         pass_create_structure_vars.
9787
9788 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
9789
9790         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
9791         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
9792         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
9793         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
9794         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
9795         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
9796         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
9797         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
9798         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
9799         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
9800         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
9801         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
9802         * config/s390/s390.md (FP_ALL): New mode iterator.
9803         (_d): New mode attribute.
9804         ("*signbit<mode>2>"): Changed mode of first operand.
9805         ("isinf<mode>2"): Changed mode of first operand.
9806         ("*TDC_insn"): Adaptation for DFP modes.
9807
9808 2008-01-22  Ben Elliston  <bje@au.ibm.com>
9809
9810         * tree.c (check_qualified_type): Improve function description.
9811
9812 2008-01-21  Jason Merrill  <jason@redhat.com>
9813
9814         PR c++/34196
9815         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
9816         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
9817         if it is set.
9818
9819 2008-01-21  DJ Delorie  <dj@redhat.com>
9820
9821         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
9822         return zero.
9823
9824 2008-01-21  Richard Guenther  <rguenther@suse.de>
9825
9826         PR middle-end/34856
9827         * tree-cfg.c (verify_expr): Allow all invariant expressions
9828         instead of just constant class ones as reference argument.
9829         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
9830         like any other constant.
9831         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9832
9833 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
9834
9835         * regmove.c (fixup_match_1): Update call crossed frequencies.
9836
9837 2008-01-21  Richard Guenther  <rguenther@suse.de>
9838
9839         PR c/34885
9840         * tree-inline.c (setup_one_parameter): Deal with mismatched
9841         types using a VIEW_CONVERT_EXPR.
9842
9843 2008-01-21  Alon Dayan  <alond@il.ibm.com>
9844             Olga Golovanevsky  <olga@il.ibm.com>
9845         
9846         PR tree-optimization/34701
9847         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
9848         when the structure size is not a power of 2.
9849
9850 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
9851
9852         * doc/install.texi: Add doc for --enable-checking=df.
9853         
9854 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9855
9856         PR rtl-optimization/34808
9857         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
9858
9859 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
9860
9861         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
9862         input.
9863
9864 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
9865
9866         PR rtl-optimization/26854
9867         PR rtl-optimization/34400
9868         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
9869         DF_RD->gen.
9870         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
9871         (df_rd_bb_info.expanded_lr_out): New.
9872         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
9873         * loop_iv.c (iv_analysis_loop_init): Ditto.
9874         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9875         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9876         Added code to allocate, initialize or free expanded_lr_out.
9877         (df_rd_bb_local_compute_process_def): Restructured to make
9878         more understandable.
9879         (df_rd_confluence_n): Add code to do nothing with fake edges and
9880         code to no apply invalidate_by_call sets if the sets are being trimmed.
9881         (df_lr_local_finalize): Renamed to df_lr_finalize.
9882         (df_live_local_finalize): Renamed to df_live_finalize.
9883
9884 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
9885
9886         PR target/34831
9887         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
9888         deciding whether to use reciprocal instructions.
9889
9890 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
9891
9892         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
9893         dwarf2out_note_section_used if cold_text_section is NULL.
9894
9895 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
9896
9897         PR gcov-profile/34610
9898         * tree-cfg.c (make_edges): Mark both outgoing edges from
9899         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
9900         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
9901         from OMP_FOR and OMP_CONTINUE outgoing edges.
9902
9903         * tree-profile.c (tree_profiling): Return early if
9904         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
9905         at the end.
9906         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
9907         from cfun to child_cfun.
9908         * function.h (struct function): Add after_tree_profile bit.
9909
9910 2008-01-19 Anatoly Sokolov <aesok@post.ru>
9911
9912         * config/avr/avr.S (_exit): Disable interrupt.
9913
9914 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
9915             Steven Bosscher  <stevenb.gcc@gmail.com>
9916
9917         PR rtl-optimization/26854
9918         PR rtl-optimization/34400
9919         * df-problems.c (df_live_scratch): New scratch bitmap.
9920         (df_live_alloc): Allocate df_live_scratch when doing df_live.
9921         (df_live_reset): Clear the proper bitmaps.
9922         (df_live_bb_local_compute): Only process the artificial defs once
9923         since the order is not important.
9924         (df_live_init): Init the df_live sets only with the variables
9925         found live by df_lr.
9926         (df_live_transfer_function): Use the df_lr sets to prune the
9927         df_live sets as they are being computed.  
9928         (df_live_free): Free df_live_scratch.
9929
9930 2008-01-18  Ian Lance Taylor  <iant@google.com>
9931
9932         * common.opt: Add fmerge-debug-strings.
9933         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
9934         flag_merge_debug_strings rather than flag_merge_constants.
9935         * doc/invoke.texi (Option Summary): Mention
9936         -fmerge-debug-strings.
9937         (Debugging Options): Document -fmerge-debug-strings.
9938
9939 2008-01-18  Ian Lance Taylor  <iant@google.com>
9940
9941         PR c++/33407
9942         * tree.h (DECL_IS_OPERATOR_NEW): Define.
9943         (struct tree_function_decl): Add new field operator_new_flag.
9944         * tree-inline.c (expand_call_inline): When inlining a call to
9945         operator new, force the return value to go into a variable, and
9946         set DECL_NO_TBAA_P on that variable.
9947         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
9948
9949 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
9950
9951         PR debug/34484
9952         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
9953         DWARF2_DEBUGGING_INFO.
9954         (dwarf2out_note_section_used): Ditto.  Add prototype.
9955         (have_multiple_function_sections, text_section_used,
9956         cold_text_section_used, *cold_text_sections): Move declarations
9957         before their uses.
9958
9959 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
9960
9961         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
9962         field and add signal_ra.
9963         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
9964         assignments to frame state pc.  Move end of stack check after
9965         MD_FALLBACK_FRAME_STATE_FOR.
9966         (uw_update_context_1): Use frame state signal_regs if set, instead
9967         of checking signal_frame flag.
9968         (uw_update_context): Use frame state signal_ra if set.
9969         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
9970         * config/xtensa/linux-unwind.h: New file.
9971
9972 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
9973
9974         * modulo-sched.c (get_sched_window): Fix comment typo.
9975
9976 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
9977
9978         PR tree-optimization/34648
9979         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
9980
9981 2008-01-17  Anatoly Sokolov <aesok@post.ru>
9982
9983         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
9984         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
9985
9986 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
9987
9988         PR rtl-optimization/34400
9989         * df-core.c (df_worklist_dataflow_overeager,
9990         df_worklist_dataflow_doublequeue): New functions.
9991         (df_worklist_dataflow): Two different worklist solvers.
9992         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
9993         New param.
9994
9995 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9996
9997         PR testsuite/34821
9998         * doc/invoke.texi: Document the dependence on pthread for fopenmp
9999         and ftree-parallelize-loops.
10000
10001 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10002
10003         PR rtl-optimization/34826
10004         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10005
10006 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10007
10008         * global.c (find_reg): Mark the eh regs as used if necessary.
10009         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10010         * ra.h (struct allocno): no_eh_reg field added.  Changed
10011         no_stack_reg type to bitfield.
10012
10013 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10014
10015         * tree.c (substitute_in_expr): Add missing 'break'.
10016
10017 2008-01-17  Richard Guenther  <rguenther@suse.de>
10018
10019         PR tree-optimization/34825
10020         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10021         x / x as division to handle.
10022
10023 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10024
10025         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10026         "-pthread" is specified.
10027         * pa-hpux11.h (LIB_SPEC): Likewise.
10028
10029 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10030             Peter Bergner  <bergner@vnet.ibm.com>
10031
10032         PR rtl-optimization/33796
10033         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10034
10035 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10036
10037         PR libgfortran/34699
10038         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10039         static links.
10040         * pa-hpux10.h (LINK_SPEC): Likewise.
10041         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10042
10043 2008-01-16  Richard Guenther  <rguenther@suse.de>
10044
10045         PR middle-end/32628
10046         * fold-const.c (fold_convert_const_int_from_int): Do not
10047         set overflow if that occured only because of a sign extension
10048         change when converting from/to a sizetype with the same
10049         precision and signedness.
10050
10051 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10052
10053         PR debug/34249
10054         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10055         location address to the correct place.  Update copyright year.
10056
10057 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10058
10059         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10060         no dependences in the dependence_relations vector.
10061
10062 2008-01-16  Jan Hubicka  <jh@suse.cz>
10063
10064         PR rtl-optimization/31396
10065         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10066         * cfg.c (dump_reg_info): Print it.
10067         * regs.h (struct reg_info_t): add freq_calls_crossed.
10068         (REG_FREQ_CALLS_CROSSED): New macro.
10069         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10070         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10071         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10072         regmove_optimize): Update call crossed frequencies.
10073         * local-alloc.c (struct qty): Add freq_calls_crossed.
10074         (alloc_qty): Copute freq_calls_crossed.
10075         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10076         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10077         * ra.h (struct allocno): Add freq_calls_crossed.
10078
10079 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10080
10081         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10082         libgomp when compiling with ftree-parallelize-loops.
10083         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10084
10085 2008-01-16  Richard Guenther  <rguenther@suse.de>
10086
10087         PR tree-optimization/34769
10088         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10089         * tree.c (int_cst_value): Instead make this function more
10090         permissive in what it accepts as valid input.  Document this
10091         function always sign-extends the value.
10092
10093 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10094             Richard Guenther  <rguenther@suse.de>
10095
10096         PR c/34668
10097         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10098         (gimple_fold_indirect_ref_rhs): ... this.
10099         (gimple_fold_indirect_ref): New function with foldings
10100         that preserve lvalueness.
10101         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10102         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10103         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10104         to fold an INDIRECT_REF, fall back to the old use of
10105         fold_indirect_ref_1.
10106
10107 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10108
10109         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10110         free_conflict_function.
10111         (compute_self_dependence): Same.
10112
10113 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10114
10115         PR debug/34249
10116         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10117         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10118         function global.
10119         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10120         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10121         for DWARF2_UNWIND_INFO targets.
10122
10123 2008-01-16  Richard Guenther  <rguenther@suse.de>
10124
10125         PR c/34768
10126         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10127         type qualifiers for function types.
10128
10129 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10130
10131         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10132         loop_iterator li from previous commit.
10133
10134 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10135
10136         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10137
10138 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10139
10140         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10141         (parallelize_loops): Don't parallelize irreducible components.
10142
10143 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10144
10145         PR c++/24924
10146         * c-opts (c_common_post_options): Do not enable CPP
10147         flag_pedantic_errors by default.
10148         
10149 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10150
10151         PR rtl-optimization/31944
10152         * cse.c (remove_pseudo_from_table): New function.
10153         (merge_equiv_classes): Use above function to remove pseudo-registers.
10154         (invalidate): Likewise.
10155
10156 2008-01-13  Richard Guenther  <rguenther@suse.de>
10157
10158         PR middle-end/34601
10159         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10160         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10161
10162 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10163
10164         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10165         validate_change to unshare the source of the PC set.
10166
10167 2008-01-12  Jan Hubicka  <jh@suse.cz>
10168
10169         PR middle-end/32135
10170         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10171         references above array bounds.  This might trigger bounds checks for
10172         pointers to arrays.
10173
10174 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10175
10176         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10177         new_replaceable_dependencies.
10178
10179 2008-01-12  Doug Kwan  <dougkwan@google.com>
10180
10181         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10182         instead of OPT_Wreturn_type in warning due to ignored return type
10183         qualifiers.
10184         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10185         options included in -Wextra.
10186         * c.opt: New option -Wignored_qualifiers.
10187         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10188         -Wignore_qualifiers.
10189         (-Wignored-qualifiers): Document.
10190         (-Wreturn-type): Remove description of functionality now handled
10191         by -Wignored-qualifiers.
10192
10193 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10194
10195         PR ada/33788
10196         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10197         NOP_EXPR if it is between integral types with the same precision.
10198
10199 2008-01-12  Jan Hubicka  <jh@suse.cz>
10200
10201         PR other/28023
10202         * invoke.texi (max-inline-recursive-depth): Fix default value.
10203
10204 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10205
10206         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10207         correct type.
10208
10209 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10210         
10211         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10212         
10213 2008-01-11  James E. Wilson  <wilson@specifix.com>
10214
10215         PR target/26015
10216         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10217
10218 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10219
10220         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10221         save/restore frame pointer register and don't use 'call-prologues' 
10222         optimization in function with "OS_task" attribute.
10223
10224 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10225
10226         PR middle-end/31309
10227         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10228         when copying to memory.
10229
10230 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10231
10232         PR rtl-optimization/30905
10233         * cfgcleanup.c: Include dce.h
10234         (crossjumps_occured): New global variable.
10235         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10236         If something changed, set crossjumps_occured to true.
10237         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10238         Don't add/remove fake edges to exit here...
10239         (cleanup_cfg): ...but do it here, when crossjumping.
10240         Run a fast DCE when successful crossjumps occured in the latest
10241         iteration of try_optimize_cfg.
10242
10243 2008-01-11  Richard Guenther  <rguenther@suse.de>
10244
10245         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10246         (struct vn_unary_op_s): Likewise.
10247         (vn_reference_insert): Free old reference on hash collision.
10248
10249 2008-01-10  Raksit Ashok  <raksit@google.com>
10250
10251         PR rtl-optimization/27971
10252         * combine.c (find_split_point): Split PLUS expressions which are
10253         inside a MEM rtx, and whose first operand is complex.
10254
10255 2008-01-10  DJ Delorie  <dj@redhat.com>
10256
10257         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10258         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10259         (m32c_hard_regno_ok): Call the underlying function.
10260
10261 2008-01-10  Richard Guenther  <rguenther@suse.de>
10262
10263         PR middle-end/34683
10264         * tree-cfg.c (tree_merge_blocks): Do not go through the
10265         full-blown folding and stmt updating path if we just deal
10266         with virtual operands.
10267         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10268         test for abnormal SSA_NAMEs.
10269
10270 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10271
10272         PR middle-end/34641
10273         * reload.c (push_reload): Add assertions.  All constants from
10274         reg_equiv_constant should have been used for replacing the respective
10275         pseudo earlier.
10276         (find_reloads_address): Invoke find_reloads_address_part for
10277         constant taken from the reg_equiv_constant array.
10278
10279 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10280
10281         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10282         field (valnum) the first in the struct.  Replace bools with
10283         unit bit fields.
10284
10285 2008-01-10  Richard Guenther  <rguenther@suse.de>
10286
10287         PR tree-optimization/34651
10288         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10289         types and ordering for masking and converting.
10290
10291 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10292
10293         PR tree-optimization/34017
10294         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10295         also for PHI_NODE expressions.
10296
10297 2008-01-09  Jan Hubicka  <jh@suse.cz>
10298
10299         PR tree-optimization/34708
10300         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10301         based on number of case labels.
10302         (init_inline_once): Remove switch_cost.
10303         * tree-inline.h (eni_weights_d): Remove switch_cost.
10304
10305 2008-01-09  Richard Guenther  <rguenther@suse.de>
10306         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10307
10308         PR middle-end/30132
10309         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10310         temporary if an rvalue is ok or an lvalue is not required.
10311
10312 2008-01-09  Richard Guenther  <rguenther@suse.de>
10313
10314         PR middle-end/34458
10315         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10316         adjust return type.
10317
10318 2008-01-09  Richard Guenther  <rguenther@suse.de>
10319
10320         PR middle-end/34679
10321         * tree.c (host_integerp): Check for sizetype only if the
10322         type is an integer type.
10323
10324 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10325
10326         PR debug/26364
10327         * opts.c (decode_options): Disable inlining of functions called
10328         once if not in unit-at-a-time mode.
10329
10330 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10331
10332         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10333
10334 2008-01-08  Richard Guenther  <rguenther@suse.de>
10335
10336         PR middle-end/31863
10337         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10338         out early if the result will be unused.
10339
10340 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10341
10342         PR target/34709
10343         Revert:
10344
10345         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10346         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10347         for TARGET_RECIP.       
10348         
10349 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10350         
10351         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10352         for vectorization tuned.
10353         
10354 2008-01-08  Richard Guenther  <rguenther@suse.de>
10355
10356         PR tree-optimization/34683
10357         * tree-ssa-operands.c (operand_build_cmp): Export.
10358         * tree-ssa-operands.h (operand_build_cmp): Declare.
10359         * tree-vn.c (vuses_compare): Remove.
10360         (sort_vuses): Use operand_build_cmp.
10361         (sort_vuses_heap): Likewise.
10362         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10363         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10364         (vdefs_to_vec): Do not sort already sorted VDEFs.
10365
10366 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10367
10368         PR middle-end/34694
10369         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10370
10371 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10372
10373         PR target/34702
10374         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10375         limitations of reciprocal sequences on x86 targets.
10376
10377 2008-01-08  Richard Guenther  <rguenther@suse.de>
10378
10379         PR tree-optimization/34683
10380         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10381
10382 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10383
10384         PR target/34622
10385         * config/darwin.c (darwin_mergeable_string_section): Don't use
10386         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10387
10388 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10389
10390         PR target/34682
10391         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10392         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10393         predicates of op0 and op1 to register_operand.
10394         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10395         expander using X87MODEF mode iterator.  Change predicates of
10396         op0 and op1 to register_operand.
10397         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10398         corresponding patterns and macroize using MODEF macro.  Change
10399         predicates of op0 and op1 to register_operand and remove
10400         "m" constraint. Disparage "r" alternative with "!".
10401         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10402         macroize using X87MODEF macro.  Change predicates of op0 and op1
10403         to register_operand and remove "m" constraint.  Disparage "r"
10404         alternative with "!".
10405         (absneg splitter with memory operands): Remove.
10406         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10407         patterns and macroize using X87MODEF mode iterator.
10408         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10409         Change predicate of op1 to register_operand.
10410         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10411         for memory operands.
10412
10413 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10414
10415         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10416
10417 2008-01-07  Richard Guenther  <rguenther@suse.de>
10418
10419         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10420         fields.
10421
10422 2008-01-07  Richard Guenther  <rguenther@suse.de>
10423
10424         PR tree-optimization/34683
10425         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10426         VOPs of the needed size to save memory.  Use VEC_quick_push
10427         to save compile-time.
10428         (vdefs_to_vec): Likewise.
10429
10430 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10431
10432         * config/spu/spu.md (divdf3): Genetate inline code for double
10433         division.  The implementation doesn't handle INF or NAN, therefore it
10434         only applies when -ffinite-math-only is given.
10435
10436 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10437
10438         PR libstdc++/34680
10439         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10440         * doc/cpp.texi ([Common Predefined Macros]): Document.
10441
10442 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10443
10444         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10445         order to use commutative addition instead of subtraction.
10446
10447 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10448             Mircea Namolaru  <namolaru@il.ibm.com>
10449             Vladimir Yanovsky  <yanov@il.ibm.com>
10450             Revital Eres  <eres@il.ibm.com>
10451
10452         PR tree-optimization/34263
10453         * tree-outof-ssa.c (process_single_block_loop_latch,
10454         contains_tree_r): New functions.
10455         (analyze_edges_for_bb): Call process_single_block_loop_latch
10456         function to empty single-basic-block latch block if possible.
10457
10458 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10459
10460         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10461         for TARGET_RECIP.
10462         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10463
10464 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10465
10466         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10467
10468 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10469
10470         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10471
10472 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10473
10474         PR tree-optimization/34618
10475         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10476         flag from T.
10477
10478 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10479
10480         PR target/34673
10481         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10482         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10483         Update copyright year.
10484
10485         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10486         Update copyright year.
10487         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10488         using NR fixup.
10489
10490 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10491
10492         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10493         edge does not point to current bb before changing need_assert.
10494
10495 2008-01-04  Richard Guenther  <rguenther@suse.de>
10496
10497         PR middle-end/34029
10498         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10499         for verifying purposes if they are is_gimple_min_invariant.
10500
10501 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10502
10503         PR tree-optimization/34448
10504         PR tree-optimization/34465
10505         * gimplify.c (gimplify_init_constructor): Add new parameter
10506         notify_temp_creation.  Use it.
10507         (gimplify_modify_expr_rhs): Take volatiles into account when
10508         optimizing constructors.
10509         Do not optimize constructors if gimplify_init_constructor will dump to
10510         memory.
10511         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10512         * gcc.c-torture/compile/pr34448.c: New.
10513
10514 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10515
10516         PR gcov-profile/34609
10517         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10518         return_slot if result is TREE_ADDRESSABLE.
10519
10520 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10521
10522         * config/mips/mips.md (sqrt_condition): Tweak comment.
10523         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10524
10525 2008-01-03  Tom Tromey  <tromey@redhat.com>
10526
10527         PR c/34457
10528         * c-common.c (c_type_hash): Handle VLAs.
10529
10530 2008-01-03  Jan Hubicka  <jh@suse.cz>
10531
10532         PR tree-optimization/31081
10533         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10534         0 when inlining and not inlining to first basic block.
10535         (remap_decl): When var is initialized to 0, don't set default_def.
10536         (expand_call_inline): Set entry_bb.
10537         * tree-inline.h (copy_body_data): Add entry_bb.
10538
10539 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10540
10541         PR c++/34619
10542         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10543         before returning.
10544
10545         PR tree-optimization/29484
10546         * tree-inline.c (inline_forbidden_p_2): New function.
10547         (inline_forbidden_p): Disallow inlining if some static var
10548         has an address of a local LABEL_DECL in its initializer.
10549         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10550         vs. inlining.
10551
10552 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10553
10554         PR tree-optimization/34635
10555         * tree-data-ref.c (add_other_self_distances): Make sure that the
10556         evolution step is constant.
10557
10558 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10559
10560         PR middle-end/34608
10561         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10562
10563 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10564
10565         * tree-sra.c (scalarize_init): Insert the generate_element_init
10566         statements after the generate_element_zero statements.
10567
10568 2008-01-02  Richard Guenther  <rguenther@suse.de>
10569
10570         PR middle-end/34093
10571         PR middle-end/31976
10572         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10573         for very large number of operands instead of ICEing.
10574
10575 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10576
10577         PR target/34013
10578         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10579         while stack probing.
10580
10581 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10582
10583         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10584         in C++0x mode.
10585
10586 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10587
10588         PR libmudflap/26442
10589         * tree-mudflap.c (mx_register_decls): Guard warning by
10590         !DECL_ARTIFICIAL check.
10591
10592 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10593
10594         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10595         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10596         sse5_perm<mode>): Fix constraints.