OSDN Git Service

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