OSDN Git Service

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