OSDN Git Service

Fix c++/27975.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2008-05-27  Michael Matz  <matz@suse.de>
2
3         PR c++/27975
4         * c.opt (Wenum-compare): New warning option.
5         * doc/invoke.texi  (Warning Options): Document -Wenum-compare.
6
7 2008-05-27  Michael Matz  <matz@suse.de>
8
9         PR middle-end/36326
10         * tree-gimple.c (is_gimple_mem_rhs): Remove work-around for
11         non-BLKmode types.
12         * tree-tailcall.c (find_tail_calls): Don't mark calls storing
13         into memory as tail calls.
14
15 2008-05-27  Richard Guenther  <rguenther@suse.de>
16
17         PR tree-optimization/36339
18         * tree-ssa-alias.c (set_initial_properties): Escaped pt_anything
19         pointers cause all addressable variables to be call clobbered.
20
21 2008-05-27  Richard Guenther  <rguenther@suse.de>
22
23         PR tree-optimization/36245
24         * tree-ssa-address.c (add_to_parts): Deal with non-pointer
25         bases.
26
27 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
28
29         * config/s390/s390.md: Replace all occurences of the 'm'
30         constraint with 'RT'.
31
32 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
33
34         * config/s390/s390.md ("cpu_facility", "enabled"): Attribute
35         definitions added.
36         ("*movdi_64dfp", "*movdi_64extimm", "*movdi_64"): Merged into
37         "*movdi_64".
38         ("*anddi3_extimm", "*anddi3"): Merged into "*anddi3".
39         ("*iordi3_extimm", "*iordi3"): Merged into "*iordi3".
40         ("*xordi3_extimm", "*xordi3"): Merged into "*xordi3".
41
42 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
43
44         * reload.c: (find_reloads): Skip alternatives according to the
45         "enabled" attribute. Constify the constraint variable.
46         * recog.c (get_attr_enabled): Add default implementation.
47         (extract_insn): Set the alternative_enabled_p array
48         in the recog_data struct.
49         (preprocess_constraints, constrain_operands): Skip
50         alternatives according to the "enabled" attribute
51         * recog.h (struct recog_data): New field alternative_enabled_p.
52         (skip_alternative): New inline function.
53         * regclass.c: (record_operand_costs): Check the "enabled"
54         attribute.
55         (record_reg_classes): Skip alternative according to the
56         "enabled" attribute.
57
58         * doc/md.texi: Add documention for the "enabled" attribute.
59
60 2008-05-27  Andreas Krebbel  <krebbel1@de.ibm.com>
61
62         * defaults.h (TARGET_MEM_CONSTRAINT): New target macro added.
63         * postreload.c (reload_cse_simplify_operands): Replace 'm'
64         constraint with TARGET_MEM_CONSTRAINT.
65         * recog.c (asm_operand_ok, preprocess_constraints,
66         constrain_operands): Likewise.
67         * regclass.c (record_reg_classes): Likewise.
68         * reload.c (find_reloads, alternative_allows_const_pool_ref):
69         Likewise.
70         * reload1.c (maybe_fix_stack_asms): Likewise.
71         * stmt.c (parse_output_constraint, parse_input_constraint):
72         Likewise.
73         * recog.h: Adjust comment.
74         * genpreds.c (generic_constraint_letters): Remove 'm' constraint.
75         * genoutput.c (note_constraint): Don't emit error for 'm'
76         constraint.
77         * doc/md.texi: Add a note to description of 'm' constraint.
78         * doc/tm.texi: Document the new TARGET_MEM_CONSTRAINT macro.
79
80 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
81
82         * tree-sra.c (sra_type_can_be_decomposed_p) <RECORD_TYPE>: Make sure
83         that the bitfield is of integral type before testing its precision.
84
85 2008-05-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
86             Sa Liu  <saliu@de.ibm.com> 
87
88         * config/spu/spu.c (spu_init_libfuncs): Add __multi3, __divti3, 
89         __modti3, __udivti3, __umodti3 and __udivmodti4.
90         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add files
91         that implement TImode mul and div functions.
92         * config/spu/multi3.c: New. Implement __multi3.
93         * config/spu/divmodti4.c: New. Implement _udivmodti4 and others.
94         * testsuite/gcc.target/spu/muldivti3.c: New. Test TImode mul and div
95         functions on SPU.
96
97 2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
98
99         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
100         new tls_gd_* and tls_ld_* insns instead of an insn sequence.
101         * config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
102         tls_sysv_suffix): New mode and mode attribute iterators.
103         (tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
104         (lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
105         (tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
106         tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
107         tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
108         iterators.
109
110 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
111
112         PR tree-optimization/36329
113         * tree.h (CALL_CANNOT_INLINE_P): Add access check.
114         * tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
115         * cgraphbuild.c (initialize_inline_failed): Use the latter
116         macro in lieu of the former.
117         * ipa-inline.c (cgraph_mark_inline): Likewise.
118         (cgraph_decide_inlining_of_small_function): Likewise.
119         (cgraph_decide_inlining): Likewise.
120         (cgraph_decide_inlining_incrementally): Likewise.
121
122 2008-05-26  Tristan Gingold  <gingold@adacore.com>
123             Anatoly Sokolov  <aesok@post.ru>
124
125         * config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
126         instead of pm_lo8/pm_hi8 to makes this call working on avr6.
127         * config/avr/avr.c (expand_prologue): Tune "call_prologue" 
128         optimization for 'avr6' architecture.
129
130 2008-05-26  Andy Hutchinson  <hutchinsonandy@aim.com>
131
132         PR target/34932
133         * config/avr/avr.md (*addhi3_zero_extend2): Remove.
134
135 2008-05-26  Richard Guenther  <rguenther@suse.de>
136
137         * tree-ssa-sccvn.c (expr_has_constants): Declare.
138         (visit_reference_op_load): Initialize VN_INFO->has_constants
139         properly.
140
141 2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
142
143         PR middle-end/36253
144         * caller-save.c (insert_restore): Verify alignment of spill
145         space.
146         (insert_save): Likewise.
147
148         * cfgexpand.c (LOCAL_ALIGNMENT): Removed.
149
150         * defaults.h (LOCAL_ALIGNMENT): New. Provide default.
151         (STACK_SLOT_ALIGNMENT): Likewise.
152
153         * function.c (LOCAL_ALIGNMENT): Removed.
154         (get_stack_local_alignment): New.
155         (assign_stack_local): Use it.  Set alignment on stack slot.
156         (assign_stack_temp_for_type): Use get_stack_local_alignment.
157
158         * config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
159         (STACK_SLOT_ALIGNMENT): New.
160
161         * config/i386/i386.c (ix86_local_alignment): Handle caller-save
162         stack slot in XFmode.
163
164         * doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
165
166 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
167
168         PR/36321
169         * config/i386/i386.md (allocate_stack_worker_64): Make sure
170         argument operand in rax isn't removed.
171
172 2008-05-26  Richard Guenther  <rguenther@suse.de>
173
174         PR middle-end/36300
175         * fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
176         not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
177
178 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
179
180         PR bootstrap/36331
181         * c-cppbuiltin.c (define__GNUC__): Re-add definition of __GNUG__.
182
183 2008-05-26  Dominique Dhumieres  <dominiq@lps.ens.fr>
184
185         * config/darwin-c.c: Include "incpath.h" instead of "c-incpath.h".
186         * config/t-darwin: Use "incpath.h" instead of "c-incpath.h".
187
188 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
189
190          * tree-nested.c (convert_tramp_reference) <ADDR_EXPR>: Do not
191         build a trampoline if we don't want one.
192         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Do not
193         return zero for nested functions if we don't want a trampoline.
194
195 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
196
197         * doc/invoke.texi: Added f77, f77-cpp-input to list of file types.
198
199 2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
200
201         PR fortran/18428
202         * c.opt: Removed undocumented option '-lang-fortran'.
203         * c-common.h: Removed global variable 'lang_fortran'.
204         * c-opts.c (c_common_handle_option): Removed code to handle
205         option '-lang-fortran'. Updated includes.
206         * c-cppbuiltin.c (c_cpp_builtins): Removed conditional
207         definition of '__GFORTRAN__'.
208         (define__GNUC__): Reimplemented to use BASEVER and
209         cpp_define_formatted.
210         (builtin_define_with_value_n): Removed.
211         * c-incpath.h: Renamed to ...
212         * incpath.h: ... this.
213         * c-incpath.c: Renamed to ...
214         * incpath.c: ... this. Updated includes.
215         * fix-header.c: Updated includes.
216         * Makefile.in: Replaced c-incpath.[ch] by incpath.[ch].
217         (c-cppbuiltin.o): Added dependency on and definition of BASEVER.
218         (OBJ-archive): Added cppdefault.o, incpath.o and prefix.o.
219
220 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
221
222         * tree.h: Update the table of flags used on tree nodes.
223         (TREE_NO_TRAMPOLINE): New accessor for static_flag.
224         (SAVE_EXPR_RESOLVED_P): Use automatically-built access check.
225         (FORCED_LABEL): Add access check.
226         (CALL_EXPR_RETURN_SLOT_OPT): Likewise.
227         (ASM_INPUT_P): Likewise.
228         (ASM_VOLATILE_P): Likewise.
229         (EH_FILTER_MUST_NOT_THROW): Access static_flag directly.
230         (OMP_SECTION_LAST): Access private_flag directly.
231         (OMP_RETURN_NOWAIT): Likewise.
232         (OMP_PARALLEL_COMBINED): Likewise.
233         (OMP_CLAUSE_PRIVATE_DEBUG): Access public_flag directly.
234         (OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE): Likewise.
235         * tree-ssa-propagate.c (STMT_IN_SSA_EDGE_WORKLIST): Access
236         deprecated_flag directly.
237
238 2008-05-25  H.J. Lu  <hongjiu.lu@intel.com>
239
240         * final.c (frame_pointer_needed): Removed.
241         * flags.h (frame_pointer_needed): Likewise.
242
243         * function.h (rtl_data): Add frame_pointer_needed.
244         (frame_pointer_needed): New.
245
246 2008-05-25  Arthur Loiret  <arthur.loiret@u-psud.fr>
247
248         * config.gcc (sh2[lbe]*-*-linux*): Allow target.
249
250 2008-05-25  Steven Bosscher  <stevenb.gcc@gmail.com>
251
252         * gcse.c (hash_scan_set): Do not pick up a REG_EQUAL value if
253         SRC is a REG.
254
255 2008-05-25  Alan Modra  <amodra@bigpond.net.au>
256
257         * c-common.c (strip_array_types): Move function to..
258         * tree.c: ..here.
259         (get_inner_array_type): Delete.
260         * c-common.h (strip_array_types): Move declaration to..
261         * tree.h: ..here.
262         (get_inner_array_type): Delete.
263         * config/i386/i386.c (x86_field_alignment): Use strip_array_types.
264         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
265         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
266         * config/pa/pa.c (emit_move_sequence): Likewise.
267
268 2008-05-24  H.J. Lu  <hongjiu.lu@intel.com>
269
270         * config/i386/i386.md (*sse_prologue_save_insn): Set length
271         attribute to 34.
272
273 2008-05-24  Andy Hutchinson  <hutchinsonandy@aim.com>
274
275         * function.c: Include target hook for nonlocal_goto frame value.
276
277 2008-05-24  Richard Guenther  <rguenther@suse.de>
278
279         * tree-dfa.c (refs_may_alias_p): Re-instantiate case that
280         a scalar variable can be only accessed through a pointer
281         or a union.
282
283 2008-05-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
284
285         * builtins.c (fold_builtin_fpclassify): Fix spelling of FP_INFINITE.
286         * doc/extend.texi: Likewise.
287
288 2008-05-23  DJ Delorie  <dj@redhat.com>
289
290         * config/m32c/jump.md (untyped_call): Add.
291
292         * config/m32c/m32c.c (m32c_return_addr_rtx): Change pointer type
293         for A24 to PSImode.
294         (m32c_address_cost): Detail costs for indirect offsets.
295
296 2008-05-23  Rafael Espindola  <espindola@google.com>
297
298         * see.c (see_get_extension_data): Don't use SUBREG_REG to test
299         if a node is a SUBREG.
300         (see_analyze_one_def): Don't use SUBREG_REG to test if a node
301         is a SUBREG.
302
303 2008-05-23  Paul Brook  <paul@codesourcery.com>
304             Carlos O'Donell  <carlos@codesourcery.com>
305
306         * doc/extend.texi: Clarify use of __attribute__((naked)).
307         * doc/tm.texi: Document TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
308         * target.h (gcc_target): Add allocate_stack_slots_for_args.
309         * function.c (use_register_for_decl): Use
310         targetm.calls.allocate_stack_slots_for_args.
311         * target-def.h (TARGET_CALLS): Add 
312         TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS.
313         * config/arm/arm.c (arm_allocate_stack_slots_for_args): 
314         New function.
315         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
316
317 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
318
319         * expr.c (highest_pow2_factor) <BIT_AND_EXPR>: New case.
320
321 2008-05-23  Steven Munroe  <sjmunroe@us.ibm.com>
322
323         * config/rs6000/darwin-ldouble.c (fmsub): Eliminate the full
324         PACK/UNPACK between FP_SUB_Q and FD_TRUNC so that the result
325         is only rounded once.
326
327 2008-05-23  Richard Guenther  <rguenther@suse.de>
328
329         * tree-ssa-operands.c (mark_difference_for_renaming): Use
330         bitmap_xor.
331
332 2008-05-23  Uros Bizjak  <ubizjak@gmail.com>
333             Jakub Jelinek  <jakub@redhat.com>
334
335         PR target/36079
336         * configure.ac: Handle --enable-cld.
337         * configure: Regenerated.
338         * config.gcc: Add USE_IX86_CLD to tm_defines for x86 targets.
339         * config/i386/i386.h (struct machine_function): Add needs_cld field.
340         (ix86_current_function_needs_cld): New define.
341         * config/i386/i386.md (UNSPEC_CLD): New unspec volatile constant.
342         (cld): New isns pattern.
343         (strmov_singleop, rep_mov, strset_singleop, rep_stos, cmpstrnqi_nz_1,
344         cmpstrnqi_1, strlenqi_1): Set ix86_current_function_needs_cld flag.
345         * config/i386/i386.opt (mcld): New option.
346         * config/i386/i386.c (ix86_expand_prologue): Emit cld insn if
347         TARGET_CLD and ix86_current_function_needs_cld.
348         (override_options): Use -mcld by default for 32-bit code if
349         USE_IX86_CLD.
350
351         * doc/install.texi (Options specification): Document --enable-cld.
352         * doc/invoke.texi (Machine Dependent Options)
353         [i386 and x86-64 Options]: Add -mcld option.
354         (Intel 386 and AMD x86-64 Options): Document -mcld option.
355
356 2008-05-23  Kai Tietz  <kai.tietz@onevison.com>
357         * config/i386/i386.c (return_in_memory_32): Add ATTRIBUTE_UNUSED.
358         (return_in_memory_64): Likewise.
359         (return_in_memory_ms_64): Likewise.
360
361 2008-05-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
362
363         * builtin-types.def (BT_FN_INT_INT_INT_INT_INT_INT_VAR): New.
364         * builtins.c (fold_builtin_fpclassify): New.
365         (fold_builtin_varargs): Handle BUILT_IN_FPCLASSIFY.
366         * builtins.def (BUILT_IN_FPCLASSIFY): New.
367         * c-common.c (handle_type_generic_attribute): Adjust to accept
368         fixed arguments before an elipsis.
369         (check_builtin_function_arguments): Handle BUILT_IN_FPCLASSIFY.
370         * doc/extend.texi: Document __builtin_fpclassify.
371
372 2008-05-22  Aldy Hernandez  <aldyh@redhat.com>
373
374         * omp-low.c (gate_expand_omp_ssa): Remove.
375         (pass_expand_omp_ssa): Remove.
376         (gate_expand_omp): Do not check for flag_openmp_ssa.
377         * common.opt (-fopenmp-ssa): Remove.
378         * passes.c (init_optimization_passes): Remove pass_expand_omp_ssa.
379
380 2008-05-22  Kaz Kojima  <kkojima@gcc.gnu.org>
381
382         * config/sh/sh.opt (mfixed-range): New option.
383         * config/sh/sh-protos.h (sh_fix_range): Declare.
384         * config/sh/sh.c (sh_fix_range): New function.
385         * config/sh/sh.h (sh_fixed_range_str): Declare.
386         (OVERRIDE_OPTIONS): Call sh_fix_range if sh_fixed_range_str
387         is not empty.
388         * doc/invoke.texi (SH Options): Document -mfixed-range.
389
390 2008-05-22  Kai Tietz  <kai.tietz@onevision.com>
391
392         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Undefine
393         it before the redeclaration.
394
395 2008-05-22  Anatoly Sokolov <aesok@post.ru>
396
397         * config/avr/avr.c (get_sequence_length): Add new function.
398         (expand_prologue, expand_epilogue): Remove duplicate code.
399
400 2008-05-22  Rafael Espindola  <espindola@google.com>
401
402         * see.c (see_pre_insert_extensions): Use copy_rtx to avoid invalid rtx
403         sharing.
404
405 2008-05-22  H.J. Lu  <hongjiu.lu@intel.com>
406
407         * defaults.h (UNITS_PER_SIMD_WORD): Add scalar mode as argument.
408         * doc/tm.texi (UNITS_PER_SIMD_WORD): Likewise.
409
410         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Replace
411         UNITS_PER_SIMD_WORD with GET_MODE_SIZE (TYPE_MODE (vectype)).
412         (vect_update_misalignment_for_peel): Likewise.
413         (vector_alignment_reachable_p): Likewise.
414         * tree-vect-transform.c (vectorizable_load): Likewise.
415         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
416         (get_vectype_for_scalar_type): Pass mode of scalar_type
417         to UNITS_PER_SIMD_WORD.
418
419         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Updated.
420         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
421         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
422         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
423         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
424
425 2008-05-22  Ira Rosen  <irar@il.ibm.com>
426
427         PR tree-optimization/36293
428         * tree-vect-transform.c (vect_transform_strided_load): Don't check
429         if the first load must be skipped because of a gap.
430
431 2008-05-22  Richard Guenther  <rguenther@suse.de>
432
433         * tree-dfa.c (refs_may_alias_p): Exit early if possible.  Handle
434         more cases of offset disambiguation that is possible if
435         strict-aliasing rules apply.
436         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use refs_may_alias_p
437         for basic offset and type-based disambiguation.
438
439 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
440
441         * config/i386/i386.c (ix86_expand_vector_init_one_var): Use
442         ix86_expand_vector_set on V16QImode for SSE4.1.
443
444 2008-05-21  Tom Tromey  <tromey@redhat.com>
445
446         * c.opt (Wimport): Mark as undocumented.
447         * doc/invoke.texi (Option Summary): Don't mention -Wimport or
448         -Wno-import.
449         (Warning Options): Likewise.
450         * doc/cppopts.texi: Don't mention -Wimport.
451
452 2008-05-21  Sebastian Pop  <sebastian.pop@amd.com>
453
454         PR tree-optimization/36287
455         PR tree-optimization/36286
456         * lambda-code.c (build_access_matrix): Do not use the loop->num
457         for computing the number of induction variables: use the loop depth
458         instead.
459
460 2008-05-21  Kai Tietz  <kai.tietz@onevision.com>
461
462         PR/36280
463         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Honor
464         option -f(no-)leading-underscore.
465
466 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
467
468         * config/i386/i386.c (ix86_expand_vector_init_general): Use
469         GET_MODE_NUNITS (mode).
470
471 2008-05-21  Peter Bergner  <bergner@vnet.ibm.com>
472
473         * doc/invoke.texi: Add cpu_type's 464 and 464fp.
474         (-mmulhw): Add 464 to description.
475         (-mdlmzb): Likewise.
476         * config.gcc: Handle --with-cpu=464 and --with-cpu=464fp.
477         * config/rs6000/rs6000.c (processor_target_table): Add 464 and
478         464fp entries.
479         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 464 and 464fp support.
480         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=464.
481         * config/rs6000/rs6000.md: Update comments for 464.
482
483 2008-05-21  Janis Johnson  <janis187@us.ibm.com>
484
485         * doc/sourcebuild.texi (Test Directives): Add dg-xfail-run-if.
486
487 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
488
489         * config/i386/sse.md (vec_extractv4sf): Removed.
490         (vec_extractv2df): Likewise.
491         (vec_extractv2di): Likewise.
492         (vec_extractv4si): Likewise.
493         (vec_extractv8hi): Likewise.
494         (vec_extractv16qi): Likewise.
495         (vec_extract<mode>): New.
496
497 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
498
499         * config/i386/sse.md (vec_setv4sf): Removed.
500         (vec_setv2df): Likewise.
501         (vec_setv2di): Likewise.
502         (vec_setv4si): Likewise.
503         (vec_setv8hi): Likewise.
504         (vec_setv16qi): Likewise.
505         (vec_set<mode>): New.
506
507 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
508
509         * config/i386/i386.c (ix86_expand_vector_init_general): Remove
510         goto for vec_concat and vec_interleave.
511
512 2008-05-21  H.J. Lu  <hongjiu.lu@intel.com>
513
514         * config/i386/sse.md (vec_initv4sf): Removed.
515         (vec_initv2df): Likewise.
516         (vec_initv2di): Likewise.
517         (vec_initv4si): Likewise.
518         (vec_initv8hi): Likewise.
519         (vec_initv16qi): Likewise.
520         (vec_init<mode>): New.
521
522 2008-05-21  Joseph Myers  <joseph@codesourcery.com>
523
524         * collect2.c (find_a_file): Use IS_ABSOLUTE_PATH.
525
526 2008-05-21  Tom Tromey  <tromey@redhat.com>
527
528         * ggc-zone.c (lookup_page_table_if_allocated): New function.
529         (zone_find_object_offset): Likewise.
530         (gt_ggc_m_S): Likewise.
531         (highest_bit): Likewise.
532         * ggc-page.c (gt_ggc_m_S): New function.
533         * stringpool.c (string_stack): Remove.
534         (init_stringpool): Update.
535         (ggc_alloc_string): Use ggc_alloc.
536         (maybe_delete_ident): New function.
537         (ggc_purge_stringpool): Likewise.
538         (gt_ggc_m_S): Remove.
539         * ggc-common.c (ggc_protect_identifiers): New global.
540         (ggc_mark_roots): Call ggc_purge_stringpool.  Use
541         ggc_protect_identifiers.
542         * ggc.h (ggc_protect_identifiers): Declare.
543         (gt_ggc_m_S): Update.
544         (ggc_purge_stringpool): Declare.
545         * toplev.c (compile_file): Set and reset ggc_protect_identifiers.
546         * gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
547         special case.
548         (write_root): Cast gt_ggc_m_S to gt_pointer_walker.
549
550 2008-05-21  David S. Miller  <davem@davemloft.net>
551
552         * config.gcc (sparc-*-linux*): Always include sparc/t-linux in
553         tmake_file.
554
555 2008-05-21  Eric Botcazou  <ebotcazou@adacore.com>
556
557         * cfgexpand.c (tree_expand_cfg): Zap the EH throw statement table
558         once finished.
559
560 2008-05-20  David Daney  <ddaney@avtrex.com>
561
562         * config/mips/mips.md (UNSPEC_SYNC_NEW_OP_12,
563         UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE_12): New define_constants.
564         (UNSPEC_SYNC_EXCHANGE, UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
565         UNSPEC_UPDATE_GOT_VERSION): Renumber.
566         (optab, insn): Add 'plus' and 'minus' to define_code_attr.
567         (atomic_hiqi_op): New define_code_iterator.
568         (sync_compare_and_swap<mode>): Call mips_expand_atomic_qihi instead of
569         mips_expand_compare_and_swap_12.
570         (compare_and_swap_12): Use MIPS_COMPARE_AND_SWAP_12 instead of
571         MIPS_COMPARE_AND_SWAP_12_0.  Pass argument to MIPS_COMPARE_AND_SWAP_12.
572         (sync_<optab><mode>, sync_old_<optab><mode>,
573         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
574         sync_new_nand<mode>): New define_expands for HI and QI mode operands.
575         (sync_<optab>_12, sync_old_<optab>_12, sync_new_<optab>_12,
576         sync_nand_12, sync_old_nand_12, sync_new_nand_12): New insns.
577         (sync_lock_test_and_set<mode>): New define_expand for HI and QI modes.
578         (test_and_set_12): New insn.
579         (sync_old_add<mode>, sync_new_add<mode>, sync_old_<optab><mode>,
580         sync_new_<optab><mode>, sync_old_nand<mode>,
581         sync_new_nand<mode>, sync_lock_test_and_set<mode>):  Add early
582         clobber to operand 0 for SI and DI mode insns.
583         * config/mips/mips-protos.h (mips_gen_fn_6, mips_gen_fn_5,
584         mips_gen_fn_4): New typedefs.
585         (mips_gen_fn_ptrs): Define new union type.
586         (mips_expand_compare_and_swap_12): Remove declaration.
587         (mips_expand_atomic_qihi): Declare function.
588         * config/mips/mips.c (mips_expand_compare_and_swap_12): Rename to...
589         (mips_expand_atomic_qihi): ... this.  Use new generator function
590         parameter.
591         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): Add OPS parameter.
592         (MIPS_COMPARE_AND_SWAP_12_0): Delete macro.
593         (MIPS_COMPARE_AND_SWAP_12_ZERO_OP,
594         MIPS_COMPARE_AND_SWAP_12_NONZERO_OP,
595         MIPS_SYNC_OP_12, MIPS_SYNC_OP_12_NOT_NOP,
596         MIPS_SYNC_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12,
597         MIPS_SYNC_OLD_OP_12_NOT_NOP, MIPS_SYNC_OLD_OP_12_NOT_NOP_REG,
598         MIPS_SYNC_OLD_OP_12_NOT_NOT, MIPS_SYNC_OLD_OP_12_NOT_NOT_REG,
599         MIPS_SYNC_NEW_OP_12, MIPS_SYNC_NEW_OP_12_NOT_NOP,
600         MIPS_SYNC_NEW_OP_12_NOT_NOT, MIPS_SYNC_EXCHANGE_12,
601         MIPS_SYNC_EXCHANGE_12_ZERO_OP,
602         MIPS_SYNC_EXCHANGE_12_NONZERO_OP): New macros.
603
604 2008-05-20  H.J. Lu  <hongjiu.lu@intel.com>
605
606         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Add
607         the missing break.
608
609 2008-05-20  Anatoly Sokolov <aesok@post.ru>
610
611         * config/avr/avr.h (machine_function): Add 'is_OS_main' field.
612         * config/avr/avr.c (avr_OS_main_function_p): Add new function.
613         (avr_attribute_table): Add 'OS_main' function attribute.
614         (avr_regs_to_save, expand_prologue, expand_epilogue): Handle
615         functions with 'OS_main' attribute.
616
617 2008-05-20  Richard Guenther  <rguenther@suse.de>
618
619         PR tree-optimization/35204
620         * tree-ssa-sccvn.c (extract_and_process_scc_for_name): New
621         helper, split out from ...
622         (DFS): ... here.  Make the DFS walk non-recursive.
623
624 2008-05-20  Sebastian Pop  <sebastian.pop@amd.com>
625             Jan Sjodin  <jan.sjodin@amd.com>
626
627         PR tree-optimization/36181
628         * tree-parloops.c (loop_has_vector_phi_nodes): New.
629         (parallelize_loops): Don't parallelize when the loop has vector
630         phi nodes.
631
632 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
633             Sebastian Pop  <sebastian.pop@amd.com>
634
635         * tree-loop-linear.c (gather_interchange_stats): Look in the access
636         matrix, and never look at the tree representation of the memory
637         accesses.
638         (linear_transform_loops): Computes parameters and access matrices.
639         * tree-data-ref.c (compute_data_dependences_for_loop): Returns false
640         when fails.
641         (access_matrix_get_index_for_parameter): New.
642         * tree-data-ref.h (struct access_matrix): New.
643         (AM_LOOP_NEST_NUM, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
644         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
645         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT,
646         am_vector_index_for_loop): New.
647         (struct data_reference): Add field access_matrix.
648         (DR_ACCESS_MATRIX): New.
649         (compute_data_dependences_for_loop): Update declaration.
650         (lambda_collect_parameters, lambda_compute_access_matrices): Declared.
651         * lambda.h (lambda_vector_vec_p): Declared.
652         * lambda-code.c: Depend on pointer-set.h.
653         (lambda_collect_parameters_from_af, lambda_collect_parameters,
654         av_for_af_base, av_for_af, build_access_matrix,
655         lambda_compute_access_matrices): New.
656         * Makefile.in (lambda-code.o): Depend on pointer-set.h.
657
658 2008-05-20  Joseph Myers  <joseph@codesourcery.com>
659
660         * doc/install.texi2html: Generate gcc-vers.texi in $DESTDIR not
661         $SOURCEDIR/include.
662
663 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
664             Sebastian Pop  <sebastian.pop@amd.com>
665
666         PR tree-optimization/36206
667         * tree-scalar-evolution.c: Remove enum INSERT_SUPERLOOP_CHRECS,
668         FOLD_CONVERSIONS.
669         (instantiate_scev_1): Rename flags to fold_conversions.
670         Do not check for INSERT_SUPERLOOP_CHRECS, keep SSA_NAMEs defined
671         outeside instantiation_loop.
672         * tree-chrec.h (evolution_function_is_affine_in_loop): New.
673         (evolution_function_is_affine_or_constant_p): Removed.
674         * tree-data-ref.c (dr_analyze_indices): Replace resolve_mixers with
675         instantiate_scev.
676         (analyze_siv_subscript): Pass in the loop nest number.
677         Call evolution_function_is_affine_in_loop instead of 
678         evolution_function_is_affine_p.
679         (analyze_overlapping_iterations): Pass in the loop nest number.
680
681 2008-05-20  Jan Sjodin  <jan.sjodin@amd.com>
682             Sebastian Pop  <sebastian.pop@amd.com>
683
684         PR tree-optimization/36206
685         * tree-chrec.h (chrec_fold_op): New.
686         * tree-data-ref.c (initialize_matrix_A): Traverse NOP_EXPR, PLUS_EXPR,
687         and other trees.
688
689 2008-05-20  Nathan Sidwell  <nathan@codesourcery.com>
690
691         * c-incpath.c (INO_T_EQ): Do not define on non-inode systems.
692         (DIRS_EQ): New.
693         (remove_duplicates): Do not set inode on non-inode systems.
694         Use DIRS_EQ.
695
696 2008-05-20  Sandra Loosemore  <sandra@codesourcery.com>
697
698         * config.gcc (tm_file): Update comments about relative pathnames.
699
700 2008-05-20  Richard Guenther  <rguenther@suse.de>
701
702         * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure.
703         * tree-ssa-sccvn.c (process_scc): Likewise.
704         * tree-ssa-sink.c (execute_sink_code): Likewise.
705         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
706         * tree-vrp.c (process_assert_insertions): Likewise.
707         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
708         (perform_tree_ssa_dce): Likewise.
709         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
710         (dump_dominator_optimization_stats): Likewise.
711         * tree-vectorizer.c (vectorize_loops): Likewise.
712
713 2008-05-20  Richard Guenther  <rguenther@suse.de>
714
715         * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle.
716
717 2008-05-20  Kai Tietz  <kai.tietz@onevision.com>
718
719         * config/i386/i386-protos.h (ix86_return_in_memory): Removed.
720         (ix86_i386elf_return_in_memory): Likewise.
721         (ix86_i386interix_return_in_memory): Likewise.
722         * config/i386/i386-interix.h (TARGET_RETURN_IN_MEMORY): Removed.
723         (SUBTARGET_RETURN_IN_MEMORY): New.
724         * config/i386/i386elf.h: Likewise.
725         * config/i386/ptx4-i.h: Likewise.
726         * config/i386/sol2-10.h: Likewise.
727         * config/i386/sysv4.h: Likewise.
728         * config/i386/vx-common.h: Likewise.
729         * config/i386/i386.h (TARGET_RETURN_IN_MEMORY): Removed.
730         * config/i386/i386.c (ix86_return_in_memory): Made static and
731         make use of optional SUBTARGET_RETURN_IN_MEMORY macro.
732         (ix86_i386elf_return_in_memory): Removed.
733         (ix86_i386interix_return_in_memory): Removed.
734         (TARGET_RETURN_IN_MEMORY): Declared within i386.c only.
735         * target-def.h (TARGET_RETURN_IN_MEMORY): Remove protection #ifdef.
736
737 2008-05-20  Alexandre Oliva  <aoliva@redhat.com>
738
739         * cselib.c (cselib_record_sets): Use correct mode for IF_THEN_ELSE.
740
741 2008-05-19  Xinliang David Li  <davidxl@google.com>
742
743         * tree-ssa-dce.c: Revert patches of 2008-05-17 and 2008-05-18. 
744         * opts.c: Ditto.
745         * common.opt: Ditto.
746         * doc/invoke.texi: Ditto.
747
748 2008-05-19  Eric Botcazou  <ebotcazou@adacore.com>
749
750         * tree.c (substitute_in_expr) <tcc_vl_exp>: Fix thinko.
751         (substitute_placeholder_in_expr) <tcc_vl_exp>: Minor tweak.
752
753 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
754
755         * config/i386/i386.c (ix86_expand_vector_init_concat): Change
756         sizes of operand array from 8/4 to 4/2.
757         (ix86_expand_vector_init_general): Change size of operand array
758         from 32 to 16.  Remove op0, op1 and half_mode.
759
760 2008-05-19  H.J. Lu  <hongjiu.lu@intel.com>
761
762         * config/i386/i386.c (ix86_expand_vector_init_concat): New.
763         (ix86_expand_vector_init_interleave): Likewise.
764         (ix86_expand_vector_init_general): Use them.  Assert word_mode
765         == SImode when n_words == 4.
766
767 2008-05-19  Uros Bizjak  <ubizjak@gmail.com>
768
769         * config/i386/i386.c (ix86_secondary_reload): New static function.
770         (TARGET_SECONDARY_RELOAD): New define.
771         * config/i386/i386.h (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
772         * config/i386/i386.md (reload_outqi): Remove.
773
774 2008-05-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
775
776         PR middle-end/35509
777         * builtins.c (mathfn_built_in_1): Renamed from mathfn_built_in.
778         Add `implicit' parameter.  Handle BUILT_IN_SIGNBIT.
779         (mathfn_built_in): Rewrite in terms of mathfn_built_in_1.
780         (fold_builtin_classify): Handle BUILT_IN_ISINF_SIGN.
781         (fold_builtin_1): Likewise.
782         * builtins.def (BUILT_IN_ISINF_SIGN): New.
783         c-common.c (check_builtin_function_arguments): Handle
784         BUILT_IN_ISINF_SIGN.
785         * doc/extend.texi: Document __builtin_isinf_sign.
786         * fold-const.c (operand_equal_p): Handle COND_EXPR.
787
788 2008-05-18  Eric Botcazou  <ebotcazou@adacore.com>
789
790         * tree-ssa-dom.c (tree_ssa_dominator_optimize): If some blocks need
791         EH cleanup at the end of the pass, search for those that have been
792         turned into forwarder blocks and do the cleanup on their successor.
793
794 2008-05-18  Richard Guenther  <rguenther@suse.de>
795
796         * tree-cfg.c (verify_gimple_expr): Allow conversions from
797         pointers to sizetype and vice versa.
798
799 2008-05-18 Xinliang David Li   <davidxl@google.com>
800
801         * gcc/tree-ssa-dce.c: Coding style fix.
802         (check_pow): Documentation comment. 
803         (check_log): Documenation comment. Coding style fix.
804         (is_unnecessary_except_errno_call): Ditto.
805         (gen_conditions_for_pow): Ditto.
806         (gen_conditions_for_log): Ditto.
807         (gen_shrink_wrap_conditions): Ditto.
808         (shrink_wrap_one_built_in_calls): Ditto.
809         * gcc/doc/invoke.texi: Better documentation string.
810         * ChangeLog: Fix wrong change log entries from 
811         May 17 checkin on function call DCE.
812
813 2008-05-17  Kaz Kojima  <kkojima@gcc.gnu.org>
814
815         * config/sh/sh.c (sh_output_mi_thunk): Update the use of init_flow.
816
817 2008-05-17  Kenneth Zadeck <zadeck@naturalbridge.com>
818
819         * doc/rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P): Fixed typos.
820         * df-problems.c (simulation routines): Fixed block comment to
821         properly say how to add forwards scanning functions.
822         
823 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
824
825         * tree-inline.c (setup_one_parameter): Remove dead code.
826
827 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
828
829         * fold-const.c (fold_unary) <CASE_CONVERT>: Fold the cast into
830         a BIT_AND_EXPR only for an INTEGER_TYPE.
831
832 2008-05-17 Xinliang David Li   <davidxl@google.com>
833
834         * gcc/tree-ssa-dce.c (cond_dead_built_in_calls): New static variable.
835         (check_pow, check_log, is_unnecessary_except_errno_call): New 
836         functions to check for eliminating math functions that are pure 
837         except for setting errno.
838         (gen_conditions_for_pow, gen_conditionas_for_log): New functions to
839         general condition expressions for shrink-wrapping pow/log calls.
840         (gen_shrink_wrap_conditions): Ditto.
841         (shrink_wrap_one_built_in_call): Ditto.
842         (shrink_wrap_conditional_dead_built_in_calls): Ditto.
843         (mark_operand_necessary): If debugging, output if OP is necessary.
844         (eliminate_unnecessary_stmts): Eliminate pow, log calls that are
845         unnecessary.
846         * gcc/opts.c (decode_options): set flag_tree_builtin_dce to 1 when
847         opt level >= 2.
848         * gcc/common.opt: New user flag -ftree-builtin-dce.
849         * gcc/doc/invoke.texi (-ftree-builtin-dce): New option.
850
851 2008-05-16  David S. Miller  <davem@davemloft.net>
852
853         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Undef before overriding.
854         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
855
856 2008-05-16  Uros Bizjak  <ubizjak@gmail.com>
857
858         PR target/36246
859         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
860
861 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
862
863         * ifcvt.c (dead_or_predicable): Rename
864         df_simulate_one_insn_backwards to df_simulate_one_insn.
865         * recog.c (peephole2_optimize): Ditto.
866         * rtl-factoring.c (collect_pattern_seqs, clear_regs_live_in_seq):
867         Ditto.
868         * df.h: Rename df_simulate_one_insn_backwards to
869         df_simulate_one_insn.  and delete df_simulate_one_insn_forwards.
870         * df-problems.c (df_simulate_artificial_refs_at_top) Reversed
871         scanning of defs and uses.
872         (df_simulate_one_insn_backwards): Renamed to df_simulate_one_insn.
873         (df_simulate_one_insn_forwards): Removed.
874
875 2008-05-16  Doug Kwan  <dougkwan@google.com>
876
877         * real.c (real_to_decimal, real_to_hexadecimal): Distinguish
878         QNaN & SNaN.
879         (real_from_string): Handle NaNs and Inf as approriate.
880
881 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
882
883         * doc/gty.texi (Source Files Containing Type Information): Note
884         that headers should appear first in the gtfiles list.
885
886 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
887
888         * tree.def (COND_EXEC): Properly documented this code.
889
890 2008-05-16  Diego Novillo  <dnovillo@google.com>
891
892         * dwarf2asm.c (dw2_assemble_integer): Clarify comment.
893         * tree-nested.c (get_trampoline_type): Set DECL_CONTEXT for
894         the new field.
895
896 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
897
898         * tree-ssa-dse (max_stmt_uid): Removed.
899         (get_stmt_uid, dse_possible_dead_store_p, dse_optimize_stmt, 
900         tree_ssa_dse): Encapsulate all uses of stmt_ann->uid.
901         * tree-ssa-sccvn.c (compare_ops, init_scc_vn): Ditto.
902         * function.h (cfun.last_stmt_uid): New field.
903         * tree-flow-inline.h (set_gimple_stmt_uid, gimple_stmt_uid,
904         gimple_stmt_max_uid, set_gimple_stmt_max_uid, inc_gimple_stmt_max_uid):
905         New functions.
906         * tree-dfa.c (renumber_gimple_stmt_uids): New function.
907         (create_stmt_ann): Initialize the ann->uid field.
908         * tree-ssa-pre.c (compute_avail): Encapsulate the stmt_ann->uid
909         with new calls.
910         * tree-flow.h (renumber_gimple_stmt_uids): New function.
911
912 2008-05-16  Nathan Froyd  <froydnj@codesourcery.com>
913
914         * tree-flow.h (init_empty_tree_cfg_for_function): Declare.
915         * tree-cfg.c (init_empty_tree_cfg_for_function): Define.
916         (init_empty_tree_cfg): Call it.
917
918 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
919
920         * cfg.c (init_flow): Add argument THE_FUN.  Use it instead of cfun.
921         Update all users.
922
923 2008-05-16  Kenneth Zadeck <zadeck@naturalbridge.com>
924
925         * doc/invoke.text (-fdump-tree-*-verbose): New option.
926         * tree-dump.c (dump_options): New verbose option.
927         * tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
928         Add verbose dump.
929         * tree-pass.h (TDF_VERBOSE): New dump flag.
930         * print-tree.c (print_node): Added code to be able to print PHI_NODES.
931         (tree-flow.h): Added include.
932         * Makefile.in (print-tree.o):  Added TREE_FLOW_H.
933
934 2008-05-16  Bernd Schmidt  <bernd.schmidt@analog.com>
935
936         * config/bfin/bfin.c (bfin_discover_loops): Delete empty loops.
937
938         From Jie Zhang  <jie.zhang@analog.com>
939         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
940         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Remove mcpu=bf532-0.3,
941         mcpu=bf561-none and mcpu=bf561-0.2.
942         * config/bfin/t-bfin-uclinux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
943         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
944         * config/bfin/t-bfin-linux (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
945         MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
946         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add BFIN_CPU_UNKNOWN.
947         * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
948         (LIB_SPEC): Use proper linker script for bf561.  Error if no mcpu
949         option.
950         * config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
951         (cputype_selected): Remove.
952         (bfin_handle_option): Don't use cputype_selected.
953         (override_options): When no mcpu option, enable all workarounds.
954         Don't use bfin_workarounds.
955         * config/bfin/bfin.h (DRIVER_SELF_SPECS): Don't set default
956         processor type.
957         (DEFAULT_CPU_TYPE): Don't define.
958
959 2008-05-16  Richard Guenther  <rguenther@suse.de>
960
961         * tree-ssa-propagate.c (substitute_and_fold): Fix stmt walking
962         on deletion of the last stmt.
963
964 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
965
966         * config/i386/i386.c (ix86_expand_vector_init_general): Optimize
967         V8HImode for SSE2 and V16QImode for SSE4.1.
968
969 2008-05-15  Kenneth Zadeck <zadeck@naturalbridge.com>
970
971         * cgraph.h (compute_inline_parameters): Made public.
972         * tree-pass.h (ipa_opt_pass): Removed function_generate_summary,
973         variable_generate_summary, function_write_summary,
974         variable_write_summary, variable_read_summary.  Added generate_summary,
975         write_summary, read_summary.
976         * cgraphunit.c (cgraph_process_new_functions): Changed call from
977         pass_ipa_inline.function_generate_summary, to
978         compute_inline_parameters. 
979         * ipa-inline.c (compute_inline_parameters): Made public and added
980         node parameter.
981         (compute_inline_parameters_for_current): New function.
982         (pass_inline_param): Now calls compute_inline_parameters_for_current.
983         (inline_generate_summary): Removed parameter and made to loop over
984         all cgraph nodes.
985         (pass_ipa_inline): Updated for new IPA_PASS structure.
986         * passes.c (execute_ipa_summary_passes): Now is called once per
987         pass rather than once per node*pass.
988         
989 2008-05-15  Anatoly Sokolov <aesok@post.ru>
990
991         * config/avr/avr.c (avr_base_arch_macro, avr_have_movw_lpmx_p, 
992         avr_have_mul_p, avr_asm_only_p): Remove variables.
993         (avr_override_options): Remove initialization of removed variables.
994         (avr_file_start):  Convert removed variables to fields of 
995         'struct base_arch_s *avr_current_arch'. 
996         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): (Ditto.).
997         (AVR_HAVE_MUL): (Ditto.).
998         (AVR_HAVE_MOVW): (Ditto.).
999         (AVR_HAVE_LPMX): (Ditto.). 
1000         (avr_base_arch_macro, avr_have_movw_lpmx_p, avr_have_mul_p, 
1001         avr_asm_only_p): Remove declaration.
1002
1003 2008-05-15  Diego Novillo  <dnovillo@google.com>
1004
1005         * config/arm/arm.c (arm_return_in_memory): Fix return type.
1006         * config/arm/arm-protos.h (arm_return_in_memory): Likewise.
1007
1008 2008-05-15  Adam Nemet  <anemet@caviumnetworks.com>
1009
1010         PR middle-end/36194
1011         * combine.c (check_conversion): Rename back to check_promoted_subreg.
1012         Don't call record_truncated_value from here.
1013         (record_truncated_value): Turn it into a for_each_rtx callback.
1014         (record_truncated_values): New function.
1015         (combine_instructions): Call note_uses with record_truncated_values.
1016         Change name of check_conversion to check_promoted_subreg. 
1017
1018 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1019
1020         * doc/sourcebuild.texi: Document support for torture tests.
1021
1022 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1023
1024         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add "m" constraint
1025         to alternative 4 of operand 2.
1026
1027 2008-05-15  Richard Guenther  <rguenther@suse.de>
1028
1029         * tree-pass.h (current_pass): Declare.
1030         (get_pass_for_id): Likewise.
1031         * passes.c (passes_by_id, passes_by_id_size): New globals.
1032         (set_pass_for_id): New function.
1033         (get_pass_for_id): Likewise.
1034         (register_one_dump_file): Use set_pass_for_id to populate passes_by_id.
1035         (execute_function_todo): Flush per function statistics.
1036         * toplev.c (compile_file): Init statistics.
1037         (general_init): Do early statistics initialization.
1038         (finalize): Finish statistics.
1039         * statistics.h (statistics_early_init): Declare.
1040         (statistics_init): Likewise.
1041         (statistics_fini): Likewise.
1042         (statistics_fini_pass): Likewise.
1043         (statistics_counter_event): Likewise.
1044         (statistics_histogram_event): Likewise.
1045         * statistics.c: New file.
1046         * Makefile.in (OBJS-common): Add statistics.o.
1047         (statistics.o): Add dependencies.
1048         * doc/invoke.texi (-fdump-statistics): Document.
1049
1050         * tree-ssa-pre.c (compute_antic): Use statistics_histogram_event.
1051         (insert): Likewise.
1052         (execute_pre): Use statistics_counter_event.
1053         * tree-ssa-propagate.c (struct prop_stats_d): Add num_dce field.
1054         (substitute_and_fold): Increment it.  Use statistics_counter_event.
1055
1056 2008-05-15  Diego Novillo  <dnovillo@google.com>
1057
1058         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00893.html
1059
1060         * treestruct.def (TS_STRUCT_FIELD_TAG): Remove.
1061         * tree-ssa-alias.c (new_type_alias): Remove references to
1062         sub-variables from comment.
1063         * tree-ssa-operands.c (swap_tree_operands): Likewise.
1064
1065 2008-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1066
1067         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Set prefix_extra
1068         attribute to 1 only for insertps alternative.
1069
1070 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1071
1072         * config/bfin/bfin.md (loadbytes): New pattern.
1073         * config/bfin/bfin.c (enum bfin_builtins): Add BFIN_BUILTIN_LOADBYTES.
1074         (bfin_init_builtins): Initialize it.
1075         (bdesc_1arg): Add it.
1076
1077 2008-05-15  Sa Liu  <saliu@de.ibm.com>
1078
1079         * testsuite/gfortran.dg/c_kind_int128_test1.f03: New.
1080         * testsuite/gfortran.dg/c_kind_int128_test2.f03: New.
1081         * testsuite/lib/target-supports.exp: Add
1082         check_effective_target_fortran_integer_16.
1083
1084 2008-05-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1085
1086         * config/bfin/bfin.h (TARGET_RETURN_IN_MEMORY): Don't define here.
1087         * config/bfin/bfin-protos.h (bfin_return_in_memory): Don't declare.
1088         * config/bfin/bfin.c (bfin_return_in_memory): Now static.  Return bool.
1089         (TARGET_RETURN_IN_MEMORY): Define.
1090
1091 2008-05-15  Richard Guenther  <rguenther@suse.de>
1092
1093         PR middle-end/36244
1094         * tree-ssa-alias.c (new_type_alias): Do not set TREE_READONLY.
1095         * tree-flow-inline.h (unmodifiable_var_p): Memory tags never
1096         represent unmodifiable vars.
1097
1098 2008-05-15  Richard Guenther  <rguenther@suse.de>
1099
1100         * tree-dfa.c (refs_may_alias_p): Allow all kinds of
1101         INDIRECT_REF and TARGET_MEM_REF.
1102         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
1103         TARGET_MEM_REF.
1104
1105 2008-05-15  Uros Bizjak  <ubizjak@gmail.com>
1106             H.J. Lu  <hongjiu.lu@intel.com>
1107
1108         * config/i386/sse.md (*vec_concatv2sf_sse4_1): New insn pattern.
1109         (*vec_concatv2si_sse4_1): Use vector_move_operand predicate
1110         for operand 2.  Remove pinsr{q,d} with 0x0 immediate operand from
1111         insn alternatives.  Add missing alternatives.
1112         (*vec_concatv2di_rex64_sse4_1): Likewise.
1113         (*vec_concatv2si_sse2): Use "x" register constraint instead of "Y2".
1114         (*vec_concatv2di_rex64_sse): Rename from *vec_concatv2di_rex64.
1115         Require TARGET_SSE.
1116
1117 2008-05-15  Richard Guenther  <rguenther@suse.de>
1118
1119         PR tree-optimization/36009
1120         PR tree-optimization/36204
1121         * tree-ssa-loop-im.c (tree-ssa-propagate.h): Include.
1122         (determine_invariantness_stmt): Record the loop a store is
1123         always executed in.
1124         * Makefile.in (tree-ssa-loop-im.o): Add tree-ssa-propagate.h
1125         dependency.
1126
1127 2008-05-15  Richard Guenther  <rguenther@suse.de>
1128
1129         PR tree-optimization/34330
1130         * tree-ssa-alias.c (get_smt_for): Only assert that accesses
1131         through the pointer will alias the SMT.
1132
1133 2008-05-14  Andreas Tobler  <a.tobler@schweiz.org>
1134
1135         * config/sparc/sparc.h (NO_PROFILE_COUNTERS): Define as 0.
1136
1137 2008-05-14  H.J. Lu  <hongjiu.lu@intel.com>
1138
1139         * config/i386/sse.md (*sse4_1_pinsrq): Make it 64bit only.
1140
1141 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1142             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1143
1144         * optabs.h (optab_index): Add OTI_vashl, OTI_vlshr, OTI_vashr,
1145         OTI_vrotl, OTI_vrotr to support vector/vector shifts.
1146         (vashl_optab): New optab for vector/vector shifts.
1147         (vashr_optab): Ditto.
1148         (vlshr_optab): Ditto.
1149         (vrotl_optab): Ditto.
1150         (vrotr_optab): Ditto.
1151         (optab_subtype): New enum for optab_for_tree_code call.
1152         (optab_for_tree_code): Add enum optab_subtype argument.
1153
1154         * optabs.c (optab_for_tree_code): Take an additional argument to
1155         distinguish between a vector shift by a scalar and vector shift by
1156         a vector.  Make lshr/ashr/ashl/rotl/rotr optabs just vector
1157         shifted by a scalar.  Use vlshr/vashr/vashl/vrotl/vrotr for the
1158         vector shift by a vector.
1159         (expand_widen_pattern_expr): Pass additional argument to
1160         optab_for_tree_code.
1161
1162         * genopinit.c (optabs): Add vashr_optab, vashl_optab, vlshr_optab,
1163         vrotl_optab, vrotr_optab.
1164
1165         * expr.c (expand_expr_real_1): Update calls to
1166         optab_for_tree_code to distinguish between vector shifted by a
1167         scalar and vector shifted by a vector.
1168         * tree-vectorizer.c (supportable_widening_operation): Ditto.
1169         (supportable_narrowing_operation): Ditto.
1170         * tree-vect-analyze.c (vect_build_slp_tree): Ditto.
1171         * tree-vect-patterns.c (vect_pattern_recog_1): Ditto.
1172         * tree-vect-transform.c (vect_model_reduction_cost): Ditto.
1173         (vect_create_epilog_for_reduction): Ditto.
1174         (vectorizable_reduction): Ditto.
1175         (vectorizable_operation): Ditto.
1176         (vect_strided_store_supported): Ditto.
1177         (vect_strided_load_supported): Ditto.
1178         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1179         * expmed.c (expand_shift): Ditto.
1180
1181         * doc/md.texi (ashl@var{m}3): Document that operand 2 is always a
1182         scalar type.
1183         (ashr@var{m}3): Ditto.
1184         (vashl@var{m}3): Document new vector/vector shift standard name.
1185         (vashr@var{m}3): Ditto.
1186         (vlshr@var{m}3): Ditto.
1187         (vrotl@var{m}3): Ditto.
1188         (vrotr@var{m}3): Ditto.
1189
1190         * config/i386/i386.md (PPERM_SRC): Move PPERM masks here from i386.c.
1191         (PPERM_INVERT): Ditto.
1192         (PPERM_REVERSE): Ditto.
1193         (PPERM_REV_INV): Ditto.
1194         (PPERM_ZERO): Ditto.
1195         (PPERM_ONES): Ditto.
1196         (PPERM_SIGN): Ditto.
1197         (PPERM_INV_SIGN): Ditto.
1198         (PPERM_SRC1): Ditto.
1199         (PPERM_SRC2): Ditto.
1200
1201         * config/i386/sse.md (mulv2di3): Add SSE5 support.
1202         (sse5_pmacsdql_mem): New SSE5 define_and_split that temporarily
1203         allows a memory operand to be the value being added, and split it
1204         to improve vectorization.
1205         (sse5_pmacsdqh_mem): Ditto.
1206         (sse5_mulv2div2di3_low): SSE5 32-bit multiply and extend function.
1207         (sse5_mulv2div2di3_high): Ditto.
1208         (vec_pack_trunc_v8hi): Add SSE5 pperm support.
1209         (vec_pack_trunc_v4si): Ditto.
1210         (vec_pack_trunc_v2di): Ditto.
1211         (sse5_pcmov_<mode>): Remove code that tried to use use
1212         andps/andnps instead of pcmov.
1213         (vec_widen_smult_hi_v4si): If we have SSE5, use the pmacsdql and
1214         pmacsdqh instructions.
1215         (vec_widen_smult_lo_v4si): Ditto.
1216
1217         * config/i386/i386.c (PPERM_SRC): Move PPERM masks to i386.md.
1218         (PPERM_INVERT): Ditto.
1219         (PPERM_REVERSE): Ditto.
1220         (PPERM_REV_INV): Ditto.
1221         (PPERM_ZERO): Ditto.
1222         (PPERM_ONES): Ditto.
1223         (PPERM_SIGN): Ditto.
1224         (PPERM_INV_SIGN): Ditto.
1225         (PPERM_SRC1): Ditto.
1226         (PPERM_SRC2): Ditto.
1227         (ix86_expand_sse_movcc): Move the SSE5 test after the if
1228         true/false tests.
1229         (ix86_expand_int_vcond): If SSE5 generate all possible integer
1230         comparisons.
1231         (ix86_sse5_valid_op_p): Allow num_memory to be negative, which
1232         says ignore whether the last reference is a memory operand.
1233
1234 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1235             Paolo Bonzini <bonzini at gnu dot org>
1236
1237         * config/rs6000/rs6000.c (bdesc_2arg): Change the names of vector
1238         shift patterns.
1239
1240         * config/rs6000/altivec.md (vashl<mode>3): Rename from ashl<mode>3.
1241         (vlshr<mode>3): Rename from vlshr<mode>3.
1242         (vashr<mode>3): Rename from vashr<mode>3.
1243         (mulv4sf3): Change the names of vector shift patterns.
1244         (mulv4si3): Ditto.
1245         (negv4sf2): Ditt.
1246
1247         * config/spu/spu.c (spu_initialize_trampoline): Rename vector
1248         shift insns.
1249
1250         * config/spu/spu-builtins.def (SI_SHLH): Rename vector shift insns.
1251         (SI_SHLHI): Ditto.
1252         (SI_SHL): Ditto.
1253         (SI_SHLI): Ditto.
1254         (SI_ROTH): Ditto.
1255         (SI_ROTHI): Ditto.
1256         (SI_ROT): Ditto.
1257         (SI_ROTI): Ditto.
1258         (SPU_RL_0): Ditto.
1259         (SPU_RL_1): Ditto.
1260         (SPU_RL_2): Ditto.
1261         (SPU_RL_3): Ditto.
1262         (SPU_RL_4): Ditto.
1263         (SPU_RL_5): Ditto.
1264         (SPU_RL_6): Ditto.
1265         (SPU_RL_7): Ditto.
1266         (SPU_SL_0): Ditto.
1267         (SPU_SL_1): Ditto.
1268         (SPU_SL_2): Ditto.
1269         (SPU_SL_3): Ditto.
1270         (SPU_SL_4): Ditto.
1271         (SPU_SL_5): Ditto.
1272         (SPU_SL_6): Ditto.
1273         (SPU_SL_7): Ditto.
1274
1275         * config/spu/spu.md (v): New iterator macro to add v for vector types.
1276         (floatunssidf2_internal): Change vector/vector shift names.
1277         (floatunsdidf2_internal): Ditto.
1278         (mulv8hi3): Ditto.
1279         (ashrdi3): Ditto.
1280         (ashrti3): Ditto.
1281         (cgt_df): Ditto.
1282         (cgt_v2df): Ditto.
1283         (dftsv): Ditto.
1284         (vashl<mode>3): Rename from ashl<mode>3.
1285         (vashr<mode>3): Rename from ashr<mode>3.
1286         (vlshr<mode>3): Rename from lshr<mode>3.
1287         (vrotl<mode>3): Rename from rotl<mode>3.
1288
1289 2008-05-14  Michael Meissner  <michael.meissner@amd.com>
1290
1291         PR target/36224
1292         * config/i386/sse.md (vec_widen_smult_hi_v4si): Delete, using unsigned
1293         multiply gives the wrong value when doing widening multiplies.
1294         (vec_widen_smult_lo_v4si): Ditto.
1295
1296 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1297
1298         * optabs.c (prepare_cmp_insn): Changed LCT_PURE_MAKE_BLOCK to
1299         LCT_PURE and LCT_CONST_MAKE_BLOCK to LCT_CONST in calls to
1300         emit_library_call_value. 
1301         * builtins.c (expand_builtin_powi, expand_builtin_memcmp): Ditto.
1302         * tree.h (ECF_LIBCALL_BLOCK): Removed.
1303         * calls.c (initialize_argument_information, precompute_arguments, 
1304         expand_call, emit_library_call_value_1): Remove ECF_LIBCALL_BLOCK.
1305         (precompute_arguments): Removed flags parameter.
1306         * rtl.h (LCT_CONST_MAKE_BLOCK, LCT_PURE_MAKE_BLOCK): Removed.
1307         
1308 2008-05-14  Richard Guenther  <rguenther@suse.de>
1309
1310         * tree-ssa-dse.c (dse_possible_dead_store_p): Remove dead code.
1311         Make sure to register the store if the use is a PHI_NODE.
1312
1313 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1314
1315         * expr.c (expand_expr_real_1) <normal_inner_ref>: Force op0 to
1316         memory if the component is to be referenced in BLKmode according
1317         to get_inner_reference.
1318
1319 2008-05-14  Adam Nemet  <anemet@caviumnetworks.com>
1320
1321         * calls.c (emit_library_call_value_1): Restore code clearing
1322         ECF_LIBCALL_BLOCK to ensure that we only call end_sequence once.
1323
1324 2008-05-14  Olivier Hainque  <hainque@adacore.com>
1325             Nicolas Roche  <roche@adacore.com>
1326
1327         * configure.ac: Add support for a "gcc_subdir" variable in
1328         config-lang.in, to denote a subdirectory where the language/GCC
1329         integration files are to be found.
1330         * configure: Regenerate.
1331
1332 2008-05-14  Ira Rosen  <irar@il.ibm.com>
1333
1334         PR tree-optimization/36098
1335         * tree-vect-analyze.c (vect_analyze_group_access): Set the gap
1336         value for the first load in the group in case of a gap.
1337         (vect_build_slp_tree): Check that there are no gaps in loads.
1338
1339 2008-05-14  Kenneth Zadeck <zadeck@naturalbridge.com>
1340
1341         * doc/rtl.texi: Removed reference to REG_NO_CONFLICT notes.
1342         * optabs.c (expand_binop, expand_absneg_bit, expand_unop,
1343         expand_copysign_bit, ): Change call to emit_no_conflict_block to
1344         emit_insn and remove unneeded code to construct extra args.
1345         (emit_no_conflict_block): Removed.
1346         * optabls.h: (emit_no_conflict_block): Removed.
1347         * cse.c (cse_extended_basic_block): Remove search for
1348         REG_NO_CONFLICT note.
1349         * global.c: Removed incorrect comment added in revision 117.
1350         * expr.c (convert_move): Change call to emit_no_conflict_block to
1351         emit_insn.
1352         * recog.c: Change comments so that they do not mention
1353         REG_NO_CONFLICT.
1354         * local_alloc.c (combine_regs): Removed last parameter.
1355         (no_conflict_p): Removed.
1356         (block_alloc): Removed note, no_conflict_combined_regno and set
1357         local vars. Removed all code to process REG_NO_CONFLICT blocks.
1358         (combine_regs): Removed already_dead and code to look for
1359         REG_NO_CONFLICT notes.
1360         * lower_subreg (remove_retval_note): Removed code to look for
1361         REG_NO_CONFLICT block.
1362         (resolve_reg_notes): Removed REG_NO_CONFLICT case.
1363         (resolve_clobber): Remove code to process libcalls that have
1364         REG_NO_CONFLICT notes.
1365         * loop_invariant.c (find_invariant_insn): Removed REG_NO_CONFLICT
1366         case.
1367         * combine.c (can_combine_p, distribute_notes):  Removed
1368         REG_NO_CONFLICT case.
1369         * config/cris/cris.md (movdi pattern): Changed emit_no_conflict_block
1370         to emit_insns.
1371         * config/mn10300/mn10300.md (absdf2, negdf2 patterns): Ditto.
1372         * config/m68k/m68k.md (negdf2, negxf2, absdf2, absxf2 patterns):
1373         Ditto.
1374         * reg-notes.def (NO_CONFLICT): Removed.
1375
1376 2008-05-14  David S. Miller  <davem@davemloft.net>
1377
1378         * config/sparc/sparc.c (sparc_profile_hook): If
1379         NO_PROFILE_COUNTERS, don't generate and pass a label into mcount.
1380         * config/sparc/linux.h (NO_PROFILE_COUNTERS): Define as 1.
1381         * config/sparc/linux64.h (NO_PROFILE_COUNTERS): Likewise.
1382
1383 2008-05-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1384
1385         * cse.c (cse_cc_succs): Invoke delete_insn_and_edges.
1386
1387 2008-05-13  Uros Bizjak  <ubizjak@gmail.com>
1388
1389         PR target/36222
1390         * config/i386/i386.c (ix86_expand_vector_init_general): Rearrange op0
1391         and op1 expansion before vector concat to have less live pseudos.
1392
1393 2008-05-13  H.J. Lu  <hongjiu.lu@intel.com>
1394
1395         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
1396         ix86_expand_vector_set if supported.
1397
1398 2008-05-13  Diego Novillo  <dnovillo@google.com>
1399             Kenneth Zadeck  <zadeck@naturalbridge.com>
1400
1401         http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
1402
1403         * tree.h (init_phinodes, fini_phinodes, release_phi_node,
1404         phinodes_print_statistics, init_ssanames, fini_ssanames,
1405         make_ssa_name, duplicate_ssa_name, duplicate_ssa_name_ptr_info,
1406         release_ssa_name, release_defs, replace_ssa_name_symbol,
1407         ssanames_print_statistics): Move ...
1408         * tree-flow.h: ... here.
1409         * tree-ssanames.c (init_ssanames): Add arguments FN and SIZE.
1410         Use FN instead of cfun.
1411         (make_ssa_name_fn): Rename from make_ssa_name.
1412         (pass_release_ssa_names): Add TODO_dump_func to finish flags.
1413         * tree-flow-inline.h (make_ssa_name): Move from
1414         tree-ssanames.c.  Convert to static inline.  Call make_ssa_name_fn.
1415         * omp-low.c (expand_omp_parallel):
1416         * tree-flow-inline.h (redirect_edge_var_map_result):
1417         * tree-ssa.c (init_tree_ssa): Add argument FN.
1418         Use it instead of cfun.  Update all users.
1419
1420 2008-05-13  Tom Tromey  <tromey@redhat.com>
1421
1422         PR preprocessor/22168:
1423         * doc/cpp.texi (Top): Update menu.
1424         (Alternatives to Wrapper #ifndef): New node.
1425         (Other Directives): Document deprecation.
1426         (Obsolete Features): Remove menu.
1427         (Assertions): Merge node into Obsolete Features.
1428         (Obsolete once-only headers): Move earlier; rename to Alternatives
1429         to Wrapper #ifndef.
1430         * doc/cppopts.texi: Update.
1431         * c.opt (Wdeprecated): Enable for C and ObjC.
1432         * doc/invoke.texi (Option Summary): Move -Wno-deprecated.
1433         (C++ Dialect Options): Move -Wno-deprecated from here to...
1434         (Warning Options): ... here.
1435
1436 2008-05-13  Richard Guenther  <rguenther@suse.de>
1437
1438         PR middle-end/36227
1439         * fold-const.c (fold_sign_changed_comparison): Do not allow
1440         changes in pointer-ness.
1441
1442 2008-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1443
1444         PR target/24713
1445         * config/sh/sh.c (sh_expand_prologue): Don't clear
1446         RTX_FRAME_RELATED_P for push insns.
1447
1448 2008-05-12  Andy Hutchinson  <hutchinsonandy@aim.com>
1449
1450         * config/avr/avr.h (MAX_OFILE_ALIGNMENT): Define.
1451
1452 2008-05-12  Anatoly Sokolov <aesok@post.ru>
1453
1454         * config/avr/avr.h (machine_function): Add 'is_leaf' field.
1455         * config/avr/avr.c (avr_regs_to_save): Compute 'machine->is_leaf'.
1456         Use 'machine->is_leaf' instead of 'leaf_func_p'.
1457
1458 2008-05-12  H.J. Lu  <hongjiu.lu@intel.com>
1459
1460         * config/i386/sse.md (*sse_concatv4sf): Renamed to ...
1461         (*vec_concatv4sf_sse): This.
1462         (*sse2_concatv2si): Renamed to ...
1463         (*vec_concatv2si_sse2): This.
1464         (*sse1_concatv2si): Renamed to ...
1465         (*vec_concatv2si_sse): This.
1466         (*vec_concatv2di_rex): Renamed to ...
1467         (*vec_concatv2di_rex64): This.
1468         (*vec_concatv2si_sse4_1): New.
1469         (*vec_concatv2di_rex64_sse4_1): Likewise.
1470
1471 2008-05-12  Uros Bizjak  <ubizjak@gmail.com>
1472
1473         PR rtl-optimization/36111
1474         * recog.c (validate_replace_rtx_1): Unshare new RTL expression
1475         that was created for swappable operands.
1476
1477 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
1478
1479         PR ada/36001
1480         * Makefile.in: Substitute GNATMAKE and GNATBIND.
1481         * configure.ac: Add call to ACX_PROG_GNAT.
1482
1483 2008-05-11  Volker Reichelt  <v.reichelt@netcologne.de>
1484
1485         * optc-gen.awk: Fix comment typo.
1486
1487 2008-05-11  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1488
1489         * pretty-print.c (pp_integer_with_precision): Use
1490         HOST_LONG_LONG_FORMAT.
1491
1492 2008-05-10  Kenneth Zadeck  <zadeck@naturalbridge.com>
1493
1494         * gcse.c (store_killed_in_insn): Negated call to RTL_CONST_CALL_P.
1495                 
1496 2008-05-10  H.J. Lu  <hongjiu.lu@intel.com>
1497
1498         * config/i386/i386.c (bdesc_ptest): Removed.
1499         (ix86_builtin_type): Add INT_FTYPE_V2DI_V2DI_PTEST.
1500         (bdesc_args): Add __builtin_ia32_ptestz128,
1501         __builtin_ia32_ptestc128 and __builtin_ia32_ptestnzc128.
1502         (ix86_init_mmx_sse_builtins): Updated.
1503         (ix86_expand_args_builtin): Handle INT_FTYPE_V2DI_V2DI_PTEST.
1504         (ix86_expand_builtin): Updated.
1505
1506 2008-05-10  Richard Sandiford  <rdsandiford@googlemail.com>
1507
1508         * tree-cfg.c (valid_fixed_convert_types_p): New function.
1509         (verify_gimple_expr): Handle FIXED_CONVERT_EXPR.
1510
1511 2008-05-10  Uros Bizjak  <ubizjak@gmail.com>
1512
1513         * value-prof.c (interesting_stringop_to_profile): Do not
1514         return early for BUILT_IN_MEMPCPY.
1515
1516 2008-05-09  H.J. Lu  <hongjiu.lu@intel.com>
1517
1518         * calls.c (expand_call): Don't use callgraph to increase
1519         preferred_stack_boundary.
1520
1521         * cgraph.h (cgraph_rtl_info): Use unsigned on
1522         preferred_incoming_stack_boundary.
1523
1524         * final.c (rest_of_clean_state): Use unsigned on
1525         preferred_stack_boundary.
1526
1527 2008-05-09  Tom Tromey  <tromey@redhat.com>
1528
1529         PR preprocessor/22231:
1530         * c-opts.c (sanitize_cpp_opts): Disallow -MG if compilation is
1531         proceeding.
1532
1533 2008-05-09  Uros Bizjak  <ubizjak@gmail.com>
1534
1535         PR tree-optimization/36129
1536         * tree-ssa-ccp.c: Include value-prof.h.
1537         (execute_fold_all_builtins): Call gimple_remove_stmt_histograms if
1538         built-in function was folded to a constant.
1539         * Makefile.in (tree-ssa-ccp.c): Depend on value-prof.h
1540
1541 2008-05-09  Jan Sjodin  <jan.sjodin@amd.com>
1542             Sebastian Pop  <sebastian.pop@amd.com>
1543
1544         * tree-scalar-evolution.c: Document instantiate_scev.
1545         (instantiate_parameters_1): Renamed instantiate_scev_1.
1546         Don't use the same loop for instantiation_loop and evolution_loop.
1547         (instantiate_scev): New.
1548         (instantiate_parameters): Moved...
1549         (resolve_mixers): Update call to instantiate_scev_1 to pass the
1550         same loop twice.  Maintains the semantics for this function.
1551         * tree-scalar-evolution.h (instantiate_scev): Declare.
1552         (instantiate_parameters): ...here.  Now static inline.
1553         * tree-data-ref.c (dr_analyze_indices): Call instantiate_scev
1554         instead of resolve_mixers.
1555
1556 2008-05-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
1557
1558         * rtl-factoring.c (collect_pattern_seqs): Fix typo.
1559
1560 2008-05-09  Tomas Bily  <tbily@suse.cz>
1561
1562         * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
1563         * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
1564         * tree-ssa-structalias.c (get_constraint_for): Likewise.
1565         * c-common.c (c_common_truthvalue_conversion): Likewise.
1566         * tree-object-size.c (compute_object_offset): Likewise.
1567         * tree-inline.c (estimate_num_insns_1): Likewise.
1568         * varasm.c (const_hash_1, compare_constant, copy_constant)
1569         (compute_reloc_for_constant, output_addressed_constants)
1570         (initializer_constant_valid_p): Likewise.
1571         * c-omp.c (check_omp_for_incr_expr): Likewise.
1572         * gimplify.c (gimplify_expr): Likewise.
1573         * c-typeck.c (c_finish_return): Likewise.
1574         * tree-vectorizer.c (supportable_widening_operation)
1575         (supportable_narrowing_operation): Likewise.
1576         * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Likewise.
1577         * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
1578         * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
1579         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
1580         (descr_info_loc): Likewise.
1581         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
1582         * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
1583         (fold_unary): Likewise.
1584         * builtins.c (get_pointer_alignment): Likewise.
1585         * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
1586         (instantiate_parameters_1): Likewise.
1587         * tree.c (expr_align, stabilize_reference): Likewise.
1588         * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
1589         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
1590         * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
1591         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1592         * config/alpha/alpha.c (va_list_skip_additions): Likewise.
1593         * c-common.c (c_alignof_expr, check_function_arguments_recurse):
1594         Likewise.
1595         * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
1596         * varasm.c (initializer_constant_valid_p, output_constant): Likewise.
1597         * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
1598         (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
1599         (forward_propagate_comparison)
1600         (tree_ssa_forward_propagate_single_use_vars): Likewise.
1601         * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
1602         * emit-rtl.c (component_ref_for_mem_expr)
1603         (set_mem_attributes_minus_bitpos): Likewise.
1604         * tree-ssa-phiopt.c (conditional_replacement): Likewise.
1605         * gimplify.c (gimplify_conversion, goa_lhs_expr_p, gimplify_expr):
1606         Likewise.
1607         * c-typeck.c (default_function_array_conversion, build_indirect_ref)
1608         (build_function_call, pointer_diff, build_compound_expr)
1609         (c_finish_return): Likewise.
1610         * tree-vect-analyze.c (vect_determine_vectorization_factor): Likewise.
1611         * matrix-reorg.c (get_inner_of_cast_expr, may_flatten_matrices_1):
1612         Likewise.
1613         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
1614         * expr.c (is_aligning_offset): Likewise.
1615         * tree-ssa-alias.c (is_escape_site): Likewise.
1616         * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
1617         (check_all_va_list_escapes): Likewise.
1618         * tree-ssa-loop-ivopts.c (determine_base_object)
1619         (determine_common_wider_type): Likewise.
1620         * dojump.c (do_jump): Likewise.
1621         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
1622         * tree-gimple.c (is_gimple_cast): Likewise.
1623         * fold-const.c (decode_field_reference, )
1624         (fold_sign_changed_comparison, fold_unary, fold_comparison)
1625         (fold_binary): Likewise.
1626         * tree-ssa-alias-warnings.c (find_alias_site_helper)
1627         (already_warned_in_frontend_p): Likewise.
1628         * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
1629         * tree.c (really_constant_p, get_unwidened): Likewise.
1630         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1631         * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
1632         * tree-vrp.c (register_edge_assert_for_2, register_edge_assert_for_1):
1633         Likewise.
1634         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
1635         CONVERT_EXPR_P.
1636         (CONVERT_EXPR_P): Define.
1637         (CASE_CONVERT): Define.
1638         
1639 2008-05-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
1640
1641         PR middle-end/36117
1642         * dce.c (deletable_insn_p): Do not delete calls if df_in_progress.
1643         (delete_unmarked_insns): When deleting a call, call
1644         delete_unreachable_blocks.
1645         * rtl.texi (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1646         RTL_CONST_OR_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P): Fixed doc.
1647
1648 2008-05-08  Richard Guenther  <rguenther@suse.de>
1649
1650         * doc/invoke.texi (-fdump-tree-salias): Remove documentation.
1651         (-ftree-salias): Likewise.
1652         (salias-max-implicit-fields): Remove param documentation.
1653         (salias-max-array-elements): Likewise.
1654         * tree-pass.h (pass_create_structure_vars): Remove.
1655         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1656         (SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1657         * tree-ssa-alias.c (create_structure_vars): Remove.
1658         (gate_structure_vars): Likewise.
1659         (pass_create_structure_vars): Likewise.
1660         (gate_build_alias): Likewise.
1661         (pass_build_alias): Adjust to run always and dump the function.
1662         * common.opt (ftree-salias): Hide.
1663         * passes.c (init_optimization_passes): Remove
1664         pass_create_structure_vars, adjust comment.
1665         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): Remove.
1666         (PARAM_SALIAS_MAX_ARRAY_ELEMENTS): Likewise.
1667         * opts.c (decode_options): Do not set flag_tree_salias.
1668         (common_handle_option): Add OPT_ftree_salias to the backward
1669         compatibility section.
1670
1671 2008-05-08  Richard Guenther  <rguenther@suse.de>
1672
1673         * tree-flow-inline.h (var_can_have_subvars): Move ...
1674         * tree-ssa-structalias.c (var_can_have_subvars): ... here.
1675         * tree-flow.h (var_can_have_subvars): Remove.
1676         (push_fields_onto_fieldstack): Remove.
1677         (sort_fieldstack): Likewise.
1678         (struct fieldoff): Move ...
1679         * tree-ssa-structalias.c (struct fieldoff): ... here.  Remove
1680         alias_set and base_for_components fields.
1681         (sort_fieldstack): Make static.
1682         (push_fields_onto_fieldstack): Likewise.  Remove code that
1683         handles anything but RECORD_TYPEs.  Remove alias_set and
1684         base_for_components handling.
1685         (create_variable_info_for): Adjust.
1686
1687 2008-05-08  Seongbae Park  <seongbae.park@gmail.com>
1688
1689         * common.opt (Wframe-larger-than=): Shorten the help message
1690         to one line.
1691         * doc/invoke.texi (Wframe-larger-than=): Add more description.
1692
1693 2008-05-08  Rafael Espindola  <espindola@google.com>
1694
1695         * tree-complex.c (expand_complex_div_wide): Don't create CONDs that
1696         trap.
1697         * tree-gimple.c (is_gimple_condexpr): Check that the expression doesn't
1698         trap and that both operands are gimple values.
1699         (canonicalize_cond_expr_cond): Use is_gimple_condexpr.
1700         * gcc/tree-eh.c (tree_could_trap_p): Correctly detect if a comparison
1701         is a fp operation.
1702
1703 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1704
1705         * read-rtl.c (join_c_conditions): Return the first string if the
1706         two strings are equal.
1707
1708 2008-05-08  Richard Sandiford  <rsandifo@nildram.co.uk>
1709
1710         * gensupport.h (pred_data): Add a "num_codes" field.
1711         (add_predicate_code): Declare.
1712         * gensupport.c (add_predicate_code): New function.
1713         (std_pred_table): Add an "allows_const_p" field.
1714         (std_preds): Set this field for predicates that allow RTX_CONST_OBJs.
1715         Remove the (incomplete) list of such codes from the codes field.
1716         (init_predicate_table): Use add_predicate_code.  Add all
1717         RTX_CONST_OBJs if allows_const_p is true.
1718         * genrecog.c (process_define_predicate): Use add_predicate_code.
1719
1720 2008-05-08  David Daney  <ddaney@avtrex.com>
1721             Richard Sandiford  <rsandifo@nildram.co.uk>
1722         
1723         * config/mips/mips.md (mips_expand_compare_and_swap_12): Handle
1724         special case of constant zero operands.
1725         * config/mips/mips.c (mips_expand_compare_and_swap_12): Zero extend
1726         old and new values.  Special case constant zero values.
1727         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Skip 'sync' if compare
1728         fails.
1729         (MIPS_COMPARE_AND_SWAP_12): Handle constant zero operands.
1730         (MIPS_COMPARE_AND_SWAP_12_0): New macro.
1731
1732 2008-05-08  Paolo Bonzini  <bonzini@gnu.org>
1733
1734         PR target/36090
1735         * simplify-rtx.c (simplify_plus_minus): Create CONST of
1736         similar RTX_CONST_OBJ before CONST_INT.
1737
1738 2008-05-08  Steve Ellcey  <sje@cup.hp.com>
1739
1740         * stmt.c (expand_stack_restore): Change sa mode if needed.
1741
1742 2008-05-08  Richard Guenther  <rguenther@suse.de>
1743
1744         * config/i386/i386-protos.h (ix86_return_in_memory): Adjust
1745         return type to bool.
1746         (ix86_sol10_return_in_memory): Likewise.
1747         (ix86_i386elf_return_in_memory): Likewise.
1748         (ix86_i386interix_return_in_memory): Likewise.
1749         * config/i386/i386.c (ix86_return_in_memory): Likewise.
1750         (ix86_sol10_return_in_memory): Likewise.
1751         (ix86_i386elf_return_in_memory): Likewise.
1752         (ix86_i386interix_return_in_memory): Likewise.
1753
1754 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1755
1756         PR bootstrap/36180
1757         * calls.c (compute_argument_block_size ): Add ATTRIBUTE_UNUSED to
1758         fndecl argument.
1759         (emit_library_call_value_1): Add ATTRIBUTE_UNUSED to variable fndecl.
1760         * target-def.h: Check that TARGET_RETURN_IN_MEMORY isn't
1761         declared in front.
1762
1763 2008-05-08  Richard Guenther  <rguenther@suse.de>
1764
1765         * tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
1766         * tree-data-ref.h (struct dr_alias): Remove subvars field.
1767         (DR_SUBVARS): Remove.
1768         * tree-dfa.c (dump_subvars_for): Remove.
1769         (debug_subvars_for): Likewise.
1770         (dump_variable): Do not dump subvars.
1771         (remove_referenced_var): Do not remove subvars.
1772         * tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
1773         (lookup_subvars_for_var): Remove.
1774         (get_subvars_for_var): Likewise.
1775         (get_subvars_at): Likewise.
1776         (get_first_overlapping_subvar): Likewise.
1777         (overlap_subvar): Likewise.
1778         * tree-flow.h (subvar_t): Remove.
1779         (struct var_ann_d): Remove subvars field.
1780         * tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
1781         argument.  Remove special handling of SFTs.
1782         (compute_tag_properties): Likewise.
1783         (set_initial_properties): Likewise.
1784         (compute_call_clobbered): Likewise.
1785         (count_mem_refs): Likewise.
1786         (compute_memory_partitions): Likewise.
1787         (compute_flow_insensitive_aliasing): Likewise.
1788         (setup_pointers_and_addressables): Likewise.
1789         (new_type_alias): Likewise.
1790         (struct used_part): Remove.
1791         (used_portions): Likewise.
1792         (struct used_part_map): Likewise.
1793         (used_part_map_eq): Likewise.
1794         (used_part_map_hash): Likewise.
1795         (free_used_part_map): Likewise.
1796         (up_lookup): Likewise.
1797         (up_insert): Likewise.
1798         (get_or_create_used_part_for): Likewise.
1799         (create_sft): Likewise.
1800         (create_overlap_variables_for): Likewise.
1801         (find_used_portions): Likewise.
1802         (create_structure_vars): Likewise.
1803         * tree.def (STRUCT_FIELD_TAG): Remove.
1804         * tree.h (MTAG_P): Adjust.
1805         (struct tree_memory_tag): Remove base_for_components and
1806         unpartitionable flags.
1807         (struct tree_struct_field_tag): Remove.
1808         (SFT_PARENT_VAR): Likewise.
1809         (SFT_OFFSET): Likewise.
1810         (SFT_SIZE): Likewise.
1811         (SFT_NONADDRESSABLE_P): Likewise.
1812         (SFT_ALIAS_SET): Likewise.
1813         (SFT_UNPARTITIONABLE_P): Likewise.
1814         (SFT_BASE_FOR_COMPONENTS_P): Likewise.
1815         (union tree_node): Remove sft field.
1816         * alias.c (get_alias_set): Remove special handling of SFTs.
1817         * print-tree.c (print_node): Remove handling of SFTs.
1818         * tree-dump.c (dequeue_and_dump): Likewise.
1819         * tree-into-ssa.c (mark_sym_for_renaming): Likewise.
1820         * tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
1821         * tree-predcom.c (set_alias_info): Do not set subvars.
1822         * tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
1823         * tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
1824         * tree-ssa-operands.c (access_can_touch_variable): Likewise.
1825         (add_vars_for_offset): Remove.
1826         (add_virtual_operand): Remove special handling of SFTs.
1827         (add_call_clobber_ops): Likewise.
1828         (add_call_read_ops): Likewise.
1829         (get_asm_expr_operands): Likewise.
1830         (get_modify_stmt_operands): Likewise.
1831         (get_expr_operands): Likewise.
1832         (add_to_addressable_set): Likewise.
1833         * tree-ssa.c (verify_ssa_name): Do not handle SFTs.
1834         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1835         * tree-vect-transform.c (vect_create_data_ref_ptr): Do not set subvars.
1836         * tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
1837         (tree_code_size): Remove STRUCT_FIELD_TAG handling.
1838         (tree_node_structure): Likewise.
1839         * tree-ssa-structalias.c (set_uids_in_ptset): Remove special
1840         handling of SFTs.
1841         (find_what_p_points_to): Likewise.
1842
1843 2008-05-08  Sa Liu  <saliu@de.ibm.com>
1844
1845         * config/spu/spu.md: Fixed subti3 pattern.
1846
1847 2008-05-08  Richard Guenther  <rguenther@suse.de>
1848
1849         PR middle-end/36154
1850         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
1851         sure to create a representative for trailing arrays for PTA.
1852
1853 2008-05-08  Richard Guenther  <rguenther@suse.de>
1854
1855         PR middle-end/36172
1856         * fold-const.c (operand_equal_p): Two objects which types
1857         differ in pointerness are not equal.
1858
1859 2008-05-08  Kai Tietz  <kai.tietz@onevision.com>
1860
1861         * calls.c (compute_argument_block_size): Add argument tree fndecl.
1862         (OUTGOING_REG_PARM_STACK_SPACE): Add function type argument.
1863         (emit_library_call_value_1): Add new variable fndecl initialized by
1864         NULL_TREE. It should be the decl type of orgfun, but this information
1865         seems not to be available here, so it uses the default calling abi.
1866         * config/arm/arm.c (arm_return_in_memory): Add fntype argumen.
1867         * config/arm/arm.h (RETURN_IN_MEMORY): Replace RETURN_IN_MEMORY
1868         by TARGET_RETURN_IN_MEMORY.
1869         * config/i386/i386-interix.h: Likewise.
1870         * config/i386/i386.h: Likewise.
1871         * config/i386/i386elf.h: Likewise.
1872         * config/i386/ptx4-i.h: Likewise.
1873         * config/i386/sol2-10.h: Likewise.
1874         * config/i386/sysv4.h: Likewise.
1875         * config/i386/vx-common.h: Likewise.
1876         * config/cris/cris.h: Removed #if 0 clause.
1877         * config/arm/arm-protos.h (arm_return_in_memory): Add fntype argument.
1878         * config/i386/i386-protos.h (ix86_return_in_memory): Add fntype
1879         argument.
1880         (ix86_sol10_return_in_memory): Likewise.
1881         (ix86_i386elf_return_in_memory): New.
1882         (ix86_i386interix_return_in_memory): New.
1883         * config/mt/mt-protos.h (mt_return_in_memory): New.
1884         * config/mt/mt.c: Likewise.
1885         * config/mt/mt.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1886         (RETURN_IN_MEMORY):  Replace by TARGET_RETURN_IN_MEMORY.
1887         * config/bfin/bfin.h: Likewise.
1888         * config/bfin/bfin-protos.h (bfin_return_in_memory): Add fntype
1889         argument.
1890         * config/bfin/bfin.c: Likewise.
1891         * config/pa/pa.h (OUTGOING_REG_PARM_STACK_SPACE): Add FNTYPE argument.
1892         * config/alpha/unicosmk.h: Likewise.
1893         * config/i386/cygming.h: Likewise.
1894         * config/iq2000/iq2000.h: Likewise.
1895         * config/mips/mips.h: Likewise.
1896         * config/mn10300/mn10300.h: Likewise.
1897         * config/rs6000/rs6000.h: Likewise.
1898         * config/score/score.h: Likewise.
1899         * config/spu/spu.h: Likewise.
1900         * config/v850/v850.h: Likewise.
1901         * defaults.h: Likewise.
1902         * doc/tm.texi (OUTGOING_REG_PARM_STACK_SPACE): Adjust documentation.
1903         * expr.c (emit_block_move): Adjust use of
1904         OUTGOING_REG_PARM_STACK_SPACE.
1905         * function.c (STACK_DYNAMIC_OFFSET): Adjust use of
1906         OUTGOING_REG_PARM_STACK_SPACE.
1907         * targhooks.c (default_return_in_memory): Remove RETURN_IN_MEMORY.
1908
1909 2008-05-08  Jakub Jelinek  <jakub@redhat.com>
1910
1911         * tree-parloops.c (create_parallel_loop): Set OMP_RETURN_NOWAIT
1912         on OMP_RETURN for OMP_FOR.
1913
1914         PR debug/35896
1915         * dwarf2out.c (dw_expand_expr, common_check): Removed.
1916         (fortran_common): New function.
1917         (gen_variable_die): Call fortran_common instead of common_check,
1918         adjust for it returning tree instead of rtx.  Formatting.
1919
1920 2008-05-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
1921
1922         PR rtl/7335
1923         PR rtl/33826
1924         * see.c (see_copy_insn): Copy new pure const attributes for new call.
1925         * c-decl.c (merge_decls): Ditto.
1926         * postreload.c (record_opr_changes): Change CONST_OR_PURE_CALL_P
1927         to RTL_CONST_OR_PURE_CALL_P.
1928         * tree.c (define_local_buitin): Rename DECL_IS_PURE to DECL_PURE_P.
1929         Initialized DECL_LOOPING_CONST_PURE.
1930         (process_call_operands): Set tree_side_effects properly.
1931         * tree.h (TREE_READONLY_DECL_P): Removed.
1932         (DECL_IS_PURE): Renamed to DECL_PURE_P.
1933         (DECL_LOOPING_OR_CONST_P): New macro.
1934         (struct tree_function_decl): Added looping_const_or_pure_p.
1935         (ECF_*) Renumbered.
1936         (ECF_LOOPING_OR_CONST_P): New macro.
1937         * rtlanal.c (pure_const_p): Removed.
1938         * builtins.c (expand_builtin): Rename DECL_IS_PURE to DECL_PURE_P.
1939         * reorg.c (delete_prior_computation) Changed CONST_OR_PURE_CALL_P
1940         to RTL_CONST_CALL_P.
1941         * ipa-pure-const.c (pure_const_state_e): Added looping field.
1942         (check_decl, check_tree, check_call, scan_function): Initialize
1943         looping.
1944         (analyze_function): Rename DECL_IS_PURE to DECL_PURE_P.
1945         (static_execute): Set looping true for recursive functions.
1946         Undo setting state to IPA_NEITHER for recursive functions.
1947         * cse.c (cse_insn): 
1948         * ifcvt.c (noce_can_store_speculate_p): Changed
1949         CONST_OR_PURE_CALL_P and pure_call_p to RTL_CONST_CALL_P or 
1950         RTL_CONST_OR_PURE_CALL_P.
1951         * dse.c (scan_insn): Ditto.
1952         * local-alloc.c (validate_equiv_mem, memref_used_between_p): Ditto.
1953         * gcse.c (oprs_not_seen_p) Changed CONST_OR_PURE_CALL_P to
1954         RTL_CONST_OR_PURE_CALL_P.
1955         (store_killed_in_insn): Changed CONST_OR_PURE_CALL_P and
1956         pure_call_p to RTL_CONST_CALL_P.
1957         * gimplify.c (gimplify_call_expr): Clear side effects for
1958         non-looping pure and constant calls.
1959         * calls.c (emit_call_1): Set rtl flags from ecf flags.
1960         (flags_from_decl_or_type): Set ecf flags from decl flags.
1961         (initialize_argument_information): Turn off
1962         ECF_LOOPING_CONST_OR_PURE when turning off ECF_CONST.
1963         Change const to pure if callee_copies is true rather than just
1964         turning off const.
1965         (expand_call): Turn off ECF_LOOPING_PURE_CONST_CALL and remove old
1966         way of marking pure calls.
1967         (emit_library_call_value_1): Turn off ECF_LOOPING_PURE_CONST_CALL.
1968         Remove hack that was supposed to fix pr7335 and remove old
1969         way of marking pure calls.
1970         * emit-rtl.c (emit_copy_of_insn_after): Copy RTL_CONST_CALL_P,
1971         RTL_PURE_CALL_P, RTL_LOOPING_CONST_OR_PURE_CALL_P.
1972         * cselib.c (cselib_process_insn): Changed CONST_OR_PURE_CALL_P to
1973         RTL_CONST_OR_PURE_CALL_P.
1974         * tree-ssa-pre.c (can_value_number_call): Fixed spacing.
1975         * loop-invariant.c (find_exits, find_invariant_bb): Changed
1976         CONST_OR_PURE_CALL_P to RTL_CONST_OR_PURE_CALL_P.
1977         * sched-deps.c (schedule_analyze): Ditto.
1978         * rtl.h (struct rtx_def): Use call field, unchanging field, and
1979         return_val field of calls to represent pure and const function info.
1980         (CONST_OR_PURE_CALL_P): Deleted macro.
1981         (RTL_CONST_CALL_P, RTL_PURE_CALL_P,
1982         RTL_LOOPING_CONST_OR_PURE_CALL_P, RTL_CONST_OR_PURE_P): New macros.
1983         * tree-inline.c (copy_body_r): Changed TREE_READONLY_DECL_P to
1984         TREE_READONLY.
1985         * tree-optimize.c (execute_fixup_cfg): Added test for
1986         ECF_LOOPING_CONST_OR_PURE.
1987         * c-common.c (handle_pure_attribute): Changed DECL_IS_PURE to
1988         DECL_PURE_P.
1989         * tree-cfg.c (update_call_expr_flags): Do not clear tree side
1990         effects for looping pure or const calls.
1991         (verify_gimple_expr): Added verification code. 
1992         * config/alpha/alpha.c (alpha_legitimize_address,
1993         alpha_emit_xfloating_libcall): Changed CONST_OR_PURE_CALL_P to
1994         RTL_CONST_CALL_P.
1995         * config/s390/s390.c (s390_emit_tls_call_insn): Ditto.
1996         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Ditto.
1997         * config/mips/mips.c (mips_call_tls_get_addr): Ditto.
1998         * cfgrtl.c (need_fake_edge_p): Changed CONST_OR_PURE_CALL_P to
1999         RTL_CONST_OR_PURE_CALL_P.
2000         * dce.c (deletable_insn_p): Allow non looping, non sibling, pure
2001         and const calls to be deleted.
2002
2003 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2004
2005         PR target/35714
2006         * config/i386/mmx.md (mmx_subv2sf3): New expander.
2007         (*mmx_subv2sf3): Rename from mmx_subv2sf3 insn pattern.
2008         (*mmx_eqv2sf3): Rename from mmx_eqv2sf3 insn pattern.
2009         (mmx_eqv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2010         to handle nonimmediate operands.
2011         (*mmx_paddwd): Rename from mmx_paddwd insn pattern.
2012         (mmx_paddwd): New expander.  Use ix86_fixup_binary_operands_no_copy
2013         to handle nonimmediate operands.
2014         (*mmx_pmulhrwv4hi3): Rename from mmx_pmulhrwv4hi3 insn pattern.
2015         (mmx_pmulhrwv4hi3): New expander.  Use
2016         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2017         (*sse2_umulv1siv1di3): Rename from sse2_umulv1siv1di3 insn pattern.
2018         (sse2_umulv1siv1di3): New expander.  Use
2019         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2020         (*mmx_eq<mode>3): Rename from mmx_eq<mode>3 insn pattern.
2021         (mmx_eq<mode>3): New expander.  Use
2022         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2023         (*mmx_uavgv8qi3): Rename from mmx_uavgv8qi3 insn pattern.
2024         (mmx_uavgv8qi3): New expander.  Use
2025         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2026         (*mmx_uavgv4hi3): Rename from mmx_uavgv4hi3 insn pattern.
2027         (mmx_uavgv4hi3): New expander.  Use
2028         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2029
2030         * config/i386/sse.md
2031         (sse_movhlps_exp): New expander.  Use ix86_fixup_binary_operands
2032         to handle nonimmediate operands.
2033         (sse_movlhps_exp): New expander.  Use ix86_fixup_binary_operands
2034         to handle nonimmediate operands.
2035         (sse_loadhps_exp): New expander.  Use ix86_fixup_binary_operands
2036         to handle nonimmediate operands.
2037         (sse_loadlps_exp): New expander.  Use ix86_fixup_binary_operands
2038         to handle nonimmediate operands.
2039         (sse2_unpckhpd_exp): New expander.  Use
2040         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2041         (sse2_unpcklpd_exp): New expander.  Use
2042         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2043         (sse_loadhpd_exp): New expander.  Use ix86_fixup_binary_operands
2044         to handle nonimmediate operands.
2045         (sse_loadlpd): New expander.  Use ix86_fixup_binary_operands
2046         to handle nonimmediate operands.
2047         (*sse2_<plusminus_insn><mode>3): Rename from
2048         sse2_<plusminus_insn><mode>3 insn pattern.
2049         (sse2_<plusminus_insn><mode>3): New expander.  Use
2050         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2051         (*sse2_umulv2siv2di3): Rename from sse2_umulv2siv2di3 insn pattern.
2052         (sse2_umulv2siv2di3): New expander.  Use
2053         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2054         (*sse4_1_mulv2siv2di3): Rename from sse4_1_mulv2siv2di3 insn pattern.
2055         (sse4_1_mulv2siv2di3): New expander.  Use
2056         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2057         (*sse2_pmaddwd): Rename from sse2_pmaddwd insn pattern.
2058         (sse2_pmaddwd): New expander.  Use
2059         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2060         (*sse2_eq<mode>3): Rename from sse2_eq<mode>3 insn pattern.
2061         (sse2_eq<mode>3): New expander.  Use
2062         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2063         (*sse4_1_eqv2di3): Rename from sse4_1_eqv2di3 insn pattern.
2064         (sse4_1_eqv2di3): New expander.  Use
2065         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2066         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2067         (sse2_uavgv16qi3): New expander.  Use
2068         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2069         (*sse2_uavgv16qi3): Rename from sse2_uavgv16qi3 insn pattern.
2070         (sse2_uavgv16qi3): New expander.  Use
2071         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2072         (*sse2_uavgv8hi3): Rename from sse2_uavgv8hi3 insn pattern.
2073         (sse2_uavgv8hi3): New expander.  Use
2074         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2075         (*ssse3_pmulhrswv8hi3): Rename from ssse3_pmulhrswv8hi3 insn pattern.
2076         (ssse3_pmulhrswv8hi3): New expander.  Use
2077         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2078         (*ssse3_pmulhrswv4hi3): Rename from ssse3_pmulhrswv4hi3 insn pattern.
2079         (ssse3_pmulhrswv4hi3): New expander.  Use
2080         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2081
2082         (<sse>_vm<plusminus_insn><mode>3): Do not use ix86_binary_operator_ok.
2083         (<sse>_vmmul<mode>3): Ditto.
2084         (divv4sf3): Do not use ix86_fixup_binary_operands_no_copy.
2085         (divv2df3): Ditto.
2086         (ssse3_pmaddubsw128): Use register_operand for operand 1.
2087         (ssse3_pmaddubsw): Ditto.
2088
2089         * config/i386/i386.c (struct_builtin_description)
2090         [IX86_BUILTIN_LOADHPS]: Use CODE_FOR_sse_loadhps_exp.
2091         [IX86_BUILTIN_STOREHPS]: Use CODE_FOR_sse_loadlps_exp.
2092         [IX86_BUILTIN_LOADHPD]: Use CODE_FOR_sse2_loadhpd_exp.
2093         [IX86_BUILTIN_LOADLPD]: Use CODE_FOR_sse2_loadlpd_exp.
2094         [IX86_BUILTIN_MOVHLPS]: Use CODE_FOR_sse_movhlps_exp.
2095         [IX86_BUILTIN_MOVLHPS]: Use CODE_FOR_sse_movlhps_exp.
2096         [IX86_BUILTIN_UNPCKHPD]: Use FOR_sse2_unpckhpd_exp.
2097         [IX86_BUILTIN_UNPCKLPD]: Use FOR_sse2_unpcklpd_exp.
2098         (ix86_fixup_binary_operands): Assert that src1
2099         and src2 must have the same mode when swapped.
2100         (ix86_expand_binop_builtin): Do not use ix86_fixup_binary_operands
2101         and ix86_binary_operator_ok.  Do not force operands in registers
2102         when optimizing.
2103
2104 2008-05-07  Jan Hubicka  <jh@suse.cz>
2105
2106         * cgraph.c (dump_cgraph_node): Update.
2107         * cgraph.h (cgraph_local_info): Break out inline summary.
2108         * cgraphunit.c (cgraph_process_new_functions): Use inliner analysis
2109         hook.
2110         * ipa-inline (inline_summary): New accestor function.
2111         (cgraph_clone_inlined_nodes, cgraph_check_inline_limits,
2112         cgraph_decide_inlining, compute_inline_parameters): Update.
2113         * ipa.c (cgraph_remove_unreachable_nodes): Remove statistics.
2114
2115 2008-05-07  Maxim Kuvyrkov  <maxim@codesourcery.com>
2116
2117         Cleanup ColdFire scheduling support and add V4 pipeline model.
2118
2119         * config/m68k/m68k.md (UNSPEC_TIE): New constant.
2120         (define_attr cpu): Add cfv4 value.
2121         (define_attr type, define_attr type1): Merge into a single 'type'
2122         attribute.  Update all uses.
2123         (define_attr opx_type, define_attr opy_type, define_attr opx_access):
2124         Rearrange and update.  Rename value 'reg' to 'Rn', add value 'FPn'.
2125         Update all uses.
2126         (define_attr opx_mem, define_attr opy_mem): Remove.
2127         (define_attr op_mem): Clean up, update comment.
2128         (define_attr size): Use specific values instead of general int.
2129         (define_attr guess, define_attr split): Remove.  Update all uses.
2130         (movdf_internal, tstsi_internal, tsthi_internal, tstqi_internal,
2131         tst<mode>_68881, pushexthisi_const, movsi_const0_68000_10,
2132         movsi_const0_68040_60, movsi_const0, movsi_cf, movstrictqi_cf,
2133         zero_extendhisi2_cf, zero_extendqisi2_cfv4, cfv4_extendhisi2,
2134         68k_extendhisi2, extendqihi2, cfv4_extendqisi2, 68k_extendqisi2,
2135         floatsi<mode>2_68881, ftrunc<mode>2_68881, ftrunc<mode>2_cf,
2136         fix<mode>qi2_68881, fix<mode>hi2_68881, fix<mode>si2_68881,
2137         adddi_dishl32, addsi3_5200, add<mode>3_floatsi_68881,
2138         add<mode>3_floathi_68881, add<mode>3_floatqi_68881,
2139         add<mode>3_68881, add<mode>3_cf, subdi_dishl32, subsi3,
2140         sub<mode>3_floatsi_68881, sub<mode>3_floathi_68881,
2141         sub<mode>3_floatqi_68881, sub<mode>3_68881, sub<mode>3_cf,
2142         mulhi3, mulhisi3, mulhisisi3_s, mulsi3_68020, mulsi3_cf,
2143         umulhisi3, mulhisisi3_z, mul<mode>3_floatsi_68881,
2144         mul<mode>3_floathi_68881, mul<mode>3_floatqi_68881, fmul<mode>3_cf,
2145         div<mode>3_cf, sqrt<mode>2_cf, abs<mode>2_cf, clzsi2,
2146         one_cmplsi2_5200, subreghi1ashrdi_const32, ashrsi3, lshrsi3,
2147         bsetmemqi, bsetmemqi_ext, bclrmemqi, bclrmemqi_ext,
2148         beq, bne, bgt, blt, bordered, bunordered, buneq, bunge, bungt, bunle,
2149         bunlt, bltgt, tablejump_internal, call, non_symbolic_call_value,
2150         symbolic_call_value_jsr, symbolic_call_value_bsr, link):
2151         Update or set attributes.
2152         (stack_tie): New fake instruction.
2153
2154         * config/m68k/m68k.h (TUNE_CFV4): New macro.
2155         (m68k_sched_attr_size): Update declaration.
2156         (m68k_sched_attr_type2): Remove.
2157         (m68k_sched_address_bypass_p, m68k_sched_indexed_address_bypass_p):
2158         Declare new bypass predicates.
2159
2160         * config/m68k/m68k.c (m68k_sched_issue_rate,
2161         m68k_sched_first_cycle_multipass_dfa_lookahead): Declare hook
2162         implementations.
2163         (TARGET_SCHED_ISSUE_RATE,
2164         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Override hooks.
2165         (override_options): Handle scheduling for ColdFire V4 core.
2166         (m68k_expand_prologue): Emit stack_tie.
2167         (enum attr_op_type): Split value 'OP_TYPE_REG' to 'OP_TYPE_RN' and
2168         'OP_TYPE_FPN'.  Update all uses.
2169         (sched_guess_p): Remove.
2170         (sched_address_type): Handle symbolic addresses.
2171         (sched_get_operand): New static function.
2172         (sched_operand_type): Merge into sched_attr_op_type.
2173         (sched_attr_op_type): Handle FP registers, handle quick constants,
2174         update.
2175         (m68k_sched_attr_opx_type, m68k_sched_attr_opy_type): Update.
2176         (m68k_sched_attr_size): Update.  Move logic to ...
2177         (sched_get_attr_size_int): New static function.
2178         (sched_get_opxy_mem_type): New static function.
2179         (m68k_sched_attr_op_mem): Update.
2180         (m68k_sched_attr_type2): Remove.
2181         (sched_cfv4_bypass_data): New static variable.
2182         (m68k_sched_adjust_cost): Handle ColdFire V4 bypass.
2183         (m68k_sched_issue_rate): Implement scheduler hook.
2184         (struct _sched_ib: enabled_p): New field.
2185         (m68k_sched_variable_issue): Update.  Handle V4.
2186         (SCHED_DUMP_TODO, SCHED_DUMP_DONE, SCHED_DUMP_NOTHING,
2187         sched_dump_class_func_t, sched_dump_split_class,
2188         sched_dump_dfa_guess_unit_code, sched_dump_dfa_state,
2189         sched_dump_dfa_class, m68k_sched_dump): Remove.
2190         (m68k_sched_first_cycle_multipass_dfa_lookahead): Implement scheduler
2191         hook.
2192         (m68k_sched_init_global): Remove statisctics dumping, introduce
2193         sanity check that all instructions have pipeline reservations.  Handle
2194         ColdFire V4 core.
2195         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
2196         Handle ColdFire V4 core.
2197         (sched_mem_operand_p, sched_get_reg_operand, sched_get_mem_operand):
2198         New static functions.
2199         (m68k_sched_address_bypass_p): New bypass predicate.
2200         (sched_get_indexed_address_scale): New static function.
2201         (m68k_sched_indexed_address_bypass_p): New bypass predicate.
2202
2203         * cf.md: Update comments.
2204         (define_attr type2): Remove.  Use 'type' attribute instead.
2205         Update all uses.
2206         (cf_ib): Rename to cfv123_ib.  Update all uses.
2207         (cf_oep): Rename to cfv123_oep.  Update all uses.
2208         (cf_chr): Rename to cfv123_chr.  Update all uses.
2209         (cf_mem): Rename to cfv123_mem.  Update all uses.
2210         (cf_mac): Move to more appropriate place.
2211         (cfv123_guess): New automaton and cpu_unit.
2212         (cfv123_*, cfv12_*, cfv1_*, cfv2_*, cfv3_*): Use type attribute.
2213         Update uses of 'size' attribute.  Handle before reload scheduling.
2214         (cfv123_guess): New dummy reservation for unhandled instructions.
2215         (cfv4_*): Pipeline description of ColdFire V4 core.
2216         (ignore): New reservation to handle 'ignore' type.
2217
2218 2008-05-07  Ian Lance Taylor  <iant@google.com>
2219
2220         PR middle-end/36013
2221         * gimplify.c (find_single_pointer_decl_1): Don't look through
2222         indirections.
2223         (find_single_pointer_decl): Adjust comments.
2224
2225 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2226
2227         PR middle-end/36137
2228         * fold-const.c (fold_binary): Use STRIP_SIGN_NOPS instead of
2229         STRIP_NOPS on arguments even for MIN_EXPR and MAX_EXPR.
2230
2231         PR middle-end/36106
2232         * omp-low.c (expand_omp_atomic_pipeline): Load value using the
2233         integral type rather than floating point, then VIEW_CONVERT_EXPR
2234         to the floating point type.
2235
2236 2008-05-07  Uros Bizjak  <ubizjak@gmail.com>
2237
2238         * config/i386/i386.c (ix86_expand_copysign): Force non-zero constant
2239         TFmode op0 to register.
2240
2241 2008-05-07  Alan Modra  <amodra@bigpond.net.au>
2242
2243         * c-decl.c (grokdeclarator): Comment typo.
2244
2245 2008-05-06  Aldy Hernandez  <aldyh@redhat.com>
2246
2247         * tree-flow.h: Remove prototype for computed_goto_p.
2248         * tree-cfg.c (computed_goto_p): Make static.
2249
2250 2008-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2251
2252         PR target/35657
2253         * config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed to ...
2254         (contains_aligned_value_p): This.  Handle _Decimal128.
2255         (ix86_function_arg_boundary): Only align _Decimal128 to its
2256         natural boundary and handle it properly.
2257
2258 2008-05-06  Martin Jambor  <mjambor@suse.cz>
2259
2260         * ipa-cp.c (ipcp_method_orig_node): Renamed to ipcp_get_orig_node.
2261         (ipcp_method_is_cloned): Renamed to ipcp_node_is_clone
2262         (ipcp_method_set_orig_node): Removed.
2263         (ipcp_cval_get_cvalue_type): Removed.
2264         (ipcp_method_get_scale): Renamed to ipcp_get_node_scale.
2265         (ipcp_method_set_scale): Renamed to ipcp_set_node_scale.
2266         (ipcp_cval_set_cvalue_type): Removed.
2267         (ipcp_cval_get_cvalue): Removed.
2268         (ipcp_cval_set_cvalue): Removed.
2269         (ipcp_type_is_const): Renamed to ipcp_lat_is_const.
2270         (ipcp_cval_equal_cvalues): Renamed to ipcp_lats_are_equal
2271         (ipcp_lats_are_equal): Changed parameters to two ipcp_lattice's
2272         (ipcp_cval_meet): Renamed to ipa_lattice_meet
2273         (ipcp_cval_changed): Changed to use ipcp_lat_is_const
2274         (ipcp_method_cval): Renamed to ipcp_get_ith_lattice
2275         (ipcp_get_ith_lattice): Changed parameters.
2276         (ipcp_cval_compute): Renamed to ipcp_lattice_from_jfunc
2277         (ipcp_lattice_from_jfunc): Changed parameters.
2278         (ipcp_redirect): Local lattice pointer instead of lattice type variable.
2279         (ipcp_method_cval_print): Added temporary variable info.
2280         (ipcp_redirect): Removed already unused local variable caller.
2281         (ipcp_redirect): New temporary variable orig_callee_info
2282         (ipcp_redirect): Removed newly unused local variable callee.
2283         (ipcp_redirect): Removed (a bit confusing) local variable type.
2284         (ipcp_insert_stage): Added local variable info.
2285         (ipcp_cval_changed): Renamed to ipcp_lattice_changed, parameters 
2286         renamed too
2287         (ipcp_formal_create): Removed.
2288         (ipcp_method_cval_set): Removed.
2289         (ipcp_propagate_stage): Renamed lattice variables.
2290         (ipcp_method_cval_set_cvalue_type): Removed.
2291         (ipcp_method_cval_print): Renamed to ipcp_print_all_lattices
2292         (ipcp_print_all_lattices): Changed printed strings to refer to 
2293         lattices rather than cvals.
2294         (ipcp_method_cval_init): Renamed to ipcp_initialize_node_lattices
2295         (ipcp_propagate_const): Changed formal parameters.
2296         (build_const_val): Changed formal parameters.
2297         (ipcp_insert_stage): Removed useless variable cvalue
2298         (build_const_val): Changed formal parameters.
2299         (ipcp_method_compute_scale): Renamed to ipcp_compute_node_scale
2300         (ipcp_after_propagate): Renamed to ipcp_change_tops_to_bottom
2301         (ipcp_callsite_param_print): Renamed to ipcp_print_all_jump_functions
2302         (ipcp_profile_mt_count_print): Renamed to ipcp_print_func_profile_counts
2303         (ipcp_print_func_profile_counts): Changed string from "method" to 
2304         "function"
2305         (ipcp_profile_cs_count_print): Renamed to ipcp_print_call_profile_counts
2306         (ipcp_profile_edge_print): Renamed to ipcp_print_edge_profiles
2307         (ipcp_profile_bb_print): Renamed to ipcp_print_bb_profiles
2308         (ipcp_structures_print): Renamed to ipcp_print_all_structures
2309         (ipcp_profile_print): Renamed to ipcp_print_profile_data
2310         (ipcp_lat_is_const): Changed parameters and made inline.
2311         (ipcp_replace_map_create): Renamed to ipcp_create_replace_map
2312         (ipcp_redirect): Renamed to ipcp_need_redirect_p
2313         (ipcp_need_redirect_p): Calls ipcp_lat_is_const instead of using 
2314         the predicate condition directly
2315         (ipcp_propagate_stage): Added local variable args. Removed local
2316         variable callee.  (Both are mere code simplifications.)
2317         (ipcp_method_dont_insert_const): Renamed to
2318         ipcp_node_not_modifiable_p.
2319         (ipcp_node_not_modifiable_p): Made inline.
2320         (ipcp_cloned_create): Renamed to ipcp_init_cloned_node
2321         (ipcp_propagate_const): Renamed to ipcp_propagate_one_const
2322         (ipcp_print_all_lattices): Removed variable cvalue
2323         (ipcp_method_scale_print): Renamed to ipcp_function_scale_print
2324         Updated comments.
2325
2326 2008-05-06  Olivier Hainque  <hainque@adacore.com>
2327
2328         * tree-sra.c (try_instantiate_multiple_fields): Early return
2329         if field has POINTER_TYPE.
2330
2331 2008-05-06  Kai Tietz  <kai.tietz@onevision.com>
2332
2333         * config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
2334         by using 'q' specifier for instruction.
2335         (ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
2336
2337 2008-05-06  Anatoly Sokolov <aesok@post.ru>
2338
2339         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2340         Change mode of zero_extract from QImode to HImode.
2341         (sign bit tests peepholes): (Ditto.).
2342
2343 2008-05-06  Uros Bizjak  <ubizjak@gmail.com>
2344
2345         * config/i386/mmx.md: Remove double backslashes from asm templates.
2346         (*mmx_addv2sf3): Rename from mmx_addv2sf3 insn pattern.
2347         (mmx_addv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2348         to handle nonimmediate operands.
2349         (*mmx_mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
2350         (mmx_mulv2sf3): New expander.  Use ix86_fixup_binary_operands_no_copy
2351         to handle nonimmediate operands.
2352         (*mmx_<code>v2sf3_finite): New insn pattern.
2353         (*mmx_<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
2354         (mmx_<code>v2sf3): New expander.  Use
2355         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2356         (mmx_<plusminus_insn><mode>3): New expander.  Use
2357         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2358         (*mmx_<plusminus_insn><mode>3): New insn pattern.
2359         (mmx_add<mode>3): Removed.
2360         (mmx_ssadd<mode>3): Ditto.
2361         (mmx_usadd<mode>3): Ditto.
2362         (mmx_sub<mode>3): Ditto.
2363         (mmx_sssub<mode>3): Ditto.
2364         (mmx_ussub<mode>3): Ditto.
2365         (*mmx_mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
2366         (mmx_mulv4hi3): New expander.  Use ix86_fixup_binary_operands_no_copy
2367         to handle nonimmediate operands.
2368         (*mmx_smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
2369         insn pattern.
2370         (mmx_smulv4hi3_highpart): New expander.  Use
2371         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2372         (*mmx_umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
2373         insn pattern.
2374         (mmx_umulv4hi3_highpart): New expander.  Use
2375         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2376         (*mmx_<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
2377         (mmx_<code>v4hi3): New expander.  Use
2378         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2379         (*mmx_<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
2380         (mmx_<code>v8qi3): New expander.  Use
2381         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2382         (*mmx_<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
2383         (mmx_<code><mode>3): New expander.  Use
2384         ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
2385
2386 2008-05-05  Jan Hubicka  <jh@suse.cz>
2387
2388         PR tree-optimization/36118
2389         * passes.c (pass_init_dump_file): Fix dump header.
2390
2391 2008-05-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2392
2393         PR middle-end/36141
2394         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't create
2395         VCE for function decls.
2396
2397 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2398
2399         * config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
2400
2401 2008-05-05  H.J. Lu  <hongjiu.lu@intel.com>
2402
2403         * config/i386/i386.md (sat_plusminus): New.
2404         (plusminus_insn): Likewise.
2405         (plusminus_mnemonic): Likewise.
2406         (addsub): Removed.
2407         (comm): Add ss_plus, us_plus, ss_minus and us_minus.
2408         (*<addsub><mode>3_cc_overflow): Renamed to ...
2409         (*<plusminus_insn><mode>3_cc_overflow): This.
2410         (*<addsub>si3_zext_cc_overflow): Renamed to ...
2411         (*<plusminus_insn>si3_zext_cc_overflow): This.
2412
2413         * config/i386/sse.md (<addsub><mode>3): Renamed to ...
2414         (<plusminus_insn><mode>3): This.
2415         (*<addsub><mode>3): Renamed to ...
2416         (*<plusminus_insn><mode>3): This.
2417         (<sse>_vm<addsub><mode>3): Renamed to ...
2418         (<sse>_vm<plusminus_insn><mode>3): This.
2419         (sse3_h<addsub>v4sf3): Renamed to ...
2420         (sse3_h<plusminus_insn>v4sf3): This.
2421         (sse3_h<addsub>v2df3): Renamed to ...
2422         (sse3_h<plusminus_insn>v2df3): This.
2423         (<plusminus_insn><mode>3): New.
2424         (*<plusminus_insn><mode>3): Likewise.
2425         (sse2_<plusminus_insn><mode>3): Likewise.
2426         (add<mode>): Removed.
2427         (*add<mode>3): Likewise.
2428         (sse2_ssadd<mode>3): Likewise.
2429         (sse2_usadd<mode>3): Likewise.
2430         (sub<mode>3): Likewise.
2431         (*sub<mode>3): Likewise.
2432         (sse2_sssub<mode>3): Likewise.
2433         (sse2_ussub<mode>3): Likewise.
2434
2435 2008-05-05  Benjamin Kosnik  <bkoz@redhat.com>
2436
2437         * gthr-single.h: Add in required interface elements as per gthr.h.
2438         Add stub types for __gthread_key_t, __gthread_once_t. Add defines
2439         for __GTHREAD_ONCE_INIT, __GTHREAD_RECURSIVE_MUTEX_INIT.
2440         Generalize UNUSED macro. 
2441         (__gthread_once): Add.
2442         (__gthread_key_create): Add.
2443         (__gthread_key_delete): Add.
2444         (__gthread_getspecific): Add.
2445         (__gthread_setspecific): Add.
2446         
2447 2008-05-05  Andrew Pinski  <Andrew.Pinski@playstation.sony.com>
2448
2449         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): If we have
2450         the same size types for the indirect reference on the rhs, then
2451         create a VCE.
2452
2453 2008-05-05  Uros Bizjak  <ubizjak@gmail.com>
2454
2455         * config/i386/i386.md
2456         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
2457         one insn template instead of template series.
2458         (*xordi_1_rex64): Ditto.
2459         (*xordi_2_rex64): Ditto.
2460
2461 2008-05-05  Ira Rosen  <irar@il.ibm.com>
2462
2463         PR tree-optimization/36119
2464         * tree-vect-transform.c (vectorizable_assignment): Set NCOPIES to 1
2465         in case of SLP.
2466
2467 2008-06-04  Jan Hubicka  <jh@suse.cz>
2468
2469         tree-optimization/36100
2470         * tree-pass.h (pass_O0_always_inline): Declare.
2471         * ipa-inline.c (inline_transform): Remove dead code.
2472         (cgraph_gate_O0_always_inline, cgraph_O0_always_inline,
2473         pass_O0_always_inline): New.
2474         * passes.c (init_optimization_passes): Add pass_O0_always_inline.
2475
2476 2008-05-04  Kai Tietz  <kai.tietz@onevision.com>
2477
2478         * config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
2479         mnemonic in this_param move for TARGET_64BIT.
2480
2481 2008-05-04  Uros Bizjak  <ubizjak@gmail.com>
2482
2483         * config/i386/i386.md (*strmovsi_1): Simplify asm alternatives.
2484         (*strmovsi_rex_1): Ditto.
2485         (*strsetsi_1): Ditto.
2486         (*strsetsi_rex_1): Ditto.
2487
2488         (add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
2489         adddicc expanders using SWI mode iterator.
2490
2491 2008-05-04  H.J. Lu  <hongjiu.lu@intel.com>
2492
2493         PR target/36121
2494         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove three
2495         argument handling.
2496
2497 2008-05-04  David S. Miller  <davem@davemloft.net>
2498
2499         * config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
2500         (sparc*-*-linux*): Use linux.h in tm_file.
2501         (sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
2502         compiler defaulting to 32-bit.
2503         (sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
2504         no longer needed.
2505         * config/sparc/linux.h: Remove definitions now obtained
2506         properly from linux.h
2507         * config/sparc/linux64.h: Likewise.
2508         (ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
2509         don't want this setting for 32-bit builds in a biarch compiler.
2510         * doc/install.texi: Add sparc-linux to list of targets
2511         supporting --enable-targets=all.
2512
2513 2008-05-03  Andrew Pinski  <pinskia@gmail.com>
2514
2515         * Makefile.in (tree-ssa-phiprop.o): Fix dependencies.
2516
2517 2008-05-03  H.J. Lu  <hongjiu.lu@intel.com>
2518
2519         * config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
2520         after V4SI_FTYPE_V8HI.
2521         (ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
2522         case V4SI_FTYPE_V2DF.
2523
2524 2008-05-03  Kenneth Zadeck  <zadeck@naturalbridge.com>
2525
2526         * doc/invoke.texi (max-flow-memory-locations): Removed.
2527         * params.def (PARAM_MAX_FLOW_MEMORY_LOCATIONS): Removed.
2528         
2529 2008-05-03  Richard Guenther  <rguenther@suse.de>
2530
2531         PR middle-end/34973
2532         * opts.c (set_Wstrict_aliasing): Handle the turn-off case.
2533
2534 2008-05-02  David S. Miller  <davem@davemloft.net>
2535
2536         * config.gcc (need_64bit_hwint): Document libcpp dependency.
2537
2538 2008-05-02  Simon Baldwin <simonb@google.com>
2539
2540         PR bootstrap/36108
2541         * c-common.h (warn_array_subscript_range): Removed.
2542         * c-common.c (warn_array_subscript_range): Ditto.
2543         * tree-vrp.c (check_array_ref): Revert to ignoring arrays with size 2.
2544         * c-typeck.c (build_array_ref): Remove warn_array_subscript_range.
2545
2546 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2547
2548         * config/i386/i386.c (ix86_special_builtin_type): New.
2549         (bdesc_special_args): Likewise.
2550         (ix86_expand_special_args_builtin): Likewise.
2551         (ix86_init_mmx_sse_builtins): Updated.
2552         (ix86_expand_builtin): Updated.
2553         (ix86_expand_store_builtin): Removed.
2554         (ix86_expand_unop_builtin): Likewise.
2555
2556         * config/i386/mm3dnow.h (__v2sf): Moved to ...
2557         * config/i386/mmintrin.h (__v2sf): Here.
2558
2559         * config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
2560         const __v2sf.
2561         (_mm_loadl_pi): Likewise.
2562         (_mm_storeh_pi): Replace __v2si with __v2sf.
2563         (_mm_storel_pi): Likewise.
2564
2565         * doc/extend.texi: Correct __builtin_ia32_loadhps,
2566         __builtin_ia32_loadlps, __builtin_ia32_storehps,
2567         __builtin_ia32_storelps, __builtin_ia32_loadhpd and
2568         __builtin_ia32_loadlpd.
2569
2570 2008-05-02  H.J. Lu  <hongjiu.lu@intel.com>
2571
2572         * config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
2573         V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
2574         (bdesc_args): Updated.  Add scalar SSE builtins with vec_merge.
2575         (ix86_init_mmx_sse_builtins): Updated.
2576         (ix86_expand_args_builtin): Likewise.
2577         (ix86_expand_builtin): Likewise.
2578         (ix86_expand_unop1_builtin): Renamed to ...
2579         (ix86_expand_unop_vec_merge_builtin): This.
2580
2581 2008-05-01  Jan Hubicka  <jh@suse.cz>
2582
2583         PR bootstrap/36100
2584         * ipa-inline.c (inline_generate_summary): Make static.
2585         (inline_transform): Do not call inlining at -O0; make static.
2586         * passes.c (execute_todo): Add sanity check.
2587         (execute_one_ipa_transform_pass): Execute proper flags.
2588
2589 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2590
2591         * tree.h (TYPE_NONALIASED_COMPONENT): Expand comment.
2592         (DECL_NONADDRESSABLE_P): Likewise.
2593         * alias.c (record_component_aliases): Fix comment.
2594
2595 2008-05-01  Simon Baldwin <simonb@google.com>
2596
2597         * c-common.h (warn_array_subscript_range): New function.
2598         * c-common.c (warn_array_subscript_range): Ditto.
2599         * tree-vrp.c (check_array_ref): Corrected code to agree with
2600         comment, ignoring only arrays of size 0 or size 1.
2601         * c-typeck.c (build_array_ref): Call warn_array_subscript_range.
2602
2603 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2604
2605         * config/i386/i386.c (ix86_builtin_type): Replace
2606         DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
2607         (bdesc_args): Updated.
2608         (ix86_init_mmx_sse_builtins): Likewise.
2609         (ix86_expand_args_builtin): Likewise.
2610
2611         * config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
2612         with __v1di.
2613
2614         * doc/extend.texi: Correct __builtin_ia32_palignr.
2615
2616 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2617
2618         PR target/36095
2619         * config/i386/i386.c (bdesc_crc32): Removed.
2620         (ix86_expand_crc32): Likewise.
2621         (ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
2622         V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
2623         V2DI2TI_FTYPE_V2DI_V2DI_INT.  Add UINT64_FTYPE_UINT64_UINT64,
2624         UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
2625         UINT_FTYPE_UINT_UCHAR.
2626         (bdesc_args): Updated. Add crc32 builtins.
2627         (ix86_init_mmx_sse_builtins): Updated.
2628         (ix86_expand_args_builtin): Updated to support subreg.
2629
2630         * doc/extend.texi: Correct __builtin_ia32_crc32di.
2631
2632 2008-05-01  Jan Hubicka  <jh@suse.cz>
2633
2634         * tree-pass.h (opt_pass): Add IPA_PASS.
2635         (varpool_node, cgraph_node): Forward declare.
2636         (ipa_opt_pass): Define.
2637         (pass_ipa_inline): Turn into ipa_opt_pass.
2638         (pass_apply_inline): Remove.
2639         * ipa-inline.c (pass_ipa_inline): Turn into ipa_opt_pass.
2640         (apply_inline): Turn into ....
2641         (inline_transform): ... this one.
2642         (inline_generate_summary): New function.
2643         (pass_apply_inline): Remove.
2644         * function.h (ipa_opt_pass): Forward declare structure; typedef;
2645         vector.
2646         (struct function): Add ipa_transforms_to_apply.
2647         * passes.c (register_one_dump_file): Work on IPA_PASS.
2648         (init_optimization_passes): Remove pass_inline_parameters and
2649         pass_apply_inline.
2650         (pass_init_dump_file, pass_fini_dump_file): Break out from ....
2651         (execute_one_pass) ... here; apply transforms when possible.
2652         (add_ipa_transform_pass, execute_ipa_summary_asses,
2653         execute_one_ipa_transform_pass): New.
2654         (execute_ipa_pass_list): Update for IPA_PASS type.
2655
2656 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2657
2658         * config/i386/i386.c (ix86_builtin_type): Add
2659         V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
2660         V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
2661         (bdesc_args): Add SSE4a builtins.
2662         (ix86_init_mmx_sse_builtins): Updated.
2663         (ix86_expand_args_builtin): Likewise.
2664         (ix86_expand_builtin): Likewise.
2665
2666 2008-05-01  H.J. Lu  <hongjiu.lu@intel.com>
2667
2668         * config/i386/i386.c (ix86_builtin_type): Add
2669         V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
2670         V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
2671         V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
2672         V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
2673         V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
2674         V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
2675         V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
2676         V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
2677         and DI_FTYPE_DI_DI_INT.
2678         (bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
2679         (ix86_init_mmx_sse_builtins): Updated.
2680         (ix86_expand_args_builtin): Likewise.
2681         (ix86_expand_builtin): Likewise.
2682         (ix86_expand_binop_imm_builtin): Removed.
2683
2684         * doc/extend.texi: Correct __builtin_ia32_palignr128.
2685
2686 2008-04-30  Richard Guenther  <rguenther@suse.de>
2687
2688         PR tree-optimization/32921
2689         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Disambiguate with TBAA.
2690
2691 2008-04-30  Richard Sandiford  <rsandifo@nildram.co.uk>
2692
2693         * config/arm/arm.c (arm_unwind_emit): Use
2694         crtl->all_throwers_are_sibcalls instead of
2695         cfun->all_throwers_are_sibcalls.
2696         (arm_output_fn_unwind): Likewise.
2697         * config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
2698         instead of cfun->uses_pic_offset_table.
2699         (frv_expand_prologue): Likewise.
2700         (frv_frame_pointer_required): Likewise.
2701         (frv_expand_fdpic_call): Likewise.
2702         (frv_emit_movsi): Likewise.
2703         * config/iq2000/iq2000.c (iq2000_expand_prologue): Use
2704         cfun->returns_pcc_struct instead of
2705         current_function_returns_pcc_struct.
2706         * config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
2707         instead of cfun->calls_eh_return.
2708         (m32c_pushm_popm): Likewise.
2709         * config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
2710         "extern" declaration.
2711
2712 2008-04-30  Richard Guenther  <rguenther@suse.de>
2713
2714         PR tree-optimization/21636
2715         * tree-ssa-ccp.c (ccp_fold): Handle &p->x with p being a
2716         constant address.
2717         (evaluate_stmt): Print the likely value.
2718         (ccp_visit_stmt): Avoid excessive vertical spacing.
2719
2720 2008-04-30  Rafael Espindola  <espindola@google.com>
2721
2722         * builtins.c (fold_call_expr): Return realret.
2723         * tree-ssa-threadedge.c
2724         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
2725         __builtin_object_size.
2726
2727 2008-04-30  Seongbae Park  <seongbae.park@gmail.com>
2728
2729         * gcc.c (wrapper_string): New variable.
2730         (insert_wrapper): New function.
2731         (execute): New option -wrapper.
2732         * doc/invoke.texi (Overall Options): New driver option -wrapper.
2733
2734 2008-04-30  Nathan Froyd  <froydnj@codesourcery.com>
2735
2736         * config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
2737         config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
2738         config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
2739         from...
2740         * config/rs6000/crtsavres.asm: ...here.  Remove unneeded file.
2741         * config/rs6000/e500crtres32gpr.asm, config/rs6000/e500crtres64gpr.asm,
2742         config/rs6000/e500crtres64gprctr.asm,
2743         config/rs6000/e500crtrest32gpr.asm, config/rs6000/e500crtrest64gpr.asm,
2744         config/rs6000/e500crtresx32gpr.asm, config/rs6000/e500crtresx64gpr.asm,
2745         config/rs6000/e500crtsav32gpr.asm, config/rs6000/e500crtsav64gpr.asm,
2746         config/rs6000/e500crtsav64gprctr.asm,
2747         config/rs6000/e500crtsavg32gpr.asm, config/rs6000/e500crtsavg64gpr.asm,
2748         config/rs6000/e500crtsavg64gprctr.asm: New files.
2749         * config/rs6000/t-ppccomm: Add build rules for new files.
2750         (LIB2FUNCS_STATIC_EXTRA): Add new files.
2751         * config/rs6000/t-netbsd: Add build rules for new files.
2752         (LIB2FUNCS_STATIC_EXTRA): New variable.
2753         * config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
2754         (CRTSAVRES_DEFAULT_SPEC): Likewise.
2755         * config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
2756
2757 2008-04-30  H.J. Lu  <hongjiu.lu@intel.com>
2758
2759         * config/i386/i386.c (ix86_builtin_type): Add
2760         FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
2761         V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
2762         V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
2763         V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
2764         V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
2765         V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
2766         V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
2767         V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
2768         V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
2769         V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
2770         V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
2771         V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
2772         V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
2773         V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
2774         V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
2775         V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
2776         V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
2777         V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
2778         V1DI_FTYPE_V2SI_V2SI.
2779         (bdesc_2arg): Moved to ...
2780         (bdesc_args): Here.
2781         (ix86_init_mmx_sse_builtins): Updated.
2782         (ix86_expand_args_builtin): Updated.  Take a pointer
2783         to const struct builtin_description.  Handle comparison
2784         builtin functions.
2785         (ix86_expand_sse_compare): Take a new argument for swapping operands.
2786         (ix86_expand_builtin): Updated.
2787
2788         * config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
2789         (ssse3_pmaddubsw128): This.
2790         (ssse3_pmaddubswv4hi3): Renamed to ...
2791         (ssse3_pmaddubsw): This.
2792
2793         * doc/extend.texi (__builtin_ia32_packsswb128): Correct prototype.
2794         (__builtin_ia32_packssdw128): Likewise.
2795         (__builtin_ia32_packuswb128): Likewise.
2796         (__builtin_ia32_pmaddubsw): Likewise.
2797         (__builtin_ia32_pmaddubsw128): Likewise.
2798
2799 2008-04-30  Richard Guenther  <rguenther@suse.de>
2800
2801         PR tree-optimization/14847
2802         * tree-ssa-ifcombine.c (get_name_for_bit_test): New helper function.
2803         (recognize_bits_test): Use it.
2804         (recognize_single_bit_test): Likewise.
2805
2806 2008-04-30  Martin Jambor  <mjambor@suse.cz>
2807
2808         * ipa-cp.c (ipcp_init_stage): Calls ipa_set_called_with_variable_arg
2809         instead of setting number of formal parameters to zero.
2810         (ipcp_init_stage): Do not set the number of actual parameters to zero 
2811         either.
2812         (ipcp_propagate_stage): Explicitly skipping all calls to nodes
2813         which are called with variable number of arguments.
2814         (ipcp_insert_stage): Explicitely skipping all nodes which are
2815         called with variable number of arguments.
2816         (ipcp_callsite_param_print): Skipps callsites to nodes with varaible 
2817         number of parameters.
2818
2819         * ipa-prop.h (struct ipa_node_params): Added flag
2820         called_with_var_arguments
2821         (ipa_set_param_count): Added.  Changed sole setter to use it.
2822         (ipa_get_param_count): Added.  All readers of param_count
2823         converted to use it instead.
2824         (ipa_set_called_with_variable_arg): Added.
2825         (ipa_is_called_with_var_arguments): Added.
2826         (ipa_get_ith_param): Added.  All readers of param_decls converted
2827         to use it instead.
2828         (ipa_set_cs_argument_count): Added, sole writer to argument_count 
2829         changed to use it. 
2830         (ipa_get_cs_argument_count): Added, all readers of argument_count
2831         changed to cal it.
2832         (ipa_get_ith_jump_func): Added. Accessors of jump values changed 
2833         to use it.
2834         
2835         * ipa-prop.h (struct ipcp_formal): Renamed to ipcp_lattice
2836         (struct ipcp_lattice): Renamed cval_type to type
2837         (struct ipa_node_params): ipcp_cval renamed to ipcp_lattices
2838
2839         * ipa-cp.c (ipcp_cval_get_cvalue): Changed return value to tree
2840         (ipcp_cval_set_cvalue): Changed type of parameter value to tree
2841         (ipcp_insert_stage): Changed the type of variable cvalue to tree
2842         (ipcp_replace_map_create): Changed the type of parameter cvalue to tree
2843         (build_const_val): Changed the type of parameter cvalue to tree
2844         (ipcp_propagate_const): Changed the type of parameter cvalue to tree
2845         (ipcp_method_cval_set_cvalue_type): Renamed parameter cval_type1 to type
2846         
2847         * ipa-prop.h (struct ipcp_formal): Replaced cvalue with tree called 
2848         constant 
2849
2850         * ipa-prop.c (ipa_methodlist_init): Renamed to ipa_init_func_list
2851         (ipa_methodlist_not_empty): Removed, the sole user now checks directly
2852         (ipa_add_method): Renamed to ipa_push_func_to_list
2853         (ipa_remove_method): Renamed to ipa_pop_func_from_list
2854         (ipa_callsite_param_count): Removed.
2855         (ipa_callsite_param_count_set): Removed.
2856         (ipa_callsite_param): Removed.
2857         (ipa_callsite_callee): Removed.
2858         (ipa_callsite_compute_param): Renamed to ipa_compute_jump_functions
2859         (ipa_callsite_compute_count): Renamed to ipa_count_arguments
2860         (ipa_method_formal_count): Removed.
2861         (ipa_method_formal_count_set): Removed.
2862         (ipa_method_get_tree): Removed.
2863         (ipa_method_tree_map_create): Removed.
2864         (ipa_method_compute_tree_map): Renamed to ipa_create_param_decls_array
2865         (ipa_create_param_decls_array): Creates the array itself
2866         (ipa_create_param_decls_array): Temporary variable info instead of 
2867         a few dereferences.
2868         (ipa_method_formal_compute_count): Renamed to ipa_count_formal_params
2869         (ipa_method_compute_modify): Renamed to ipa_detect_param_modifications
2870         (get_type): Removed.
2871         (ipa_jf_get_info_type): Removed.
2872         (ipa_node_create): Renamed to ipa_create_node_params
2873         (ipa_free): Renamed to ipa_free_all_node_params
2874         (ipa_nodes_create): Renamed to ipa_create_all_node_params
2875         (ipa_edges_create): Renamed to ipa_create_all_edge_args
2876         (ipa_edges_free): Renamed to ipa_free_all_edge_args
2877         (ipa_nodes_free): Integrated into ipa_free_all_node_params and removed
2878         (ipa_free_all_node_params): Deallocation to jump_functions moved to 
2879         ipa_free_all_edge_args
2880         (ipa_method_tree_print): Renamed to ipa_print_all_tree_maps
2881         (ipa_method_modify_print): Renamed to ipa_print_all_params_modified
2882         (ipa_create_methodlist_node): Removed.
2883         (ipa_methodlist_method): Removed.
2884         (ipa_methodlist_method_set): Removed.
2885         (ipa_methodlist_next_method): Removed.
2886         (ipa_methodlist_next_method_set): Removed.
2887         (ipa_method_is_modified): Removed.
2888         (ipa_method_modify_create): Removed.
2889         (ipa_method_modify_init): Temporary variable info instead of a few 
2890         dereferences.
2891         (ipa_detect_param_modifications): Temporary variable info instead of 
2892         a few dereferences.
2893         (ipa_compute_jump_functions): Temporary variable info instead of 
2894         a few dereferences.
2895         (ipa_method_modify_set): Removed.
2896         (ipa_method_tree_map): Renamed to ipa_get_param_decl_index
2897         (ipa_get_param_decl_index): Now accepts struct ipa_node_params rather 
2898         than craph_node as the first parameter.
2899         (ipa_method_modify_stmt): Renamed to ipa_check_stmt_modifications
2900         (ipa_method_modify_init): Removed.
2901         (ipa_compute_jump_functions): Added a temp variable instead of 
2902         repeatadly dereferencing the cgraph_edge.aux pointer
2903         (ipa_callsite_param_set_type): Removed.
2904         (ipa_compute_jump_functions): i renamed to index and moved to 
2905         an inner block
2906         (ipa_callsite_param_set_info_type_formal): Removed.
2907         (ipa_callsite_param_set_info_type): Removed.
2908         (ipa_callsite_param_map_create): Removed.
2909         (ipa_callsite_tree): Removed.
2910         (ipa_callsite_caller): Removed.
2911         (ipa_pop_func_from_list): return_method removed to return_func
2912
2913         * ipa-prop.h (enum cvalue_type): Renamed to ipa_lattice_type,
2914         prefixed all values with IPA_. Changed all users.
2915         (enum jump_func_type): Rnamed UNKNOWN_IPATYPE to IPA_UNKNOWN, 
2916         CONST_IPATYPE to IPA_CONST, CONST_IPATYPE_REF to IPA_CONST_REF 
2917         and FORMAL_IPATYPE IPA_PASS_THROUGH. 
2918         (union parameter_info): Renamed to jump_func_value.
2919         (union jump_func_value): Renamed value to constant
2920         (struct ipa_jump_func): Renamed info_type to value
2921         (struct ipa_node): Renamed to ipa_node_params
2922         (struct ipa_node_params): Renamed ipa_arg_num to param_count
2923         (struct ipa_node_params): Renamed ipa_param_tree to param_decls
2924         (struct ipa_node_params): Renamed ipa_mod to modified_flags
2925         (struct ipa_edge): Renamed to ipa_edge_args
2926         (struct ipa_edge_args): Renamed ipa_param_num to argument_count
2927         (struct ipa_edge_args): Renamed ipa_param_map to jump_functions
2928         (struct ipa_methodlist): Renamed to ipa_func_list
2929         (struct ipa_func_list): method_p renamed to node, next_method
2930         renamed to next
2931         (ipa_methodlist_p): Removed, switched all users to struct pointer
2932         (IS_VALID_TREE_MAP_INDEX): Renamed to IS_VALID_JUMP_FUNC_INDEX
2933
2934 2008-04-30  Alan Modra  <amodra@bigpond.net.au>
2935
2936         * config/rs6000/rs6000.c (ALWAYS_RESTORE_ALTIVEC_BEFORE_POP): Define.
2937         (rs6000_emit_epilogue): Use backchain to restore only when we
2938         have a large frame.  Make use of frame pointer to restore if we
2939         have one.  Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
2940
2941 2008-04-29  Paolo Bonzini  <bonzini@gnu.org>
2942
2943         * config/avr/avr.md (*sbrx_branch, *sbix_branch, *sbix_branch_tmp):
2944         Add mode to zero_extract.
2945         (sign bit tests peepholes): (Ditto.).
2946
2947 2008-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2948
2949         * config/i386/i386.c (ix86_builtins): Replace Prescott New
2950         Instructions in comments with SSE3.
2951         (ix86_builtin_type): This.  Add FLOAT128_FTYPE_FLOAT128,
2952         INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
2953         INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
2954         V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
2955         V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
2956         V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
2957         V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
2958         V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
2959         V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
2960         V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
2961         V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
2962         V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
2963         (bdesc_sse_args): Renamed to ...
2964         (bdesc_args): This.  Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
2965         IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
2966         IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
2967         IX86_BUILTIN_FABSQ.
2968         (bdesc_1arg): Moved to ...
2969         (bdesc_args): Here.
2970         (ix86_init_mmx_sse_builtins): Updated.  Replace Prescott New
2971         Instructions in comments with SSE3.
2972         (ix86_expand_sse_operands_builtin): Renamed to ...
2973         (ix86_expand_args_builtin): This.  Updated.
2974         (ix86_expand_unop1_builtin): Update comments.
2975         (ix86_expand_builtin): Updated.
2976
2977 2008-04-29  Richard Guenther  <rguenther@suse.de>
2978
2979         PR tree-optimization/36078
2980         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
2981         Update virtual SSA form after cleaning up the CFG.
2982
2983 2008-04-29  Richard Guenther  <rguenther@suse.de>
2984
2985         PR middle-end/15255
2986         * fold-const.c (fold_binary): Fold (A + A) * C to A * 2*C.
2987
2988 2008-04-29  Richard Guenther  <rguenther@suse.de>
2989
2990         * tree-ssa-alias.c (finalize_ref_all_pointers): Remove.
2991         (compute_may_aliases): Do not call finalize_ref_all_pointers.
2992         (compute_flow_insensitive_aliasing): Do not treat
2993         PTR_IS_REF_ALL pointers special.
2994         (get_smt_for): Likewise.
2995         (may_alias_p): Re-structure.
2996         (is_escape_site): A ref-all pointer conversion is not an escape site.
2997         * tree-ssa-structalias.c (find_what_p_points_to): Do not treat
2998         PTR_IS_REF_ALL pointers special.
2999         * tree-ssa-structalias.h (struct alias_info): Remove
3000         ref_all_symbol_mem_tag field.
3001         (PTR_IS_REF_ALL): Remove.
3002
3003 2008-04-29  Richard Guenther  <rguenther@suse.de>
3004
3005         PR middle-end/36077
3006         * fold-const.c (extract_muldiv_1): In combining division constants
3007         make sure to never overflow.
3008
3009 2008-04-29  Nick Clifton  <nickc@redhat.com>
3010
3011         * doc/tm.texi (RETURN_ADDR_RTX): Fix typo.
3012
3013 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3014
3015         PR bootstrap/35169
3016         * optc-gen.awk: Work around HP-UX/IA awk bug.
3017
3018 2008-04-28  Danny Smith  <dannysmith@users.sourceforge.net>
3019
3020         * config/i386/cygming-crtend.c (register_frame_ctor): Revert my
3021         2008-04-25 commit.
3022
3023 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3024
3025         PR target/36073
3026         * config/i386/i386.md
3027         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
3028         Change operand 1 predicate to nonimmediate_operand.
3029
3030 2008-04-28  Jakub Jelinek  <jakub@redhat.com>
3031
3032         PR debug/36060
3033         * dwarf2out.c (struct die_struct): Mark as chain_circular through
3034         die_sub field.
3035         * gengtype.c (walk_type, write_func_for_structure): Handle
3036         chain_circular.
3037         * doc/gty.texi: Document chain_circular.
3038
3039 2008-04-28  Richard Guenther  <rguenther@suse.de>
3040
3041         PR tree-optimization/36066
3042         * tree-vrp.c (execute_vrp): Cleanup the CFG only after finalizing
3043         SCEV and loop.
3044
3045 2008-04-28  Uros Bizjak  <ubizjak@gmail.com>
3046
3047         PR target/36064
3048         * config/i386/i386.md
3049         (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
3050         Use match_scratch instead of match_operand for operands 3 and 4.
3051
3052 2008-04-27  Richard Guenther  <rguenther@suse.de>
3053
3054         PR tree-optimization/18754
3055         PR tree-optimization/34223
3056         * tree-pass.h (pass_complete_unrolli): Declare.
3057         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Print
3058         loop size before and after unconditionally of UL_NO_GROWTH in effect.
3059         Rewrite loop into loop closed SSA form if it is not already.
3060         (tree_unroll_loops_completely): Re-structure to iterate over
3061         innermost loops with intermediate CFG cleanups.
3062         Unroll outermost loops only if requested or the code does not grow
3063         doing so.
3064         * tree-ssa-loop.c (gate_tree_vectorize): Don't shortcut if no
3065         loops are available.
3066         (tree_vectorize): Instead do so here.
3067         (tree_complete_unroll): Also unroll outermost loops.
3068         (tree_complete_unroll_inner): New function.
3069         (gate_tree_complete_unroll_inner): Likewise.
3070         (pass_complete_unrolli): New pass.
3071         * tree-ssa-loop-manip.c (find_uses_to_rename_use): Only record
3072         uses outside of the loop.
3073         (tree_duplicate_loop_to_header_edge): Only verify loop-closed SSA
3074         form if it is available.  
3075         * tree-flow.h (tree_unroll_loops_completely): Add extra parameter.
3076         * passes.c (init_optimization_passes): Schedule complete inner
3077         loop unrolling pass before the first CCP pass after final inlining.
3078
3079 2008-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3080
3081         * targhooks.h (default_emutls_var_fields,
3082         default_emutls_var_init): Declare.
3083         * tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
3084         * target.h (struct gcc_target): Add struct emutls member.
3085         * target-def.h (TARGET_EMUTLS_GET_ADDRESS,
3086         TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
3087         TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
3088         TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
3089         TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
3090         TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
3091         (TARGET_INITIALIZER): Add TARGET_EMUTLS.
3092         * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
3093         BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
3094         * dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
3095         emit debug information.
3096         * coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
3097         * varasm.c: Include targhooks.h.
3098         (emutls_object_section, emutls_tmpl_section): New.
3099         (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
3100         (EMUTLS_SEPARATOR): New.
3101         (prefix_name): New.
3102         (get_emutls_object_name): New.
3103         (default_emutls_var_fields): New, broken out of ...
3104         (get_emutls_object_type): ... here.  Adjust to use target hooks.
3105         (get_emutls_init_templ_addr): Adjust to use target hooks.
3106         (emutls_decl): Adjust to use target hooks.
3107         (emutls_finish): Likewise.
3108         (default_emutls_var_init): New, broken out of ...
3109         (assemble_variable): ... here.  Adjust to use target hooks.
3110         * output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
3111         SECCAT_EMUTLS_TMPL.
3112         * c-common.c (handle_section_attribute): Prevent overriding
3113         sections for emulated tls with special sections.
3114         * config/i386/i386.c (x86_64_elf_select_section): Add
3115         SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
3116         (x86_64_elf_unique_section): Likewise.
3117         * config/vxworks.c: Include tree.h.
3118         (vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
3119         (vxworks_override_options): Set TLS scheme.
3120         * doc/tm.texi (Emulated TLS): New node.
3121
3122 2008-04-26  Simon Baldwin <simonb@google.com>
3123
3124         PR c/35652
3125         * builtins.c (c_strlen): Suppressed multiple warnings that can occur
3126         with propagated string constants.
3127
3128 2008-04-26  Uros Bizjak  <ubizjak@gmail.com>
3129
3130         * config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
3131         constraint for operand 2 when operand 0 is memory operand.
3132         (fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
3133         operand 0 is memory operand.
3134         (fix_trunc<mode>_i387_with_temp): Ditto.
3135         (*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
3136         operand 2 when operand 1 is memory operand.
3137         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
3138         (*floatsi<mode>2_vector_sse_with_temp): Ditto.
3139         (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
3140         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3141         (floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
3142         operands 2,3 and 4 when operand 1 is memory operand.
3143         (fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
3144         is memory operand.
3145         (fistdi2_floor_with_temp): Ditto.
3146         (fist<mode>2_floor_with_temp): Ditto.
3147         (fistdi2_ceil_with_temp): Ditto.
3148         (fist<mode>2_ceil_with_temp): Ditto.
3149         (*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
3150
3151 2008-04-26  David Daney  <ddaney@avtrex.com>
3152
3153         * config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
3154         unspec_volitile.
3155         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
3156         UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
3157         UNSPEC_UPDATE_GOT_VERSION): Renumber.
3158         (sync_compare_and_swap<mode>): New expand for QI and HI modes.
3159         (compare_and_swap_12): New insn.
3160         * config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
3161         * config/mips/mips.c (mips_force_binary): New function.
3162         (mips_emit_int_order_test, mips_expand_synci_loop): Use it.
3163         (mips_expand_compare_and_swap_12): New function.
3164         * config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
3165
3166 2008-04-25  Jan Hubicka  <jh@suse.cz>
3167
3168         PR testsuite/35843
3169         * cfgexpand.c (pass_expand): Turn into RTL pass.
3170         * passes.c (execute_one_pass): Do pass typechecking after execution.
3171         * tree-pass.h (pass_expand): Turn into RTL pass.
3172
3173         * function.h (struct rtl_data): Move here fields
3174         accesses_prior_frames, calls_eh_return, saves_all_registers,
3175         has_nonlocal_goto, has_asm_statement, is_thunk,
3176         all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
3177         uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
3178         arg_pointer_save_area_init from struct function; turn into bool.
3179         (struct function): Move
3180         calls_eh_return, saves_all_registers, has_nonlocal_goto,
3181         has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
3182         profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
3183         tail_call_emit, arg_pointer_save_area_init
3184         into struct rtl_data.  Remove recursive_call_emit and gimplified flags.
3185         (current_function_returns_struct, current_function_returns_pcc_struct,
3186         current_function_calls_setjmp, current_function_calls_alloca,
3187         current_function_accesses_prior_frames,
3188         current_function_calls_eh_return, current_function_is_thunk,
3189         current_function_stdarg, current_function_profile,
3190         current_function_limit_stack, current_function_uses_pic_offset_table,
3191         current_function_uses_const_pool, current_function_has_nonlocal_label,
3192         current_function_saves_all_registers,
3193         current_function_has_nonlocal_goto,
3194         current_function_has_asm_statement): Remove accesor macros.
3195         * ra-conflict.c (global_conflicts): Update.
3196         * tree-tailcall.c (suitable_for_tail_opt_p): Update.
3197         (suitable_for_tail_call_opt_p): Update.
3198         * builtins.c (expand_builtin_return_addr): Update.
3199         (expand_builtin_setjmp_setup): Update.
3200         (expand_builtin_nonlocal_goto): Update.
3201         * final.c (final_start_function): Update.
3202         (profile_function): Update.
3203         (leaf_function_p): Update.
3204         (only_leaf_regs_used): Update.
3205         * df-scan.c (df_get_exit_block_use_set): Update.
3206         * dojump.c (clear_pending_stack_adjust): Update.
3207         * tree-stdarg.c (gate_optimize_stdarg): Update.
3208         * gimple-low.c (lower_function_body): Update.
3209         * global.c (compute_regsets): Update.
3210         (global_alloc): Update.
3211         * dwarf2out.c (dwarf2out_begin_prologue): Update.
3212         * expr.c (expand_assignment): Update.
3213         * dse.c (dse_step0): Update.
3214         (dse_step1): Update.
3215         * c-decl.c (store_parm_decls): Update.
3216         * local-alloc.c (combine_regs): Update.
3217         (find_free_reg): Update.
3218         * function.c (assign_parms_augmented_arg_list): Update.
3219         (assign_parm_find_data_types): Update.
3220         (assign_parms): Update.
3221         (allocate_struct_function): Update.
3222         (expand_function_start): Update.
3223         (expand_function_end): Update.
3224         (get_arg_pointer_save_area): Update.
3225         (thread_prologue_and_epilogue_insns): Update.
3226         (rest_of_match_asm_constraints): Update.
3227         * stor-layout.c (variable_size): Update.
3228         * gcse.c (gcse_main): Update.
3229         (bypass_jumps): Update.
3230         * gimplify.c (gimplify_function_tree): Update.
3231         * calls.c (emit_call_1): Update.
3232         (expand_call): Update.
3233         * bt-load.c (compute_defs_uses_and_gen): Update.
3234         * except.c (sjlj_assign_call_site_values): Update.
3235         (sjlj_emit_function_enter): Update.
3236         (can_throw_external): Update.
3237         (set_nothrow_function_flags): Update.
3238         (expand_builtin_unwind_init): Update.
3239         (expand_eh_return): Update.
3240         (convert_to_eh_region_ranges): Update.
3241         (output_function_exception_table): Update.
3242         * emit-rtl.c (gen_tmp_stack_mem): Update.
3243         * cfgexpand.c (expand_used_vars): Update.
3244         (tree_expand_cfg): Update.
3245         * cfgcleanup.c (rest_of_handle_jump): Update.
3246         * explow.c (allocate_dynamic_stack_space): Update.
3247         * varasm.c (assemble_start_function): Update.
3248         (force_const_mem): Update.
3249         (mark_constant_pool): Update.
3250         * tree-optimize.c (tree_rest_of_compilation): Update.
3251         * stack-ptr-mod.c (notice_stack_pointer_modification): Update.
3252         * tree-cfg.c (notice_special_calls): Update.
3253         (is_ctrl_altering_stmt): Update.
3254         (tree_can_make_abnormal_goto): Update.
3255         (tree_purge_dead_abnormal_call_edges): Update.
3256         * config/alpha/predicates.md: Update.
3257         * config/alpha/alpha.c (alpha_sa_mask): Update.
3258         (alpha_sa_size): Update.
3259         (alpha_does_function_need_gp): Update.
3260         (alpha_expand_prologue): Update.
3261         (alpha_start_function): Update.
3262         (alpha_output_function_end_prologue): Update.
3263         (alpha_expand_epilogue): Update.
3264         * config/frv/frv.c (frv_stack_info): Update.
3265         (frv_expand_epilogue): Update.
3266         * config/s390/s390.c (s390_regs_ever_clobbered): Update.
3267         (s390_register_info): Update.
3268         (s390_frame_info): Update.
3269         (s390_init_frame_layout): Update.
3270         (s390_can_eliminate): Update.
3271         (save_gprs): Update.
3272         * config/spu/spu.c (spu_split_immediate): Update.
3273         (need_to_save_reg): Update.
3274         (spu_expand_prologue): Update.
3275         (spu_expand_epilogue): Update.
3276         * config/sparc/sparc.md: Update.
3277         * config/sparc/sparc.c (eligible_for_return_delay): Update.
3278         (sparc_tls_got): Update.
3279         (legitimize_pic_address): Update.
3280         (sparc_emit_call_insn): Update.
3281         (sparc_expand_prologue): Update.
3282         (output_return): Update.
3283         (print_operand): Update.
3284         (sparc_function_ok_for_sibcall): Update.
3285         * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
3286         * config/m32r/m32r.md: Update.
3287         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
3288         (m32r_compute_frame_size): Update.
3289         (m32r_expand_prologue): Update.
3290         (m32r_expand_epilogue): Update.
3291         (m32r_legitimize_pic_address): Update.
3292         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
3293         * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3294         * config/i386/i386.c (ix86_frame_pointer_required): Update.
3295         (gen_push): Update.
3296         (ix86_save_reg): Update.
3297         (ix86_compute_frame_layout): Update.
3298         (ix86_expand_prologue): Update.
3299         (ix86_expand_epilogue): Update.
3300         * config/sh/sh.c (output_stack_adjust): Update.
3301         (calc_live_regs): Update.
3302         (sh5_schedule_saves): Update.
3303         (sh_expand_prologue): Update.
3304         (sh_expand_epilogue): Update.
3305         (sh_setup_incoming_varargs): Update.
3306         (sh_allocate_initial_value): Update.
3307         (sh_get_pr_initial_val): Update.
3308         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
3309         * config/sh/sh.md (label:): Update.
3310         * config/avr/avr.c (out_movhi_mr_r): Update.
3311         * config/crx/crx.h (enum): Update.
3312         * config/xtensa/xtensa.h (along): Update.
3313         * config/stormy16/stormy16.c Update.
3314         (xstormy16_compute_stack_layout): Update.
3315         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
3316         (fr30_expand_prologue): Update.
3317         * config/cris/cris.c (cris_conditional_register_usage): Update.
3318         (cris_reg_saved_in_regsave_area): Update.
3319         (cris_initial_frame_pointer_offset): Update.
3320         (cris_simple_epilogue): Update.
3321         (cris_expand_prologue): Update.
3322         (cris_expand_epilogue): Update.
3323         (cris_expand_pic_call_address): Update.
3324         (cris_asm_output_symbol_ref): Update.
3325         (cris_asm_output_label_ref): Update.
3326         * config/cris/cris.md Update.
3327         * config/iq2000/iq2000.c (compute_frame_size): Update.
3328         (iq2000_expand_epilogue): Update.
3329         * config/mt/mt.h (save_direction): Update.
3330         * config/mn10300/mn10300.c (mn10300_function_value): Update.
3331         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
3332         (ia64_secondary_reload_class): Update.
3333         * config/m68k/m68k.c (m68k_save_reg): Update.
3334         (m68k_expand_prologue): Update.
3335         (m68k_expand_epilogue): Update.
3336         (legitimize_pic_address): Update.
3337         * config/rs6000/rs6000.c (rs6000_got_register): Update.
3338         (first_reg_to_save): Update.
3339         (first_altivec_reg_to_save): Update.
3340         (compute_vrsave_mask): Update.
3341         (compute_save_world_info): Update.
3342         (rs6000_stack_info): Update.
3343         (spe_func_has_64bit_regs_p): Update.
3344         (rs6000_ra_ever_killed): Update.
3345         (rs6000_emit_eh_reg_restore): Update.
3346         (rs6000_emit_allocate_stack): Update.
3347         (rs6000_emit_prologue): Update.
3348         (rs6000_emit_epilogue): Update.
3349         (rs6000_output_function_epilogue): Update.
3350         (output_profile_hook): Update.
3351         (rs6000_elf_declare_function_name): Update.
3352         * config/rs6000/rs6000.h (rs6000_args): Update.
3353         * config/rs6000/rs6000.md: Update.
3354         * config/mcore/mcore.c (mcore_expand_prolog): Update.
3355         * config/arc/arc.c (arc_output_function_epilogue): Update.
3356         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
3357         * config/darwin.c (machopic_function_base_name): Update.
3358         * config/score/score3.c (score3_compute_frame_size): Update.
3359         (rpush): Update.
3360         (rpop): Update.
3361         (score3_epilogue): Update.
3362         * config/score/score7.c (score7_compute_frame_size): Update.
3363         (score7_prologue): Update.
3364         (score7_epilogue): Update.
3365         * config/score/score.h (FRAME_POINTER_REQUIRED): Update.
3366         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
3367         * config/arm/arm.c (use_return_insn): Update.
3368         (require_pic_register): Update.
3369         (arm_load_pic_register): Update.
3370         (arm_compute_save_reg0_reg12_mask): Update.
3371         (arm_compute_save_reg_mask): Update.
3372         (thumb1_compute_save_reg_mask): Update.
3373         (output_return_instruction): Update.
3374         (arm_output_function_prologue): Update.
3375         (arm_output_epilogue): Update.
3376         (arm_get_frame_offsets): Update.
3377         (arm_expand_prologue): Update.
3378         (thumb_pushpop): Update.
3379         (thumb_exit): Update.
3380         (thumb1_expand_prologue): Update.
3381         (thumb1_expand_epilogue): Update.
3382         (arm_unwind_emit): Update.
3383         (arm_output_fn_unwind): Update.
3384         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
3385         * config/arm/arm.md: Update.
3386         * config/pa/pa.md: Update.
3387         * config/pa/pa.c (legitimize_pic_address): Update.
3388         (compute_frame_size): Update.
3389         (hppa_expand_prologue): Update.
3390         (hppa_expand_epilogue): Update.
3391         (borx_reg_operand): Update.
3392         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
3393         (HARD_REGNO_RENAME_OK): Update.
3394         * config/mips/mips.c (mips_global_pointer): Update.
3395         (mips_save_reg_p): Update.
3396         (mips_compute_frame_info): Update.
3397         (mips_frame_pointer_required): Update.
3398         (mips_expand_prologue): Update.
3399         (mips_expand_epilogue): Update.
3400         (mips_can_use_return_insn): Update.
3401         (mips_reorg_process_insns): Update.
3402         * config/v850/v850.c (compute_register_save_size): Update.
3403         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
3404         * config/mmix/mmix.c (along): Update.
3405         (mmix_expand_epilogue): Update.
3406         * config/bfin/bfin.c (legitimize_pic_address): Update.
3407         (must_save_p): Update.
3408         (stack_frame_needed_p): Update.
3409         (add_to_reg): Update.
3410         (bfin_expand_prologue): Update.
3411         * stmt.c (expand_asm_operands): Update.
3412         * reload1.c (reload): Update.
3413         (init_elim_table): Update.
3414
3415 2008-04-25  Bob Wilson  <bob.wilson@acm.org>
3416         
3417         * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall.
3418         
3419 2008-04-25  H.J. Lu  <hongjiu.lu@intel.com>
3420
3421         * config/i386/sse.md (mov<mode>): Replace SSEMODEI with SSEMODE.
3422         (*mov<mode>_internal): Likewise.  Support V4SF and V2DF.
3423         (mov<mode>): Removed.
3424         (*movv4sf_internal): Likewise.
3425         (*movv2df_internal): Likewise.
3426
3427 2008-04-25  Pompapathi V Gadad <Pompapathi.V.Gadad@nsc.com>
3428
3429         * config.gcc (crx-*-elf): Remove deprecation.
3430
3431 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3432
3433         * config/i386/cygming-crtend.c (register_frame_ctor): Register
3434         __gcc_deregister_frame with atexit.
3435         (deregister_frame_dtor): Remove.
3436
3437 2008-04-24  Nathan Froyd  <froydnj@codesourcery.com>
3438             Nathan Sidwell  <nathan@codesourcery.com>
3439
3440         * config/rs6000/rs6000.opt (mspe): Remove Var property.
3441         (misel): Likewise.
3442         * config/rs6000/rs6000.h (rs6000_spe): Declare.
3443         (rs6000_isel): Likewise.
3444         * config/rs6000/rs6000.c (rs6000_spe): New variable.
3445         (rs6000_isel): New variable.
3446         (rs6000_handle_option): Handle OPT_mspe and OPT_misel.
3447
3448 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3449
3450         PR c++/35758
3451         * c-common.c (handle_vector_size_attribute): Call
3452         lang_hooks.types.reconstruct_complex_type instead of
3453         reconstruct_complex_type.
3454         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
3455         * config/spu/spu.c (spu_handle_vector_attribute): Likewise.
3456         * langhooks.h (struct lang_hooks_for_types): Add
3457         reconstruct_complex_type hook.
3458         * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
3459         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
3460
3461 2008-04-24  Richard Guenther  <rguenther@suse.de>
3462
3463         * c-common.h (check_builtin_function_arguments): Declare.
3464         * c-common.c (validate_nargs): New function.
3465         (check_builtin_function_arguments): Likewise.
3466         * c-typeck.c (build_function_call): Call
3467         check_builtin_function_arguments.
3468         * builtins.c (fold_builtin_classify): Remove error reporting code.
3469         (fold_builtin_unordered_cmp): Likewise.
3470         (fold_builtin_1): Likewise.
3471         (fold_builtin_n): Likewise.
3472
3473 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3474
3475         PR tree-optimization/36008
3476         * fold-const.c (try_move_mult_to_index): If s == NULL, divide
3477         the original op1, rather than delta by step.
3478
3479 2008-04-22  Antoniu Pop  <antoniu.pop@gmail.com>
3480             Sebastian Pop  <sebastian.pop@amd.com>
3481
3482         * tree-parloops.c (take_address_of, eliminate_local_variables_1,
3483         eliminate_local_variables_stmt, eliminate_local_variables,
3484         separate_decls_in_loop_name, separate_decls_in_loop_stmt,
3485         separate_decls_in_loop, gen_parallel_loop): Make them work on a region
3486         of code delimited by two edges in the CFG.
3487         (separate_decls_in_loop_name): Renamed separate_decls_in_region_name.
3488         (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt.
3489         (separate_decls_in_loop): Renamed separate_decls_in_region.  Isolate 
3490         the case of parallelisation of reductions.
3491         (expr_invariant_in_region_p): New.
3492
3493         * tree-flow.h (gather_blocks_in_sese_region): Declared.
3494         * tree-cfg.c (gather_blocks_in_sese_region): Extern.
3495
3496 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3497             Richard Guenther  <rguenther@suse.de>
3498
3499         PR tree-optimization/36034
3500         * tree-vect-analyze.c (vect_analyze_group_access): SLP is
3501         incapable of dealing with loads with gaps.
3502
3503 2008-04-24  Rafael Espindola  <espindola@google.com>
3504
3505         * tree-flow.h (vrp_evaluate_conditional): Change signature.
3506         * tree-ssa-propagate.c (fold_predicate_in): Update call to
3507         vrp_evaluate_conditional.
3508         * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove.
3509         (vrp_evaluate_conditional): Split the cond argument.
3510         (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops.
3511         (simplify_stmt_for_jump_threading): Update call to
3512         vrp_evaluate_conditional.
3513
3514 2008-04-24  Ira Rosen  <irar@il.ibm.com>
3515
3516         PR tree-optimization/35982
3517         * tree-vect-analyze.c (vect_check_interleaving): Check that the
3518         interleaved data-refs are of the same type.
3519
3520 2008-04-24  Danny Smith  <dannysmith@users.net>
3521
3522         * c-format.c (check_format_info_main): Use strncmp rather than a
3523         magic prefix to handle multichar length specs.
3524         * config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
3525         Don't prefix "I64" and "I32" with '\0'.
3526
3527 2008-04-24  Jakub Jelinek  <jakub@redhat.com>
3528
3529         PR target/36015
3530         * config/i386/i386.c (init_cumulative_args): Don't pass anything
3531         in registers for -m32 only if stdarg_p (fntype).
3532
3533 2008-04-24  Uros Bizjak  <ubizjak@gmail.com>
3534
3535         PR rtl-optimization/36006
3536         * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving
3537         temp to op0 in order to avoid invalid rtx sharing.
3538
3539 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
3540
3541         * tree-cfg.c (verify_expr): Check with is_gimple_address.  Don't
3542         check TREE_INVARIANT.
3543         * tree-gimple.c (is_gimple_address): New.
3544         (is_gimple_invariant_address): Simplify using decl_address_invariant_p.
3545         * tree-gimple.h (is_gimple_address): New.
3546         * tree.h (decl_address_invariant_p): New.
3547         * tree.c (make_node_stat): Don't set TREE_INVARIANT.
3548         (build_string): Likewise.
3549         (decl_address_invariant_p): New, from is_gimple_invariant_address.
3550         (tree_invariant_p_1): Likewise.
3551         (save_expr): Use it.
3552         (tree_invariant_p): New.
3553         (skip_simple_arithmetic): Use it.
3554         (stabilize_reference_1): Use it.
3555         (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT,
3556         simplify.
3557         (build1_stat): Drop code to compute TREE_INVARIANT.
3558         (build2_stat): Drop code to compute TREE_INVARIANT.
3559         (build3_stat): Drop code to compute TREE_INVARIANT.
3560         (build4_stat): Drop code to compute TREE_INVARIANT.
3561         (build5_stat): Drop code to compute TREE_INVARIANT.
3562         (build7_stat): Drop code to compute TREE_INVARIANT.
3563         (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT.
3564         * tree.h (struct tree_base): Remove invariant_flag.
3565         (TREE_INVARIANT): Remove.
3566         * builtins.c (build_string_literal): Don't set TREE_INVARIANT.
3567         (fold_builtin_expect): Check TREE_CONSTANT.
3568         * tree-ssa-ccp.c (fold_stmt_r): Adjust comment.
3569         * c-tree.h (c_expr_to_decl): Drop third parameter.
3570         * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT.
3571         (build_c_cast): Don't set TREE_INVARIANT.
3572         (pop_init_level): Don't set TREE_INVARIANT.
3573         (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT.
3574         * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test
3575         TREE_CONSTANT.
3576         (gimplify_init_constructor): Don't set TREE_INVARIANT.
3577         (gimplify_addr_expr): Adjust comment.
3578         * tree-mudflap.c (mf_build_string):
3579         * print-tree.c (print_node): Don't print TREE_INVARIANT.
3580         * tree-nested.c (convert_nonlocal_reference): Adjust comment.
3581         * c-common.c (fix_string_type): Don't set TREE_INVARIANT.
3582         * langhooks-def.h (lhd_expr_to_decl): Drop third parameter.
3583         * langhooks.c (lhd_expr_to_decl): Drop third parameter.
3584         * langhooks.h (struct lang_hooks): Drop third parameter from
3585         expr_to_decl.
3586
3587 2008-04-23  Richard Guenther  <rguenther@suse.de>
3588
3589         PR tree-optimization/27799
3590         PR tree-optimization/32921
3591         PR tree-optimization/32624
3592         * tree-ssa-structalias.c (merge_smts_into): Only merge the
3593         SMTs aliases and the tag itself into the solution.
3594         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
3595         merge the points-to solution back into the SMT aliases.
3596         (may_alias_p): Use alias_set_subset_of instead of
3597         aliases_conflict_p.  A pointer which points to
3598         memory with alias set zero may access any variable.
3599
3600 2008-04-23  Richard Guenther  <rguenther@suse.de>
3601
3602         * alias.c (alias_set_subset_of): Correctly handle asking
3603         if zero is a subset of an alias set with zero child.
3604         * tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
3605         (compute_flow_insensitive_aliasing): Correctly walk all
3606         pointers.  Do not unnecessarily union sets.
3607
3608 2008-04-23  Richard Guenther  <rguenther@suse.de>
3609
3610         PR middle-end/36021
3611         * c-common.c (handle_alloc_size_attribute): Use type_num_arguments.
3612
3613 2008-04-22  Tomas Bily  <tbily@suse.cz>
3614
3615         * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as
3616         unreachable case.
3617         * tree-vrp.c (extract_range_from_unary_expr): Removed unused
3618         NON_LVALUE_EXPR.
3619         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
3620         * tree-ssa-structalias.c (get_constraint_for): Likewise.
3621         * tree-inline.c (estimate_num_insns_1): Likewise.
3622         * varasm.c (const_hash_1, compare_constant, copy_constant)
3623         (compute_reloc_for_constant, output_addressed_constants): Likewise.
3624         * emit-rtl.c (component_ref_for_mem_expr)
3625         (set_mem_attributes_minus_bitpos): Likewise.
3626         * expr.c (highest_pow2_factor, expand_expr_real_1, )
3627         (is_aligning_offset): Likewise.
3628         * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise.
3629         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
3630         * dojump.c (do_jump): Likewise.
3631         * builtins.c (get_pointer_alignment, get_memory_rtx)
3632         (integer_valued_real_p, fold_builtin_next_arg): Likewise.
3633         * tree-scalar-evolution.c (instantiate_parameters_1): Likewise.
3634
3635 2008-04-23  Jakub Jelinek  <jakub@redhat.com>
3636
3637         PR rtl-optimization/36017
3638         * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before
3639         expanding the library call.
3640
3641 2008-04-22  Ian Lance Taylor  <iant@google.com>
3642
3643         * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather
3644         than size_in_bytes.
3645
3646 2008-04-22  Pat Haugen  <pthaugen@us.ibm.com>
3647
3648         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost
3649         of LR/CTR moves for Power6.
3650
3651 2008-04-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
3652
3653         PR middle-end/36003
3654         * passes.c (init_optimization_passes): Remove
3655         pass_fast_rtl_byte_dce.
3656         
3657 2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
3658
3659         PR target/29096
3660         * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
3661         builtin functions to generate faster code.
3662         (_mm_cvtpu16_ps): Ditto.
3663         (_mm_cvtpi32x2_ps): Ditto.
3664
3665 2008-04-22  Nick Clifton  <nickc@redhat.com>
3666
3667         * common.opt (ftree-loop-distribution): Add Optimization
3668         attribute.
3669
3670         * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
3671         (frv_expand_builtin_va_start): Likewise.
3672
3673         * config/arm/arm.c (thumb_find_work_register): Fix location of
3674         argument register count.
3675
3676 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3677
3678         Support scheduling for ColdFire V1 and V3 microarchitecture.
3679         Improve scheduling of multiplication instructions.
3680
3681         * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
3682         (mac): New instruction attribute.
3683         * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
3684         (m68k_sched_mac): New variable.
3685         (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
3686         Handle cfv1 and cfv3.
3687         (max_insn_size): New static variable.
3688         (struct _sched_ib): New type.
3689         (sched_ib): New static variable.
3690         (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
3691         to fields of 'struct _sched_ib sched_ib'.  Update all uses.
3692         (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
3693         Update.
3694         (m68k_sched_md_init_global, m68k_sched_md_finish_global,
3695         m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
3696         new variables.  Update.
3697         (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
3698         Add modeling of cfv3 instruction buffer.  Update.
3699         * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
3700         * config/m68k/m68k.h (TUNE_CFV3): New macro.
3701         * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
3702         (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
3703         a particular reservation applies to.
3704         (type2): Reorganize attribute values.  Rename alu to alu_reg,
3705         alu_l to alu, move_l to omove.  Join move to alu.  Split mul
3706         to mul_l and mul_w.
3707         (cf_ib_*): Simplify description of instruction buffer.
3708         (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
3709         (cf_mem): Split into cf_mem1 and cf_mem2.
3710         (cf_v2_move_??): Rename to cfv12_alu_??.
3711         (cf_v2_move_l_??): Rename to cfv12_omove_??.
3712         (cf_v2_mul_??): Remove reservations.
3713         (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
3714         cfv12_emac_??, cfv12_emac_w_i0): New reservations.
3715         (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
3716         appropriate place.
3717         (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
3718         cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
3719         cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
3720         cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
3721         cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
3722         cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
3723         (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
3724         expansions of the above reservations for instructions of sizes
3725         1, 2 and 3 words.
3726
3727 2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
3728
3729         * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
3730
3731 2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
3732
3733         * coverage.c: Include tree-pass.h.
3734         (coverage_counter_alloc): Print da_file_name to the dump file.
3735
3736 2008-04-21  Kenneth Zadeck  <zadeck@naturalbridge.com>
3737
3738         * sbitmap.c (sbitmap_range_empty_p): New function.
3739         * sbitmap.h (sbitmap_range_empty_p): New function.
3740         * bitmap.h: Now includes obstack.h.
3741
3742 2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
3743             Kenneth Zadeck  <zadeck@naturalbridge.com>
3744
3745         * dbgcnt.def (ra_byte_scan): Added.
3746         * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
3747         when the last hit happens for a counter.  
3748         * timevar.def (TV_DF_BYTE_LR): New variable.
3749         * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
3750         * passes.c (pass_fast_rtl_byte_dce): New pass.
3751         * fwprop.c (update_df): Added mode to call df_ref_create.
3752         Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3753         DF_REF_EXTRACT_OFFSET.
3754         * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
3755         DF_BYTE_LR_OUT, df_byte_lr): New macro.
3756         (df_mm): New enum.
3757         (df_ref_extract): Added mode field.
3758         (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
3759         DF_REF_EXTRACT_OFFSET.
3760         (DF_REF_EXTRACT_MODE): New macro.
3761         (df_byte_lr_bb_info): New structure.
3762         (df_print_byte_regset, df_compute_accessed_bytes, 
3763         df_byte_lr_add_problem, df_byte_lr_get_regno_start,
3764         df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
3765         df_byte_lr_simulate_uses,
3766         df_byte_lr_simulate_artificial_refs_at_top,
3767         df_byte_lr_simulate_artificial_refs_at_end,
3768         df_compute_accessed_bytes): New function.
3769         (df_ref_create): Add parameter.
3770         (df_byte_lr_get_bb_info): New inline function.
3771         * df-scan.c (df_ref_record, df_uses_record,
3772         df_ref_create_structure): Added mode parameter.
3773         (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
3774         df_defs_record, df_uses_record, df_get_conditional_uses,
3775         df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
3776         df_entry_block_defs_collect, df_exit_block_uses_collect):
3777         Added mode parameter to calls to df_ref_record, df_uses_record,
3778         df_ref_create_structure.
3779         (df_ref_equal_p, df_ref_compare): Added test for modes.
3780         (df_ref_create_structure): Added code to set mode.  Renamed
3781         DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
3782         DF_REF_EXTRACT_OFFSET.
3783         * df-core.c (df_print_byte_regset): New function.
3784         * df-byte-scan.c: New file.
3785         * df-problems.c (df_rd_transfer_function): Removed unnecessary
3786         calls to BITMAP_FREE.  
3787         (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
3788         (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
3789         df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
3790         df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
3791         df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
3792         df_byte_lr_local_compute, df_byte_lr_init,
3793         df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
3794         df_byte_lr_transfer_function, df_byte_lr_free, 
3795         df_byte_lr_top_dump, df_byte_lr_bottom_dump,
3796         df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
3797         df_byte_lr_simulate_uses,
3798         df_byte_lr_simulate_artificial_refs_at_top,
3799         df_byte_lr_simulate_artificial_refs_at_end): New function.
3800         * dce.c (byte_dce_process_block): New function.
3801         (dce_process_block): au is now passed in rather than computed
3802         locally.  Changed loops that look at artificial defs to not look
3803         for conditional or partial ones, because there never are any.  
3804         (fast_dce): Now is able to drive byte_dce_process_block or 
3805         dce_process_block depending on the kind of dce being done.
3806         (rest_of_handle_fast_dce): Add parameter to fast_dce.
3807         (rest_of_handle_fast_byte_dce): New function.
3808         (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
3809         * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
3810
3811 2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
3812
3813         PR fortran/35019
3814         * gcc.h: Added fortran options that take arguments to
3815         DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
3816         macros.
3817
3818 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
3819
3820         * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
3821         scalarization if on the LHS and not a full access.
3822
3823 2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3824
3825         * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
3826
3827 2008-04-18  Rafael Espindola  <espindola@google.com>
3828
3829         * tree-vrp.c (find_case_label_index): Fix the binary search.
3830         (find_case_label_range): New.
3831         (vrp_visit_switch_stmt): Use find_case_label_range.
3832         (simplify_switch_using_ranges): Use find_case_label_range.
3833
3834 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
3835
3836         * gimplify.c (gimplify_modify_expr_rhs) <COND_EXPR>: Gimplify the LHS
3837         using the is_gimple_lvalue predicate instead of is_gimple_min_lval.
3838
3839 2008-04-18  Tom Tromey  <tromey@redhat.com>
3840
3841         PR libcpp/15500:
3842         * doc/cpp.texi (Implementation-defined behavior): Mention
3843         -finput-charset.
3844
3845 2008-04-18  Ian Lance Taylor  <iant@google.com>
3846
3847         * fold-const.c (pointer_may_wrap_p): New static function.
3848         (fold_comparison): Add another test for pointer overflow.  Use
3849         pointer_may_wrap_p to disable some false positives.
3850
3851 2008-04-18  Kris Van Hees <kris.van.hees@oracle.com>
3852           
3853         * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros.
3854         (fname_as_string): Match updated cpp_interpret_string prototype.
3855         (fix_string_type): Support char16_t* and char32_t*.
3856         (c_common_nodes_and_builtins): Add char16_t and char32_t (and
3857         derivative) nodes.  Register as builtin if C++0x.
3858         (c_parse_error): Support CPP_CHAR{16,32}.
3859         * c-common.h (RID_CHAR16, RID_CHAR32): New elements. 
3860         (enum c_tree_index) <CTI_CHAR16_TYPE, CTI_SIGNED_CHAR16_TYPE,
3861         CTI_UNSIGNED_CHAR16_TYPE, CTI_CHAR32_TYPE, CTI_SIGNED_CHAR32_TYPE,
3862         CTI_UNSIGNED_CHAR32_TYPE, CTI_CHAR16_ARRAY_TYPE,
3863         CTI_CHAR32_ARRAY_TYPE>: New elements.
3864         (char16_type_node, signed_char16_type_node, unsigned_char16_type_node,
3865         char32_type_node, signed_char32_type_node, char16_array_type_node,
3866         char32_array_type_node): New defines.
3867         * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype.
3868         (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}.
3869         (lex_string): Support CPP_STRING{16,32}, match updated
3870         cpp_interpret_string and cpp_interpret_string_notranslate prototypes.
3871         (lex_charconst): Support CPP_CHAR{16,32}.
3872         * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32}
3873         and CPP_STRING{16,32}.
3874
3875 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3876
3877         PR bootstrap/35457
3878         * aclocal.m4: Regenerate.
3879         * configure: Regenerate.
3880
3881 2008-04-18  Jan Hubicka  <jh@suse.cz>
3882
3883         * except.c (dw2_size_of_call_site_table,
3884         sjlj_size_of_call_site_table): Use vector API for call_site_record.
3885
3886         * cgraphbuild.c (build_cgraph_edges): Update.
3887         * tree-pass.h: Update comment.
3888         * final.c (leaf_function_p): Update.
3889         (leaf_renumber_regs): Update.
3890         (rest_of_clean_state): Update.
3891         * omp-low.c (expand_omp_parallel): Update.
3892         * ipa-reference.c (analyze_function): Update.
3893         * reorg.c (find_end_label): Update.
3894         (optimize_skip): Update.
3895         (fill_simple_delay_slots): Update.
3896         (fill_simple_delay_slots): Update.
3897         (make_return_insns): Update.
3898         (dbr_schedule): Update.
3899         * gimple-low.c (record_vars_into): Update.
3900         * cfgbuild.c (make_edges): Update.
3901         * function.c (assign_stack_local): Update.
3902         (assign_parm_adjust_stack_rtl): Update.
3903         (locate_and_pad_parm): Update.
3904         (allocate_struct_function): Do not initialize stack_alignment_needed
3905         and preferred_stack_boundary here.
3906         (stack_protect_prologue): Update.
3907         (stack_protect_epilogue): Update.
3908         (expand_function_start): Initialize stack_alignment_needed,
3909         preferred_stack_boundary and max_jumptable_ents.
3910         (expand_function_end): Update.
3911         (free_after_compilation): Do not NULLify epilogue_delay_list.
3912         * function.h (struct rtl_data): Add stack_protect_guard,
3913         stack_alignment_needed,
3914         preferred_stack_boundary, epilogue_delay_list.
3915         (struct function): Remove value_histograms, stack_alignment_needed,
3916         preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
3917         last_label_uid,
3918         unexpanded_var_list, stack_protect_guard.
3919         (current_function_epilogue_delay_list): Remove.
3920         * ipa-type-escape.c (analyze_function): Update.
3921         * gimplify.c (pop_gimplify_context): Update comment.
3922         * calls.c (expand_call): Update.
3923         (emit_library_call_value_1): Update.
3924         * except.c (set_nothrow_function_flags): Update.
3925         * cfgexpand.c (get_decl_align_unit): Update.
3926         (create_stack_guard): Update.
3927         (estimated_stack_frame_size): Update.
3928         (expand_used_vars): Update.
3929         (tree_expand_cfg): Free histogram earliers, init expansion variables.
3930         * explow.c (allocate_dynamic_stack_space): Update.
3931         * tree-ssa-live.c (remove_unused_locals): Update.
3932         * varasm.c (mark_constant_pool): Update.
3933         * tree-inline.c (remap_decls): Update.
3934         (initialize_cfun): Update.
3935         (declare_return_variable): Update.
3936         (inline_forbidden_p): Update.
3937         (expand_call_inline): Update.
3938         (declare_inline_vars): Update.
3939         (tree_function_versioning): Update.
3940         * tree-flow.h (value_histograms): New.
3941         (VALUE_HISTOGRAMS): New macro.
3942         * basic-block.h (control_flow_graph): Add max_jumptable_ents,
3943         last_label_uid.
3944         * tree-cfg.c (set_bb_for_stmt): Update.
3945         (replace_by_duplicate_decl): Update.
3946         (move_block_to_fn): Update.
3947         (new_label_mapper): Update.
3948         (dump_function_to_file): Update.
3949         * ipa-struct-reorg.c (build_data_structure): Update.
3950         * cfgrtl.c (print_rtl_with_bb): Update.
3951         * reload1.c (reload): Update.
3952         (reload): Update.
3953         * config/i386/i386.c (setup_incoming_varargs_64,
3954         ix86_compute_frame_layout): Update.
3955         * config/arc/arc.c (arc_output_function_epilogue): Update.
3956
3957 2008-04-18  Marius Strobl <marius@FreeBSD.org>
3958
3959         * gthr-posix.h (__gthread_active_p): Use the Solaris implementation
3960         for FreeBSD as well.
3961         * gthr-posix95.h: Likewise.
3962
3963 2008-04-17  Richard Sandiford  <rsandifo@nildram.co.uk>
3964
3965         PR rtl-optimization/35838
3966         * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work
3967         out the byte offset of the first subreg.
3968
3969 2008-04-17  Uros Bizjak  <ubizjak@gmail.com>
3970
3971         * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands
3972         to split_ti instead of three separate calls with single member arrays.
3973         (subti3 splitter): Ditto.
3974         (adddi3 splitter): Ditto with split_di.
3975         (subdi3 splitter): Ditto.
3976         (negti2 splitter): Pass arrays of 2 operands to split_ti instead of
3977         two separate calls with single member arrays.  Swap match_dup
3978         operands 1 and 2 to better fit into the array.
3979         (negdi2 splitter): Ditto with split_di.
3980         (movdfcc splitter):  Pass arrays of 2 operands to split_di instead of
3981         two separate calls with single member arrays.  Swap match_dup operands
3982         6 and 7 to better fit into the array.
3983
3984 2008-04-17  H.J. Lu  <hongjiu.lu@intel.com>
3985
3986         * config/i386/i386.c (sse_builtin_type): New.
3987         (bdesc_sse_args): Likewise.
3988         (bdesc_sse_3arg): Removed.
3989         (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
3990         (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
3991         IX86_BUILTIN_ROUNDPS.
3992         (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args.  Remove
3993         bdesc_sse_3arg.  Remove IX86_BUILTIN_ROUNDPD and
3994         IX86_BUILTIN_ROUNDPS.
3995         (ix86_expand_sse_4_operands_builtin): Removed.
3996         (ix86_expand_sse_operands_builtin): New.
3997         (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
3998         and CODE_FOR_sse4_1_roundps.
3999         (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
4000         Handle bdesc_sse_args.  Remove bdesc_sse_3arg.
4001
4002 2008-04-17  Alan Modra  <amodra@bigpond.net.au>
4003
4004         PR target/35907
4005         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
4006         regs before frame pop when needed.  If use_backchain_to_restore_sp
4007         then load backchain into a temp reg to restore vr and vrsave.  Add
4008         code to restore vr after frame pop if possible.
4009
4010 2008-04-17  Richard Guenther  <rguenther@suse.de>
4011
4012         * tree-vn.c (expressions_equal_p): Do not check type
4013         equality or compatibility before calling operand_equal_p.
4014         * fold-const.c (operand_equal_p): Check equivalence of
4015         integer constants before bailing out due to signedness or
4016         precision differences.
4017         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore
4018         spurious differences in type qualification.  Ignore types
4019         for COMPONENT_REFs at all.
4020
4021 2008-04-17  Christian Bruel  <christian.bruel@st.com>
4022
4023         * config/sh/sh.c (expand_cbranchdi4): Use original operands for
4024         msw_skip comparison.
4025         
4026 2008-04-16  Jakub Jelinek  <jakub@redhat.com>
4027
4028         PR c/35739
4029         * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE
4030         reg type.
4031
4032         PR tree-optimization/35899
4033         * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND
4034         rather than TREE_OPERAND.
4035
4036 2008-04-16  Uros Bizjak  <ubizjak@gmail.com>
4037
4038         PR target/35944
4039         * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
4040         temporary registers.  Change operand predicate to general_operand.
4041         (remainderxf3): Ditto.
4042
4043 2008-04-16  Richard Guenther  <rguenther@suse.de>
4044
4045         * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency.
4046         * tree-affine.c (aff_combination_expand): Look through some
4047         conversions.
4048
4049 2008-04-15  Doug Kwan  <dougkwan@google.com>
4050
4051         * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT
4052         for hex printing.
4053         * tree-pretty-print.c (dump_generic_node): Ditto.
4054         * final.c (output_addr_const): Ditto.
4055         * dwarf2out.c (output_cfi): Ditto.
4056         * c-pretty-print.c (pp_c_integer_constant): Ditto.
4057         * print-rtl.c (print_rtx): Ditto.
4058         * print-tree.c (print_node_brief, print_node): Ditto.
4059         * c-common.c (match_case_to_enum_1): Ditto.
4060         * sched-vis.c (print_value): Ditto.
4061         * config/i386/i386.c (print_operand): Cast to long unsigned int
4062         for hex printing.
4063
4064 2008-04-15  Danny Smith  <dannysmith@users.sourceforge.net>
4065         * libgcc2.c [L_trampoline]: Remove  unnecessary prototype for
4066         MS Windows VirtualProtect function.
4067
4068 2008-04-15  Jan Hubicka  <jh@suse.cz>
4069
4070         * gengtype.c (write_root): Param_is argument is OK.
4071         * expr.c (expand_expr_real_1): Update call of get_exception_*.
4072         * function.h: Include varray.h
4073         (rtl_eh): New stucture based on except.c one.
4074         (call_site_record): New forward declaration and vector type.
4075         * calls.c (emit_call_1): Do not call
4076         note_current_region_may_contain_throw.
4077         * except.c (eh_status): Remove cur_region, try_region since they are
4078         unused.
4079         Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and
4080         exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label,
4081         sjlj_fc, sjlj_exit_after to rth_eh in function.h. 
4082         Remove call_site_data_used, call_site_data_size.
4083         Turn call_site_record into vector in function.h.
4084         (note_current_region_may_contain_throw): Remove.
4085         (get_exception_pointer, get_exception_filter): Do not take struct
4086         function argument; update.
4087         (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash,
4088         add_ttypes_entry, add_ehspec_entry, assign_filter_values,
4089         build_post_landing_pads, dw2_build_landing_pads,
4090         sjlj_assign_call_site_values, sjlj_mark_call_sites,
4091         sjlj_emit_function_enter, sjlj_emit_function_enter, 
4092         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4093         sjlj_build_landing_pads, finish_eh_generation,
4094         remove_exception_handler_label, remove_eh_handler,
4095         maybe_remove_eh_handler, add_reachable_handler,
4096         reachable_handlers, expand_builtin_eh_return, expand_eh_return,
4097         add_action_record, collect_one_action_chain, add_call_site,
4098         convert_to_eh_region_ranges, sjlj_size_of_call_site_table,
4099         sjlj_output_call_site_table, output_function_exception_table,
4100         * except.h (note_current_region_may_contain_throw): Remove
4101         (get_exception_pointer, get_exception_filter): Do not take struct
4102         function argument.
4103         * Makefile.in (GTFILES): Put varargs before struct function.
4104
4105 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4106
4107         * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not
4108         punt for STRING_CST.
4109         (get_constraint_for): Deal with STRING_CST here instead.
4110
4111 2008-04-15  Richard Guenther  <rguenther@suse.de>
4112
4113         * tree-ssa-propagate.c (substitute_and_fold): Substitute
4114         statements in a basic-block with a backward walk.  Do not
4115         substitute into dead statements but instead remove those.
4116
4117 2008-04-15  Richard Guenther  <rguenther@suse.de>
4118
4119         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
4120         to zero, thus disable creation of SFTs.
4121
4122 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
4123
4124         * tree-predcom.c (suitable_reference_p): Return false if the
4125         reference can throw.
4126
4127 2008-04-15  Jakub Jelinek  <jakub@redhat.com>
4128
4129         PR c/35751
4130         * c-decl.c (finish_decl): If extern or static var has variable
4131         size, set TREE_TYPE (decl) to error_mark_node.
4132
4133 2008-04-15  Rafael Espindola  <espindola@google.com>
4134
4135         * fold-const.c (tree_call_nonnegative_warnv_p): Remove local
4136         variable arg1.
4137
4138 2008-04-15  Richard Guenther  <rguenther@suse.de>
4139
4140         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
4141         * tree-ssa-sccvn.c (vn_reference_lookup): New parameter maywalk.
4142         (visit_reference_op_load): Do walk vuse-vdef chains on
4143         vn_reference_lookup.
4144         (visit_reference_op_store): But do not here.
4145         * tree-vn.c (vn_lookup): Do not walk vuse-vdef chains on
4146         vn_reference_lookup.
4147         (vn_lookup_with_vuses): But do so here.
4148
4149 2008-04-14  Ian Lance Taylor  <iant@google.com>
4150
4151         * fold-const.c (fold_overflow_warning): Remove assertion.
4152
4153 2008-04-15  Ben Elliston  <bje@au.ibm.com>
4154
4155         * config/alpha/alpha.c (alpha_initialize_trampoline): Remove temp,
4156         temp1 local variables.
4157
4158 2008-04-15  Zuxy Meng  <zuxy.meng@gmail.com>
4159
4160         PR target/35661
4161         * config/i386/winnt.c (i386_pe_section_type_flags): Mark
4162         ".text.unlikely" section as executable.
4163
4164 2008-04-14  James E. Wilson  <wilson@tuliptree.org>
4165
4166         * config/ia64/ia64.c (rtx_needs_barrier): Handle
4167         UNSPEC_FR_SQRT_RECIP_APPROX_RES.
4168         * config/ia64/ia64.c (UNSPEC_FR_SQRT_RECIP_APPROX_RES): Define.
4169         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr,
4170         divsf3_internal_lat, sqrt_approx, sqrtsf2_internal_thr,
4171         divdf3_internal_lat, sqrtdf2_internal_thr, divxf3_internal_lat,
4172         divxf3_internal_thr, sqrtxf2_internal_thr, recip_approx): Use it.
4173
4174 2008-04-14  Ian Lance Taylor  <iant@google.com>
4175
4176         * flags.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Define.
4177         * fold-const.c (fold_comparison): If appropriate, test
4178         POINTER_TYPE_OVERFLOW_UNDEFINED, and issue an overflow warning.
4179         (fold_binary): Test POINTER_TYPE_OVERFLOW_UNDEFINED when
4180         reassociating a pointer type.
4181         * doc/invoke.texi (Optimize Options): Document that
4182         -fstrict-overflow applies to pointer wraparound.
4183
4184 2008-04-13  Jan Hubicka  <jh@suse.cz>
4185
4186         * m32.c (m32c_pushm_popm): Use crtl->retrun_rtx.
4187
4188 2008-04-12  Andrew Pinski  <pinskia@gmail.com>
4189
4190         * config/rs6000/rs6000.c (compute_save_world_info): Set lr_save_p if
4191         we are going to "save the world".
4192
4193 2008-04-13  Hans-Peter Nilsson  <hp@axis.com>
4194
4195         * config/cris/cris.md ("*andhi_lowpart_non_v32", "*andhi_lowpart_v32")
4196         ("*andqi_lowpart_non_v32", "*andqi_lowpart_v32"): Use "+" for the
4197         operand 0 constraint, not "=".
4198
4199 2008-04-11  James E. Wilson  <wilson@tuliptree.org>
4200
4201         * system.h: Change ASSERT_CHECKING to ENABLE_ASSERT_CHECKING.
4202
4203 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4204
4205         * dse.c (record_store): Use HOST_BITS_PER_WIDE_INT instead
4206         of size of positions_needed * CHAR_BIT.
4207
4208 2008-04-11  H.J. Lu  <hongjiu.lu@intel.com>
4209
4210         PR middle-end/35897
4211         * dse.c (store_info): Change positions_needed to unsigned
4212         HOST_WIDE_INT.
4213         (lowpart_bitmask): New.
4214         (record_store): Cast to unsigned HOST_WIDE_INT for
4215         positions_needed.  Assert width <= size of positions_needed *
4216         CHAR_BIT.  Call lowpart_bitmask to initialize positions_needed.
4217         (check_mem_read_rtx): Use unsigned HOST_WIDE_INT on mask.  Call
4218         lowpart_bitmask to set mask.
4219
4220 2008-04-11  Bernd Schmidt  <bernd.schmidt@analog.com>
4221
4222         * config/bfin/constraints.md: New file.
4223         * config/bfin/bfin.md: Include it.
4224         (adddi3): Use satisfies_constraint functions instead of the old macros.
4225         * config/bfin/bfin.h (REG_CLASS_FROM_LETTER, CONSTRAINT_LEN,
4226         CONST_18UBIT_IMM_P, CONST_16BIT_IMM_P, CONST_16UBIT_IMM_P,
4227         CONST_7BIT_IMM_P, CONST_7NBIT_IMM_P, CONST_5UBIT_IMM_P,
4228         CONST_4BIT_IMM_P, CONST_4UBIT_IMM_P, CONST_3BIT_IMM_P,
4229         CONST_3UBIT_IMM_P, CONST_OK_FOR_K, CONST_OK_FOR_P, CONST_OK_FOR_M,
4230         CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER,
4231         EXTRA_CONSTRAINT): Delete.
4232         * config/bfin/predicates.md (highbits_operand, reg_or_7bit_operand,
4233         reg_or_neg7bit_operand): Use satisfies_constraint functions instead
4234         of the old macros.
4235         * config/bfin/bfin.c: Include "tm-constrs.h".
4236         (bfin_secondary_reload, split_load_immediate, bfin_rtx_costs):
4237         Use satisfies_constraint functions instead of the old macros.
4238         * doc/md.texi (Blackfin Constraints): Update file name reference.
4239
4240 2008-04-11  Richard Guenther  <rguenther@suse.de>
4241
4242         PR tree-optimization/35869
4243         * tree-vrp.c (execute_vrp): Move switch statement update after
4244         jump threading.  Schedule another cfg cleanup run.
4245
4246 2008-04-11  Volker Reichelt  <v.reichelt@netcologne.de>
4247
4248         PR c/35744
4249         * attribs.c (decl_attributes): Return early on errorneous node.
4250
4251 2008-04-10  Oleg Ryjkov  <olegr@google.com>
4252
4253         * tree.h (struct tree_base): Added a new flag default_def_flag.
4254         (SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
4255
4256 2008-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4257
4258         * config.gcc (need_64bit_hwint): Need 64bit hwint for sh-*-*.
4259
4260 2008-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4261
4262         PR target/35768
4263         * pa.md: Define mode iterator P.  Define mode attribute dwc.
4264         (dcacheflush): Update pattern to use iterator P and attribute dwc.
4265         (icacheflush): Likewise.
4266         * pa.h (INITIALIZE_TRAMPOLINE): Use dcacheflushsi/icacheflushsi if
4267         !TARGET_64BIT, and dcacheflushdi/icacheflushdi if TARGET_64BIT.
4268
4269 2008-04-11  Ben Elliston  <bje@au.ibm.com>
4270
4271         * config/spu/spu.c (spu_init_builtins): Mark builtins as nothrow.
4272
4273 2008-04-10  Rafael Espindola  <espindola@google.com>
4274
4275         * tree-vrp.c (extract_range_from_binary_expr): Don't handle
4276         TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR.
4277         (extract_range_from_expr): The same.
4278
4279 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4280
4281         * config/mips/mips.md (GPR2): New mode iterator.
4282         (seq): Add comment.
4283         (*seq_<mode>, *seq_<mode>_mips16, *sne_<mode>, *sgt<u>_<mode>,
4284         *sgt<u>_<mode>_mips16, *sge<u>_<mode>, *slt<u>_<mode>,
4285         *slt<u>_<mode>_mips16 *sle<u>_<mode>, *sle<u>_<mode>_mips16):
4286         Rewrite these to take two modes, the mode of comparison and the
4287         mode of the destination.
4288         * config/mips/mips.c (mips_expand_scc): Instead of having
4289         paradoxical subreg as destination, expand "narrowing" scc if mode
4290         of comparison is SI and target is requested in DI mode.
4291         (mips_emit_int_order_test): Update comment.  Make mode of
4292         comparison match CMP0 rather than TARGET.  When creating inverse
4293         target use mode of TARGET.
4294
4295 2008-04-10  Adam Nemet  <anemet@caviumnetworks.com>
4296
4297         * gcov-dump.c (tag_summary): Only print summaries for the first
4298         GCOV_COUNTERS_SUMMABLE counters.
4299
4300 2008-04-10  Uros Bizjak  <ubizjak@gmail.com>
4301
4302         * config/i386/i386.md (absneg): New code iterator.
4303         (absnegprefix): New code attribute.
4304         (<code><mode>2): Macroize expander from abs<mode>2 and neg<mode>2
4305         patterns using absneg code iterator.
4306         (<code>tf2): Macroize expander from abstf2 and negtf2 patterns
4307         using absneg code iterator.
4308         (*<code><mode>2_1): Macroize insn pattern from *abs<mode>2_1 and
4309         *neg<mode>2 patterns using absneg code iterator.
4310         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4311         *negextendsfdf2 patterns using absneg code iterator.
4312         (*<code>extendsfxf2): Macroize insn pattern from *absextendsfxf2 and
4313         *negextendsfxf2 patterns using absneg code iterator.
4314         (*<code>extendsfdf2): Macroize insn pattern from *absextendsfdf2 and
4315         *negextendsfdf2 patterns using absneg code iterator.
4316         * config/i386/sse.md (<code><mode>2): Macroize expander from
4317         abs<mode>2 and neg<mode>2 patterns using absneg code iterator. 
4318
4319 2008-04-10  Andreas Krebbel  <krebbel1@de.ibm.com>
4320
4321         * config/s390/s390.h: Remove the remains of the recent search
4322         & replace action of current_function_outgoing_args_size.
4323
4324 2008-04-10  Ira Rosen  <irar@il.ibm.com>
4325
4326         PR tree-optimization/35821
4327         * tree-vect-transform.c (vect_create_data_ref_ptr): Add check that
4328         NEW_STMT_LIST is not NULL.
4329
4330 2008-04-09  David Edelsohn  <edelsohn@gnu.org>
4331
4332         PR libstdc++/35597
4333         * toplev.c (process_options): Remove -ffunction-sections debugging
4334         warning.
4335
4336 2008-04-09  Peter Bergner  <bergner@vnet.ibm.com>
4337
4338         PR middle-end/PR28690
4339         * explow.c (break_out_memory_refs): Use simplify_gen_binary rather
4340         than gen_rtx_fmt_ee to perform more canonicalizations.
4341
4342 2008-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4343
4344         PR driver/35665
4345         * collect2.c (write_c_file): Don't wrap in "#ifdef __cplusplus".
4346
4347 2008-04-09  Richard Guenther  <rguenther@suse.de>
4348
4349         * tree-cfg.c (verify_stmt): Print complete bogus stmt.
4350         (dump_function_to_file): Dump function arguments with types.
4351
4352 2008-04-08  Richard Guenther  <rguenther@suse.de>
4353
4354         * fold-const.c (fold_widened_comparison): Do not allow
4355         sign-changes that change the result.
4356
4357 2008-04-08  Janis Johnson  <janis187@us.ibm.com>
4358
4359         PR target/35839
4360         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle additional
4361         kinds of indirect references.
4362
4363 2008-04-08  David Edelsohn  <edelsohn@gnu.org>
4364
4365         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Update
4366         GNU Fortran language string.
4367
4368 2008-04-08  Rafael Espindola  <espindola@google.com>
4369
4370         * fold-canst.c (tree_call_nonnegative_warnv_p): New.
4371         (tree_invalid_nonnegative_warnv_p): Use tree_call_nonnegative_warnv_p.
4372         * tree.h (tree_call_nonnegative_warnv_p): New.
4373
4374 2008-04-08  Jan Hubicka  <jh@suse.cz>
4375
4376         * function.c (free_after_compilation): Clear out regno_reg_rtx
4377         pointer.
4378
4379 2008-04-08  Peter Bergner  <bergner@vnet.ibm.com>
4380
4381         Revert
4382         2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4383
4384         PR middle-end/PR28690
4385         * rtlanal.c: (commutative_operand_precedence): Give SYMBOL_REF's the
4386         same precedence as REG_POINTER and MEM_POINTER operands.
4387
4388 2008-04-08  Richard Guenther  <rguenther@suse.de>
4389
4390         PR middle-end/35834
4391         * tree-ssa-address.c (create_mem_ref): Use POINTER_PLUS_EXPR
4392         for adding index to base.
4393
4394 2008-04-08  Kai Tietz  <kai.tietz@onevision.com>
4395
4396         * config/i386/mingw32.h (ENABLE_EXECUTE_STACK): New.
4397         (MINGW_ENABLE_EXECUTE_STACK): New.
4398         (IN_LIBGCC2): For libgcc include windows.h file for
4399         function declarations.
4400
4401 2008-04-08  Hans-Peter Nilsson  <hp@axis.com>
4402
4403         * config/cris/cris.c (cris_address_cost): For a PLUS, swap tem1
4404         and tem2 if tem1 is not a REG or MULT.
4405
4406 2008-04-08  Jan Hubicka  <jh@suse.cz>
4407
4408         * function.h (incomming_args): Break out of struct function.
4409         (function_subsections): Break out of struct function.
4410         (rtl_data): Add args, subsections fields. Break out outgoing_args_size,
4411         return_rtx and hard_reg_initial_vals from struct function.
4412         Kill inl_max_label_num.
4413         (current_function_pops_args, current_function_args_info,
4414         current_function_args_size, current_function_args_size,
4415         current_function_pretend_args_size,
4416         current_function_outgoing_args_size,
4417         current_function_internal_arg_pointer, current_function_return_rtx):
4418         Kill compatibility accestor macros.
4419         * builtins.c (expand_builtin_apply_args_1): Update.
4420         (expand_builtin_next_arg): Update.
4421         * df-scan.c (df_get_call_refs): Update.
4422         * dbxout.c (dbxout_function_end): Update.
4423         * dwarf2out.c (dwarf2out_switch_text_section): Update.
4424         (output_line_info): Update.
4425         (secname_for_decl): Update.
4426         (dwarf2out_var_location): Update.
4427         * function.c (free_after_compilation): Update.
4428         (assign_parm_find_stack_rtl): Update.
4429         (assign_parms): Update.
4430         (expand_dummy_function_end): Update.
4431         (expand_function_end): Update.
4432         * calls.c (mem_overlaps_already_clobbered_arg_p): Update.
4433         (expand_call): Update.
4434         (emit_library_call_value_1): Update.
4435         (store_one_arg): Update.
4436         * varasm.c (initialize_cold_section_name): Update.
4437         (unlikely_text_section): Update.
4438         (unlikely_text_section_p): Update.
4439         (assemble_start_function): Update.
4440         (assemble_end_function): Update.
4441         (default_section_type_flags): Update.
4442         (switch_to_section): Update.
4443         * integrate.c (set_decl_abstract_flags): Update.
4444         (get_hard_reg_initial_val): Update.
4445         (has_hard_reg_initial_val): Update.
4446         (allocate_initial_values): Update.
4447         * resource.c (init_resource_info): Update.
4448         * config/alpha/alpha.c (NUM_ARGS): Update.
4449         (direct_return): Update.
4450         (alpha_va_start): Update.
4451         (alpha_sa_size): Update.
4452         (alpha_initial_elimination_offset): Update.
4453         (alpha_expand_prologue): Update.
4454         (alpha_start_function): Update.
4455         (alpha_expand_epilogue): Update.
4456         (unicosmk_initial_elimination_offset):
4457         * config/alpha/alpha.md (call expander): Update.
4458         * config/s390/s390.c (s390_register_info): Update.
4459         (s390_register_info): Update.
4460         (s390_frame_info): Update.
4461         (s390_initial_elimination_offset): Update.
4462         (s390_build_builtin_va_list): Update.
4463         (s390_va_start): Update.
4464         * config/spu/spu.c (direct_return): Update.
4465         (spu_expand_prologue): Update.
4466         (spu_initial_elimination_offset): Update.
4467         (spu_build_builtin_va_list): Update.
4468         (spu_va_start): Update.
4469         * config/sparc/sparc.c (sparc_init_modes): Update.
4470         (sparc_compute_frame_size): Update.
4471         (function_value): Update.
4472         * config/m32r/m32r.c (m32r_compute_frame_size): Update.
4473         * config/i386/i386.md (return expander): Update.
4474         * config/i386/i386.c (ix86_va_start): Update.
4475         (ix86_can_use_return_insn_p): Update.
4476         (ix86_compute_frame_layout): Update.
4477         (ix86_expand_epilogue): Update.
4478         * config/sh/sh.c (output_stack_adjust): Update.
4479         (calc_live_regs): Update.
4480         (sh_expand_prologue): Update.
4481         (sh_builtin_saveregs): Update.
4482         (sh_va_start): Update.
4483         (initial_elimination_offset): Update.
4484         (sh_allocate_initial_value): Update.
4485         (sh_function_ok_for_sibcall): Update.
4486         (sh_get_pr_initial_val): Update.
4487         * config/sh/sh.md (return expander): Update.
4488         * config/avr/avr.c (frame_pointer_required_p): UPdate.
4489         * config/crx/crx.c (crx_compute_frame): UPdate.
4490         (crx_initial_elimination_offset): UPdate.
4491         * config/xtensa/xtensa.c (compute_frame_size): Update
4492         (xtensa_builtin_saveregs): Update.
4493         (xtensa_va_start): Update.
4494         (order_regs_for_local_alloc): Update.
4495         * config/stormy16/stormy16.c (xstormy16_compute_stack_layout): Update.
4496         (xstormy16_expand_builtin_va_start): Update.
4497         * config/fr30/fr30.c (fr30_compute_frame_size): Update.
4498         * config/m68hc11/m68hc11.md (return expanders): Update.
4499         * config/m68hc11/m68hc11.c (expand_prologue): Update.
4500         (expand_epilogue): Update.
4501         * config/cris/cris.c (cris_initial_frame_pointer_offset): Update.
4502         (cris_simple_epilogue): Update.
4503         (cris_expand_prologue): Update.
4504         (cris_expand_epilogue): Update.
4505         * config/iq2000/iq2000.c (iq2000_va_start): Update.
4506         (compute_frame_size): Update.
4507         * config/mt/mt.c (mt_compute_frame_size): Update.
4508         * config/mn10300/mn10300.c (expand_prologue): Update.
4509         (expand_epilogue): Update.
4510         (initial_offset): Update.
4511         (mn10300_builtin_saveregs):
4512         * config/mn10300/mn10300.md (return expander): Update.
4513         * config/ia64/ia64.c (ia64_compute_frame_size): Update.
4514         (ia64_initial_elimination_offset): Update.
4515         (ia64_initial_elimination_offset): Update.
4516         (ia64_expand_prologue): Update.
4517         * config/m68k/m68k.md (return expander): Update.
4518         * config/rs6000/rs6000.c (rs6000_va_start): Update.
4519         (rs6000_stack_info): Update.
4520         * config/mcore/mcore.c (layout_mcore_frame): Update.
4521         (mcore_expand_prolog): Update.
4522         * config/arc/arc.c (arc_compute_frame_size): Update.
4523         * config/score/score3.c (score3_compute_frame_size): Update.
4524         * config/score/score7.c (score7_compute_frame_size): Update.
4525         * config/arm/arm.c (use_return_insn): Update.
4526         (thumb_find_work_register): Update.
4527         (arm_compute_save_reg_mask): Update.
4528         (arm_output_function_prologue): Update.
4529         (arm_output_epilogue): Update.
4530         (arm_size_return_regs): Update.
4531         (arm_get_frame_offsets): Update.
4532         (arm_expand_prologue): Update.
4533         (thumb_exit): Update.
4534         (thumb_unexpanded_epilogue): Update.
4535         (thumb1_output_function_prologue): Update.
4536         * config/pa/pa.md (return expander): Update.
4537         * config/pa/pa.c (compute_frame_size): Update.
4538         (hppa_builtin_saveregs): Update.
4539         * config/mips/mips.c (mips_va_start): Update.
4540         (mips16_build_function_stub): Update.
4541         (mips_compute_frame_info): Update.
4542         (mips_restore_gp): Update.
4543         (mips_output_function_prologue): Update.
4544         (mips_expand_prologue): Update.
4545         * config/v850/v850.c (compute_frame_size): Update.
4546         (expand_prologue): * config/mmix/mmix.c (along): update.
4547         (mmix_initial_elimination_offset): update.
4548         (mmix_reorg): update.
4549         (mmix_use_simple_return): update.
4550         (mmix_expand_prologue): update.
4551         (mmix_expand_epilogue): Update.
4552         * config/bfin/bfin.c (bfin_initial_elimination_offset): Update.
4553         (emit_link_insn): Update.
4554
4555 2008-04-08  Anatoly Sokolov <aesok@post.ru>
4556
4557         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Define 
4558         __AVR_HAVE_EIJMP_EICALL__ macro if device have EIJMP and EICALL 
4559         instructions.
4560         * config/avr/avr.c (avr_mcu_types): Set AVR31 architecture for 
4561         atmega103 device.
4562
4563 2008-04-07  Jan Hubicka  <jh@suse.cz>
4564
4565         * function.h (rtl): Rename to x_rtl.
4566         (crtl): New define.
4567         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
4568         frame_offset, stack_check_probe_note, arg_pointer_save_area,
4569         used_temp_slots avail_temp_slots, temp_slot_level,
4570         nonlocal_goto_handler_labels): Update accesstors.
4571         (rtl): New global variable.
4572         (struct function): Move some fileds to rtl_data.
4573         (get_arg_pointer_save_area): Update prototype.
4574         * builtins.c (expand_builtin_setjmp_receiver): Update call of
4575         get_arg_pointer_save_area.
4576         * expr.c (init_expr): Update
4577         * function.c (get_frame_size): Update
4578         (assign_stack_local): Update
4579         (expand_function_end): Update.
4580         (get_art_pointer_save_area): Update
4581         * function.h 
4582         * emit-rtl.c (rtl): Declare.
4583         (regno_reg_rtx): Declare.
4584         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
4585         Update.
4586         (gen_reg_rtx): Update.
4587         * varasm.c (n_deferred_constatns): Update accestor.
4588         (init_varasm_status): Do not allocate varasm_status.
4589         (force_const_mem, get_pool_size, output_constant_pool): Update.
4590         * stmt.c (force_label_rtx): Do not use x_ prefixes.
4591         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
4592         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Update.
4593         * sparc/sparc.h (INIT_EXPANDERS): Update.
4594         * ia64/ia64.h (INIT_EXPANDERS): Update.
4595
4596 2008-04-07  James E. Wilson  <wilson@tuliptree.org>
4597
4598         * reload.c (push_secondary_reload): Add missing break to for loop.
4599
4600 2008-04-07  Peter Bergner  <bergner@vnet.ibm.com>
4601
4602         PR middle-end/PR28690
4603         * rtlanal.c: Update copyright years.
4604         (commutative_operand_precedence): Give SYMBOL_REF's the same precedence
4605         as REG_POINTER and MEM_POINTER operands.
4606         * emit-rtl.c (gen_reg_rtx_and_attrs): New function.
4607         (set_reg_attrs_from_value): Call mark_reg_pointer as appropriate.
4608         * rtl.h (gen_reg_rtx_and_attrs): Add prototype for new function.
4609         * gcse.c: Update copyright years.
4610         (pre_delete): Call gen_reg_rtx_and_attrs.
4611         (hoist_code): Likewise.
4612         (build_store_vectors): Likewise.
4613         (delete_store): Likewise.
4614         * loop-invariant.c (move_invariant_reg): Likewise.
4615         Update copyright years.
4616
4617 2008-04-07  Uros Bizjak  <ubizjak@gmail.com>
4618
4619         * config/i386/i386.md ("*sse_prologue_save_insn"): Use braced output
4620         control string instead of quoted.
4621
4622 2008-04-07  Kenneth Zadeck  <zadeck@naturalbridge.com>
4623
4624         * doc/rtl.texi: Rewrite of subreg section.
4625
4626 2008-04-07  Kai Tietz  <kai.tietz@onevision.com>
4627
4628         PR/35842
4629         * config/i386/i386.c (legitimize_pic_address): Add treating
4630         of dllimport SYM_REF's.
4631         (legitimize_dllimport_symbol): Add prototype.
4632
4633 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4634
4635         * fold-const.c (fold) <ARRAY_REF>: New case.  Try to fold constant
4636         reference in constructor with non self-referential type.
4637
4638 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
4639
4640         Removal of Return with Depressed Stack Pointer support
4641         * tree.h (TYPE_RETURNS_STACK_DEPRESSED): Delete.
4642         (ECF_SP_DEPRESSED): Likewise.
4643         (ECF_LIBCALL_BLOCK, ECF_NOVOPS): Adjust.
4644         * calls.c (emit_call_1): Do not test ECF_SP_DEPRESSED.
4645         (flags_from_decl_or_type): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4646         (expand_call): Do not test ECF_SP_DEPRESSED.
4647         * dse.c (dse_step0): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4648         * function.c (keep_stack_depressed): Delete.
4649         (handle_epilogue_set): Likewise.
4650         (update_epilogue_consts): Likewise.
4651         (emit_equiv_load): Likewise.
4652         (thread_prologue_and_epilogue_insns): Remove support for Return with
4653         Depressed Stack Pointer.
4654         * print-tree.c (print_node): Do not test TYPE_RETURNS_STACK_DEPRESSED.
4655
4656 2008-04-06  Richard Guenther  <rguenther@suse.de>
4657
4658         PR tree-optimization/35400
4659         * tree-vrp.c (vrp_evaluate_conditional): Only query value-range
4660         information from SSA_NAMEs.
4661
4662 2008-04-06  Anatoly Sokolov <aesok@post.ru>
4663
4664         * config/avr/avr.h (avr_mega_p): Remove declaration.
4665         (AVR_MEGA): Remove macro.
4666         * config/avr/avr.c (avr_mega_p): Remove variable.
4667         (avr_override_options): Remove inicializion of avr_mega_p.
4668         Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4669         (print_operand): Use AVR_HAVE_JMP_CALL instead of AVR_MEGA.
4670         (avr_jump_mode): (Ditto.).
4671         (avr_output_progmem_section_asm_op): (Ditto.).
4672         (avr_asm_init_sections): (Ditto.).
4673         (avr_asm_init_sections): (Ditto.).
4674         (avr_rtx_costs): (Ditto.).
4675         * config/avr/avr.md: (Ditto.).
4676         * config/avr/avr.h: Use '__AVR_HAVE_JMP_CALL__' instead of 
4677         '__AVR_MEGA__'.
4678
4679 2008-04-06  Richard Guenther  <rguenther@suse.de>
4680
4681         PR tree-optimization/35842
4682         * tree-ssa-address.c (fixed_address_object_p): Adjust to match
4683         is_gimple_invariant_address.
4684
4685 2008-04-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4686
4687         * gcc.c (default_compilers): Sync Fortran extensions list with
4688         that in fortran/lang-specs.h.
4689         * doc/invoke.texi: Likewise.
4690         * dbxout.c (get_lang_number): Use "GNU Fortran" in "GNU F95".
4691         * dwarf2out.c (gen_compile_unit_die): Likewise.
4692
4693 2008-04-06  Tom G. Christensen  <tgc@jupiterrise.com>
4694
4695         * gthr-posix95.h (__gthread_cond_wait_recursive): Add missing &.
4696
4697 2008-04-05  Uros Bizjak  <ubizjak@gmail.com>
4698
4699         PR target/12329
4700         * config/i386/i386.c (ix86_function_regparm): Error if regparm(3)
4701         attribute is used for nested functions.
4702
4703 2008-04-05  Jan Hubicka  <jh@suse.cz>
4704
4705         * emit-rtl.c (init_emit): xcalloc regno_pointer_align.
4706
4707         * tree-dump.c (dump_enable_all): Remove prototype; do not accept
4708         letter argument.
4709         (dump_files): Update.
4710         (enable_rtl_dump_file): Do not accept letter argument.
4711         * tree-pass.h (dump_file_info): Remove letter argument.
4712         * toplev.c (decode_d_option): Update -da handling.
4713         * toplev.h (enable_rtl_dump_file): Update prototype.
4714         * passes.c (register_one_dump_file): Do not accept IPA argument; work
4715         it out based on pass type.
4716         (register_dump_files_1): Likewise.
4717         (init_optimization_passes): Update register_one_dump_file calls.
4718         (execute_one_pass): Sanity check that IPA passes are called at IPA
4719         level and RTL passes at RTL level.
4720         (execute_pass_list): IPA pass can not be after or subpass of
4721         GIMPLE/RTL pass.
4722         (execute_ipa_pass_list): Handle IPA subpasses of IPA subpasses and
4723         disallov RTL subpasses of IPA subpasses.
4724
4725 2008-04-05  Ben Elliston  <bje@au.ibm.com>
4726
4727         * tree-cfg.c (need_fake_edge_p): Return false for calls to
4728         builtins that return exactly once and do not throw. Cache call to
4729         call_expr_flags.
4730
4731 2008-04-04 Andy Hutchinson <hutchinsonandy@aim.com>
4732
4733         PR rtl-optimization/34916
4734         PR middle-end/35519
4735         * combine.c (create_log_links): Do not create duplicate LOG_LINKS
4736         between instruction pairs.
4737
4738 2008-04-04  Naveen.H.S  <naveen.hs@kpitcummins.com>
4739
4740         * doc/invoke.texi: Document -mbitops for SH.
4741         * config/sh/constraints.md (K03, K12, Sbv, Sbw): New constraints.
4742         * config/sh/predicates.md (bitwise_memory_operand): New predicate.
4743         * config/sh/sh.c (print_operand): Add %t operand code.
4744         * config/sh/sh.h (GO_IF_LEGITIMATE_INDEX): Add condition for SH2A.
4745         * config/sh/sh.md (*iorsi3_compact): Fix condition for SH2A.
4746         (extendqisi2_compact): Add the alternative for SH2A 4-byte mov.b.
4747         (extendqihi2): Likewise.
4748         (movqi_i): Likewise.
4749         (insv): Use bset, bclr and bst instructions for SH2A if possible.
4750         (extv): Use bld instruction for SH2A if possible.
4751         (extzv): Likewise.
4752         (bclr_m2a, bclrmem_m2a, bset_m2a, bsetmem_m2a, bst_m2a, bld_m2a,
4753         bldsign_m2a, bld_reg, *bld_regqi, band_m2a, bandreg_m2a,
4754         bor_m2a, borreg_m2a, bxor_m2a, bxorreg_m2a): New insns.
4755         (bset.b, bclr.b): Define peepholes.
4756         * config/sh/sh.opt (mbitops): New option.
4757
4758 2008-04-04  Janis Johnson  <janis187@us.ibm.com>
4759
4760         PR target/35620
4761         * config/rs6000/rs6000.c (rs6000_check_sdmode): Handle indirect ref
4762         and view convert expression.
4763
4764 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4765
4766         PR target/35364
4767         * tree-cfg.c (remove_useless_stmts_1): Handle OMP_* containers.
4768
4769 2008-04-04  H.J. Lu  <hongjiu.lu@intel.com>
4770
4771         * config.gcc (extra_headers): Add wmmintrin.h for x86 and x86-64.
4772
4773         * config/i386/cpuid.h (bit_AES): New.
4774         (bit_PCLMUL): Likewise.
4775
4776         * config/i386/i386.c (pta_flags): Add PTA_AES and PTA_PCLMUL.
4777         (override_options): Handle PTA_AES and PTA_PCLMUL.  Enable
4778         SSE2 if AES or PCLMUL is enabled.
4779         (ix86_builtins): Add IX86_BUILTIN_AESENC128,
4780         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4781         IX86_BUILTIN_AESDECLAST128, IX86_BUILTIN_AESIMC128,
4782         IX86_BUILTIN_AESKEYGENASSIST128 and IX86_BUILTIN_PCLMULQDQ128.
4783         (bdesc_sse_3arg): Add IX86_BUILTIN_PCLMULQDQ128.
4784         (bdesc_2arg): Add IX86_BUILTIN_AESENC128,
4785         IX86_BUILTIN_AESENCLAST128, IX86_BUILTIN_AESDEC128,
4786         IX86_BUILTIN_AESDECLAST128 and IX86_BUILTIN_AESKEYGENASSIST128.
4787         (bdesc_1arg): Add IX86_BUILTIN_AESIMC128.
4788         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_aesenc128,
4789         __builtin_ia32_aesenclast128, __builtin_ia32_aesdec128,
4790         __builtin_ia32_aesdeclast128,__builtin_ia32_aesimc128,
4791         __builtin_ia32_aeskeygenassist128 and
4792         __builtin_ia32_pclmulqdq128.
4793         * config/i386/i386.c (ix86_expand_binop_imm_builtin): New.
4794         (ix86_expand_builtin): Use it for IX86_BUILTIN_PSLLDQI128 and
4795         IX86_BUILTIN_PSRLDQI128.  Handle IX86_BUILTIN_AESKEYGENASSIST128.
4796
4797         * config/i386/i386.h (TARGET_AES): New.
4798         (TARGET_PCLMUL): Likewise.
4799         (TARGET_CPU_CPP_BUILTINS): Handle TARGET_AES and TARGET_PCLMUL.
4800
4801         * config/i386/i386.md (UNSPEC_AESENC): New.
4802         (UNSPEC_AESENCLAST): Likewise.
4803         (UNSPEC_AESDEC): Likewise.
4804         (UNSPEC_AESDECLAST): Likewise.
4805         (UNSPEC_AESIMC): Likewise.
4806         (UNSPEC_AESKEYGENASSIST): Likewise.
4807         (UNSPEC_PCLMUL): Likewise.
4808
4809         * config/i386/i386.opt (maes): New.
4810         (mpclmul): Likewise.
4811
4812         * config/i386/sse.md (aesenc): New pattern.
4813         (aesenclast): Likewise.
4814         (aesdec): Likewise.
4815         (aesdeclast): Likewise.
4816         (aesimc): Likewise.
4817         (aeskeygenassist): Likewise.
4818         (pclmulqdq): Likewise.
4819
4820         * config/i386/wmmintrin.h: New.
4821
4822         * doc/extend.texi: Document AES and PCLMUL built-in function.
4823
4824         * doc/invoke.texi: Document -maes and -mpclmul.
4825
4826 2008-04-04  Paolo Bonzini  <bonzini@gnu.org>
4827
4828         * function.c (free_after_parsing): Replace with
4829         cxx_push_function_context from C++ front-end.
4830         (allocate_struct_function): Don't call langhook.
4831         * langhooks.h (struct lang_hooks_for_functions): Delete.
4832         (struct lang_hooks): Add back missing_noreturn_ok_p here, delete
4833         member "function".
4834         * langhooks-def.h (LANG_HOOKS_MISSING_NORETURN_OK_P): Add.
4835         (LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
4836         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
4837         LANG_HOOKS_FUNCTION_INITIALIZER): Delete.
4838         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_MISSING_NORETURN_OK_P,
4839         remove LANG_HOOKS_FUNCTION_INITIALIZER.
4840         * tree-cfg.c: Adjust call to missing_noreturn_ok_p langhook.
4841
4842         * c-objc-common.h (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P):
4843         Rename to LANG_HOOKS_MISSING_NORETURN_OK_P.
4844         
4845 2008-04-04  Jakub Jelinek  <jakub@redhat.com>
4846
4847         PR c/35440
4848         * c-pretty-print.c (pp_c_initializer_list): Handle CONSTRUCTOR
4849         for all types.
4850
4851 2008-04-04  Richard Guenther  <rguenther@suse.de>
4852
4853         PR middle-end/35823
4854         * fold-const.c (optimize_minmax_comparison): Use the correct
4855         type for the constant in the simplified comparison.
4856
4857 2008-04-04  Zuxy Meng <zuxy.meng@gmail.com>
4858
4859         * config/i386/driver-i386.c (describe_cache): Add l2_sizekb argument.
4860         Pass L2 size as "--param l2-cache-size" to the compiler.
4861         (decode_l2_cache): New function to decode L2 cache parameters using
4862         0x8000006 extended cpuid function.
4863         (detect_caches_amd): Determine parameters of L2 cache using
4864         decode_l2_caches function.
4865         (decode_caches_intel): Decode L2 cache parameters.
4866         (detect_caches_intel): Determine L2 cache parameters using
4867         decode_caches_intel and decode_l2_caches functions.
4868
4869 2008-04-03  Bob Wilson  <bob.wilson@acm.org>
4870
4871         * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Use a
4872         secondary input reload for subword loads from the constant pool.
4873
4874 2008-04-03  Janis Johnson  <janis187@us.ibm.com>
4875
4876         PR target/35713
4877         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use integer
4878           constants of the appropriate size for runtime calculations.
4879
4880         PR c/35712
4881         * dfp.c (decimal_from_decnumber): Retain trailing zeroes for
4882           decimal-float literal constant zero.
4883
4884 2008-04-03  Jakub Jelinek  <jakub@redhat.com>
4885
4886         PR c/35738
4887         * c-parser.c (c_parser_omp_atomic): Call
4888         default_function_array_conversion on the RHS.
4889
4890         PR middle-end/35818
4891         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: Don't
4892         call is_variable_sized if decl has incomplete type.
4893
4894 2008-04-03  H.J. Lu  <hongjiu.lu@intel.com>
4895
4896         * config/i386/i386-protos.h (ix86_aligned_p): Removed.
4897
4898 2008-04-03  Adam Nemet  <anemet@caviumnetworks.com>
4899
4900         * config/mips/mips.md (any_gt, any_ge, any_lt, any_le): New code
4901         iterators.
4902         (u): Add attribute values for gt, gtu, ge, geu, lt, ltu, le and leu.
4903         (sgt<u>): Merge sgt and sgtu into new expander.
4904         (sgt, sgtu): Remove expanders.
4905         (*sgt<u>_<mode>): Merge *sgt_<mode> and *sgtu_<mode> into new pattern.
4906         (*sgt_<mode>, *sgtu_<mode>): Remove patterns.
4907         (*sgt<u>_<mode>_mips16): Merge *sgt_<mode>_mips16 and
4908         *sgtu_<mode>_mips16 into new pattern.
4909         (*sgt_<mode>_mips16, *sgtu_<mode>_mips16): Remove patterns.
4910         (sge<u>): Merge sge and sgeu into new expander.
4911         (sge, sgeu): Remove expanders.
4912         (*sge<u>_<mode>): Merge *sge_<mode> and second *sge_<mode> into
4913         new pattern.
4914         (*sge_<mode>, second *sge_<mode>): Remove patterns.
4915         (slt<u>): Merge slt and sltu into new expander.
4916         (slt, sltu): Remove expanders.
4917         (*slt<u>_<mode>): Merge *slt_<mode> and *sltu_<mode> into new pattern.
4918         (*slt_<mode>, *sltu_<mode>): Remove patterns.
4919         (*slt<u>_<mode>_mips16): Merge *slt_<mode>_mips16 and
4920         *sltu_<mode>_mips16 into new pattern.
4921         (*slt_<mode>_mips16, *sltu_<mode>_mips16): Remove patterns.
4922         (sle<u>): Merge sle and sleu into new expander.
4923         (sle, sleu): Remove expanders.
4924         (*sle<u>_<mode>): Merge *sle_<mode> and *sleu_<mode> into new pattern.
4925         (*sle_<mode>, *sleu_<mode>): Remove patterns.
4926         (*sle<u>_<mode>_mips16): Merge *sle_<mode>_mips16 and
4927         *sleu_<mode>_mips16 into new pattern.
4928         (*sle_<mode>_mips16, *sleu_<mode>_mips16): Remove patterns.
4929
4930 2008-04-03  Jan Hubicka  <jh@suse.cz>
4931
4932         PR tree-optimization/35795
4933         * alpha/alpha.c (alpha_output_mi_thunk_osf): Free after compilation.
4934         * sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4935         * ia64/ia64.c (ia64_output_mi_thunk): Likewise.
4936         * m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4937         * score/score3.c (score3_output_mi_thunk): Likewise.
4938         * score/score7.c (score7_output_mi_thunk): Likewise.
4939         * mips/mips.c (mips_output_mi_thunk): Likewise.
4940
4941 2008-04-03  Richard Guenther  <rguenther@suse.de>
4942
4943         * tree-vrp.c (extract_range_from_unary_expr): Handle all
4944         conversions.  Simplify code.
4945
4946 2008-04-03  Kaz Kojima  <kkojima@gcc.gnu.org>
4947
4948         * config/sh/sh.c (sh_output_mi_thunk): Free cfun.
4949
4950 2008-04-03  Tom Tromey  <tromey@redhat.com>
4951             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4952
4953         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
4954         * config/bfin/t-bfin-linux (generated_files): Add
4955         linux-sysroot-suffix.h.
4956         * doc/install.texi (Prerequisites): Require make 3.80.
4957         * doc/sourcebuild.texi (Front End Directory): Document new
4958         variable.
4959         * Makefile.in (generated_files): New variable.
4960         (ALL_HOST_OBJS): New variable.
4961         ($(ALL_HOST_OBJS)): New target.
4962
4963 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
4964
4965         * tree-inline.c (copy_generic_body, copy_decl_no_change): Export.
4966         (remap_block): Call id->transform_lang_insert_block instead
4967         of langhook.
4968         (optimize_inline_calls, unsave_expr_now, tree_function_versioning):
4969         Set id.transform_lang_insert_block to NULL.
4970         (clone_body): Move to cp/optimize.c
4971         * tree-inline.h (struct copy_body_data): Change
4972         transform_lang_insert_block to function pointer.
4973         (copy_generic_body, copy_decl_no_change): Export.
4974         * langhooks.h (struct lang_hooks_for_decls): Kill insert_block.
4975         * langhooks-def.h (LANG_HOOKS_INSERT_BLOCK): Kill.
4976         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_INSERT_BLOCK.
4977
4978         * c-tree.h (insert_block): Kill.
4979         * c-decl.c (insert_block): Kill.
4980
4981 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
4982
4983         * c-objc-common.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4984         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
4985         * c-tree.h (c_push_function_context, c_pop_function_context): Remove
4986         argument.
4987         * c-decl.c (c_push_function_context, c_pop_function_context): Remove
4988         argument, call {push,pop}_function_context from here.
4989         * c-parser.c: Use c_{push,pop}_function_context.
4990
4991         * function.c (push_function_context_to): Move meat ...
4992         (push_function_context): ... here.  Simplify.
4993         * function.c (pop_function_context_from): Move meat ...
4994         (pop_function_context): ... here.  Simplify.
4995         * langhooks.h (struct lang_hooks_for_functions): Remove enter_nested,
4996         leave_nested).
4997         * langhooks-def.h (LANG_HOOKS_FUNCTION_ENTER_NESTED,
4998         LANG_HOOKS_FUNCTION_LEAVE_NESTED): Delete.
4999         (LANG_HOOKS_FUNCTION_INITIALIZER): Delete them from here.
5000         * tree.h (push_function_context_to, pop_function_context_from): Remove.
5001
5002 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5003
5004         * expmed.c (extract_force_align_mem_bit_field): Remove.
5005
5006 2008-04-03  Richard Guenther  <rguenther@suse.de>
5007
5008         PR middle-end/35800
5009         * expr.h (try_casesi): Adjust prototype.
5010         * expr.c (try_casesi): Take fallback label as extra parameter.
5011         Use that for gen_casesi if default_label is NULL.
5012         * stmt.c (expand_case): Pass fallback label to try_casesi,
5013         make sure to fill gaps with a fallback label if default_label
5014         is not present.
5015
5016 2008-04-03  Dominique d'Humieres <dominiq@lps.ens.fr>
5017
5018         PR target/35801
5019         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Free cfun.
5020
5021 2008-04-03  Ben Elliston  <bje@au.ibm.com>
5022
5023         * expmed.c (extract_split_bit_field): Remove if (0) code.
5024         * tree-ssa-structalias.c (do_sd_constraint): Likewise.
5025         (do_ds_constraint): Likewise.
5026
5027 2008-04-02  Joseph Myers  <joseph@codesourcery.com>
5028
5029         * doc/cppopts.texi (-dU): Document.
5030         * c-common.h (flag_dump_macros): Update comment.
5031         * c-opts.c (handle_OPT_d): Handle -dU.
5032         * c-ppoutput.c (macro_queue, define_queue, undef_queue,
5033         dump_queued_macros, cb_used_define, cb_used_undef): New.
5034         (init_pp_output): Handle -dU.
5035         (cb_line_change): Call dump_queued_macros.
5036         * toplev.c (decode_d_option): Accept -dU as preprocessor option.
5037
5038 2008-04-02  Anatoly Sokolov <aesok@post.ru>
5039
5040         * config/avr/predicates.md (io_address_operand): New predicate. 
5041         * config/avr/avr-protos.h (avr_io_address_p): Remove declaration.
5042         * config/avr/avr.c (avr_io_address_p): Remove function.
5043         (out_movqi_r_mr): Use 'io_address_operand' predicate instead of 
5044         'avr_io_address_p' function.
5045         (out_movhi_r_mr): (Ditto.).
5046         (out_movqi_mr_r): (Ditto.).
5047         (out_movhi_mr_r): (Ditto.).
5048         (avr_address_cost): (Ditto.).
5049
5050 2008-04-02  Uros Bizjak  <ubizjak@gmail.com>
5051
5052         * config/i386/i386.md (*float<SSEMODEI24:mode><X87MODEF:mode>2_1):
5053         Emit gen_floatdi<X87MODEF:mode>2_i387_with_xmm for DImode values
5054         in 32bit mode when XMM registers are available to avoid store
5055         forwarding stalls.
5056         (floatdi<X87MODEF:mode>2_i387_with_xmm): New insn pattern and
5057         corresponding post-reload splitters.
5058
5059 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5060
5061         * config/i386/i386.c (bdesc_sse_3arg): Add __builtin_ia32_shufps
5062         and __builtin_ia32_shufpd.  Provide __builtin_ia32_roundsd and
5063         __builtin_ia32_roundss.
5064         (ix86_init_mmx_sse_builtins): Remove __builtin_ia32_shufps,
5065         __builtin_ia32_shufpd, __builtin_ia32_roundsd and
5066         __builtin_ia32_roundss.
5067         (ix86_expand_builtin): Don't handle IX86_BUILTIN_SHUFPS and
5068         IX86_BUILTIN_SHUFPD here.
5069
5070 2008-04-02  H.J. Lu  <hongjiu.lu@intel.com>
5071
5072         * config/i386/i386.md (plogic): New.
5073         (plogicprefix): Likewise.
5074
5075         * config/i386/mmx.md (mmx_<code><mode>3): New.
5076         (mmx_and<mode>3): Removed.
5077         (mmx_ior<mode>3): Likewise.
5078         (mmx_xor<mode>3): Likewise.
5079
5080         * config/i386/sse.md (<code><mode>3): New.
5081         (*<code><mode>3): Likewise.
5082         (*<code><mode>3): Likewise.
5083         (<code><mode>3): Likewise.
5084         (*sse_<code><mode>3): Likewise.
5085         (*sse2_<code><mode>3): Likewise.
5086         (<code>tf3): Likewise.
5087         (*<code>tf3): Likewise.
5088         (and<mode>3): Likewise.
5089         (*and<mode>3): Likewise.
5090         (ior<mode>3): Removed.
5091         (*ior<mode>3): Likewise.
5092         (xor<mode>3): Likewise.
5093         (*xor<mode>3): Likewise.
5094         (*and<mode>3): Likewise.
5095         (*ior<mode>3): Likewise.
5096         (*xor<mode>3): Likewise.
5097         (and<mode>3): Likewise.
5098         (*sse_and<mode>3): Likewise.
5099         (*sse2_and<mode>3): Likewise.
5100         (andtf3): Likewise.
5101         (*andtf3): Likewise.
5102         (ior<mode>3): Likewise.
5103         (*sse_ior<mode>3): Likewise.
5104         (*sse2_ior<mode>3): Likewise.
5105         (iortf3): Likewise.
5106         (*iortf3): Likewise.
5107         (xor<mode>3): Likewise.
5108         (*sse_xor<mode>3): Likewise.
5109         (*sse2_xor<mode>3): Likewise.
5110         (xortf3): Likewise.
5111         (*xortf3): Likewise.
5112
5113 2008-04-02  Richard Guenther  <rguenther@suse.de>
5114
5115         PR tree-optimization/14495
5116         PR tree-optimization/34793
5117         * tree-vrp.c (struct switch_update): New structure.
5118         (to_remove_edges, to_update_switch_stmts): New VECs.
5119         (simplify_switch_using_ranges): New function.  Remove not taken
5120         case labels and edges.
5121         (simplify_stmt_using_ranges): Call it.
5122         (identify_jump_threads): Mark edges we have queued for removal
5123         so we don't thread them.
5124         (execute_vrp): Remove edges queued for removal, update SWITCH_STMT
5125         case label vector.
5126         * tree-cfg.c (group_case_labels): Deal with missing default label.
5127         (tree_verify_flow_info): Allow missing default label.
5128         * stmt.c (emit_case_bit_tests): Deal with NULL default_label.
5129         (emit_case_nodes): Likewise.
5130         (expand_case): Do not rely on the default label to be present.
5131         * expr.c (try_casesi): Deal with NULL default_label.
5132         (do_tablejump): Likewise.
5133
5134 2008-04-02  Richard Guenther  <rguenther@suse.de>
5135
5136         PR tree-optimization/14495
5137         * tree-vrp.c (vrp_visit_cond_stmt): Do not handle
5138         SWITCH_EXPR here ...
5139         (vrp_visit_switch_stmt): ... but here (new function).
5140         (find_case_label_index): New helper function.
5141         (vrp_visit_stmt): Dispatch to vrp_visit_switch_stmt.
5142
5143 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5144
5145         * fwprop.c: Fix ISO-C99ism.
5146
5147 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5148
5149         PR bootstrap/35752
5150         * Makefile.in (objdir): Set it here.
5151         * configure.ac: Not here.  Find dynamic linker characteristics.
5152         * exec-tool.in: Use them.
5153         * aclocal.m4: Regenerate.
5154         * configure: Regenerate.
5155
5156 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5157
5158         * expr.c (expand_var): Delete it.
5159         * expr.h (expand_var): Delete prototype.
5160         * function.c (expand_function_start): Use expand_decl instead.
5161         * cfgexpand.c (expand_one_static_var, expand_one_var): Don't call
5162         langhook.
5163
5164 2008-04-02  Andy Hutchinson <hutchinsonamdy@aim.com>
5165
5166         PR rtl-optimization/35542
5167         * fwprop.c (forward_propagate_and_simplify): Replace
5168         loc_reg_mentioned_in_p with reg_mentioned_p.
5169
5170 2008-04-02  Paolo Bonzini  <bonzini@gnu.org>
5171
5172         PR rtl-optimization/35281
5173         * fwprop.c (PR_CAN_APPEAR, PR_HANDLE_MEM): New.
5174         (propagate_rtx_1): Handle PR_HANDLE_MEM.
5175         (propagate_rtx): Pass PR_HANDLE_MEM if appropriate.
5176         (varying_mem_p): Move above propagate_rtx.
5177         (all_uses_available_at): Do not check MEMs.
5178
5179 2008-04-02  Rafael Espindola  <espindola@google.com>
5180
5181         * tree-vrp.c (extract_code_and_val_from_cond): Remove.
5182         (register_edge_assert_for_2): Split the cond argument.
5183         (register_edge_assert_for_1): Adjust for the change in
5184         register_edge_assert_for_2.
5185         (register_edge_assert_for): Split the cond argument.
5186         (find_switch_asserts): Adjust for the change in
5187         register_edge_assert_for.
5188
5189 2008-04-02  Kai Tietz  <kai.tietz@onevision.com>
5190
5191         * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild.
5192         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte
5193         offsets for 64-bit mingw.
5194         * config/i386/i386.c (ix86_pass_by_reference): Correct calling
5195         abi for x86_64-pc-mingw.
5196
5197 2008-04-02  Richard Guenther  <rguenther@suse.de>
5198
5199         * tree-vrp.c (extract_range_from_assert): Make sure to not
5200         produce range min/max with TREE_OVERFOW set.
5201         If merging a anti-range and a range keep the anti-range if
5202         the range covers all values of the type.
5203         (register_edge_assert_for_2): Only allow sign-changing
5204         conversions in detecting canonical range checks.  Also
5205         register an assert for the unsigned name if useful.
5206
5207         PR tree-optimization/35787
5208         * tree-vrp.c (vrp_val_max): New function.
5209         (vrp_val_min): Likewise.
5210         (vrp_val_is_max): Move earlier, use vrp_val_{min,max}.
5211         (vrp_val_is_min): Likewise.
5212         (supports_overflow_infinity): Use vrp_val_{min,max}.
5213         (negative_overflow_infinity): Likewise.
5214         (positive_overflow_infinity): Likewise.
5215         (is_negative_overflow_infinity): Use vrp_val_is_{min,max}.
5216         (is_positive_overflow_infinity): Likewise.
5217         (is_overflow_infinity): Likewise.
5218         (avoid_overflow_infinity): Use vrp_val_{min,max} and
5219         vrp_val_is_{min,max}.
5220         (set_and_canonicalize_value_range): Canonicalize anti-ranges
5221         to ranges if possible.  Avoid empty ranges.
5222
5223 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5224
5225         PR middle-end/35705
5226         * fold-const.c (get_pointer_modulus_and_residue): Return modulus 1 if
5227         the expression is a function address.
5228
5229 2008-04-01  George Helffrich  <george@gcc.gnu.org>
5230
5231         PR fortran/35154, fortran/23057
5232         * dbxout.c: Emit .stabs debug info for Fortran COMMON block
5233         variables as base symbol name + offset using N_BCOMM/N_ECOMM.
5234         (is_fortran, dbxout_common_name, dbxout_common_check): New functions.
5235         (dbxout_symbol_location): Transform N_LCSYM to N_GSYM for storage
5236         in common.
5237         (dbxout_syms): Check for COMMON-based symbol and wrap in
5238         N_BCOMM/N_ECOMM stab bracket, including as many symbols as possible
5239         in bracket for efficiency.
5240
5241         * dwarf2out.c: Emit DWARF debug info for Fortran COMMON block
5242         using DW_TAG_common_block + member offset.
5243         (add_pubname_string): New function.
5244         (dw_expand_expr): New function to find block name and offset for
5245         COMMON var.
5246         (common_check): New function to check whether symbol in Fortran COMMON.
5247         (gen_variable_die): If COMMON, use DW_TAG_common_block.
5248
5249 2008-04-01  Volker Reichelt  <v.reichelt@netcologne.de>
5250
5251         PR c/35436
5252         * c-format.c (init_dynamic_gfc_info): Ignore invalid locus type.
5253
5254 2008-04-02  Ben Elliston  <bje@au.ibm.com>
5255
5256         * config/v850/v850.md (casesi): Remove if (0) code.
5257         * config/i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5258         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
5259
5260 2008-04-01  Uros Bizjak  <ubizjak@gmail.com>
5261
5262         * config/i386/i386.md (rex64suffix): New mode attribute.
5263         (floathi<mode>2): Disable expander for SSE math.
5264         (*floathi<mode>2_1): New insn insn_and_split pattern.
5265         (*floathi<mode>2_i387_with_temp): New macroized instruction pattern and
5266         corresponding post-reload splitters.
5267         (*floathi<mode>2_i387): New macroized insn pattern.
5268         (float<SSEMODEI24:mode><X87MODEF:mode>2): New macroized expander.
5269         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): New macroized
5270         insn_and_split pattern.
5271         (*floatsi<mode>2_vector_mixed_with_temp, *floatsi<mode>2_vector_mixed):
5272         New macroized instruction patterns and corresponding post-reload
5273         splitters.
5274         (*floatsi<mode>2_mixed_with_temp): New macroized instruction pattern
5275         and corresponding post-reload splitters.
5276         (*floatsi<mode>2_mixed_interunit, *floatsi<mode>2_mixed_nointerunit):
5277         New macroized instruction patterns.
5278         (*floatsi<mode>2_vector_sse_with_temp, *floatsi<mode>2_vector_sse): New
5279         macroized instruction patterns and corresponding post-reload splitters.
5280         (*floatsi<mode>2_sse_with_temp): New macroized instruction pattern and
5281         corresponding post-reload splitters.
5282         (*floatsi<mode>2_sse_interunit, *floatsi<mode>2_mixed_nointerunit):
5283         New macroized instruction patterns.
5284         (*floatsi<mode>2_i387_with_temp): New macroized instruction pattern and
5285         corresponding post-reload splitters.
5286         (*floatsi<mode>2_i387): New macroized instruction patterns.
5287
5288 2008-04-01  H.J. Lu  <hongjiu.lu@intel.com>
5289
5290         * config/i386/i386.md (smaxmin): New.
5291         (umaxmin): Likewise.
5292         (maxminiprefix): Likewise.
5293         (maxminfprefix): Likewise.
5294         (<code><mode>3): Likewise.
5295         (smin<mode>3): Removed.
5296         (smax<mode>3): Likewise.
5297
5298         * config/i386/mmx.md (mmx_<code>v2sf3): New.
5299         (mmx_<code>v4hi3): Likewise.
5300         (mmx_<code>v8qi3): Likewise.
5301         (mmx_smaxv2sf3): Removed.
5302         (mmx_sminv2sf3): Likewise.
5303         (mmx_umaxv8qi3): Likewise.
5304         (mmx_smaxv4hi3): Likewise.
5305         (mmx_uminv8qi3): Likewise.
5306         (mmx_sminv4hi3): Likewise.
5307
5308         * config/i386/sse.md (<addsub><mode>3): New.
5309         (*<addsub><mode>3): Likewise.
5310         (<sse>_vm<addsub><mode>3): Likewise.
5311         (<maxmin><mode>3): Likewise.
5312         (*<maxmin><mode>3_finite): Likewise.
5313         (*<maxmin><mode>3): Likewise.
5314         (<sse>_vm<maxmin><mode>3): Likewise.
5315         (sse3_h<addsub>v4sf3): Likewise.
5316         (sse3_h<addsub>v2df3): Likewise.
5317         (<maxmin>v16qi3): Likewise.
5318         (*<maxmin>v16qi3): Likewise.
5319         (<maxmin>v8hi3): Likewise.
5320         (*<maxmin>v8hi3): Likewise.
5321         (*sse4_1_<maxmin><mode>3): Likewise.
5322         (*sse4_1_<maxmin><mode>3): Likewise.
5323         (add<mode>3): Removed.
5324         (*add<mode>3): Likewise.
5325         (<sse>_vmadd<mode>3): Likewise.
5326         (sub<mode>3): Likewise.
5327         (*sub<mode>3): Likewise.
5328         (<sse>_vmsub<mode>3): Likewise.
5329         (smin<mode>3): Likewise.
5330         (*smin<mode>3_finite): Likewise.
5331         (*smin<mode>3): Likewise.
5332         (<sse>_vmsmin<mode>3): Likewise.
5333         (smax<mode>3): Likewise.
5334         (*smax<mode>3_finite): Likewise.
5335         (*smax<mode>3): Likewise.
5336         (<sse>_vmsmax<mode>3): Likewise.
5337         (sse3_haddv4sf3): Likewise.
5338         (sse3_haddv2df3): Likewise.
5339         (sse3_hsubv4sf3): Likewise.
5340         (sse3_hsubv2df3): Likewise.
5341         (umaxv16qi3): Likewise.
5342         (*umaxv16qi3): Likewise.
5343         (smaxv8hi3): Likewise.
5344         (*smaxv8hi3): Likewise.
5345         (*sse4_1_smax<mode>3): Likewise.
5346         (*sse4_1_umax<mode>3): Likewise.
5347         (uminv16qi3): Likewise.
5348         (*uminv16qi3): Likewise.
5349         (sminv8hi3): Likewise.
5350         (*sminv8hi3): Likewise.
5351         (*sse4_1_smin<mode>3): Likewise.
5352         (*sse4_1_umin<mode>3): Likewise.
5353
5354 2008-04-01  Rafael Espindola  <espindola@google.com>
5355
5356         * tree-cfg.c (verify_expr): remove in_phi.
5357         (verify_stmt): Don't call walk_tree with verify_expr. Use
5358         is_gimple_min_invariant instead of is_gimple_val.
5359
5360 2008-04-01  Joseph Myers  <joseph@codesourcery.com>
5361
5362         * doc/include/gpl_v3.texi: Update for manpage generation.
5363         * doc/gcc.texi, doc/gccint.texi: Include gpl_v3.texi instead of
5364         gpl.texi.
5365         * doc/sourcebuild.texi: Document gpl_v3.texi as well as gpl.texi.
5366         * Makefile.in (TEXI_GCC_FILES, TEXI_GCCINT_FILES): Include
5367         gpl_v3.texi instead of gpl.texi.
5368         (gpl.pod): New.
5369
5370 2008-04-01  Jakub Jelinek  <jakub@redhat.com>
5371
5372         PR pch/13675
5373         * c-pch.c (c_common_read_pch): On error close (fd) resp. fclose (f).
5374
5375 2008-04-01  Rafael Espindola  <espindola@google.com>
5376
5377         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): New.
5378         (extract_code_and_val_from_cond): Use
5379         extract_code_and_val_from_cond_with_ops.
5380
5381 2008-04-01  Jan Hubicka  <jh@suse.cz>
5382
5383         * function.c (free_after_compilation): Free epilogue_delay_list.
5384         (prepare_function_start): Assert that previous compilation was freed.
5385
5386 2008-04-01  Jan Hubicka  <jh@suse.cz>
5387             Jim Wilson  <wilson@tuliptree.org>
5388             Andreas Tobler <andreast@gcc.gnu.org>
5389
5390         PR middle-end/35781
5391         * m32c/m32.c (m32c_leaf_function_p, m32c_function_needs_enter): Use
5392         rtl.emit instead cfun->emit.
5393         * sparc/sparc.h (INIT_EXPANDERS): Likewise.
5394         * ia64/ia64.h (INIT_EXPANDERS): Likewise.
5395
5396 2008-04-01  Ben Elliston  <bje@au.ibm.com>
5397
5398         * doc/c-tree.texi (Function Basics): Fix grammatical error.
5399
5400 2008-03-31  Seongbae Park <seongbae.park@gmail.com>
5401
5402         * common.opt (fprofile-dir=, fprofile-use=, fprofile-generate=):
5403         New options
5404         (fprofile-use): Add var flag_profile_use
5405         * coverage.c (coverage_begin_output): Do not open a gcno file for
5406         output only if -ftest-coverage is set.
5407         Do not add getpwd() to gcda file path.
5408         (build_gcov_info): Check the new flag
5409         flag_profile_datafile_relative_path.
5410         (coverage_init): Use profile_data_prefix.
5411         Read profile counter only if flag_profile_use is set.
5412         * opts.c (common_handle_option): New option fprofile-use=,
5413         fprofile-dir=, fprofile-generate=.
5414         * toplev.c (profile_data_prefix): New variable definition.
5415         * toplev.h (profile_data_prefix): New declaration.
5416         * doc/invoke.tex (Option Summary, Optimization Options):
5417         Add new options.
5418
5419 2008-03-31  James E. Wilson  <wilson@tuliptree.org>
5420
5421         * varasm.c (output_constant_pool_1): In LABEL_REF check,
5422         use tmp consistently.
5423
5424         PR target/35695
5425         * config/ia64/div.md (recip_approx_rf): Use UNSPEC not DIV.
5426         * config/ia64/ia64.c (rtx_needs_barrier): Handle
5427         UNSPEC_FR_RECIP_APPROX_RES.
5428         * config/ia64/ia64.md (UNSPEC_FR_RECIP_APPROX_RES): Define.
5429
5430 2008-03-31  Volker Reichelt  <v.reichelt@netcologne.de>
5431
5432         PR c/35750
5433         * c-decl.c (store_parm_decls_oldstyle): Skip invalid parameters.
5434
5435 2008-03-31  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5436
5437         PR middle-end/30186
5438         * fold-const.c (fold_indirect_ref_1): Support accessing non first
5439         element of the vector via a pointer.
5440
5441 2008-03-31  Ian Lance Taylor  <iant@google.com>
5442
5443         * tlink.c (scan_linker_output): Look for symbol name in single quotes.
5444
5445 2008-03-31  Jan Hubicka  <jh@suse.cz>
5446
5447         * builtins.c (expand_builtin_setjmp_receiver): Update call of
5448         get_arg_pointer_save_area.
5449         * expr.c (init_expr): Just clear out rtl.expr.
5450         * function.c (free_after_compilation): Clear out whole RTL structure.
5451         (get_func_frame_size): Merge into ...
5452         (get_frame_size): ... this one.
5453         (assign_stack_local_1): Merge into ...
5454         (assign_stack_local): ... this one.
5455         (expand_function_end): Update call of get_arg_pointer_save_area.
5456         (get_art_pointer_save_area): Remove cfun argument.
5457         * function.h (emit_status): regno_pointer_align does not need length
5458         attribute. Move x_regno_reg_rtx to ...
5459         (regno_reg_rtx): ... new global array.
5460         (reg_rtx_no, seq_stack, REGNO_POINTER_ALIGN): Update accestors.
5461         (pending_stack_adjust, inhibit_defer_pop, saveregs_value,
5462         apply_args_value, forced_labels, stack_pointer_delta):
5463         Update accestors.
5464         (struct varasm_status): Move here from varasm.c
5465         (struct rtl_data): New. Move here some fields from struct function.
5466         (return_label, naked_return_label, stack_slot_list, parm_birth_insn,
5467         frame_offset, stack_check_probe_note, arg_pointer_save_area,
5468         used_temp_slots avail_temp_slots, temp_slot_level,
5469         nonlocal_goto_handler_labels): Update accesstors.
5470         (rtl): New global variable.
5471         (struct function): Move some fileds to rtl_data.
5472         (get_arg_pointer_save_area): Update prototype.
5473         * emit-rtl.c (rtl): Declare.
5474         (regno_reg_rtx): Declare.
5475         (first_insn, last_insn, cur_insn_uid, last_location, first_label_num):
5476         Update.
5477         (gen_reg_rtx): Update.
5478         (init_virtual_regs): Do not tate emit_status argument.
5479         (init_emit): Do not allocate emit.
5480         * varasm.c (varasm_statuc): Move to function.h.
5481         (n_deferred_constatns): Update accestor.
5482         (init_varasm_status): Do not allocate varasm_status.
5483         (force_const_mem, get_pool_size, output_constant_pool): Update.
5484         * stmt.c (force_label_rtx): Do not use x_ prefixes.
5485         (expand_nl_goto_receiver): Update get_arg_pointer_save_area.
5486
5487 2008-03-31  Zdenek Dvorak  <ook@ucw.cz>
5488
5489         PR rtl-optimization/35729
5490         * loop-invariant.c (check_maybe_invariant): Disallow volatile memory
5491         references.
5492
5493 2008-03-31  H.J. Lu  <hongjiu.lu@intel.com>
5494
5495         PR target/32000
5496         * config/i386/i386.md (*movti_internal): Emit unaligned SSE
5497         load/store if memory is unaligned.
5498         (*movti_rex64): Likewise.
5499
5500         * config/i386/predicates.md (misaligned_operand): New.
5501
5502 2008-03-31  Andrew Pinski  <pinskia@gmail.com>
5503
5504         PR tree-opt/35431
5505         * tree-ssa-phiopt.c (conditional_replacement): Return early for
5506         complex types.
5507
5508 2008-03-31  Jan Beulich  <jbeulich@novell.com>
5509
5510         * config/ia64/constraints.md: Add 'j' constraint.
5511         * config/ia64/ia64.md (movsi_internal): Add addp4 case.
5512         (movdi_internal): Likewise.
5513
5514 2008-03-30  Volker Reichelt  <v.reichelt@netcologne.de>
5515
5516         PR c/35748
5517         * c-typeck.c (build_c_cast): Skip invalid fields in unions.
5518
5519 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5520
5521         PR target/35757
5522         * config/i386/i386.c (ix86_expand_sse_4_operands_builtin): Issue
5523         proper error message for the third argument on blendpd and
5524         blendps.
5525
5526         * config/i386/sse.md (blendbits): New.
5527         (sse4_1_blendp<ssemodesuffixf2c>): Use it.
5528
5529 2008-03-30  Eric Botcazou  <ebotcazou@adacore.com>
5530
5531         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Add missing conversions.
5532
5533 2008-03-30  Richard Guenther  <rguenther@suse.de>
5534
5535         PR middle-end/31023
5536         * fold-const.c (fold_sign_changed_comparison): Do leave
5537         conversions to base-types alone.
5538
5539 2008-03-29  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5540
5541         * config/rs6000/rs6000.c (rs6000_stack_info): Don't force saving of
5542         the link register if one altivec register is be saved.
5543
5544 2008-03-30  Ben Elliston  <bje@au.ibm.com>
5545
5546         * final.c (final_scan_insn): Remove if (0) code.
5547
5548 2008-03-28  Volker Reichelt  <v.reichelt@netcologne.de>
5549
5550         * c-parser.c (c_parser_next_token_is_keyword): Simplify.
5551
5552 2008-03-28  H.J. Lu  <hongjiu.lu@intel.com>
5553
5554         * config/i386/sse.md (*and<mode>3): Pass <MODE>mode instead
5555         of V4SFmode to ix86_binary_operator_ok.
5556
5557 2008-03-28  Uros Bizjak  <ubizjak@gmail.com>
5558
5559         * config/i386/i386.c (override_options): Initialize
5560         ix86_veclib_handler to ix86_veclibabi_svml when
5561         -mveclibabi=svml is used.
5562         (ix86_veclibabi_svml): New function for SVML ABI style
5563         vectorization support.
5564         * doc/invoke.texi (-mveclibabi) [svml]: Document new target option.
5565
5566 2008-03-28  Rafael Espindola  <espindola@google.com>
5567
5568         * fold-const.c (tree_unary_nonnegative_warnv_p): Make it public.
5569         (tree_binary_nonnegative_warnv_p): Make it public.
5570         (tree_single_nonnegative_warnv_p): Make it public.
5571         (tree_invalid_nonnegative_warnv_p): Make it public.
5572         (tree_unary_nonzero_warnv_p): Make it public.
5573         (tree_binary_nonzero_warnv_p): Make it public
5574         (tree_single_nonzero_warnv_p): Make it public.
5575         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops): New function.
5576         (extract_range_from_binary_expr): Split the expr argument.
5577         (extract_range_from_unary_expr): Split the expr argument.
5578         (extract_range_from_comparison): Split the expr argument.
5579         (extract_range_from_expr): Use the new aux functions.
5580         (vrp_evaluate_conditional_warnv): Use
5581         vrp_evaluate_conditional_warnv_with_ops.
5582         * tree.h (tree_unary_nonzero_warnv_p): Declare.
5583         (tree_binary_nonzero_warnv_p): Declare.
5584         (tree_single_nonzero_warnv_p): Declare.
5585         (tree_expr_nonzero_warnv_p): Declare.
5586         (tree_unary_nonnegative_warnv_p): Declare.
5587         (tree_binary_nonnegative_warnv_p): Declare.
5588         (tree_single_nonnegative_warnv_p): Declare.
5589         (tree_invalid_nonnegative_warnv_p): Declare.
5590
5591 2008-03-28  Richard Guenther  <rguenther@suse.de>
5592
5593         PR tree-optimization/30317
5594         PR tree-optimization/30911
5595         PR tree-optimization/34793
5596         * tree-vrp.c (set_and_canonicalize_value_range): New function.
5597         (struct assert_locus_d): New member EXPR.
5598         (register_new_assert_for): Add EXPR parameter to support
5599         ASSERT_EXPR <name, expr OP limit>.
5600         (register_edge_assert_for_1): Adjust callers.
5601         (find_assert_locations): Likewise.
5602         (process_assert_insertions_for): Build condition from expression.
5603         (extract_range_from_assert): Handle ASSERT_EXPRs
5604         of the form ASSERT_EXPR <name, expr OP limit>.
5605         (register_edge_assert_for_2): New helper registering
5606         asserts for comparisons.  Recognize range tests of the form
5607         (unsigned)i - CST1 OP CST2.
5608         (register_edge_assert_for_1): Use it.
5609         (register_edge_assert_for): Likewise.
5610         (needs_overflow_infinity): Integer sub-types
5611         do not need overflow infinities.
5612         (vrp_val_is_max): The extreme values of integer sub-types
5613         are those of the base type.
5614         (vrp_val_is_min): Likewise.
5615         * tree.def (ASSERT_EXPR): Document extra allowed conditional
5616         expressions.
5617
5618 2008-03-28  Nick Clifton  <nickc@redhat.com>
5619
5620         PR target/31110
5621         * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
5622         Return GENERAL_REGS for stack adjustment reloads.
5623
5624 2008-03-28  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5625
5626         PR target/31334
5627         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Create a
5628         const_vector when all the vectors are constant.
5629
5630 2008-03-27  Bob Wilson  <bob.wilson@acm.org>
5631
5632         * config/xtensa/xtensa.c (gen_float_relational): Handle unordered
5633         comparisons.
5634         * config/xtensa/xtensa.md (any_cond): Add unordered comparisons.
5635         (any_scc_sf): Add uneq, unlt, unle and unordered operators.
5636         (scc_sf): New.
5637         (s<code>_sf): Use new scc_sf attribute for opcode names.
5638
5639 2008-03-27  Tom Tromey  <tromey@redhat.com>
5640
5641         * doc/sourcebuild.texi, doc/install.texi, configure, aclocal.m4,
5642         configure.ac, Makefile.in, config/t-darwin, config/m32c/t-m32c,
5643         config/spu/t-spu-elf, config/i386/t-interix,
5644         config/i386/t-cygming, config/i386/x-i386, config/i386/t-cygwin,
5645         config/i386/x-darwin, config/i386/x-mingw32,
5646         config/i386/t-netware, config/i386/x-cygwin, config/i386/t-nwld,
5647         config/sh/t-sh, config/sh/t-symbian, config/x-linux,
5648         config/t-sol2, config/x-hpux, config/x-darwin, config/ia64/t-ia64,
5649         config/x-solaris, config/t-vxworks, config/m68k/t-uclinux,
5650         config/rs6000/x-rs6000, config/rs6000/x-darwin64,
5651         config/rs6000/x-darwin, config/rs6000/t-rs6000,
5652         config/score/t-score-elf, config/arm/t-strongarm-pe,
5653         config/arm/t-pe, config/arm/t-arm, config/arm/t-wince-pe,
5654         config/v850/t-v850, config/v850/t-v850e, config/bfin/t-bfin-linux:
5655         Revert automatic dependency patch.
5656
5657 2008-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5658
5659         PR target/35657
5660         * config/i386/i386.c (ix86_function_arg_boundary): Align
5661         decimal floating point to its natural boundary.
5662
5663 2008-03-27  Richard Guenther  <rguenther@suse.de>
5664
5665         PR middle-end/35716
5666         * fold-const.c (fold_comparison): Restrict distinct decl
5667         comparison folding to VAR_DECLs and PARM_DECLs.  Do not
5668         solely rely on operand_equal_p.
5669
5670 2008-03-27  Richard Guenther  <rguenther@suse.de>
5671
5672         PR c/32511
5673         * c-common.c (handle_weak_attribute): Reject combination of
5674         weak and inline.
5675
5676 2008-03-27  Richard Guenther  <rguenther@suse.de>
5677
5678         PR tree-optimization/32810
5679         * tree-ssa-ccp.c (get_symbol_constant_value): Strip useless
5680         conversions from DECL_INITIAL.
5681         (fold_const_aggregate_ref): Likewise from constructor elements.
5682
5683 2008-03-27  Zdenek Dvorak  <ook@ucw.cz>
5684
5685         * tree-affine.h (aff_combination_expand): Declare.
5686         (get_inner_reference_aff): Likewise.
5687         * tree-affine.c (aff_combination_expand): Split out from
5688         tree_to_aff_combination_expand.
5689         (get_inner_reference_aff): New function.
5690         * tree-parloops.c (loop_parallel_p): Free vectorizer info.
5691         * tree-ssa-loop-im.c: Include tree-affine.h and pointer-set.h.
5692         (struct lim_aux_data): sm_done field removed.
5693         (mem_ref_loc_p, mem_ref_locs_p): New types.
5694         (struct mem_ref): Added id, stored, accesses_in_loop,
5695         indep_loop, dep_loop, indep_ref, dep_ref fields.
5696         Removed is_stored, locs and next fields.
5697         (memory_accesses): New variable.
5698         (movement_possibility): Do not allow moving statements
5699         that store to memory.
5700         (outermost_indep_loop, simple_mem_ref_in_stmt, mem_ref_in_stmt):
5701         New functions.
5702         (determine_max_movement): For statements with memory references,
5703         find the outermost loop in that the reference is independent.
5704         (move_computations_stmt): Mark the virtual operands for renaming.
5705         (memref_free, mem_ref_alloc, mem_ref_locs_alloc, mark_ref_stored,
5706         gather_mem_refs_stmt, gather_mem_refs_in_loops, vtoe_hash, vtoe_eq,
5707         vtoe_free, record_vop_access, get_vop_accesses, get_vop_stores,
5708         add_vop_ref_mapping, create_vop_ref_mapping_loop,
5709         create_vop_ref_mapping, analyze_memory_references,
5710         cannot_overlap_p, mem_refs_may_alias_p, rewrite_mem_ref_loc,
5711         get_all_locs_in_loop, ref_always_accessed_p,
5712         refs_independent_p, record_indep_loop, ref_indep_loop_p_1,
5713         ref_indep_loop_p, can_sm_ref_p, find_refs_for_sm,
5714         store_motion_loop, store_motion): New functions.
5715         (struct vop_to_refs_elt): New type.
5716         (record_mem_ref_loc, free_mem_ref_locs, rewrite_mem_refs,
5717         memref_hash, memref_eq, hoist_memory_references): Rewritten.
5718         (schedule_sm): Replaced by...
5719         (execute_sm): ... this.
5720         (determine_lsm_ref, hoist_memory_references,
5721         loop_suitable_for_sm, gather_mem_refs_stmt, gather_mem_refs,
5722         find_more_ref_vops, free_mem_ref, free_mem_refs,
5723         determine_lsm_loop, determine_lsm): Removed.
5724         (tree_ssa_lim_finalize): Free data structures used by store motion.
5725         (tree_ssa_lim): Call analyze_memory_references.  Use
5726         store_motion instead of determine_lsm.
5727
5728 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5729
5730         * config.cc (m68hc11, m6811, m68hc12, m6812): Add usegas.h,
5731         rename tmake_file to m68hc11/t-m68hc11.
5732         (mcore): Set inhibit_libc to true.
5733         * config.host (alpha*-dec-*vms*): Set extra_programs.
5734         (interix3*): Don't use host_xmake_file.
5735         * configure.ac: Let config.gcc override inhibit_libc.
5736         * configure: Regenerate.
5737
5738         * config/alpha/x-vms (EXTRA_PROGRAMS): Remove.
5739         * config/t-openbsd-thread: Remove commented out lines.
5740         
5741         * config/x-interix: Remove.
5742
5743         * config/m68hc11/t-m68hc11-gas: Rename to...
5744         * config/m68hc11/t-m68hc11: ... this.  Remove T_CPPFLAGS.
5745
5746         * config/mcore/t-mcore: Remove T_CFLAGS.
5747         * config/mcore/t-mcore-pe: Likewise.
5748
5749 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
5750
5751         * configure.ac: Replace custom __GNU_SOURCE test with
5752         AC_USE_SYSTEM_EXTENSIONS.  Move it earlier.
5753         * aclocal.m4: Regenerate.
5754         * configure: Regenerate.
5755         * config.in: Regenerate.
5756
5757 2008-03-27  Richard Guenther  <rguenther@suse.de>
5758
5759         * fold-const.c (target.h): Include.
5760         (fold_comparison): Fold comparison of addresses of decls
5761         that bind locally or of constants.  Consolidate address folding code.
5762         * tree-vrp.c (operand_less_p): Deal with non-INTEGER_CST
5763         results from fold_binary_to_constant.
5764         (compare_values_warnv): Likewise.
5765
5766 2008-03-27  Andrew Pinski  <pinskia@gmail.com>
5767
5768         PR middle-end/35429
5769         * fold-const.c (fold_truthop): Check for integeral types when folding
5770         a == 0 && b == 0 and a != 0 || b != 0 .
5771
5772 2008-03-26  Eric Botcazou  <ebotcazou@adacore.com>
5773
5774         * tree.c (get_unwidened): Remove code fiddling with COMPONENT_REF.
5775
5776 2008-03-26  Andreas Schwab  <schwab@suse.de>
5777
5778         * doc/invoke.texi: Fix use of @item vs. @itemx.
5779
5780 2008-03-26  Tom Tromey  <tromey@redhat.com>
5781
5782         * Makefile.in (build/gensupport.o, build/print-rtl.o,
5783         build/read-rtl.o, build/rtl.o, build/gencondmd.o, build/genattr.o,
5784         build/genattrtab.o, build/genautomata.o, build/gencheck.o,
5785         build/gencodes.o, build/genconditions.o, build/genconfig.o,
5786         build/genconstants.o, build/genemit.o, build/genextract.o,
5787         build/genflags.o, build/genmddeps.o, build/genopinit.o,
5788         build/genoutput.o, build/genpeep.o, build/genrecog.o): Depend on
5789         options.h.
5790
5791 2008-03-26  Richard Guenther  <rguenther@suse.de>
5792
5793         Revert
5794         2008-03-26  Richard Guenther  <rguenther@suse.de>
5795
5796         * fold-const.c (target.h): Include.
5797         (fold_comparison): Fold comparison of addresses of two decls
5798         that bind locally.  Consolidate address folding code.
5799
5800 2008-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5801
5802         * builtins.c (expand_builtin_pow, fold_builtin_cabs,
5803         fold_builtin_sqrt, fold_builtin_cbrt, fold_builtin_logarithm,
5804         fold_builtin_hypot, fold_builtin_pow): Remove uses of dconst3,
5805         dconstsqrt2, dconstthird, dconste and/or dconst10.
5806         * config/i386/i386.c (ix86_emit_swsqrtsf): Likewise.
5807         * emit-rtl.c (dconst3, dconst10, dconstm2, dconstthird,
5808         dconstsqrt2, dconste): Delete.
5809         (init_emit_once): Likewise.  Simplify initializing dconstm1.
5810         Constify variable.
5811         * real.c (get_real_const): New.
5812         * real.h (dconst3, dconst10, dconstm2, dconstthird,
5813         dconstsqrt2, dconste): Delete.
5814         (real_value_const, get_real_const): New.
5815
5816 2008-03-26  H.J. Lu  <hongjiu.lu@intel.com>
5817
5818         * config/i386/cygming.h (BIGGEST_ALIGNMENT): Removed.
5819
5820         * config/i386/i386.c (ix86_function_arg_boundary): Check
5821         BIGGEST_ALIGNMENT instead of 128.
5822         (setup_incoming_varargs_64): Likewise.
5823
5824 2008-03-26  Tom Tromey  <tromey@redhat.com>
5825
5826         * Makefile.in (DEPFILES): Add missing '/'.
5827
5828 2008-03-26  Richard Guenther  <rguenther@suse.de>
5829
5830         * fold-const.c (target.h): Include.
5831         (fold_comparison): Fold comparison of addresses of two decls
5832         that bind locally.  Consolidate address folding code.
5833
5834 2008-03-26  Nick Clifton  <nickc@redhat.com>
5835
5836         PR target/31232
5837         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): Do
5838         not allow INT+INT as a legitimate addressing mode.
5839
5840 2008-03-26  Richard Guenther  <rguenther@suse.de>
5841
5842         * tree-flow.h (widen_bitfield): Remove declaration.
5843         * tree-ssa-ccp.c (visit_assignment): Remove unneeded code.
5844         (widen_bitfield): Remove function.
5845         * tree-ssa-dom.c (record_equivalences_from_stmt): Remove unneeded
5846         code.
5847
5848 2008-03-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5849
5850         PR target/31558
5851         * config/rs6000/rs6000-c.c (rs6000_builtin_type_compatible): Handle
5852         error_mark_node's.
5853
5854 2008-03-25  Richard Sandiford  <rsandifo@nildram.co.uk>
5855
5856         PR rtl-optimization/35232
5857         * reload1.c (reg_reloaded_call_part_clobbered): Clarify comment.
5858         (forget_old_reloads_1, forget_marked_reloads): Don't clear
5859         reg_reloaded_call_part_clobbered here.
5860         (reload_regs_reach_end_p): New function.
5861         (reload_reg_rtx_for_input): New variable.
5862         (reload_reg_rtx_for_output): Likewise.
5863         (emit_input_reload_insns): Use reloadreg rather than rl->reg_rtx
5864         when reassigning a pseudo register.  Load reloadreg from 
5865         reload_reg_rtx_for_input, moving the mode and register
5866         calculation to...
5867         (do_input_reload): ...here.  Use the mode-adjusted reg_rtx
5868         instead of the original when deciding whether an input reload
5869         would be a no-op or whether an output reload can be deleted.
5870         (emit_output_reload_insns): Use the mode-adjusted reg_rtx
5871         when setting up new_spill_reg_store.  Load it from
5872         reload_reg_rtx_for_output, moving the mode and register
5873         calculation to...
5874         (do_output_reload): ...here.  Use the mode-adjusted reg_rtx
5875         instead of the original when deciding whether an output reload
5876         would be a no-op.  Do the same when modifying insn notes.
5877         Use rtx_equal_p instead of == to compare the registers.
5878         (inherit_piecemeal_p): Take a mode and two register numbers
5879         as argument.
5880         (emit_reload_insns): Clear new_spill_reg_store for every hard
5881         register in the reload register.  Remove spill registers
5882         from reg_reloaded_valid before considering whether to record
5883         inheritance information for them.  Use reload_reg_rtx_for_output
5884         instead of reg_rtx when recording output reloads.  Use
5885         reload_reg_rtx_for_input instead of reg_rtx when recording
5886         input reloads.  Set or clear reg_reloaded_call_part_clobbered
5887         at the same time as setting reg_reloaded_valid.
5888         (delete_output_reload): Add a new_reload_reg parameter and use it
5889         instead of rld[j].reg_rtx.
5890         (emit_input_reload_insns, do_input_reload, do_output_reload): Adjust
5891         calls accordingly.
5892
5893 2008-03-25  Tom Tromey  <tromey@redhat.com>
5894
5895         * Makefile.in (build/gensupport.o): Depend on insn-modes.h.
5896         (build/genattr.o): Likewise.
5897         (build/genattrtab.o): Likewise.
5898         (build/gencodes.o): Likewise.
5899         (build/genconfig.o): Likewise.
5900         (build/genconstants.o): Likewise.
5901         (build/genemit.o): Likewise.
5902         (build/genextract.o): Likewise.
5903         (build/genflags.o): Likewise.
5904
5905 2008-03-25  Bob Wilson  <bob.wilson@acm.org>
5906         
5907         * config/xtensa/xtensa.c (xtensa_va_start): Use build_int_cst
5908         instead of size_int for integer types.
5909         (xtensa_gimplify_va_arg_expr): Likewise.  Convert index to sizetype
5910         to match type of MINUS_EXPR.
5911         
5912 2008-03-25  Tom Tromey  <tromey@redhat.com>
5913
5914         * configure: Rebuilt.
5915         * configure.ac (BUILD_DEPMODE): Extract CCDEPMODE from temporary
5916         Makefile.
5917
5918 2008-03-25  Tom Tromey  <tromey@redhat.com>
5919
5920         * config/x-solaris (host-solaris.o): Update.
5921         * config/x-linux (host-linux.o): Update.
5922         * config/x-hpux (host-hpux.o): Update.
5923         * config/x-darwin (host-darwin.o): Update.
5924         * config/v850/t-v850e (v850-c.o): Update.
5925         * config/v850/t-v850 (v850-c.o): Update.
5926         * config/t-vxworks (vxworks.o): Update.
5927         * config/t-sol2 (sol2-c.o, sol2.o): Update.
5928         * config/t-darwin (darwin.o, darwin-c.o, darwin-driver.o): Update.
5929         * config/spu/t-spu-elf (spu-c.o): Update.
5930         (spu.o): Remove.
5931         * config/sh/t-symbian (sh-c.o): Update.
5932         (symbian.o): Update.
5933         * config/sh/t-sh (sh-c.o): Update.
5934         * config/score/t-score-elf (score7.o, score3.o): Update.
5935         * config/rs6000/x-rs6000 (driver-rs6000.o): Update.
5936         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Update.
5937         * config/rs6000/x-darwin (host-ppc-darwin.o): Update.
5938         * config/rs6000/t-rs6000 (rs6000-c.o): Update.
5939         (rs6000.o): Remove.
5940         * config/m68k/t-uclinux (generated_files): Add sysroot-suffix.h.
5941         * config/m32c/t-m32c (m32c-pragma.o): Update.
5942         * config/ia64/t-ia64 (ia64-c.o): Update.
5943         * config/i386/x-mingw32 (host-mingw32.o): Update.
5944         * config/i386/x-i386 (driver-i386.o): Update.
5945         * config/i386/x-darwin (host-i386-darwin.o): Update.
5946         * config/i386/x-cygwin (host-cygwin.o): Update.
5947         * config/i386/t-nwld (nwld.o): Update.
5948         * config/i386/t-netware (netware.o): Update.
5949         * config/i386/t-interix (winnt.o): Update.
5950         * config/i386/t-cygwin (cygwin1.o, cygwin2.o): Update.
5951         * config/i386/t-cygming (winnt.o, winnt-cxx.o, winnt-stubs.o,
5952         msformat-c.o): Update.
5953         * config/bfin/t-bfin-linux (generated_files): Add
5954         linux-sysroot-suffix.h.
5955         * config/arm/t-wince-pe (pe.o): Update.
5956         * config/arm/t-strongarm-pe (pe.o): Update.
5957         * config/arm/t-pe (pe.o): Update.
5958         * config/arm/t-arm (arm-c.o): Update.
5959         * doc/install.texi (Prerequisites): Require make 3.80.
5960         * Makefile.in: Remove .o targets.
5961         (CCDEPMODE, DEPDIR, depcomp, BUILD_DEPMODE): New variables.
5962         (OBSTACK_H, FIBHEAP_H, PARTITION_H, MD5_H, BCONFIG_H): Remove.
5963         (simple_generated_h, simple_generated_c): Move earlier.
5964         (generated_files): New variable.
5965         (TARGET_H, MACHMODE_H, HOOKS_H, HOSTHOOKS_DEF_H, LANGHOOKS_DEF_H,
5966         TARGET_DEF_H, RTL_BASE_H, RTL_H, PARAMS_H, BUILTINS_DEF, TREE_H,
5967         BASIC_BLOCK_H, GCOV_IO_H, COVERAGE_H, DEMANGLE_H, RECOG_H,
5968         ALIAS_H, EMIT_RTL_H, FLAGS_H, FUNCTION_H, EXPR_H, OPTABS_H,
5969         REGS_H, RA_H, RESOURCE_H, SCHED_INT_H, INTEGRATE_H, CFGLAYOUT_H,
5970         CFGLOOP_H, IPA_UTILS_H, IPA_REFERENCE_H, IPA_TYPE_ESCAPE_H,
5971         CGRAPH_H, DF_H, RESOURCE_H, DDG_H, GCC_H, GGC_H, TIMEVAR_H,
5972         INSN_ATTR_H, C_COMMON_H, C_PRAGMA_H, C_TREE_H, SYSTEM_H,
5973         PREDICT_H, DECNUM_H, MKDEPS_H, SYMTAB_H, TREE_DUMP_H,
5974         TREE_GIMPLE_H, TREE_FLOW_H, TREE_SSA_LIVE_H, PRETTY_PRINT_H,
5975         DIAGNOSTIC_H, C_PRETTY_PRINT_H, SCEV_H, LAMBDA_H, TREE_DATA_REF_H,
5976         VARRAY_H, TREE_INLINE_H, REAL_H, DBGCNT_H, EBIMAP_H): Remove.
5977         (.c.o): Remove.
5978         (COMPILE.base, COMPILE): New variables.
5979         (%.o): New pattern rule.
5980         (ALL_HOST_OBJS): New variable.
5981         (xgcc$(exeext), cpp$(exeext)): Remove extra version.o.
5982         (dummy-checksum.o, cc1-checksum.o): Remove.
5983         (DRIVER_SHLIB): New variable.
5984         (DRIVER_DEFINES): Use it.
5985         (gencondmd.c): Move out of build/.
5986         (s-conditions): Update.
5987         (BUILDCOMPILE.base, BUILDCOMPILE): New variables.
5988         (ALL_BUILD_OBJS): Likewise.
5989         (build/%.o): Use BUILDCOMPILE.
5990         (build/ggc-none.o, build/ggc-none.o, build/min-insn-modes.o,
5991         build/print-rtl.o, build/read-rtl.o, build/rtl.o, build/vec.o,
5992         build/gencondmd.o, build/genattrtab.o, build/genautomata.o,
5993         build/gencheck.o, build/gencodes.o, build/genconditions.o,
5994         build/genconfig.o, build/genconstants.o, build/genemit.o,
5995         build/genextract.o, build/genflags.o, build/genmddeps.o,
5996         build/genopinit.o, build/genoutput.o, build/genpeep.o,
5997         build/genpreds.o, build/genrecog.o, build/gcov-iov.o,
5998         build/gen-protos.o, build/scan.o, build/fix-header.o,
5999         build/scan-decls.o): Simplify.
6000         (collect2.o, c-opts.o, gcc.o, gccspec.o, gcc-options.o,
6001         cppdefault.o, protoize.o, unprotoize.o, intl.o, version.o,
6002         prefix.o, toplev.o): Reduce to variable setting.
6003         (libbackend.o): Use COMPILE.  Remove most dependencies.  Move later.
6004         ($(out_object_file), gcc-options.o): New targets.
6005         ($(ALL_HOST_OBJS)): New target.  Include dependency files.
6006         * configure: Rebuilt.
6007         * configure.ac: Call ZW_CREATE_DEPDIR, ZW_PROG_COMPILER_DEPENDENCIES.
6008         * doc/sourcebuild.texi (Front End Directory): Document new variable.
6009
6010 2008-03-25  Douglas Gregor  <doug.gregor@gmail.com>
6011
6012         * c-common.c (c_sizeof_or_alignof_type): If we're not allowed to
6013         complain when we hit an error, return ERROR_MARK_NODE.
6014
6015 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6016
6017         * config/sh/constraints.md (Pso, Psz): New constraints.
6018         * config/sh/sh.c (print_operand): Add %V and %W operand codes.
6019         * config/sh/sh.md (*andsi3_bclr, *iorsi3_bset): New insns.
6020
6021 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6022
6023         * config/sh/sh.c (sh_expand_t_scc): Emit movrt for SH2A if possible.
6024         * config/sh/sh.md (xorsi3_movrt, movrt): New insns.
6025
6026 2008-03-25  Naveen.H.S  <naveen.hs@kpitcummins.com>
6027
6028         * config/sh/sh.md (prefetch): Add condition for SH2A target.
6029         (prefetch_sh2a): New.   
6030
6031 2008-03-25  Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6032             Naveen.H.S  <naveen.hs@kpitcummins.com>
6033
6034         * config/sh/constraints.md (I28): New constraint.
6035         * config/sh/sh.c (broken_move): Add support for movi20s.
6036         * config/sh/sh.md (movsi_ie): Add the alternative for movi20s.
6037
6038 2008-03-25  Anil Paranjape  <anil.paranjape@kpitcummins.com>
6039             Jayant Sonar  <Jayant.sonar@kpitcummins.com>
6040             Naveen.H.S  <naveen.hs@kpitcummins.com>
6041
6042         * config/sh/sh.c (SH_ATTRIBUTES): Define.
6043         (SYMBOL_FLAG_FUNCVEC_FUNCTION): Define.
6044         (print_operand): Handle resbank in %@ operand code.
6045         (sh_encode_section_info): New.
6046         (push_regs): Add conditions for resbank.
6047         (sh_expand_epilogue): Likewise.
6048         (sh_insert_attributes): Likewise.
6049         (sh_attribute_table): Likewise.
6050         (sh_handle_resbank_handler_attribute): New.
6051         (sh2a_handle_function_vector_handler_attribute): New.
6052         (sh2a_is_function_vector_call): New.
6053         (sh2a_get_function_vector_number): New.
6054         (sh2a_function_vector_p): New.
6055         (sh_cfun_resbank_handler_p): New.
6056         * config/sh/sh.md (calli): Emit jsr/n if possible.
6057         (calli_tbr_rel): New.
6058         (calli_pcrel): Emit jsr/n if possible.
6059         (return_i): Emit rts/n if possible.
6060         (call_valuei_tbr_rel): New.
6061         (call_valuei_pcrel): Add condition for SH2A target.
6062         (call_value): Likewise.
6063         * config/sh/sh-protos.h (sh_cfun_resbank_handler_p): Declare.
6064         (sh2a_get_function_vector_number): Likewise.
6065         (sh2a_is_function_vector_call): Likewise.
6066         * doc/extend.texi: Document TBR relative addressing of SH2A.
6067         (resbank): Add description for SH2A.
6068
6069 2008-03-24  Richard Guenther  <rguenther@suse.de>
6070
6071         PR c/22371
6072         * gimplify.c (gimplify_modify_expr): For frontend type-correct
6073         pointer assignments change conversions according to middle-end rules.
6074         (gimplify_modify_expr_rhs): Deal with NULL TARGET_EXPR_INITIAL.
6075         * configure.ac: Include type checking in yes.
6076         * configure: Regenerate.
6077
6078 2008-03-24  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6079
6080         * diagnostic.c (diagnostic_count_diagnostic): Delete.
6081         (diagnostic_report_diagnostic): Update. Handle ICEs here.
6082         
6083 2008-03-24  Nathan Sidwell  <nathan@codesourcery.com>
6084
6085         * gthr-vxworks.h (UNUSED): Define.
6086
6087 2008-03-23  H.J. Lu  <hongjiu.lu@intel.com>
6088
6089         * config/i386/i386.h (STATIC_CHAIN_REGNUM): Use R10_REG and CX_REG.
6090
6091 2008-03-23  Zuxy Meng <zuxy.meng@gmail.com>
6092
6093         * doc/extend.texi (Function Attributes): Add missing comma in the
6094         example of the "alloc_size" attribute.
6095         
6096 2008-03-23  Uros Bizjak  <ubizjak@gmail.com>
6097
6098         Revert:
6099         2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
6100
6101         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
6102         32bit host.
6103
6104         2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6105
6106         PR target/35496
6107         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6108         of the underlying type of a MS bitfield layout to the natural
6109         alignment of the type.
6110
6111         2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6112
6113         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6114         to their natural alignment to avoid store forwarding stalls.
6115
6116 2008-03-22  Richard Guenther  <rguenther@suse.de>
6117
6118         * tree-cfg.c (verify_expr): Recurse again for invariant addresses.
6119         For PHI nodes verify the address is invariant.
6120         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): Remove.
6121         (get_symbol_constant_value): Use is_gimple_min_invariant.
6122         (maybe_fold_stmt_indirect): Likewise.
6123
6124 2008-03-22  Richard Sandiford  <rsandifo@nildram.co.uk>
6125
6126         PR rtl-optimization/33927
6127         * Makefile.in (dse.o): Depend on $(TM_P_H).
6128         * expr.h (extract_low_bits): Declare.
6129         * expmed.c (extract_low_bits): New function.
6130         * rtlhooks.c (gen_lowpart_general): Generalize SUBREG handling.
6131         * dse.c: Include tm_p.h.
6132         (find_shift_sequence): Remove the read_reg argument and return the
6133         read value.  Emit the instructions instead of returning them.
6134         Iterate on new_mode rather than calculating it each time.
6135         Check MODES_TIEABLE_P.  Use simplify_gen_subreg to convert the
6136         source to NEW_MODE and extract_low_bits to convert the shifted
6137         value to READ_MODE.
6138         (replace_read): Allow the load and store to have different mode
6139         classes.  Use extract_low_bits when SHIFT == 0.  Create the shift
6140         or extraction instructions before trying the replacement.  Update
6141         dump-file code accordingly, avoiding use of REGNO (store_info->rhs).
6142
6143 2008-03-22  Uros Bizjak  <ubizjak@gmail.com>
6144
6145         * config/i386/i386.c (assign_386_stack_local): Align DImode slots
6146         to their natural alignment to avoid store forwarding stalls.
6147
6148 2008-03-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6149
6150         PR target/27946
6151         * config/rs6000/rs6000.md (floatdidf2): Discouraging fprs and
6152         encouraging but not allowing gprs for input;
6153         change the input constraint to !f#r.
6154         (fix_truncdfdi2): Discouraging fprs and encouraging but not allowing
6155         gprs for output;
6156         change the output constraint to !f#r.
6157
6158 2008-03-21  Uros Bizjak  <ubizjak@gmail.com>
6159
6160         PR target/13958
6161         * config/i386/i386.md ("*floatunssi<mode2>_1"): New pattern with
6162         corresponding post-reload splitters.
6163         ("floatunssi<mode>2"): Expand to unsigned_float x87 insn pattern
6164         when x87 FP math is selected.
6165         * config/i386/i386-protos.h (ix86_expand_convert_uns_sixf_sse):
6166         New function prototype.
6167         * config/i386/i386.c (ix86_expand_convert_uns_sixf_sse): New
6168         unreachable function to ease macroization of insn patterns.
6169
6170 2008-03-21  Martin Jambor  <mjambor@suse.cz>
6171
6172         * tree-data-ref.c (dump_data_dependence_relation): Avoid data
6173         reference dumps if ddr is NULL or dependence is unknown.
6174
6175 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6176
6177         * config/sh/linux-atomic.asm (ATOMIC_TEST_AND_SET): Take
6178         unsigned extension into account.
6179         (ATOMIC_COMPARE_AND_SWAP): Likewise.
6180         (ATOMIC_FETCH_AND_OP, ATOMIC_FETCH_AND_COMBOP): Likewise.
6181         Do computations on a scratch register.
6182
6183 2008-03-21  Richard Guenther  <rguenther@suse.de>
6184
6185         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
6186         Use is_gimple_min_invariant instead of TREE_INVARIANT.
6187         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6188         * tree-ssa-dom.c (record_equality): Likewise.
6189         * tree-inline.c (copy_body_r): Likewise.
6190         * tree-ssa-pre.c (make_values_for_stmt): Remove test for
6191         TREE_INVARIANT.
6192
6193 2008-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6194
6195         * config/sh/sh.c (split_branches): Pass zero to redirect_jump
6196         as 'delete_unused' argument.
6197
6198 2008-03-20  Richard Guenther  <rguenther@suse.de>
6199
6200         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Remove
6201         special casing of constant qualifiers.
6202         * tree-ssa.c (useless_type_conversion_p_1): Instead do not
6203         care about them in general.
6204         * tree-ssa-ccp.c (ccp_fold): Addresses are constant or not
6205         regardless of their type.
6206         (fold_stmt_r): Forcefully fold *& if we end up with that.
6207
6208 2008-03-20  Paul Brook  <paul@codesourcery.com>
6209
6210         * config.gcc (arm*-*-uclinux*): Remove duplicate arm/uclinux-elf.h.
6211         * config/arm/uclinux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Add extra
6212         linker flags.
6213         * config/arm/bpabi.h (SUBTARGET_EXTRA_LINK_SPEC): Provide default
6214         definition.
6215         (LINK_SPEC): Use SUBTARGET_EXTRA_LINK_SPEC.
6216         * config/arm/unwind-arm.h (_Unwind_decode_target2): Add uClinux.
6217
6218 2008-03-20  Volker Reichelt  <v.reichelt@netcologne.de>
6219
6220         * common.opt (Wmudflap): New option.
6221         * tree-mudflap.c (mf_xform_derefs_1): Guard warning by OPT_Wmudflap.
6222         (mx_register_decls): Likewise.
6223         (mudflap_finish_file): Likewise.
6224         * doc/invoke.texi: Document -Wno-mudflap.
6225
6226 2008-03-20  Kai Tietz  <kai.tietz@onevision.com>
6227
6228         * c-format.c (replace_format_name_to_system_name): New.
6229         (cmp_attribs): New.
6230         (convert_format_name_to_system_name): New.
6231         (decode_format_attr): Add use of convert_format_name_to_system_name.
6232         (format_types_orig): Add gnu_ prefix to names.
6233         (check_format_info_main): Special treating of \0 escaped names for
6234         supporting multi-character format specifiers as I32, I64.
6235         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Use of user defined attributes.
6236         (gnu_target_overrides_format_attributes): New.
6237         * c-format.h: Add structure target_ovr_attr to hold
6238         system specific formatter names.
6239         * config.gcc: Add for x86&x86_64 cygwin and mingw32 targets the
6240         msformat-c.o file to c_target_objs and cxx_target_objs.
6241         * config/i386/mingw32.h (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6242         (TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT): New.
6243         (TARGET_N_FORMAT_TYPES): New.
6244         * config/i386/msformat-c.c: New.
6245         * config/i386/t-cygming: Add build rule for msformat-c.o.
6246         * doc/extend.texi: Add new format names gnu_* and ms_* and
6247         further details.
6248         * doc/tm.texi: (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): New.
6249
6250 2008-03-20  Ira Rosen  <irar@il.ibm.com>
6251
6252         * doc/invoke.texi (-O3): Add -ftree-vectorize to the list of
6253         optimizations turned on under -O3.
6254         (ftree-vectorize): Add that the flag is turned on with -O3.
6255
6256 2008-03-20  Ben Elliston  <bje@au.ibm.com>
6257
6258         * regmove.c (try_auto_increment): Fix spelling error in comment.
6259         * final.c (final_scan_insn): Likewise.
6260
6261 2008-03-20  Uros Bizjak  <ubizjak@gmail.com>
6262
6263         PR target/14552
6264         * config/i386/mmx.md (*mov<mode>_internal_rex64"): Adjust register
6265         allocator preferences for "y" and "r" class registers.
6266         ("*mov<mode>_internal"): Ditto.
6267         ("*movv2sf_internal_rex64"): Ditto.
6268         ("*movv2sf_internal"): Ditto.
6269
6270 2008-03-19  Michael Matz  <matz@suse.de>
6271
6272         PR middle-end/35616
6273         * calls.c (expand_call): Check overlap of arguments with call
6274         address for sibcalls.
6275
6276 2008-03-19  Uros Bizjak  <ubizjak@gmail.com>
6277
6278         PR target/35496
6279         * stor-layout.c (update_alignment_for_field): Set minimum alignment
6280         of the underlying type of a MS bitfield layout to the natural
6281         alignment of the type.
6282
6283 2008-03-19  Jan Hubicka  <jh@suse.cz>
6284
6285         PR other/35094
6286         * toplev.c (decode_d_option): Handle all CPP flags.
6287         * tree-vrp.c: Update tree_pass descriptors.
6288         * regrename.c: Update tree_pass descriptors.
6289         * fwprop.c: Update tree_pass descriptors.
6290         * doc/invoke.texi: Remove documentation of dropped -d? flags.
6291         * tree-into-ssa.c: Update tree_pass descriptors.
6292         * tree-dump.c: Update tree_pass descriptors.
6293         * tree-complex.c: Update tree_pass descriptors.
6294         * tree-dump.h: Update tree_pass descriptors.
6295         * see.c: Update tree_pass descriptors.
6296         * cgraphbuild.c: Update tree_pass descriptors.
6297         * tracer.c: Update tree_pass descriptors.
6298         * tree-loop-distribution.c: Update tree_pass descriptors.
6299         * cgraph.c: Update tree_pass descriptors.
6300         * postreload-gcse.c: Update tree_pass descriptors.
6301         * postreload.c: Update tree_pass descriptors.
6302         * tree-ssa-loop-ch.c: Update tree_pass descriptors.
6303         * tree-tailcall.c: Update tree_pass descriptors.
6304         * tree-pass.h (tree_opt_pass): Rename to ...
6305         (opt_pass) ... this one; add "type" field and remove letter field.
6306         (gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
6307         (execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
6308         all_lowering_passes): Update declaration.
6309         * ipa-cp.c: Update tree_pass descriptors.
6310         * final.c: Update tree_pass descriptors.
6311         * omp-low.c: Update tree_pass descriptors.
6312         * tree-ssa-dse.c: Update tree_pass descriptors.
6313         * ipa-reference.c: Update tree_pass descriptors.
6314         * tree-ssa-uncprop.c: Update tree_pass descriptors.
6315         * auto-inc-dec.c: Update tree_pass descriptors.
6316         * reorg.c: Update tree_pass descriptors.
6317         * cgraphunit.c: Update tree_pass descriptors.
6318         * tree-ssa-copyrename.c: Update tree_pass descriptors.
6319         * tree-ssa-ccp.c: Update tree_pass descriptors.
6320         * df-core.c: Update tree_pass descriptors.
6321         * mode-switching.c: Update tree_pass descriptors.
6322         * tree-nomudflap.c: Update tree_pass descriptors.
6323         * modulo-sched.c: Update tree_pass descriptors.
6324         * ipa-pure-const.c: Update tree_pass descriptors.
6325         * cse.c: Update tree_pass descriptors.
6326         * web.c: Update tree_pass descriptors.
6327         * tree-stdarg.c: Update tree_pass descriptors.
6328         * tree-ssa-math-opts.c: Update tree_pass descriptors.
6329         * tree-ssa-dom.c: Update tree_pass descriptors.
6330         * tree-nrv.c: Update tree_pass descriptors.
6331         * tree-ssa-alias.c: Update tree_pass descriptors.
6332         * loop-init.c: Update tree_pass descriptors.
6333         * gimple-low.c: Update tree_pass descriptors.
6334         * ipa-inline.c: Update tree_pass descriptors.
6335         * tree-ssa-sink.c: Update tree_pass descriptors.
6336         * global.c: Update tree_pass descriptors.
6337         * ifcvt.c: Update tree_pass descriptors.
6338         * jump.c: Update tree_pass descriptors.
6339         * predict.c: Update tree_pass descriptors.
6340         * tree-ssa-loop.c: Update tree_pass descriptors.
6341         * recog.c: Update tree_pass descriptors.
6342         * dse.c: Update tree_pass descriptors.
6343         * tree-ssa-ifcombine.c: Update tree_pass descriptors.
6344         * tree-eh.c: Update tree_pass descriptors.
6345         * regmove.c: Update tree_pass descriptors.
6346         * local-alloc.c
6347         * function.c: Update tree_pass descriptors.
6348         * tree-vectorizer.c: Update tree_pass descriptors.
6349         * gcse.c: Update tree_pass descriptors.
6350         * ipa-type-escape.c: Update tree_pass descriptors.
6351         * tree-if-conv.c: Update tree_pass descriptors.
6352         * init-regs.c: Update tree_pass descriptors.
6353         * ipa.c: Update tree_pass descriptors.
6354         * tree-ssa-phiopt.c: Update tree_pass descriptors.
6355         * rtl-factoring.c: Update tree_pass descriptors.
6356         * lower-subreg.c: Update tree_pass descriptors.
6357         * bt-load.c: Update tree_pass descriptors.
6358         * tree-dfa.c: Update tree_pass descriptors.
6359         * except.c: Update tree_pass descriptors.
6360         * emit-rtl.c: Update tree_pass descriptors.
6361         * cfgexpand.c: Update tree_pass descriptors.
6362         * tree-cfgcleanup.c: Update tree_pass descriptors.
6363         * cfgcleanup.c: Update tree_pass descriptors.
6364         * tree-ssa-pre.c: Update tree_pass descriptors.
6365         * tree-sra.c: Update tree_pass descriptors.
6366         * tree-mudflap.c: Update tree_pass descriptors.
6367         * tree-ssa-copy.c: Update tree_pass descriptors.
6368         * cfglayout.c: Update tree_pass descriptors.
6369         * tree-ssa-forwprop.c: Update tree_pass descriptors.
6370         * tree-ssa-dce.c: Update tree_pass descriptors.
6371         * tree-ssa.c: Update tree_pass descriptors.
6372         * regclass.c: Update tree_pass descriptors.
6373         * integrate.c: Update tree_pass descriptors.
6374         * tree-optimize.c: Update tree_pass descriptors.
6375         * tree-ssa-phiprop.c: Update tree_pass descriptors.
6376         * tree-object-size.c: Update tree_pass descriptors.
6377         * combine.c: Update tree_pass descriptors.
6378         * tree-outof-ssa.c: Update tree_pass descriptors.
6379         * bb-reorder.c: Update tree_pass descriptors.
6380         * stack-ptr-mod.c: Update tree_pass descriptors.
6381         * var-tracking.c: Update tree_pass descriptors.
6382         * tree-profile.c: Update tree_pass descriptors.
6383         * tree-vect-generic.c: Update tree_pass descriptors.
6384         * reg-stack.c: Update tree_pass descriptors.
6385         * sched-rgn.c: Update tree_pass descriptors.
6386         * tree-ssa-structalias.c: Update tree_pass descriptors.
6387         * tree-cfg.c: Update tree_pass descriptors.
6388         * passes.c (current_pass): Update declaration.
6389         (finish_optimization_passes): Update.
6390         (all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
6391         (register_one_dump_file, register_dump_files_1, next_pass_1):
6392         Update arguments.
6393         (init_optimization_passes): Update handling of new types.
6394         (execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
6395         * ipa-struct-reorg.c: Update tree_pass descriptors.
6396         * tree-ssa-reassoc.c: Update tree_pass descriptors.
6397         * combine-stack-adj.c: Update tree_pass descriptors.
6398         * cfgrtl.c: Update tree_pass descriptors.
6399         * dce.c: Update tree_pass descriptors.
6400         * tree-ssanames.c: Update tree_pass descriptors.
6401
6402 2008-03-19  Richard Guenther  <rguenther@suse.de>
6403
6404         PR middle-end/35609
6405         * tree-ssa.c (walk_data): New structure.
6406         (warn_uninitialized_var): If not always_executed warn with "maybe"
6407         instead of "is".
6408         (execute_early_warn_uninitialized): Compute post-dominators.
6409         Initialize always_executed before processing each basic block.
6410
6411 2008-03-18  Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
6412
6413         PR target/35504
6414         * config/i386/i386.c (x86_this_parameter): Calculate correct location
6415         of "this" pointer when "regparm = N" or "fastcall" is in effect.
6416
6417 2008-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6418
6419         * doc/include/texinfo.tex: Update to version 2008-03-17.10.
6420
6421 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
6422
6423         * expr.c (store_expr): Assume lang_hooks.reduce_bit_field_operations
6424         is true.
6425         (expand_expr_real_1) <REDUCE_BIT_FIELD>: Don't look at ignore.
6426         (expand_expr_real_1): Assume lang_hooks.reduce_bit_field_operations
6427         is true.  Add "&& !ignore" condition to reduce_bit_field.  Modify
6428         target after ignore has been set, and move there also the commputation
6429         of subtarget and original_target.
6430         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
6431         (LANG_HOOKS_INITIALIZER): Remove it.
6432         * langhooks.h (struct lang_hooks): Remove reduce_bit_field_operations.
6433
6434 2008-03-18  Richard Guenther  <rguenther@suse.de>
6435
6436         * tree-ssa-sccvn.c (visit_reference_op_load): If the lookup
6437         found an expression with constants, note that in the VN for the lhs.
6438         * tree-ssa-pre.c (eliminate): Visit COND_EXPR statements and
6439         fold them to constants if possible.  Run cleanup_cfg if done so.
6440         (execute_pre): Return todo.
6441         (do_pre): Likewise.
6442         (execute_fre): Likewise.
6443         * tree-ssa-forwprop.c (can_propagate_from): Allow propagation
6444         of constants.
6445         (get_prop_source_stmt): Look through pointer conversions.
6446
6447 2008-03-18  Jan Hubicka  <jh@suse.cz>
6448
6449         * tree-pretty-print.c: Include predict.h.
6450         (dump_generic_node): Dump predictor.
6451         * tree.h (PREDICT_EXPR_OUTCOME, PREDICT_EXPR_PREDICTION): Update.
6452         * tree-gimple.c (is_gimple_stmt): Add PREDICT_EXPR.
6453         * gimple-low.c (lower_stmt): Likewise.
6454         * expr.c (expand_expr_real): Likewise.
6455         * predict.c (tree_bb_level_predictions): Use PREDICT_EXPRs and remove
6456         them.
6457         (build_predict_expr, build_predict_expr): New.
6458         * predict.h (predictor_name, build_predict_expr): Update.
6459         * c-typeck.c (c_finish_bc_stmt): Add prediction.
6460         * gimplify.c (gimplify_expr): Add PREDICT_EXPR.
6461         * predict.def (PRED_CONTINUE): Update hitrate.
6462         * tree.def (PREDICT_EXPR): Define.
6463         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark PREDICT_EXPR;
6464         do not handle BIND_EXPR.
6465         * tree-inline.c (estimate_num_insns_1): PREDICT_EXPR is free.
6466         * tree-cfg.c (verify_gimple_stmt): PREDICT_EXPR is valid.
6467         * tree-ssa-operands.c (get_expr_operands): PREDICT_EXPR takes no
6468         operands.
6469
6470 2008-03-18  Michael Matz  <matz@suse.de>
6471
6472         * gcov-io.h (__gcov_merge_ior, __gcov_fork): Mark hidden.
6473
6474 2008-03-18  Richard Guenther  <rguenther@suse.de>
6475
6476         * tree-gimple.h (is_gimple_invariant_address): Declare.
6477         (is_gimple_constant): Likewise.
6478         * tree-gimple.c (is_gimple_constant): New function.
6479         (is_gimple_invariant_address): Likewise.
6480         (is_gimple_min_invariant): Implement in terms of is_gimple_constant
6481         and is_gimple_invariant_address.
6482         * tree-ssa-loop-niter.c (expand_simple_operations): Revert
6483         previous change.
6484         * tree-data-ref.c (get_references_in_stmt): A SSA_NAME is not
6485         an addressable base.
6486
6487 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
6488
6489         PR middle-end/35611
6490         * gimplify.c (gimplify_expr): Gimplify second operand of
6491         OMP_ATOMIC_LOAD.
6492
6493 2008-03-17  Richard Guenther  <rguenther@suse.de>
6494
6495         PR tree-optimization/19637
6496         * fold-const.c (fold_unary): Remove restrictions of removing
6497         intermediate pointer-conversions (P2)(P1)P0.
6498         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Recover from
6499         conversion to void pointer.
6500         (get_maxval_strlen): Handle addresses of the form &(*p)[0].
6501
6502 2008-03-16  James E. Wilson  <wilson@tuliptree.org>
6503
6504         PR debug/31510
6505         * dbxout.c (dbxout_expand_expr, case VAR_DECL): Return NULL for
6506         emulated thread local variables.
6507
6508 2008-03-16  Richard Guenther  <rguenther@suse.de>
6509
6510         PR middle-end/35607
6511         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
6512         expand TREE_INVARIANT operations that are not gimple invariant.
6513
6514 2008-03-16  Hans-Peter Nilsson  <hp@axis.com>
6515
6516         * doc/extend.texi (Alignment): Say that the ABI controls
6517         the __alignof__ for non-strict-alignment targets rather
6518         than being a recommendation.
6519
6520 2008-03-15  Paul Brook  <paul@codesourcery.com>
6521
6522         * config/arm/arm.c (arm_unwind_emit): Suppress unused unwinding
6523         annotations.
6524         (arm_output_fn_unwind): Mark functions that can not be unwound.
6525
6526 2008-03-15  Paul Brook  <paul@codesourcery.com>
6527
6528         * config/arm/arm.c (arm_rtx_costs_1): Add costs for ARMv6 value
6529         extension instructions.
6530
6531 2008-03-15  Richard Guenther  <rguenther@suse.de>
6532
6533         * tree-ssa-ccp.c (ccp_fold): Also read from constant values
6534         and fold constant aggregate refs.
6535         (fold_const_aggregate_ref): Handle string constants
6536         and constructors in ARRAY_REFs.  Handle INDIRECT_REF.
6537         (evaluate_stmt): Simplify now that ccp_fold folds constant
6538         aggregate refs.
6539
6540 2008-03-15  Paul Brook  <paul@codesourcery.com>
6541
6542         * config/arm/arm.md (insv): Use gen_insv_t2 and gen_insv_zero.
6543         (extzv): Use gen_extzv_t2.
6544         (insv_t2, insv_zero, extv, extzv_t2): New patterns.
6545
6546 2008-03-15  Richard Guenther  <rguenther@suse.de>
6547
6548         * tree-ssa-ccp.c (get_symbol_constant_value): Export.
6549         (fold_const_aggregate_ref): Likewise.
6550         (get_value): Return NULL if we don't have any values.
6551         (ccp_finalize): Set const_val to NULL after freeing it.
6552         * tree-flow.h (get_symbol_constant_value): Declare.
6553         (fold_const_aggregate_ref): Likewise.
6554         * tree-ssa-sccvn.c (try_to_simplify): Use them.
6555
6556 2008-03-15  Richard Guenther  <rguenther@suse.de>
6557
6558         PR middle-end/35593
6559         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make sure
6560         to not produce negative array indices if not allowed.  Add
6561         parameter to indicate that.
6562         (maybe_fold_offset_to_component_ref): Allow negative array
6563         indices only for the first member of a structure.
6564         (maybe_fold_offset_to_reference): Allow negative array indices.
6565         (maybe_fold_stmt_addition): Likewise.
6566
6567 2008-03-15  Bjoern Haase  <bjoern.m.haase@web.de>
6568             Anatoly Sokolov <aesok@post.ru>
6569
6570         * config/avr/avr.c (avr_arch_types): Add avr6 entry.
6571         (avr_arch): Add ARCH_AVR6.
6572         (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry.
6573         (initial_elimination_offset): Initialize and use 'avr_pc_size' 
6574         instead of fixed value 2.
6575         (print_operand_address): Use gs() asm specifier instead of pm().
6576         (avr_assemble_integer): (Ditto.).
6577         (avr_output_addr_vec_elt): (Ditto.).
6578         (print_operand): Handle "!" code.
6579         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add 
6580         __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__.
6581         (AVR_HAVE_EIJMP_EICALL): Define.
6582         (AVR_3_BYTE_PC): Redefine.
6583         (AVR_2_BYTE_PC): (Ditto.).
6584         (PRINT_OPERAND_PUNCT_VALID_P): Add '!' code.
6585         (LINK_SPEC): Add atmega2560 and atmega2561.
6586         (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 
6587         (crtm2561.o).
6588         * config/avr/avr.md (call_insn): Use eicall instead of icall 
6589         for 3 byte PC devices.
6590         (call_value_insn): (Ditto.).
6591         (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices.
6592         (indirect_jump): Use only for for 2 byte PC devices.
6593         (*tablejump): (Ditto.).
6594         (*indirect_jump_avr6): Add insn.
6595         (*tablejump_rjmp): Don't use for 3 byte PC devices.
6596         * config/avr/libgcc.S (__prologue_saves__): Use eijmp 
6597         instead of ijmp for 3 byte PC devices.
6598         (__tablejump2__): (Ditto.).
6599         * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture.
6600         (MULITLIB_DIRNAMES): (Ditto.). 
6601         (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.
6602
6603 2008-03-15  Uros Bizjak  <ubizjak@gmail.com>
6604
6605         * config/i386/mmx.md ("sse2_umulv1siv2di3"): Rename from
6606         "sse2_umulsidi3".  Use V1DI mode for operand 0.
6607         ("mmx_psadbw"): Use V1DI mode for operand 0.
6608         * config/i386/i386-modes.def (V1SI): New vector mode.
6609         * config/i386/i386.c (struct builtin_description)
6610         [IX86_BUILTIN_PMULUDQ]: Use CODE_FOR_sse2_umulv1siv1di3.
6611         (v1di_ftype_v8qi_v8qi): Rename from di_ftype_v8qi_v8qi.
6612         (v1di_ftype_v2si_v2si): Rename from di_ftype_v2si_v2si.
6613         (ix86_init_mmx_sse_builtins) [__builtin_ia32_psadbw]: Use
6614         v1di_ftype_v8qi_v8qi type.
6615         [__builtin_ia32_pmuludq]: Use v1di_ftype_v2si_v2si type.
6616
6617         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psadbw,
6618         __builtin_ia32_pmuludq]: Fix the mode of return value.
6619
6620 2008-03-15  Richard Guenther  <rguenther@suse.de>
6621
6622         PR middle-end/35595
6623         * tree-ssa-pre.c (bitmap_find_leader): Handle expression
6624         being a PHI_NODE.
6625
6626 2008-03-14  Bob Wilson  <bob.wilson@acm.org>
6627         
6628         * doc/invoke.texi (Option Summary, Xtensa Options): Document
6629         -mserialize-volatile and -mno-serialize-volatile Xtensa options.
6630         * config/xtensa/xtensa.c (print_operand): Do not emit MEMW instructions
6631         unless TARGET_SERIALIZE_VOLATILE is enabled.
6632         * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise.
6633         * config/xtensa/xtensa.h (TARGET_DEFAULT): Add MASK_SERIALIZE_VOLATILE.
6634         * config/xtensa/xtensa.opt (mserialize_volatile): New option.
6635
6636 2008-03-14  Richard Guenther  <rguenther@suse.de>
6637
6638         PR tree-optimization/34172
6639         * tree-flow.h (refs_may_alias_p): Declare.
6640         (get_single_def_stmt): Likewise.
6641         (get_single_def_stmt_from_phi): Likewise.
6642         (get_single_def_stmt_with_phi): Likewise.
6643         * tree-dfa.c (refs_may_alias_p): New function.
6644         (get_single_def_stmt): Likewise.
6645         (get_single_def_stmt_from_phi): Likewise.
6646         (get_single_def_stmt_with_phi): Likewise.
6647         * tree-ssa-sccvn.c (get_def_ref_stmt_vuses): New function.
6648         (vn_reference_lookup_1): New helper function.
6649         (vn_reference_lookup): Walk the virtual use-def chain to
6650         continue searching for a match if the def does not alias the
6651         reference we are looking for.
6652
6653 2008-03-14  David Edelsohn  <edelsohn@gnu.org>
6654
6655         * doc/install.texi (Binaries): Remove UCLA archive.  Add HVCC
6656         archive and Perzl.  Update The Written Word listing.
6657
6658 2008-03-14  Richard Guenther  <rguenther@suse.de>
6659
6660         PR tree-optimization/34043
6661         PR tree-optimization/33989
6662         * tree-ssa-pre.c (execute_pre): Allow SCCVN to do insertion
6663         when doing FRE.
6664         (bitmap_find_leader): Use extra argument to verify dominance
6665         relationship inside a basic-block.
6666         (can_PRE_operation): Add VIEW_CONVERT_EXPR.
6667         (find_leader_in_sets): Adjust.
6668         (create_component_ref_by_pieces): Take extra argument for
6669         dominance check, handle lookup failures.
6670         (find_or_generate_expression): Likewise.
6671         (create_expression_by_pieces): Likewise.
6672         (insert_into_preds_of_block): Adjust.
6673         (create_value_expr_from): If asked for, verify all operands
6674         are in the blocks AVAIL_OUT set.
6675         (make_values_for_stmt): Check for SSA_NAMEs that are life
6676         over an abnormal edge.
6677         (compute_avail): Remove such check.
6678         (do_SCCVN_insertion): New function.
6679         (eliminate): If we do not find a leader suitable for replacement
6680         insert a replacement expression from SCCVN if available.
6681         * tree-ssa-sccvn.h (run_scc_vn): Update prototype.
6682         (struct vn_ssa_aux): Add needs_insertion flag.
6683         * tree-ssa-sccvn.c (may_insert): New global flag.
6684         (copy_reference_ops_from_ref): Value-number union member access
6685         based on its size, not type and member if insertion is allowed.
6686         (visit_reference_op_load): For a weak match from union type
6687         punning lookup a view-converted value and insert a SSA_NAME
6688         for that value if that is not found.
6689         (visit_use): Make dumps shorter.  Do not disallow value numbering
6690         SSA_NAMEs that are life over an abnormal edge to constants.
6691         (free_scc_vn): Release inserted SSA_NAMEs.
6692         (run_scc_vn): New flag to specify whether insertion is allowed.
6693         Process SSA_NAMEs in forward order.
6694         * tree-ssa-loop-im.c (for_each_index): Handle invariant
6695         ADDR_EXPRs inside VIEW_CONVERT_EXPR.
6696         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPRs from/to
6697         pointer type to/from integral types that do not change the
6698         precision to regular conversions.
6699
6700 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6701
6702         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
6703         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
6704         __builtin_ia32_psrl?i, __builtin_ia32_psra?i, __builtin_ia32_psll?128,
6705         __builtin_ia32_psrl?128, __builtin_ia32_psra?128]: Fix the mode of
6706         input arguments and the mode of return value.  Built-in functions
6707         that operate on whole 64-bit MMX register now use V1DI mode.
6708
6709 2008-03-13  Alon Dayan  <alond@il.ibm.com>
6710             Olga Golovanevsky  <olga@il.ibm.com>
6711
6712         PR tree-optimization/35041
6713         * ipa-struct-reorg.c (find_pos_in_stmt_1): Add another option
6714         to locate the right position in a statement.
6715
6716 2008-03-13  Uros Bizjak  <ubizjak@gmail.com>
6717
6718         PR target/34000
6719         PR target/35553
6720         * config/i386/xmmintrin.h:  Change all static inline functions to
6721         extern inline and add __gnu_inline__ attribute.
6722         * config/i386/bmintrin.h: Ditto.
6723         * config/i386/smmintrin.h: Ditto.
6724         * config/i386/tmmintrin.h: Ditto.
6725         * config/i386/mmintrin-common.h: Ditto.
6726         * config/i386/ammintrin.h: Ditto.
6727         * config/i386/emmintrin.h: Ditto.
6728         * config/i386/pmmintrin.h: Ditto.
6729         * config/i386/mmintrin.h: Ditto.
6730         * config/i386/mm3dnow.h: Ditto.
6731
6732 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
6733
6734         PR middle-end/35185
6735         * omp-low.c (lower_regimplify, init_tmp_var, save_tmp_var): Removed.
6736         (lower_omp_2): New function.
6737         (lower_omp_1, lower_omp): Rewritten.
6738
6739 2008-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
6740
6741         PR 35054
6742         * doc/extend.texi (Structure-Packing Pragmas): Replace "Win32"
6743         with the phrase "Microsoft Windows compilers".
6744         (Push/Pop Macro Pragmas): New subsection. Document
6745         #pragma push_macro and pragma pop_macro.
6746
6747 2008-03-12  Paul Brook  <paul@codesourcery.com>
6748
6749         * config/arm/arm.c (output_move_double): Prefer LDRD to LDM.
6750
6751 2008-03-12  Paul Brook  <paul@codesourcery.com>
6752
6753         * config/arm/thumb2.md: Extend peephole to cover 3-arg subs.
6754         (thumb2_alusi3_short): Exclude PLUS and MINUS.
6755         (thumb2_addsi_shortim): Rename ...
6756         (thumb2_addsi_short): ... to this.  Allow register operands.
6757         (thumb2_subsi_short): New pattern.
6758         (thumb2_one_cmplsi2_short,
6759         thumb2_negsi2_short): New patterns and peepholes.
6760
6761 2008-03-12  Paul Brook  <paul@codesourcery.com>
6762
6763         * config/arm/arm.c (arm_size_rtx_costs): Use ARM costs for Thumb-2.
6764
6765 2008-03-12  Uros Bizjak  <ubizjak@gmail.com>
6766
6767         * config/i386/i386.md (int_cond): New code iterator.
6768         (fp_cond): Ditto.
6769         ("s<code>"): Macroize expander from seq, sne, sgt, sgtu, slt, sltu,
6770         sge, sgeu, sle and sleu expanders usign int_cond code iterator.
6771         ("s<code>"): Macroize expander from sunordered, sordered, suneq, sunge,
6772         sungt, sunle, sunlt and sltgt expanders usign fp_cond code iterator.
6773         ("b<code>"): Macroize expander from beq, bne, bgt, bgtu, blt, bltu,
6774         bge, bgeu, ble and bleu expanders usign int_cond code iterator.
6775         ("b<code>"): Macroize expander from bunordered, bordered, buneq, bunge,
6776         bungt, bunle, bunlt and bltgt expanders usign fp_cond code iterator.
6777
6778 2008-03-12  Paul Brook  <paul@codesourcery.com>
6779
6780         * config/arm/arm.c (use_return_insn): Use offsets->saved_regs_mask
6781         instead of {arm,thumb}_compute_save_reg_mask.
6782         (output_return_instruction): Ditto.
6783         (thumb_unexpanded_epilogue): Ditto.
6784         (thumb1_expand_prologue): Ditto.
6785         (thumb1_output_function_prologue): Ditto.
6786         (arm_set_return_address): Ditto.
6787         (thumb_set_return_address): Ditto.
6788         (arm_get_frame_offsets): Set offsets->saved_regs_mask.  Push extra
6789         regs to achieve stack alignment.
6790         (thumb1_compute_save_reg_mask): Fix compiler warning.
6791         (arm_output_epilogue): Use offsets->saved_regs_mask.
6792         Adjust stack pointer by poping call clobered registers.
6793         (arm_expand_prologue): Use offsets->saved_regs_mask.
6794         Adjust stack pointer by pushing extra registers.
6795         * config/arm.h (arm_stack_offsets): Add saved_regs_mask.
6796
6797 2008-03-12  Paolo Bonzini  <bonzini@gnu.org>
6798
6799         PR tree-opt/35422
6800         * fold-const.c (fold_unary) <NOP_EXPR>: Distribute a narrowing
6801         conversion to the operands of a multiplication.
6802
6803 2008-03-12  Richard Guenther  <rguenther@suse.de>
6804
6805         * Makefile.in (OBJS-common): Add tree-ssa-phiprop.o
6806         (tree-ssa-phiprop.o): Copy dependencies from tree-ssa-forwprop.o.
6807         * timevar.def (TV_TREE_PHIPROP): Add.
6808         * tree-ssa-phiprop.c: Split from tree-ssa-forwprop.c, added
6809         pass description.  Use TV_TREE_PHIPROP.
6810         * tree-ssa-forwprop.c: Remove phiprop code.
6811
6812 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
6813
6814         PR middle-end/35549
6815         * omp-low.c (maybe_lookup_decl): Constify first argument.
6816         (use_pointer_for_field): Change last argument from bool to
6817         omp_context *.  Disallow shared copy-in/out in nested
6818         parallel if decl is shared in outer parallel too.
6819         (build_outer_var_ref, scan_sharing_clauses,
6820         lower_rec_input_clauses, lower_copyprivate_clauses,
6821         lower_send_clauses, lower_send_shared_vars): Adjust callers.
6822
6823 2008-03-12  Victor Kaplansky  <victork@il.ibm.com>
6824             Ira Rosen  <irar@il.ibm.com>
6825
6826         * tree-vectorizer.c (free_stmt_vec_info): New function.
6827         (destroy_loop_vec_info): Move code to free_stmt_vec_info().
6828         Call free_stmt_vec_info(). Free LOOP_VINFO_STRIDED_STORES..
6829         * tree-vectorizer.h (free_stmt_vec_info): Declare.
6830         * tree-vect-transform.c (vectorizable_conversion): Free
6831         vec_oprnds0 if it was allocated.
6832         (vect_permute_store_chain): Remove unused VECs.
6833         (vectorizable_store): Free VECs that are allocated in the..
6834         function.
6835         (vect_transform_strided_load, vectorizable_load): Likewise.
6836         (vect_remove_stores): Simplify the code.
6837         (vect_transform_loop): Move code to vect_remove_stores().
6838         Call vect_remove_stores() and free_stmt_vec_info().
6839
6840 2008-03-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6841
6842         * pa.h (TARGET_LONG_PIC_SDIFF_CALL): Conditionalize define on
6843         TARGET_HPUX.  Revise comment.
6844         (TARGET_LONG_PIC_PCREL_CALL): Revise comment.
6845         * pa.c (output_call): Update for revised TARGET_LONG_PIC_SDIFF_CALL.
6846         Use sr4 variant of `be' instruction when not generating PIC code.
6847         (attr_length_call): Adjust for above change.
6848
6849 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6850
6851         * ipa-reference.c (static_execute): Remove module_statics_const and
6852         associated setting code.
6853
6854 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6855
6856         PR target/35540
6857         * config/i386/i386.md (paritysi2, paritydi2): Use register_operand
6858         predicate for operand 1.
6859         (paritysi2_cmp): Use register_operand predicate for operand 2.
6860         Use earlyclobber modifier for operand 1.  Remove support for
6861         memory operands.
6862         (paritydi2_cmp): Use register_operand predicate for operand 3.
6863         Use earlyclobber modifier for operand 1.  Remove support for
6864         memory operands.
6865
6866 2008-03-11  Paul Brook  <paul@codesourcery.com>
6867             Vladimir Prus  <vladimir@codesourcery.com>
6868
6869         * config/arm/arm.c (use_return_insn): Check TARGET_APCS_FRAME.
6870         (arm_compute_save_reg0_reg12_mask): Always
6871         check if register 11 must be saved.  Always safe hard frame pointer
6872         when frame_pointer_needeed.
6873         (arm_compute_save_reg_mask): Save IP and PC
6874         only with apcs frames.
6875         (arm_output_epilogue): Adjust Thumb2 codepath to
6876         be also invoked and work for ARM non-apcs frames.
6877         (arm_expand_prologue): Don't bother saving IP
6878         for non-apcs frame, since it's not clobbered by
6879         prologue code.  Implement non-apcs frame
6880         layout.
6881
6882 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6883
6884         PR rtl-optimization/35281
6885         * expr.c (convert_move): Use a new pseudo for the intermediate
6886         from_mode->word_mode result.
6887
6888 2008-03-11  Paolo Bonzini  <bonzini@gnu.org>
6889
6890         * langhooks-def.h (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
6891         * langhooks.h (struct lang_hooks): Delete clear_binding_stack member.
6892         * toplev.c (compile_file): Don't call it.
6893
6894 2008-03-11  Uros Bizjak  <ubizjak@gmail.com>
6895
6896         PR middle-end/35526
6897         * expr.c (store_expr): Call emit_block_move if the mode
6898         of "temp" RTX is BLKmode.
6899
6900 2008-03-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6901             Richard Guenther  <rguenther@suse.de>
6902
6903         PR tree-optimization/31358
6904         * tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
6905         the step with a NULL_TREE.
6906         * tree-ssa-loop-ivopts.c (find_bivs): Convert the step
6907         to sizetype if type is a pointer type.
6908         (add_candidate_1): Don't convert the base and step to
6909         the generic type if the orginal type is a pointer type.
6910         (add_iv_value_candidates): Use sizetype for the step
6911         if type is a pointer type.
6912         (cand_value_at): Likewise.
6913         * tree-ssa-address.c (add_to_parts): Use POINTER_PLUS_EXPR
6914         for pointer types.
6915         * tree-affine.c (tree_to_aff_combination <POINTER_PLUS_EXPR>):
6916         Don't convert the tem affine to the type.
6917         (add_elt_to_tree): Use sizetype for the step if a pointer.
6918         Use POINTER_PLUS_EXPR for pointers.
6919         (aff_combination_to_tree): Use sizetype for the step if a
6920         pointer.
6921
6922 2008-03-10  Vladimir Makarov  <vmakarov@redhat.com>
6923
6924         * config/i386/sse.md (ssse3_pmaddubswv8hi3, ssse3_pmaddubswv4hi3):
6925         Remove commutativity hint.
6926
6927 2008-03-10  Jakub Jelinek  <jakub@redhat.com>
6928
6929         PR c/35438
6930         PR c/35439
6931         * c-parser.c (c_parser_omp_threadprivate): Don't add vars with
6932         errorneous type.  Check that v is a VAR_DECL.
6933
6934         PR middle-end/35099
6935         * tree-cfg.c (new_label_mapper): Update cfun->last_label_uid.
6936
6937 2008-03-10  H.J. Lu  <hongjiu.lu@intel.com>
6938
6939         PR tree-optimization/35494
6940         * tree-ssa-ccp.c (get_symbol_constant_value): Check if value
6941         may be overriden at link and run time.
6942
6943 2008-03-10  Richard Guenther  <rguenther@suse.de>
6944
6945         PR tree-optimization/34677
6946         * tree-ssa-pre.c (modify_expr_node_pool): Remove.
6947         (poolify_tree): Likewise.
6948         (modify_expr_template): Likewise.
6949         (poolify_modify_stmt): Likewise.
6950         (insert_fake_stores): Handle all component-ref style stores
6951         in addition to INDIRECT_REF.  Also handle complex types.
6952         Do not poolify the inserted load.
6953         (realify_fake_stores): Do not rebuild the tree but only
6954         make it a SSA_NAME copy.
6955         (init_pre): Remove initialzation of modify_expr_template.
6956         Do not allocate modify_expr_node_pool.
6957         (fini_pre): Do not free modify_expr_node_pool.
6958
6959 2008-03-10  Paul Brook  <paul@codesourcery.com>
6960
6961         * config/arm/arm.md (UNSPEC_STACK_ALIGN, UNSPEC_PIC_OFFSET): Renumber
6962         to avoid conflicts.
6963
6964 2008-03-10  Paul Brook  <paul@codesourcery.com>
6965             Mark Shinwell  <shinwell@codesourcery.com>
6966
6967         * config/arm/cortex-r4.md: New.
6968         * config/arm/thumb2.md (divsi3, udivsi3): Annotate with
6969         insn attributes.
6970         * config/arm/arm.md: Include cortex-r4.md.
6971         (insn): Add smmls, sdiv and udiv values.
6972         (generic_sched): Don't use generic scheduling for Cortex-R4.
6973         (arm_issue_rate): New function.
6974         (TARGET_SCHED_ISSUE_RATE): Define.
6975
6976 2008-03-10  Sebastian Pop  <sebastian.pop@amd.com>
6977
6978         * doc/invoke.texi (-ftree-loop-distribution): Add an example.
6979
6980 2008-03-10  Richard Guenther  <rguenther@suse.de>
6981
6982         * tree-ssa-pre.c (get_sccvn_value): Simplify.
6983         (compute_avail): Do not add stmt uses to AVAIL_OUT.
6984
6985 2008-03-10  Paolo Bonzini  <bonzini@gnu.org>
6986
6987         * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
6988         Set default to true.
6989
6990 2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6991
6992         * c.opt (Wsynth): Deprecate.
6993         * doc/invoke.texi (Option Summary, Warning Options): Document
6994         -Wno-format-contains-nul.
6995
6996 2008-03-09  Uros Bizjak  <ubizjak@gmail.com>
6997
6998         PR target/35496
6999         * config/i386/i386.c (ix86_constant_alignment): Compute alignment using
7000         ALIGN_MODE_128 for VECTOR_CST and INTEGER_CST in addition to REAL_CST.
7001
7002 2008-03-09  Ira Rosen  <irar@il.ibm.com>
7003
7004         * config/rs6000/rs6000.c (builtin_description): Rename vector
7005         left shift operations.
7006         * config/rs6000/altivec.md (UNSPEC_VSL): Remove.
7007         (altivec_vsl<VI_char>): Rename to ...
7008         (ashl<mode>3): ... new name.
7009         (mulv4sf3, mulv4si3, negv4sf2): Replace gen_altivec_vslw with
7010         gen_ashlv4si3.
7011         (absv4sf2): Convert to use ashift:V4SI instead of UNSPEC_VSL.
7012
7013 2008-03-08  Richard Guenther  <rguenther@suse.de>
7014
7015         * coverage.h (tree_coverage_counter_addr): Declare.
7016         * coverage.c (tree_coverage_counter_addr): New function.
7017         * tree-profile.c (tree_gen_edge_profiler): Unshare counter
7018         before using again.
7019         (tree_gen_pow2_profiler): Use tree_coverage_counter_addr.
7020         (tree_gen_one_value_profiler): Likewise.
7021         (tree_gen_ic_profiler): Likewise.
7022         (tree_gen_average_profiler): Likewise.
7023         (tree_gen_ior_profiler): Likewise.
7024
7025 2008-03-08  Richard Guenther  <rguenther@suse.de>
7026
7027         * tree-ssa-sccvn.h (vn_binary_op_lookup): Remove.
7028         (vn_binary_op_insert): Likewise.
7029         (vn_unary_op_lookup): Likewise.
7030         (vn_unary_op_insert): Likewise.
7031         (vn_nary_op_lookup): Declare.
7032         (vn_nary_op_insert): Likewise.
7033         * tree-ssa-sccvn.c (struct vn_tables_s): Merge unary
7034         and binary hashes, use a single obstack for unary_op_pool
7035         and binary_op_pool.
7036         (struct vn_binary_op_s, struct vn_unary_op_s): Replace with
7037         a single struct vn_nary_op_s.  Store tree code length and
7038         a variable number of operands.
7039         (struct vn_reference_op_struct): Remove unused op2.
7040         (vn_reference_op_eq): Do not compare op2.
7041         (vn_reference_op_compute_hash): Do not compute hash of op2.
7042         (vn_unary_op_hash, vn_binary_op_hash): Replace with vn_nary_op_hash.
7043         (vn_unary_op_compute_hash, vn_binary_op_compute_hash): Replace
7044         with vn_nary_op_compute_hash.
7045         (vn_unary_op_eq, vn_binary_op_eq): Replace with vn_nary_op_eq.
7046         (vn_unary_op_lookup, vn_binary_op_lookup): Replace with
7047         vn_nary_op_lookup.
7048         (vn_unary_op_insert, vn_binary_op_insert): Replace with
7049         vn_nary_op_insert.
7050         (visit_unary_op): Call nary functions.
7051         (visit_binary_op): Likewise.
7052         (process_scc): Adjust for struct vn_tables_s changes.
7053         (allocate_vn_table): Likewise.
7054         (free_vn_table): Likewise.
7055         * tree-vn.c (vn_add): Call nary functions.
7056         (vn_lookup): Likewise.
7057
7058 2008-03-08  Jakub Jelinek  <jakub@redhat.com>
7059
7060         PR target/35498
7061         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): Shift
7062         wdst back after sync_compare_and_swapqhi_internal.
7063
7064 2008-03-08  Uros Bizjak  <ubizjak@gmail.com>
7065
7066         PR target/22152
7067         * config/i386/i386-modes.def (V1DI): New vector mode.
7068         * config/i386/i386.h (VALID_MMX_REG_MODE): Add V1DImode.
7069         * config/i386/mmx.md (MMXMODEI8): New mode iterator.
7070         (MMXMODE248): Ditto.
7071         (MMXMODE): Add V1DI mode.
7072         (mmxvecsize): Change DI mode to V1DI mode.
7073         ("mov<mode>): Use MMXMODEI8 mode iterator.
7074         ("*mov<mode>_internal_rex64"): Ditto.
7075         ("*mov<mode>_internal"): Ditto.
7076         ("mmx_add<mode>3"): Ditto.  Handle V1DImode for TARGET_SSE2.
7077         ("mmx_sub<mode>3"): Ditto.
7078         ("mmx_adddi3"): Remove insn pattern.
7079         ("mmx_subdi3"): Ditto.
7080         ("mmx_ashr<mode>3"): Use SImode and "yN" constraint for operand 2.
7081         ("mmx_lshr<mode>3"): Ditto. Use MMXMODE248 mode iterator.
7082         ("mmx_ashl<mode>3"): Ditto.
7083         ("mmx_lshrdi3"): Remove insn pattern.
7084         ("mmx_ashldi3"): Ditto.
7085         * config/i386/i386.c (classify_argument): Handle V1DImode.
7086         (function_arg_advance_32): Ditto.
7087         (function_arg_32): Ditto.
7088         (struct builtin_description) [IX86_BUILTIN_PADDQ]: Use
7089         mmx_addv1di3 insn pattern.
7090         [IX86_BUILTIN_PSUBQ]: Use mmx_subv1di3 insn pattern.
7091         [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?, IX86_BUILTIN_PSRA?,
7092         IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I, IX86_BUILTIN_PSRA?I,
7093         IX86_BUILTIN_PSLL?I128, IX86_BUILTIN_PSRL?I128, IX86_BUILTIN_PSRA?I128]:
7094         Remove definitions of built-in functions.
7095         (V1DI_type_node): New node.
7096         (v1di_ftype_v1di_int): Ditto.
7097         (v1di_ftype_v1di_v1di): Ditto.
7098         (v2si_ftype_v2si_si): Ditto.
7099         (v4hi_ftype_v4hi_di): Remove node.
7100         (v2si_ftype_v2si_di): Ditto.
7101         (ix86_init_mmx_sse_builtins): Handle V1DImode.
7102         (__builtin_ia32_psll?, __builtin_ia32_psrl?, __builtin_ia32_psra?):
7103         Redefine builtins using def_builtin_const with *_ftype_*_int node.
7104         (__builtin_ia32_psll?i, __builtin_ia32_psrl?i, __builtin_ia32_psra?i):
7105         Add new builtins using def_builtin_const.
7106         (ix86_expand_builtin) [IX86_BUILTIN_PSLL?, IX86_BUILTIN_PSRL?,
7107         IX86_BUILTIN_PSRA?, IX86_BUILTIN_PSLL?I, IX86_BUILTIN_PSRL?I,
7108         IX86_BUILTIN_PSRA?I]: Handle builtin definitions.
7109         * config/i386/mmintrin.h (__v1di): New typedef.
7110         (_mm_add_si64): Cast arguments to __v1di type.
7111         (_mm_sub_si64): Ditto.
7112         (_mm_sll_pi16): Cast __count to __v4hi type.
7113         (_mm_sll_pi32): Cast __count to __v2si type.
7114         (_mm_sll_si64): Cast arguments to __v1di type.
7115         (_mm_srl_pi16): Cast __count to __v4hi type.
7116         (_mm_srl_pi32): Cast __count to __v2si type.
7117         (_mm_srl_si64): Cast arguments to __v1di type.
7118         (_mm_sra_pi16): Cast __count to __v4hi type.
7119         (_mm_sra_pi32): Cast __count to __v2si type.
7120         (_mm_slli_pi16): Use __builtin_ia32_psllwi.
7121         (_mm_slli_pi32): Use __builtin_ia32_pslldi.
7122         (_mm_slli_si64): Use __builtin_ia32_psllqi. Cast __m to __v1di type.
7123         (_mm_srli_pi16): Use __builtin_ia32_psrlwi.
7124         (_mm_srli_pi32): Use __builtin_ia32_psrldi.
7125         (_mm_srli_si64): Use __builtin_ia32_psrlqi. Cast __m to __v1di type.
7126         (_mm_srai_pi16): Use __builtin_ia32_psrawi.
7127         (_mm_srai_pi32): Use __builtin_ia32_psradi.
7128         * config/i386/i386.md (UNSPEC_NOP): Remove unspec definition.
7129         * doc/extend.texi (X86 Built-in Functions) [__builtin_ia32_psll?,
7130         __builtin_ia32_psrl?, __builtin_ia32_psra?, __builtin_ia32_psll?i,
7131         __builtin_ia32_psrl?i, __builtin_ia32_psra?i]: Add new builtins.
7132
7133 2008-03-07  Joseph Myers  <joseph@codesourcery.com>
7134
7135         * doc/include/texinfo.tex: Update to version 2008-03-07.10.
7136
7137 2008-03-07  Peter Bergner  <bergner@vnet.ibm.com>
7138
7139         PR target/35373
7140         * config/rs6000/rs6000.c (rs6000_legitimize_address): Don't generate
7141         reg+const addressing for Altivec modes.  Don't generate reg+reg
7142         addressing for TFmode or TDmode quantities.
7143
7144 2008-03-07  Paolo Bonzini  <bonzini@gnu.org>
7145
7146         * c-common.c (vector_types_convertible_p): Call langhook
7147         instead of comptypes.
7148
7149 2008-03-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7150
7151         PR tree-opt/35402
7152         * tree-ssa-ccp.c (get_symbol_constant_value): Handle
7153         integral and scalar float variables which have a
7154         NULL DECL_INITIAL.
7155
7156 2008-03-06  Nathan Froyd  <froydnj@codesourcery.com>
7157
7158         * dwarf2out.c (dwarf2out_frame_debug_expr): Consult the
7159         dwarf_register_span hook when emitting unwind information for
7160         register-to-memory saves.
7161         * config/rs6000/rs6000.c (spe_synthesize_frame): Delete.
7162         (rs6000_frame_related): Remove call to spe_synthesize_frame.
7163
7164 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
7165
7166         * gimplify.c (goa_lhs_expr_p): Allow different ADDR_EXPR nodes
7167         for the same VAR_DECL.
7168
7169 2008-03-06  Tom Tromey  <tromey@redhat.com>
7170
7171         * treelang: Delete.
7172         * doc/standards.texi (Standards): Don't mention treelang.
7173         * doc/invoke.texi (Overall Options): Don't mention treelang.
7174         * doc/install.texi (Prerequisites): Don't mention bison or
7175         treelang.
7176         (Configuration): Don't mention treelang.
7177         (Building): Likewise.
7178         * doc/frontends.texi (G++ and GCC): Don't mention treelang.
7179
7180 2008-03-06  Paolo Bonzini  <bonzini@gnu.org>
7181
7182         * simplify-rtx.c (simplify_subreg): Remove useless shifts from
7183         word-extractions out of a multi-word object.
7184
7185 2008-03-06  Richard Guenther  <rguenther@suse.de>
7186
7187         * tree.def (BIT_FIELD_REF): Constrain result type and its precision.
7188         * tree-cfg.c (verify_expr): Verify BIT_FIELD_REF constraints on
7189         result type and precision.
7190         * expr.c (get_inner_reference): Set unsignedp based on the result
7191         type of BIT_FIELD_REF.
7192         * tree.h (BIT_FIELD_REF_UNSIGNED): Remove.
7193         * tree-sra.c (instantiate_element): Do not set BIT_FIELD_REF_UNSIGNED.
7194         (try_instantiate_multiple_fields): Likewise.  Use the correct type
7195         for BIT_FIELD_REF.
7196         (sra_build_assignment): Likewise.
7197         (sra_build_elt_assignment): Likewise.
7198         (sra_explode_bitfield_assignment): Likewise.
7199         * print-tree.c (print_node): Do not check BIT_FIELD_REF_UNSIGNED.
7200         * tree-vect-transform.c (vect_create_epilog_for_reduction): Do not
7201         set BIT_FIELD_REF_UNSIGNED.
7202         (vectorizable_load): Likewise.
7203
7204 2008-03-06  Andreas Krebbel  <krebbel1@de.ibm.com>
7205
7206         * cse.c (cse_extended_basic_block): Invalidate artificial defs
7207         at bb start.
7208
7209 2008-03-06  Richard Guenther  <rguenther@suse.de>
7210
7211         * alias.c (struct alias_set_entry): Move has_zero_child field
7212         to pack with alias_set.
7213
7214 2008-03-05  H.J. Lu  <hongjiu.lu@intel.com>
7215
7216         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
7217         32bit host.
7218
7219 2008-03-05  Ian Lance Taylor  <iant@google.com>
7220
7221         * alias.h (alias_set_type): Change from HOST_WIDE_INT to int.
7222
7223 2008-03-05  Kenneth Zadeck  <zadeck@naturalbridge.com>
7224
7225         * fwprop.c (update_df): Support width and offset parameters of
7226         df_ref_create.
7227         * ra-conflict.c (mark_reg_store, clear_reg_in_live,
7228         global_conflicts): Change DF_REF_EXTRACT to either
7229         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7230         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7231         * df-scan.c (df_ref_record, df_defs_record,
7232         df_ref_create_structure, df_def_record_1, df_uses_record,
7233         df_get_conditional_uses, df_get_call_refs, df_insn_refs_collect,
7234         df_bb_refs_collect, df_entry_block_defs_collect,
7235         df_exit_block_uses_collect): Support new width and offset fields.
7236         (ref_extract_pool): New storage pool.
7237         (df_free_ref): New function.
7238         (df_reg_chain_unlink, df_free_collection_rec,
7239         df_sort_and_compress_refs): Call df_free_ref.
7240         (df_ref_equal_p, df_ref_compare): Compare offset and width fields
7241         of df_ref_extract.
7242         (df_ref_create_structure): Allocate df_ref_extract if offset and
7243         width fields are used.
7244         (df_def_record_1): Get offset and width from ZERO_EXTRACT.
7245         (df_uses_record): Get offset and width from ZERO_EXTRACT 
7246         and SIGN_EXTRACT.
7247         * global.c (build_insn_chain): Change DF_REF_EXTRACT to either
7248         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7249         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7250         * df.h (df_ref_flags): Change DF_REF_EXTRACT to either
7251         DF_REF_ZERO_EXTRACT or DF_REF_SIGN_EXTRACT.  Change
7252         DF_REF_STRICT_LOWER_PART to DF_REF_STRICT_LOW_PART.
7253         (df_ref_extract): New structure.
7254         (DF_REF_WIDTH, DF_REF_OFFSET): New macros.
7255         (df_ref_create): Add width and offset parameters.
7256         
7257 2008-03-05  Richard Guenther  <rguenther@suse.de>
7258
7259         * tree-ssa-structalias.c (get_constraint_for_component_ref):
7260         Use ranges_overlap_p.
7261         (offset_overlaps_with_access): Rename
7262         to ranges_overlap_p and move ...
7263         * tree-flow-inline.h (ranges_overlap_p): ... here.
7264
7265         * tree.h (get_inner_reference, handled_component_p): Update
7266         comments.
7267
7268         * tree.h (record_component_aliases, get_alias_set,
7269         alias_sets_conflict_p, alias_sets_must_conflict_p,
7270         objects_must_conflict_p): Move declarations ...
7271         * alias.h (record_component_aliases, get_alias_set,
7272         alias_sets_conflict_p, alias_sets_must_conflict_p,
7273         objects_must_conflict_p): ... here.
7274         Include coretypes.h.
7275         * Makefile.in (ALIAS_H): Add coretypes.h dependency.
7276
7277 2008-03-05  Aldy Hernandez  <aldyh@redhat.com>
7278
7279         * cfg.c: Include tree-flow.h.
7280         (remove_edge_raw): Call redirect_edge_var_map_clear.
7281         (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
7282         * tree-flow-inline.h (redirect_edge_var_map_def): New.
7283         (redirect_edge_var_map_result): New.
7284         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
7285         PENDING_STMT use with redirect_edge_var_map_*.
7286         * tree-ssa.c (edge_var_maps): New definition.
7287         (redirect_edge_var_map_add): New.
7288         (redirect_edge_var_map_clear): New.
7289         (redirect_edge_var_map_dup): New.
7290         (redirect_edge_var_map_vector): New.
7291         (redirect_edge_var_map_destroy): New.
7292         (ssa_redirect_edge): Replace PENDING_STMT use with
7293         redirect_edge_var_map_*.
7294         (flush_pending_stmts): Same.
7295         (delete_tree_ssa): Destroy edge var map.
7296         * tree-flow.h (struct _edge_var_map): New.
7297         Define edge_var_map vector type.
7298         Declare redirect_edge_var_map_* prototypes.
7299         * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
7300         * tree-cfg.c (reinstall_phi_args): Replace
7301         PENDING_STMT use with redirect_edge_var_map_*.
7302
7303 2008-03-05  Richard Guenther  <rguenther@suse.de>
7304
7305         PR tree-optimization/35472
7306         * tree-ssa-dse.c (dse_optimize_stmt): Do not delete a store
7307         whose single use_stmt has a overlapping set of loaded and
7308         stored symbols as that use_stmt might be a noop assignment then.
7309
7310 2008-03-05  Joel Sherrill <joel.sherrill@oarcorp.com>
7311
7312         * gthr-rtems.h: Implement __gthread_mutex_destroy.
7313
7314 2008-03-05  Richard Guenther  <rguenther@suse.de>
7315
7316         PR c++/35336
7317         * tree.def (BIT_FIELD_REF): Document that operands 1 and 2
7318         should be constants.
7319         * tree-cfg.c (verify_expr): Verify it.
7320         * fold-const.c (fold_truthop): Remove code generating
7321         BIT_FIELD_REFs of structure bases.
7322         (fold_binary): Likewise.
7323         (fold_ternary): Position and size of BIT_FIELD_REFs are
7324         always host integers.
7325         (make_bit_field_ref): Remove.
7326         (optimize_bit_field_compare): Remove.
7327         (all_ones_mask_p): Remove.
7328
7329 2008-03-05  Gabor Loki  <loki@gcc.gnu.org>
7330
7331         PR gcc/33009
7332         * rtl-factoring.c (clear_regs_live_in_seq): Fix backward steps.
7333         (split_block_and_df_analyze): New. Split basic block and rebuild
7334         dataflow.
7335         (block_label_after): Use SPLIT_BLOCK_AND_DF_ANALYZE instead of
7336         SPLIT_BLOCK.
7337         (split_pattern_seq): Likewise.
7338         (erase_matching_seqs): Likewise.
7339         (split_pattern_seq): Skip return insn in case of REG_NORETURN note.
7340
7341 2008-03-04  Geoff Keating  <geoffk@apple.com>
7342
7343         * fold-const.c (tree_single_nonnegative_warnv_p): Fix mixed
7344         declaration and code.
7345         (tree_invalid_nonnegative_warnv_p): Likewise.
7346
7347 2008-03-05  Serge Belyshev  <belyshev@depni.sinp.msu.ru>
7348
7349         * doc/install.texi (Testing): Correct quoting for the RUNTESTFLAGS
7350         examples.  Truncate option-names then causing overfull hbox.
7351
7352 2008-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7353
7354         PR target/35222
7355         * configure.ac (CONFIG_SJLJ_EXCEPTIONS): Force SJLJ exceptions
7356         on hpux10.
7357         * configure: Rebuilt.
7358
7359 2008-03-04  Rafael Espindola  <espindola@google.com>
7360
7361         * fold-const.c (tree_simple_nonnegative_warnv_p): New.
7362         (tree_unary_nonnegative_warnv_p): New.
7363         (tree_binary_nonnegative_warnv_p): New.
7364         (tree_single_nonnegative_warnv_p): New.
7365         (tree_invalid_nonnegative_warnv_p): New.
7366         (tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
7367
7368 2008-03-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7369
7370         PR 28322
7371         * opts.c (handle_option): Postpone 'unknown option' errors only for
7372         warning options.
7373
7374 2008-03-04  H.J. Lu  <hongjiu.lu@intel.com>
7375
7376         PR target/35453
7377         * config/i386/smmintrin.h (SIDD_XXX): Renamed to ...
7378         (_SIDD_XXX): This.
7379
7380 2008-03-04  Rafael Espindola  <espindola@google.com>
7381
7382         * fold-const.c (tree_unary_nonzero_warnv_p): New.
7383         (tree_binary_nonzero_warnv_p): New.
7384         (tree_single_nonzero_warnv_p): New.
7385         (tree_expr_nonzero_warnv_p): Redefine using the new functions.
7386
7387 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
7388
7389         PR middle-end/35456
7390         * fold-const.c (fold_cond_expr_with_comparison): Prevent
7391         transformations for modes that have signed zeros.
7392         * ifcvt.c (noce_try_abs): Ditto.
7393
7394 2008-03-04  Joseph Myers  <joseph@codesourcery.com>
7395
7396         * config/i386/i386.c (override_options): Force
7397         -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
7398
7399 2008-03-04  Jan Hubicka  <jh@suse.cz>
7400
7401         PR c++/35262
7402         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Fix typo
7403         in last commit.
7404
7405 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7406
7407         * config/i386/i386.md (allocate_stack_worker_32): Use  __chkstk
7408         label to probe the stack.
7409
7410 2008-03-04  Danny Smith  <dannysmith@users.sourceforge.net>
7411
7412         * gthr-win32.h [__GTHREAD_HIDE_WIN32API]
7413         (__gthr_win32_mutex_destroy): Declare.
7414         [__GTHREAD_HIDE_WIN32API] (__gthread_mutex_destroy): Use
7415         __gthr_win32_mutex_destroy.
7416         * config/i386/gthr-win32.c  (__gthr_win32_mutex_destroy): Define.
7417
7418 2008-03-03  Jan Hubicka  <jh@suse.cz>
7419
7420         PR c++/35262
7421         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Be more
7422         aggressive on inlining cold calls.
7423
7424 2008-03-03  Richard Guenther  <rguenther@suse.de>
7425
7426         * tree-ssa-sccvn.c (visit_reference_op_store): Do not insert
7427         struct copies into the expression table.
7428         (simplify_unary_expression): Handle VIEW_CONVERT_EXPR.
7429         (try_to_simplify): Likewise.
7430         * fold-const.c (fold_unary): Fold VIEW_CONVERT_EXPR of
7431         integral and pointer arguments which do not change the
7432         precision to NOP_EXPRs.
7433         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Adjust
7434         VIEW_CONVERT_EXPR case.
7435
7436 2008-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7437
7438         * tree-scalar-evolution.c (instantiate_parameters_1): An SSA_NAME
7439         defined in a loop at depth 0 is invariant.
7440         * tree-chrec.c (evolution_function_is_invariant_rec_p): Ditto.
7441         * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Should never
7442         be called at loop depth 0.
7443
7444 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
7445
7446         PR driver/35420
7447         * gcc.c (process_command): Update copyright notice dates.
7448         * gcov.c (print_version): Likewise.
7449         * gcov-dump.c (print_version): Likewise.
7450         * mips-tfile.c (main): Likewise.
7451         * mips-tdump.c (main): Likewise.
7452
7453 2008-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7454
7455         PR 24924
7456         * c-common.c (flag_permissive): Delete.
7457         (constant_expression_warnings): Check flags first.
7458         (constant_expression_error): New.
7459         * c-common.h (flag_permissive): Delete.
7460         (constant_expression_error): Declare.
7461         * flags.h (flag_permissive): Declare. Update description.
7462         * diagnostic.c (pedwarn): Update.
7463         (permerror): New.
7464         * diagnostic.h: (pedantic_error_kind): Rename as pedantic_warning_kind.
7465         (permissive_error_kind): New.
7466         * toplev.c (flag_permissive): Define. Update description.
7467         * toplev.h (permissive_error_kind): Declare.
7468         * c-errors.c (pedwarn_c99): Use pedantic_warning_kind.
7469         (pedwarn_c90): Use pedantic_warning_kind.
7470         * c-opts.c (c_common_post_options): flag_permissive does not affect
7471         flag_pedantic_errors.
7472
7473 2008-03-02  Joseph Myers  <joseph@codesourcery.com>
7474
7475         * libgcc2.c (__addvSI3, __addvsi3, __addvDI3, __subvSI3,
7476         __subvsi3, __subvDI3, __negvSI2, __negvsi2, __negvDI2, __absvSI2,
7477         __absvsi2, __absvDI2): Use unsigned arithmetic.
7478
7479 2008-03-02  Andi Kleen  <ak@suse.de>
7480             Richard Guenther  <rguenther@suse.de>
7481
7482         * struct-equiv.c: Remove file.
7483         * cfg_cleanup.c (condjump_equiv_p): Remove.
7484         * Makefile.in (OBJS-common): Remove struct-equiv.o.
7485         (struct-equiv.o): Remove rule.
7486         * basic-block.h (struct_equiv_checkpoint, STRUCT_EQUIV_*,
7487         insns_match_p, struct_equiv_block_eq, struct_equiv_init, 
7488         rtx_equiv_p, condjump_equiv_p): Remove prototypes.
7489
7490 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7491
7492         * ifcvt.c (noce_process_if_block): Try to handle only the then
7493         block if the else block exists but isn't suitable.
7494
7495 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7496
7497         PR gcc/35063
7498         * gthr-posix.h (__gthread_mutex_destroy): Remove extra declarations.
7499         * gthr-posix95.h (__gthread_mutex_destroy): Likewise. Note this fixes
7500         regression from previous patch.
7501
7502 2008-03-01  Janne Blomqvist  <jb@gcc.gnu.org>
7503
7504         PR gcc/35063
7505         * gthr.h: Add __gthread_mutex_destroy as a function that must be
7506         implemented.
7507         * gthr-vxworks.h (__gthread_mutex_destroy): Null implementation.
7508         * gthr-single.h (__gthread_mutex_destroy): Likewise.
7509         * gthr-rtems.h (__gthread_mutex_destroy): Likewise.
7510         * gthr-mipssde.h (__gthread_mutex_destroy): Likewise.
7511         * gthr-nks.h (__gthread_mutex_destroy): Likewise.
7512         * gthr-solaris.h (__gthread_mutex_destroy): Call mutex_destroy.
7513         * gthr-win32.h (__GTHREAD_MUTEX_DESTROY_FUNCTION): Remove.
7514         (__gthread_mutex_destroy_function): Rename to
7515         __gthread_mutex_destroy.
7516         * gthr-dce.h (__gthread_mutex_destroy): Call
7517         pthread_mutex_destroy.
7518         * gthr-tpf.h (__gthread_mutex_destroy): Likewise.
7519         * gthr-posix.h (__gthread_mutex_destroy): Likewise.
7520         * gthr-posix95.h (__gthread_mutex_destroy): Likewise.
7521
7522 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7523
7524         * df-scan.c (df_ref_chain_change_bb): Simplify.
7525         (df_insn_change_bb): Add new_bb argument.  Simplify.  Call
7526         set_block_for_insn if there's any change.
7527         * df.h ((df_insn_change_bb): Fix prototype.
7528         * cfgrtl.c (update_bb_for_insn_chain): Pass bb to
7529         df_insn_change_bb, don't call set_block_for_insn.
7530         * emit-rtl.c (reorder_insns): Likewise.
7531         * haifa-sched.c (move_insn): Likewise.
7532
7533 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7534
7535         * rtlanal.c (loc_mentioned_in_p): Test XVECEXPs correctly.
7536
7537 2008-03-01  Alexandre Oliva  <aoliva@redhat.com>
7538
7539         * tree-flow-inline.h (next_readonly_imm_use): Return
7540         NULL_USE_OPERAND_P after the end.
7541
7542 2008-03-01  Richard Guenther  <rguenther@suse.de>
7543
7544         PR tree-optimization/35411
7545         * tree-sra.c (sra_build_assignment): Split conversion to
7546         final type to a separate statement if we are not assigning
7547         to a register.
7548
7549 2008-02-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
7550
7551         * fold-const.c (fold_convertible_p): Correct the logic to follow
7552         that in fold_convert().
7553
7554 2008-02-29  Douglas Gregor  <doug.gregor@gmail.com>
7555
7556         PR c++/35315
7557         * tree-inline.c (build_duplicate_type): When we make a
7558         duplicate type, make it unique in the canonical types system.
7559
7560 2008-02-29  Tom Tromey  <tromey@redhat.com>
7561
7562         * toplev.c (input_file_stack, input_file_stack_tick, fs_p,
7563         input_file_stack_history, input_file_stack_restored): Remove.
7564         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7565         * input.h (struct file_stack): Remove.
7566         (push_srcloc, pop_srcloc, restore_input_file_stack): Likewise.
7567         (input_file_stack, input_file_stack_tick, INPUT_FILE_STACK_BITS):
7568         Likewise.
7569         * diagnostic.h (struct diagnostic_context) <last_module>: Change
7570         type.
7571         (diagnostic_last_module_changed): Add 'map' argument.
7572         (diagnostic_set_last_function): Likewise.
7573         * diagnostic.c (undiagnostic_report_current_module): Iterate using
7574         line map, not input_file_stack.
7575         * c-lex.c (fe_file_change): Don't use push_srcloc or pop_srcloc.
7576
7577 2008-02-29  Paul Brook  <paul@codesourcery.com>
7578
7579         * config/arm/arm.md (arm_addsi3): Add r/k/n alternative.
7580
7581 2008-02-29  Paul Brook  <paul@codesourcery.com>
7582
7583         * config/arm/ieee754-df.S (muldf3): Use RET macros.
7584
7585 2008-02-29  Richard Guenther  <rguenther@suse.de>
7586
7587         * tree-ssa-pre.c (get_sccvn_value): Create missing VNs via
7588         vn_lookup_or_add.
7589         * tree-ssa-sccnv.c (visit_reference_op_store): Use the rhs
7590         value for comparing for a store match.
7591         (simplify_unary_expression): Do nothing for SSA_NAMEs.
7592         (try_to_simplify): Do not do a full-blown reference lookup.
7593
7594 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7595
7596         * config/sh/sh.c (sh_scalar_mode_supported_p): New function.
7597         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7598
7599         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't warn for profiling.
7600
7601 2008-02-29  Sebastian Pop  <sebastian.pop@amd.com>
7602
7603         * tree-loop-linear.c (try_interchange_loops): Compare memory access
7604         strides against cache sizes.
7605
7606 2008-02-29  Kaz Kojima  <kkojima@gcc.gnu.org>
7607
7608         * config/sh/sh.c (sh_secondary_reload): Handle loading a float
7609         constant to fpul.
7610
7611 2008-02-28  Richard Sandiford  <rsandifo@nildram.co.uk>
7612
7613         * simplify-rtx.c (simplify_unary_operation_1): Extend the handling
7614         of SUBREG_PROMOTED_VAR_P to cope with cases where the extended value
7615         is smaller than the original promoted value.
7616         (simplify_subreg): If OP is a SUBREG, try to preserve its
7617         SUBREG_PROMOTED_VAR_P information.
7618
7619 2008-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
7620
7621         * tree-ssa-sccvn (vn_ssa_aux_obstack): New obstack.
7622         (VN_INFO_GET): Allocate new objects on the obstack.
7623         (init_scc_vn): Initialize the obstack.  Use XDELETE instead of free
7624         for rpo_numbers_temp, for consistency.
7625         (free_scc_vn): Free the obstack.
7626
7627 2008-02-28  Sebastian Pop  <sebastian.pop@amd.com>
7628
7629         * doc/invoke.texi: Document -ftree-loop-distribution.
7630         * tree-loop-distribution.c: New.
7631         * tree-pass.h (pass_loop_distribution): New.
7632         * graphds.h (struct graph): Add htab_t indices.
7633         * timevar.def (TV_TREE_LOOP_DISTRIBUTION): New.
7634         * tree-vectorizer.c (rename_variables_in_loop): Extern.
7635         (slpeel_tree_duplicate_loop_to_edge_cfg): Init PENDING_STMT to NULL.
7636         * tree-vectorizer.h (tree_duplicate_loop_on_edge): Declared.
7637         * tree-data-ref.c (debug_data_dependence_relations): New.
7638         (dump_data_dependence_relation): Also print data references.
7639         (free_data_ref): Extern.
7640         (same_access_functions): Moved...
7641         (find_vertex_for_stmt): Renamed rdg_vertex_for_stmt.
7642         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7643         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg_1, dot_rdg,
7644         struct rdg_vertex_info, rdg_vertex_for_stmt): New.
7645         (create_rdg_edge_for_ddr, create_rdg_vertices): Cleaned up.
7646         (stmts_from_loop): Skip LABEL_EXPR.
7647         (hash_stmt_vertex_info, eq_stmt_vertex_info, hash_stmt_vertex_del):
7648         New.
7649         (build_rdg): Initialize rdg->indices htab.
7650         (free_rdg, stores_from_loop, ref_base_address,
7651         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses,
7652         have_similar_memory_accesses_1, ref_base_address_1,
7653         remove_similar_memory_refs): New.
7654         * tree-data-ref.h: Depend on tree-chrec.h.
7655         (debug_data_dependence_relations, free_data_ref): Declared.
7656         (same_access_functions): ... here.
7657         (ddr_is_anti_dependent, ddrs_have_anti_deps, ddr_dependence_level):
7658         New.
7659         (struct rdg_vertex): Add has_mem_write and has_mem_reads.
7660         (RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT,
7661         RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT): New.
7662         (dump_rdg_vertex, debug_rdg_vertex, dump_rdg_component,
7663         debug_rdg_component, dump_rdg, debug_rdg, dot_rdg,
7664         rdg_vertex_for_stmt): Declared.
7665         (struct rdg_edge): Add level.
7666         (RDGE_LEVEL): New.
7667         (free_rdg, stores_from_loop, remove_similar_memory_refs,
7668         rdg_defs_used_in_other_loops_p, have_similar_memory_accesses):
7669         Declared.
7670         (rdg_has_similar_memory_accesses): New.
7671         * tree-vect-analyze.c: Remove unused static decls.
7672         * lambda.h (dependence_level): New.
7673         * common.opt (ftree-loop-distribution): New.
7674         * tree-flow.h (mark_virtual_ops_in_bb, 
7675         slpeel_tree_duplicate_loop_to_edge_cfg,
7676         rename_variables_in_loop): Declared.
7677         * Makefile.in (TREE_DATA_REF_H): Depend on tree-chrec.h.
7678         (OBJS-common): Add tree-loop-distribution.o.
7679         (tree-loop-distribution.o): New rule.
7680         * tree-cfg.c (mark_virtual_ops_in_bb): New.
7681         (mark_virtual_ops_in_region): Use mark_virtual_ops_in_bb.
7682         * passes.c (init_optimization_passes): Schedule pass_loop_distribution.
7683
7684 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
7685
7686         PR target/33963
7687         * tree.c (handle_dll_attribute): Disallow TYPE_DECLs for types
7688         other than structures and unions.
7689
7690 2008-02-28  Richard Guenther  <rguenther@suse.de>
7691
7692         Revert:
7693         2008-02-26  Richard Guenther  <rguenther@suse.de>
7694
7695         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7696         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7697         (lookup_decl_from_uid): Declare.
7698         (remove_decl_from_map): Likewise.
7699         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7700         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7701         (decl_for_uid_map): New global hashtable mapping DECL_UID
7702         to the decl tree.
7703         (init_ttree): Allocate it.
7704         (insert_decl_to_uid_decl_map): New helper function.
7705         (make_node_stat): Insert new decls into the map.
7706         (copy_node_stat): Likewise.
7707         (lookup_decl_from_uid): New function.
7708         (remove_decl_from_map): Likewise.
7709         (print_decl_for_uid_map_statistics): New helper.
7710         (dump_tree_statistics): Call it.
7711
7712         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7713         (referenced_var_iterator): Adjust.
7714         (FOR_EACH_REFERENCED_VAR): Adjust.
7715         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
7716         (num_referenced_vars): Adjust.
7717         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
7718         (first_referenced_var): Remove.
7719         (end_referenced_vars_p): Likewise.
7720         (next_referenced_var): Likewise.
7721         (referenced_var_iterator_set): New helper function.
7722         * tree-dfa.c (referenced_var_lookup): Adjust.
7723         (referenced_var_check_and_insert): Likewise.
7724         (remove_referenced_var): Likewise.
7725         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
7726         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7727         (verify_call_clobbering): Likewise.
7728         (verify_memory_partitions): Likewise.
7729         (init_tree_ssa): Allocate bitmap instead of hashtable for
7730         referenced_vars.
7731         (delete_tree_ssa): Adjust.
7732         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
7733         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
7734         (compute_tag_properties): Likewise.
7735         (set_initial_properties): Likewise.
7736         (find_partition_for): Likewise.
7737         (update_reference_counts): Likewise.
7738         (dump_may_aliases_for): Likewise.
7739         * tree-ssa-operands.c (add_virtual_operand): Likewise.
7740         (add_call_clobber_ops): Likewise.
7741         (add_call_read_ops): Likewise.
7742         (get_asm_expr_operands): Likewise.
7743         * tree-into-ssa.c (dump_decl_set): Likewise.
7744         (update_ssa): Likewise.
7745         * tree-sra.c (scan_function): Likewise.
7746         (decide_instantiations): Likewise.
7747         (scalarize_parms): Likewise.
7748         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
7749         (dsa_named_for): Likewise.
7750         * tree-ssa-structalias.c (update_alias_info): Likewise.
7751         (merge_smts_into): Likewise.
7752
7753 2008-02-27  David Daney  <ddaney@avtrex.com>
7754
7755         PR target/34409
7756         * config/mips/iris.h (MIPS_DEBUGGING_INFO): Define.
7757         * config/mips/openbsd.h (MIPS_DEBUGGING_INFO): Same.
7758         * config/mips/sde.h (MIPS_DEBUGGING_INFO): Remove undef.
7759         * config/mips/vxworks.h (MIPS_DEBUGGING_INFO): Same.
7760         * config/mips/mips.h (MIPS_DEBUGGING_INFO): Remove define.
7761
7762 2008-02-27  Uros Bizjak  <ubizjak@gmail.com>
7763
7764         PR target/25477
7765         * config/darwin-ppc-ldouble-patch.def (BUILT_IN_NANL): Add.
7766         (BUILT_IN_NEXTTOWARD): Remove.
7767         (BUILT_IN_NEXTTOWARDF): Ditto.
7768         * config/darwin.c (darwin_patch_builtin): Use ACONCAT instead of
7769         alloca/strcpy/strcat.  Remove commented-out code.  Fix whitespace.
7770
7771 2008-02-27  Tom Tromey  <tromey@redhat.com>
7772
7773         * tree-dump.c (dequeue_and_dump) <FUNCTION_DECL>: Check
7774         DECL_SAVED_TREE, not DECL_LANG_SPECIFIC, when dumping body.
7775
7776 2008-02-27  Jan Beulich  <jbeulich@novell.com>
7777
7778         * c-decl.c (merge_decls): Use DECL_USER_ALIGN() on olddecl to
7779         update the respective field on newdecl.
7780
7781 2008-02-27  Revital Eres  <eres@il.ibm.com>
7782
7783         PR rtl-optimization/34999
7784         * bb-reorder.c (add_labels_and_missing_jumps): Do not handle
7785         crossing edges that ends with a call insn.
7786         (fix_up_fall_thru_edges): Handle crossing edges that ends with a
7787         call insn and clear the EDGE_CROSSING flag of the crossing edge
7788         when fixing fallthru edges.
7789
7790 2008-02-27  Richard Guenther  <rguenther@suse.de>
7791
7792         PR middle-end/35390
7793         * fold-const.c (fold_unary): Return the correct argument,
7794         converted to the result type.
7795
7796 2008-02-27  Richard Guenther  <rguenther@suse.de>
7797
7798         PR middle-end/34971
7799         * expr.c (expand_expr_real_1): Assert on rotates that operate
7800         on partial modes.
7801         * fold-const.c (fold_binary): Use the types precision, not the
7802         bitsize of the mode if folding rotate expressions.  Build rotates
7803         only for full modes.
7804
7805 2008-02-27  Jakub Jelinek  <jakub@redhat.com>
7806
7807         * c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
7808         and CPP_PRAGMA_EOL.
7809         * c-pragma.c (pragma_ns_name): New typedef.
7810         (registered_pp_pragmas): New variable.
7811         (c_pp_lookup_pragma): New function.
7812         (c_register_pragma_1): If flag_preprocess_only, do nothing
7813         for non-expanded pragmas, for expanded ones push pragma's
7814         namespace and name into registered_pp_pragmas vector.
7815         (c_invoke_pragma_handler): Register OpenMP pragmas even when
7816         flag_preprocess_only, don't register GCC pch_preprocess
7817         pragma if flag_preprocess_only.
7818         * c-opts.c (c_common_init): Call init_pragma even if
7819         flag_preprocess_only.
7820         * c-pragma.c (c_pp_lookup_pragma): New prototype.
7821         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
7822         cpp_register_pragma if flag_preprocess_only.
7823
7824 2008-02-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7825
7826         PR c/28800
7827         * c-parser.c (c_parser_translation_unit): Warn for empty
7828         translation unit, not empty source file.
7829
7830 2008-02-26  Paul Brook  <paul@codesourcery.com>
7831
7832         * config/arm/arm.c (thumb_set_frame_pointer): Ensure SP is first
7833         operand for Thumb-2.
7834         * config/arm/arm.h (reg_class): Add CORE_REGS.
7835         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Ditto.
7836         (BASE_REG_CLASS): Use CORE_REGS.
7837         (PREFERRED_RELOAD_CLASS): Add STACK_REG.
7838         (REGNO_MODE_OK_FOR_REG_BASE_P): Use REGNO_MODE_OK_FOR_BASE_P.
7839         (REGNO_OK_FOR_INDEX_P): Exclude SP.
7840         (ARM_REG_OK_FOR_INDEX_P): Always define.  Use
7841         ARM_REGNO_OK_FOR_INDEX_P.
7842         (ARM_PRINT_OPERAND_ADDRESS): Swap operands for [reg, sp].
7843         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn,
7844         arm_movsi_insn, thumb1_movsi_insni, stack_tie): Add "k" alternatives.
7845         (ldm/stm peepholes): Ditto.
7846         * config/arm/thumb2.md (thumb2_movdi): Add "k" alternatives.
7847         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp): Ditto.
7848         * config/arm/iwmmxt.md (iwmmxt_movsi_insn): Ditto.
7849         * config/arm/constraints.md: Enable "k" constraint on ARM.
7850
7851 2008-02-27  Ben Elliston  <bje@au.ibm.com>
7852
7853         * config/rs6000/rs6000.c: Annotate cache line size field in all
7854         instances of struct processor_costs.
7855
7856 2008-02-26  David Edelsohn  <edelsohn@gnu.org>
7857
7858         * dbgcnt.def (cfg_cleanup, cprop1, cprop2, dce_fast, dce_ud, dse1,
7859         dse2, gcse, if_conversion, if_after_combine, if_after_reload,
7860         jump_bypass): New counters.
7861         * cfgcleanup.c (cleanup_cfg): Add dbg_cnt.
7862         * dce.c (gate_ud_dce): Same.
7863         (gate_fast_dce): Same.
7864         * dse.c (gate_dse1): New function.
7865         (gate_dse2): New function.
7866         (gate_dse): Merge results of new gate functions.
7867         * gcse.c (gcse_main): Bracket cprop1 and cprop2 with dbg_cnt.
7868         (gate_handle_jump_bypass): Add dbg_cnt.
7869         (gate_handle_gcse): Add dbg_cnt.
7870         * ifcvt.c (gate_handle_if_conversion): Same.
7871         (gate_handle_if_after_combine): Same.
7872         (gate_handle_if_after_reload): Same.
7873         * Makefile.in: Add DBGCNT_H to cfgcleanup.o and ifcvt.o.
7874
7875 2008-02-26  Edmar Wienskoski  <edmar@freescale.com>
7876
7877         * config/rs6000/rs6000.c (processor_costs): Update e300 cache
7878         line sizes.
7879         * doc/invoke.texi: Add e300c2 and e300c3 to list of cpus.
7880
7881 2008-02-26  Jason Merrill  <jason@redhat.com>
7882
7883         PR c++/35315
7884         * attribs.c (decl_attributes): Leave ATTR_FLAG_TYPE_IN_PLACE 
7885         alone if it's the naming decl for the type's main variant.
7886
7887 2008-02-26  Tom Tromey  <tromey@redhat.com>
7888
7889         * system.h (USE_MAPPED_LOCATION): Poison.
7890         * Makefile.in (GTFILES): Put CPP_ID_DATA_H first.
7891         * tree-cfg.c (make_cond_expr_edges): Remove old location code.
7892         (make_goto_expr_edges): Likewise.
7893         (remove_bb): Likewise.
7894         (execute_warn_function_return): Likewise.
7895         * basic-block.h (struct edge_def) <goto_locus>: Change type to
7896         location_t.
7897         * c-common.c (fname_decl): Remove old location code.
7898         * tree-vect-transform.c (vect_finish_stmt_generation): Remove old
7899         location code.
7900         * rtl.h (ASM_OPERANDS_SOURCE_LOCATION): Remove old-location
7901         variant.
7902         (ASM_INPUT_SOURCE_LOCATION): Likewise.
7903         (gen_rtx_ASM_INPUT): Likewise.
7904         (gen_rtx_ASM_INPUT_loc): Likewise.
7905         (get_rtx_asm_OPERANDS): Remove.
7906         * cfglayout.c (insn_locators_alloc): Remove old location code.
7907         (set_curr_insn_source_location): Likewise.
7908         (curr_insn_locator): Likewise.
7909         * print-tree.c (print_node): Remove old location code.
7910         * tree-mudflap.c (mf_varname_tree): Remove old location code.
7911         (mf_file_function_line_tree): Remove test of USE_MAPPED_LOCATION.
7912         * cfgexpand.c (expand_gimple_cond_expr): Don't use
7913         location_from_locus.
7914         (construct_exit_block): Remove old location code.
7915         * emit-rtl.c (force_next_line_note): Remove old location code.
7916         * profile.c (branch_prob): Remove old location code.
7917         * tree-vectorizer.h (LOC, UNKNOWN_LOC, EXPR_LOC, LOC_FILE,
7918         LOC_LINE): Remove old-location variants.
7919         * langhooks.c (lhd_print_error_function): Remove old location
7920         code.
7921         * configure, config.in: Rebuilt.
7922         * configure.ac (--enable-mapped-location): Remove.
7923         * c-decl.c (c_init_decl_processing): Remove old location code.
7924         (finish_function): Likewise.
7925         * recog.c (decode_asm_operands): Remove old location code.
7926         * c-pch.c (c_common_read_pch): Remove old location code.
7927         * rtl.def (ASM_INPUT, ASM_OPERANDS): Remove old location
7928         variants.
7929         * gimple-low.c (lower_function_body): Remove old location code.
7930         * toplev.c (unknown_location): Remove.
7931         (push_srcloc): Remove old-location variant.
7932         (process_options): Remove old location code.
7933         (lang_dependent_init): Likewise.
7934         * input.h (UNKNOWN_LOCATION): Move definition.
7935         (location_t): Undeprecate.
7936         (source_locus): Remove.
7937         (location_from_locus): Remove.
7938         (struct location_s): Remove.
7939         Remove all old-location code.
7940         (input_line, input_filename): Remove.
7941         * final.c (final_scan_insn): Remove old location code.
7942         * diagnostic.c (diagnostic_build_prefix): Remove
7943         USE_MAPPED_LOCATION test.
7944         * tree.h (gimple_stmt) <locus>: Now a location_t.
7945         (tree_exp) <locus>: Likewise.
7946         (DECL_IS_BUILTIN): Remove old-location variant.
7947         (annotate_with_file_line, annotate_with_locus): Likewise.
7948         (expr_locus, set_expr_locus): Update.
7949         * tree.c (build1_stat): Remove old location code.
7950         (last_annotated_node): Remove.
7951         (annotate_with_file_line): Remove old-location variant.
7952         (annotate_with_locus): Likewise.
7953         (expr_location): Remove old location code.
7954         (set_expr_location): Likewise.
7955         (expr_has_location): Likewise.
7956         (expr_locus): Likewise.
7957         (set_expr_locus): Likewise.
7958         (expr_filename): Don't use location_from_locus.
7959         (expr_lineno): Likewise.
7960         * rtl-error.c (location_for_asm): Remove old location code.
7961         * c-lex.c (cb_line_change): Remove old location code.
7962         (fe_file_change): Likewise.
7963         (cb_def_pragma): Likewise.
7964         (c_lex_with_flags): Likewise.
7965         * gengtype.c (do_typedef): Don't special-case location types.
7966         (define_location_structures): Remove.
7967         (main): Don't call define_location_structures.
7968         * tree-pretty-print.c (dump_implicit_edges): Remove old location
7969         code.
7970
7971 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
7972
7973         PR 26264
7974         * builtins.def (BUILT_IN_STDARG_START): Remove.
7975         * builtins.c (expand_builtin): Remove BUILT_IN_STDARG_START.
7976         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
7977         * tree-inline.c (inline_forbidden_p_1): Likewise.
7978         
7979 2008-02-26  Richard Guenther  <rguenther@suse.de>
7980
7981         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
7982         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
7983         (lookup_decl_from_uid): Declare.
7984         (remove_decl_from_map): Likewise.
7985         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
7986         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
7987         (decl_for_uid_map): New global hashtable mapping DECL_UID
7988         to the decl tree.
7989         (init_ttree): Allocate it.
7990         (insert_decl_to_uid_decl_map): New helper function.
7991         (make_node_stat): Insert new decls into the map.
7992         (copy_node_stat): Likewise.
7993         (lookup_decl_from_uid): New function.
7994         (remove_decl_from_map): Likewise.
7995         (print_decl_for_uid_map_statistics): New helper.
7996         (dump_tree_statistics): Call it.
7997
7998         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
7999         (referenced_var_iterator): Adjust.
8000         (FOR_EACH_REFERENCED_VAR): Adjust.
8001         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8002         (num_referenced_vars): Adjust.
8003         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8004         (first_referenced_var): Remove.
8005         (end_referenced_vars_p): Likewise.
8006         (next_referenced_var): Likewise.
8007         (referenced_var_iterator_set): New helper function.
8008         * tree-dfa.c (referenced_var_lookup): Adjust.
8009         (referenced_var_check_and_insert): Likewise.
8010         (remove_referenced_var): Likewise.
8011         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8012         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8013         (verify_call_clobbering): Likewise.
8014         (verify_memory_partitions): Likewise.
8015         (init_tree_ssa): Allocate bitmap instead of hashtable for
8016         referenced_vars.
8017         (delete_tree_ssa): Adjust.
8018         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8019         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8020         (compute_tag_properties): Likewise.
8021         (set_initial_properties): Likewise.
8022         (find_partition_for): Likewise.
8023         (update_reference_counts): Likewise.
8024         (dump_may_aliases_for): Likewise.
8025         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8026         (add_call_clobber_ops): Likewise.
8027         (add_call_read_ops): Likewise.
8028         (get_asm_expr_operands): Likewise.
8029         * tree-into-ssa.c (dump_decl_set): Likewise.
8030         (update_ssa): Likewise.
8031         * tree-sra.c (scan_function): Likewise.
8032         (decide_instantiations): Likewise.
8033         (scalarize_parms): Likewise.
8034         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8035         (dsa_named_for): Likewise.
8036         * tree-ssa-structalias.c (update_alias_info): Likewise.
8037         (merge_smts_into): Likewise.
8038
8039 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8040
8041         PR 34351
8042         * doc/invoke.texi (-Wall): Add -Wvolatile-register-var.
8043         * c-opts.c (c_common_handle_option): Wall enables
8044         Wvolatile-register-var.
8045         * common.opt: Move Wvolatile-register-var to...
8046         * c.opt: ...here.
8047         
8048 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8049
8050         * common.opt (Wlarger-than=): New.
8051         * doc/invoke.texi (Warning Options): Replace -Wlarger-than- with
8052         -Wlarger-than=.
8053         * opts.c (common_handle_option): Handle -Wlarger-than=.
8054         * optc-gen.awk: Likewise.
8055         * opth-gen.awk: Likewise.
8056         * stor-layout.c (layout_decl): Use -Wlarger-than= for warning.
8057         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8058         
8059 2008-02-26  Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8060
8061         * c-common.c (match_case_to_enum_1): Add appropriate
8062         OPT_W* parameter to warning.
8063         (c_do_switch_warnings): Likewise.
8064         * c-typeck.c (warning_init): Add one more parameter following
8065         'warning' function.
8066         (push_init_level): Update call to warning_init.
8067         (pop_init_level): Likewise.
8068         (add_pending_init): Likewise.
8069         (output_init_element: Likewise.
8070
8071 2008-02-26  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8072
8073         PR 28322
8074         * toplev.c (toplev_main): If there are warnings or error, print
8075         errors for ignored options.
8076         * opts.c (ignored_options): New static variable.
8077         (postpone_unknown_option_error): New.
8078         (print_ignored_options): New.
8079         (handle_option): Postpone errors for unknown -Wno-* options.
8080         * opts.h (print_ignored_options): Declare.
8081         
8082 2008-02-25  Richard Sandiford  <rsandifo@nildram.co.uk>
8083
8084         * config/mips/mips.md (loadgp_blockage, blockage): Change type
8085         to "ghost".
8086
8087 2008-02-25  Richard Guenther  <rguenther@suse.de>
8088
8089         Revert:
8090         2008-02-25  Richard Guenther  <rguenther@suse.de>
8091
8092         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8093         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8094         (lookup_decl_from_uid): Declare.
8095         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8096         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8097         (decl_for_uid_map): New global hashtable mapping DECL_UID
8098         to the decl tree.
8099         (init_ttree): Allocate it.
8100         (insert_decl_to_uid_decl_map): New helper function.
8101         (make_node_stat): Insert new decls into the map.
8102         (copy_node_stat): Likewise.
8103         (lookup_decl_from_uid): New function.
8104         (print_decl_for_uid_map_statistics): New helper.
8105         (dump_tree_statistics): Call it.
8106
8107         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8108         (referenced_var_iterator): Adjust.
8109         (FOR_EACH_REFERENCED_VAR): Adjust.
8110         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8111         (num_referenced_vars): Adjust.
8112         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8113         (first_referenced_var): Remove.
8114         (end_referenced_vars_p): Likewise.
8115         (next_referenced_var): Likewise.
8116         (referenced_var_iterator_set): New helper function.
8117         * tree-dfa.c (referenced_var_lookup): Adjust.
8118         (referenced_var_check_and_insert): Likewise.
8119         (remove_referenced_var): Likewise.
8120         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8121         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8122         (verify_call_clobbering): Likewise.
8123         (verify_memory_partitions): Likewise.
8124         (init_tree_ssa): Allocate bitmap instead of hashtable for
8125         referenced_vars.
8126         (delete_tree_ssa): Adjust.
8127         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8128         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8129         (compute_tag_properties): Likewise.
8130         (set_initial_properties): Likewise.
8131         (find_partition_for): Likewise.
8132         (update_reference_counts): Likewise.
8133         (dump_may_aliases_for): Likewise.
8134         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8135         (add_call_clobber_ops): Likewise.
8136         (add_call_read_ops): Likewise.
8137         (get_asm_expr_operands): Likewise.
8138         * tree-into-ssa.c (dump_decl_set): Likewise.
8139         (update_ssa): Likewise.
8140         * tree-sra.c (scan_function): Likewise.
8141         (decide_instantiations): Likewise.
8142         (scalarize_parms): Likewise.
8143         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8144         (dsa_named_for): Likewise.
8145         * tree-ssa-structalias.c (update_alias_info): Likewise.
8146         (merge_smts_into): Likewise.
8147
8148 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8149
8150         PR fortran/29549
8151         * doc/invoke.texi (-fcx-limited-range): Document new option.
8152         * toplev.c (process_options): Handle -fcx-fortran-rules.
8153         * common.opt: Add documentation for -fcx-fortran-rules.
8154
8155 2008-02-25  Janne Blomqvist  <jb@gcc.gnu.org>
8156
8157         PR c/35162
8158         * doc/invoke.texi (-fcx-limited-range): Correct to be in line with
8159         actual behaviour and C99.
8160         
8161 2008-02-26  Ben Elliston  <bje@au.ibm.com>
8162
8163         * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC): Define.
8164         (ASM_CPU_POWER6_SPEC): Likewise.
8165         (ASM_CPU_SPEC): Pass %(asm_cpu_power5) for -mcpu=power5.
8166         Likewise, pass %(asm_cpu_power6) for -mcpu=power6.
8167         (EXTRA_SPECS): Add asm_cpu_power5, asm_cpu_power6 spec strings.
8168
8169 2008-02-25  Richard Guenther  <rguenther@suse.de>
8170
8171         * tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
8172         * tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
8173         (lookup_decl_from_uid): Declare.
8174         * tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
8175         * tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
8176         (decl_for_uid_map): New global hashtable mapping DECL_UID
8177         to the decl tree.
8178         (init_ttree): Allocate it.
8179         (insert_decl_to_uid_decl_map): New helper function.
8180         (make_node_stat): Insert new decls into the map.
8181         (copy_node_stat): Likewise.
8182         (lookup_decl_from_uid): New function.
8183         (print_decl_for_uid_map_statistics): New helper.
8184         (dump_tree_statistics): Call it.
8185
8186         * tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
8187         (referenced_var_iterator): Adjust.
8188         (FOR_EACH_REFERENCED_VAR): Adjust.
8189         (FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
8190         (num_referenced_vars): Adjust.
8191         * tree-flow-inline.h (gimple_referenced_vars): Adjust.
8192         (first_referenced_var): Remove.
8193         (end_referenced_vars_p): Likewise.
8194         (next_referenced_var): Likewise.
8195         (referenced_var_iterator_set): New helper function.
8196         * tree-dfa.c (referenced_var_lookup): Adjust.
8197         (referenced_var_check_and_insert): Likewise.
8198         (remove_referenced_var): Likewise.
8199         * tree-ssa.c (verify_flow_insensitive_alias_info): Use
8200         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8201         (verify_call_clobbering): Likewise.
8202         (verify_memory_partitions): Likewise.
8203         (init_tree_ssa): Allocate bitmap instead of hashtable for
8204         referenced_vars.
8205         (delete_tree_ssa): Adjust.
8206         * tree-ssa-alias.c (mark_aliases_call_clobbered): Use
8207         FOR_EACH_REFERENCED_VAR_IN_BITMAP.
8208         (compute_tag_properties): Likewise.
8209         (set_initial_properties): Likewise.
8210         (find_partition_for): Likewise.
8211         (update_reference_counts): Likewise.
8212         (dump_may_aliases_for): Likewise.
8213         * tree-ssa-operands.c (add_virtual_operand): Likewise.
8214         (add_call_clobber_ops): Likewise.
8215         (add_call_read_ops): Likewise.
8216         (get_asm_expr_operands): Likewise.
8217         * tree-into-ssa.c (dump_decl_set): Likewise.
8218         (update_ssa): Likewise.
8219         * tree-sra.c (scan_function): Likewise.
8220         (decide_instantiations): Likewise.
8221         (scalarize_parms): Likewise.
8222         * tree-ssa-alias-warnings.c (build_reference_table): Likewise.
8223         (dsa_named_for): Likewise.
8224         * tree-ssa-structalias.c (update_alias_info): Likewise.
8225         (merge_smts_into): Likewise.
8226
8227 2008-02-25  Andreas Krebbel  <krebbel1@de.ibm.com>
8228
8229         PR target/35258
8230         * cse.c (cse_insn): Avoid creation of overlapping MEMs.
8231         * alias.c (nonoverlapping_memrefs_p): Export for use in other modules.
8232         * alias.h (nonoverlapping_memrefs_p): Likewise.
8233
8234 2008-02-25  Jan Beulich  <jbeulich@novell.com>
8235
8236         * Makefile.in: Also prefix uses of crt0.o and mcrt0.o with $(T).
8237         * config/i386/netware-libgcc.exp: Add __bswap?i2,
8238         __emultls_get_address, __emultls_register_common,
8239         __floatundi?f, and _Unwind_GetIPInfo.
8240         * config/i386/netware.c (gen_stdcall_or_fastcall_decoration):
8241         Sync with config/i386/winnt.c:gen_stdcall_or_fastcall_suffix().
8242         (gen_regparm_prefix): Likewise.
8243         (i386_nlm_encode_section_info): Sync with
8244         config/i386/winnt.c:i386_pe_encode_section_info().
8245         (i386_nlm_maybe_mangle_decl_assembler_name): New.
8246         i386_nlm_mangle_decl_assembler_name): New.
8247         (netware_override_options): New.
8248         * config/i386/netware.h (netware_override_options): Declare.
8249         (OVERRIDE_OPTIONS): Re-define to netware_override_options.
8250         (i386_nlm_mangle_decl_assembler_name): Declare.
8251         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
8252
8253 2008-02-25  Ben Elliston  <bje@au.ibm.com>
8254
8255         PR other/32948
8256         * c-decl.c (grokdeclarator): Remove unused local variables
8257         `typedef_type' and `type_as_written'.
8258         * bb-reorder.c
8259         (find_rarely_executed_basic_blocks_and_crossing_edges): Remove
8260         unused local variable `has_hot_blocks'.
8261         (fix_crossing_conditional_branches): Remove unused local variable
8262         `prev_bb'.
8263         
8264 2008-02-25  Uros Bizjak  <ubizjak@gmail.com>
8265
8266         PR middle-end/19984
8267         * builtins.def (BUILT_IN_NAN): Define as c99 builtin
8268         using DEF_C99_BUILTIN.
8269         (BUILT_IN_NANF): Ditto.
8270         (BUILT_IN_NANL): Ditto.
8271
8272 2008-02-25  Ayal Zaks  <zaks@il.ibm.com>
8273             Revital Eres  <eres@il.ibm.com>
8274
8275         * modulo-sched.c (calculate_must_precede_follow): Address TODO
8276         regarding the order of two dependent insns in the same row.
8277
8278 2008-02-25  Eric Botcazou  <ebotcazou@adacore.com>
8279
8280         * stor-layout.c (layout_decl): Do not bump the alignment of a
8281         bit-field to more than byte alignment if it is packed.
8282
8283 2008-02-24  David Edelsohn  <edelsohn@gnu.org>
8284
8285         * config/rs6000/rs6000.c (processor_costs): Add cache costs for
8286         e300c2 and e300c3.
8287
8288 2008-02-24  Diego Novillo  <dnovillo@google.com>
8289
8290         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01094.html
8291
8292         PR 33738
8293         * tree-vrp.c (vrp_evaluate_conditional): With
8294         -Wtype-limits, emit a warning when comparing against a
8295         constant outside the natural range of OP0's type.
8296         * c.opt (Wtype-limits): Move ...
8297         * common.opt (Wtype-limits): ... here.
8298
8299 2008-02-24  Edmar Wienskoski  <edmar@freescale.com>
8300
8301         * config.gcc (powerpc*-*-*): Add new cores e300c2 and e300c3.
8302         * config/rs6000/e300c2c3.md: New file.
8303         * config/rs6000/rs6000.c (processor_costs): Add new costs for
8304         e300c2 and e300c3.
8305         (rs6000_override_options): Add e300c2 and e300c3 cases to
8306         processor_target_table. Do not allow usage of Altivec or Spe
8307         with e300 cores. Initialize rs6000_cost for e300c2 and e300c3.
8308         (rs6000_issue_rate): Set issue rate for e300c2 and e300c3.
8309         * config/rs6000/rs6000.h (processor_type): Add
8310         PROCESSOR_PPCE300C2 and PROCESSOR_PPCE300C3.
8311         (ASM_CPU_SPEC): Add e300c2 and e300c3.
8312         * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce300c2
8313         and ppce300c3. Include e300c2c3.md.
8314
8315 2008-02-23  David Edelsohn  <edelsohn@gnu.org>
8316
8317         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Use STRICT_ALIGNMENT
8318         instead of TARGET_STRICT_ALIGN.
8319
8320 2008-02-23  Joseph Myers  <joseph@codesourcery.com>
8321
8322         * explow.c (memory_address): Assert that the generated address is
8323         valid.
8324
8325 2008-02-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
8326
8327         PR target/25477
8328         * config/darwin-protos.h: Add darwin_patch_builtins prototype.
8329         * config/darwin-ppc-ldouble-patch.def: New file.
8330         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): New macro.
8331         * config/rs6000/rs6000.c (rs6000_init_builtins): Call
8332         SUBTARGET_INIT_BUILTINS if defined.
8333         * config/darwin.c (darwin_patch_builtin, darwin_patch_builtins):
8334         New functions.
8335
8336 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8337
8338         PR rtl-opt/33512
8339         * simplify-rtx.c (simplify_binary_operation_1): Add simplification
8340         of (and X (ior (not X) Y) and (and (ior (not X) Y) X).
8341
8342 2008-02-23  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8343
8344         PR pch/35027
8345         * c-pch.c (c_common_valid_pch): Make the "too short to be a PCH
8346         file" warning condtional on -Winvalid-PCH.
8347
8348 2008-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
8349
8350         * expmed.c (extract_bit_field): Always use adjust_address for MEM.
8351
8352 2008-02-23  Uros Bizjak  <ubizjak@gmail.com>
8353
8354         PR target/22076
8355         PR target/34256 
8356         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use "!y" to
8357         prevent reload from using MMX registers.
8358         (*mov<mode>_internal): Ditto.
8359         (*movv2sf_internal_rex64): Ditto.
8360         (*movv2sf_internal): Ditto.
8361
8362 2008-02-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8363
8364         PR documentation/31569
8365         * doc/install.texi2html: Use makeinfo --no-number-sections.
8366
8367 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8368
8369         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check to
8370         ensure that we can address an entire entity > 8 bytes.  Don't
8371         generate reg+reg addressing for such data.
8372
8373 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8374
8375         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Don't overalign
8376         strings when optimizing for size, unless the target cares about
8377         alignment.
8378
8379 2008-02-22  Tom Tromey  <tromey@redhat.com>
8380
8381         * regclass.c (current_pass): Remove declaration.
8382
8383 2008-02-22  Anatoly Sokolov <aesok@post.ru>
8384
8385         * config/avr/libgcc.S (__RAMPZ__): Define.
8386         (__do_copy_data): Add for devices with 128KB code memory.
8387
8388 2008-02-22  Nathan Froyd  <froydnj@codesourcery.com>
8389
8390         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS):
8391         Use spe_abi.
8392         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
8393
8394 2008-02-22  Hans-Peter Nilsson  <hp@axis.com>
8395
8396         * config/cris/cris.h (REG_CLASS_FROM_LETTER): Recognize 'b' for
8397         GENNONACR_REGS.
8398
8399 2008-02-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8400
8401         PR c/19999
8402         * c-typeck.c (build_binary_op): Warn about floating point
8403         comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
8404
8405 2008-02-21  Janis Johnson  <janis187@us.ibm.com>
8406
8407         PR target/34526
8408         * config/rs6000/rs6000.c (rs6000_altivec_abi): Clarify comment.
8409         (rs6000_explicit_options): Split abi into spe_abi and altivec_abi,
8410         add vrsave.
8411         (rs6000_override_options): Set altivec_abi as default, not override,
8412         for 64-bit GNU/Linux; for 32-bit GNU/Linux default to altivec_abi for
8413         TARGET_ALTIVEC; default to TARGET_ALTIVEC_VRSAVE when AltiVec ABI
8414         is used; use new member spe_abi.
8415         (rs6000_handle_option): Set rs6000_explicit_options.vrsave; use
8416         spe_abi and altivec_abi.
8417
8418 2008-02-22  Tomas Bily  <tbily@suse.cz>
8419
8420         * tree-vectorizer.c (vect_is_simple_reduction): Fix comment typo.
8421
8422 2008-02-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8423
8424         PR bootstrap/35273
8425         * config.build (build_file_translate): Set to `CMD //c' only if
8426         it works.
8427         * Makefile.in (build_file_translate): Improve comment.
8428
8429 2008-02-21  Jan Hubicka  <jh@suse.cz>
8430
8431         * predict.def (PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL,
8432         PRED_TREE_OPCODE_POSITIVE, PRED_TREE_OPCODE_NONEQUAL, PRED_CALL,
8433         PRED_TREE_EARLY_RETURN, PRED_NULL_RETURN): Update.
8434
8435 2008-02-21  Michael Matz  <matz@suse.de>
8436
8437         PR target/35264
8438         * config/i386/i386.c (ix86_expand_branch): Add missing breaks.
8439
8440 2008-02-21  Uros Bizjak  <ubizjak@gmail.com>
8441
8442         * config/i386/i386.md (mov<mode>cc): Macroize expander from movsfcc,
8443         movdfcc and movxfcc using X87MODEF mode iterator and SSE_FLOAT_MODE_P
8444         as insn constraint.
8445         * config/i386/sse.md (<sse>_movup<ssemodesuffixf2c>): Macroize insn
8446         from sse_movups adn sse2_movupd using SSEMODEF2P mode iterator and
8447         SSE_VEC_FLOAT_MODE_P as insn constraint.
8448         (<sse>_movmskp<ssemodesuffixf2c>): Ditto from similar patterns.
8449         (sse4a_movnt<mode>): Macroize insn from sse4a_movntsf and
8450         sse4a_movntdf using MODEF mode iterator.
8451         (sse4a_vmmovnt<mode>): Macroize insn form sse4a_vmmovntv2df and
8452         sse4a_vmmovntv4sf using SSEMODEF2P mode iterator.
8453         (sse4_1_blendp<ssemodesuffixf2c>): Ditto from similar patterns.
8454         (sse4_1_blendvp<ssemodesuffixf2c>): Ditto.
8455         (sse4_1_dpp<ssemodesuffixf2c>): Ditto.
8456         (sse4_1_roundp<ssemodesuffixf2c>): Ditto.
8457         (sse4_1_rounds<ssemodesuffixf2c>): Ditto.
8458
8459 2008-02-21  Richard Guenther  <rguenther@suse.de>
8460
8461         * tree.def (PAREN_EXPR): New tree code.
8462         * fold-const.c (fold_unary): Remove PAREN_EXPR around constants
8463         and PAREN_EXPR.
8464         * tree-pretty-print.c (dump_generic_node): Handle PAREN_EXPR.
8465         * expr.c (expand_expr_real_1): Likewise.
8466         * tree-inline.c (estimate_num_insns_1): Likewise.
8467         * tree-complex.c (expand_complex_move): Likewise.
8468         * tree-vectorizer.c (vect_is_simple_use): Treat PAREN_EXPR (x)
8469         as plain x.
8470
8471 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8472
8473         PR target/35225
8474         * config/sh/sh.c (find_barrier): Don't go past 'from' argument.
8475
8476 2008-02-20  Kaz Kojima  <kkojima@gcc.gnu.org>
8477
8478         PR target/35190
8479         * config/sh/sh.md (jump_compact): Disable for crossing jumps.
8480
8481         * config/sh/sh.c (find_barrier): Don't go past
8482         NOTE_INSN_SWITCH_TEXT_SECTIONS note.
8483
8484 2008-02-20  DJ Delorie  <dj@redhat.com>
8485
8486         * config/h8300/h8300.md (insv): Force source operand to be a register.
8487
8488         * config/h8300/h8300.c (h8300_expand_epilogue): Emit return insn
8489         as a jump, not as a plain insn.
8490         
8491 2008-02-20  Seongbae Park <seongbae.park@gmail.com>
8492
8493         * doc/invoke.texi (Warning Options): Add new option
8494         -Wframe-larger-than=.
8495         (-Wframe-larger-than): Document.
8496
8497         * flags.h (warn_frame_larger_than, frame_larger_than_size):
8498         Add declarations for new option variables.
8499
8500         * final.c (final_start_function): Check the frame size
8501         before emission and issue a Wframe-larger-than warning.
8502
8503         * opts.c (warn_frame_larger_than, frame_larger_than_size):
8504         Add definitions for new option variables.
8505         (common_handle_option): Handle new option OPT_Wframe_larger_than_.
8506
8507         * common.opt (Wframe-larger-than=): New option.
8508
8509 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8510
8511         * config/i386/sse.md (<sse>_vmmul<mode>3): Fix typo in asm template.
8512         (<sse>_div<mode>3): Ditto.
8513         (<sse>_vmdiv<mode>3): Ditto.
8514         (<sse>_vmsqrt<mode>2): Ditto.
8515         (*smax<mode>3): Ditto.
8516         (sse5_frcz<mode>2): Ditto.
8517         (sse5_vmfrcz<mode>2): Ditto.  Use TARGET_SSE5 instead of TARGET_ROUND
8518         as insn constraint.
8519
8520 2008-02-20  Richard Guenther  <rguenther@suse.de>
8521
8522         PR middle-end/35265
8523         * builtins.c (validate_arg): If we want an INTEGER_TYPE,
8524         be happy with INTEGRAL_TYPE_P.
8525
8526 2008-02-20  Richard Guenther  <rguenther@suse.de>
8527
8528         * fold-const.c (split_tree): Associate floatig-point expressions
8529         if flag_associative_math is set.
8530
8531 2008-02-20  Richard Guenther  <rguenther@suse.de>
8532
8533         * tree.h (fold_real_zero_addition_p): Declare.
8534         * fold-const.c (fold_real_zero_addition_p): Export.
8535         * tree-ssa-reassoc.c (eliminate_using_constants): Also handle
8536         floating-point operations with zero and one.
8537
8538 2008-02-20  Paolo Bonzini  <bonzini@gnu.org>
8539
8540         * doc/install.texi: Correct references to CFLAGS, replacing them
8541         with BOOT_CFLAGS.  Document flags used during bootstrap for
8542         target libraries.
8543                                 
8544 2008-02-20  Uros Bizjak  <ubizjak@gmail.com>
8545
8546         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): New define.
8547         * config/i386/i386.md (*sse_setcc<mode>): Macroize from *sse_setccsf
8548         and *sse_setccdf using MODEF mode iterator and SSE_FLOAT_MODE_P as
8549         insn constraint.
8550         (smin<mode>3): Ditto from similar patterns.
8551         (smax<mode>3): Ditto.
8552         (*ieee_smin<mode>3): Ditto.
8553         (*ieee_smax<mode>3): Ditto.
8554         * config/i386/sse.md (sse): New mode attribute.
8555         (mov<mode>): Macroize expander from movv4sf and movv2df using
8556         SSEMODEF2P mode iterator.
8557         (<sse>_movnt<mode>): Ditto from similar patterns. Use
8558         SSE_VEC_FLOAT_MODE_P as insn constraint.
8559         (storent<mode>): Ditto.
8560         (storent<mode>): Macroize expander from storentsf and storentdf using
8561         MODEF mode iterator.
8562         (neg<mode>2): Macroize from negv4sf2 and negv2df2 using SSEMODEF2P
8563         mode iterator and SSE_VEC_FLOAT_MODE_P as insn constraint.
8564         (abs<mode>2): Ditto from similar patterns.
8565         (add<mode>3, *add<mode>3, <sse>_vmadd<mode>3): Ditto.
8566         (sub<mode>3, *sub<mode>3, <sse>_vmsub<mode>3): Ditto.
8567         (<sse>_div<mode>3, <sse>_vmdiv<mode>3): Ditto.
8568         (<sse>_vmsqrt<mode>2): Ditto.
8569         (smin<mode>3, *smin<mode>3_finite, *smin<mode>3)
8570         (<sse>_vmsmin<mode>3, *ieee_smin<mode>3): Ditto.
8571         (smax<mode>3, *smax<mode>3_finite, *smax<mode>3)
8572         (<sse>_vmsmax<mode>3, *ieee_smax<mode>3): Ditto.
8573         (<sse>_maskcmp<mode>3): Macroize from sse_maskcmpv4sf3,
8574         sse_maskcmpsf3, sse2_maskcmpv2df3 and sse2_maskcmpdf3 using SSEMODEF4
8575         mode iterator. Use SSE_FLOAT_MODE_P with SSE_VEC_FLOAT_MODE_P as
8576         insn constraint.
8577         (<sse>_comi): Macroize from sse_comi and sse2_comi using MODEF mode
8578         iterator and SSE_FLOAT_MODE_P as insn constraint.
8579         (<sse>_ucomi): Ditto from similar patterns.
8580         (<sse>_vmmaskcmp<mode>3): Macroize from sse_vmmaskcmpv4sf3 and
8581         sse2_vmmaskcmpv2df3 using SSEMODEF2P mode iterator and
8582         SSE_VEC_FLOAT_MODE_P as insn constraint.
8583         (vcond<mode>): Ditto from similar patterns.
8584         (and<mode>3, *and<mode>3): Ditto.
8585         (<sse>_nand<mode>3): Ditto.
8586         (ior<mode>3, *ior<mode>3): Ditto.
8587         (xor<mode>3, *xor<mode>3): Ditto.
8588         (*and<mode>3): Macroize from *andsf3 and *anddf3 using MODEF mode
8589         iterator and SSE_FLOAT_MODE_P as insn constraint.
8590         (*nand<mode>3): Ditto from similar patterns.
8591         (*ior<mode>3): Ditto.
8592         (*xor<mode>3): Ditto.
8593
8594 2008-02-20  Ira Rosen  <irar@il.ibm.com>
8595
8596         * config/spu/spu.md (vec_unpacku_hi_v8hi, vec_unpacku_lo_v8hi,
8597         vec_unpacks_hi_v8hi, vec_unpacks_lo_v8hi, vec_unpacku_hi_v16qi,
8598         vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi): Implement.
8599
8600 2008-02-19  Jan Hubicka  <jh@suse.cz>
8601
8602         * predict.c (tree_bb_level_predictions): Remove variable next
8603         mistakely introduced by previous commit.
8604
8605 2008-02-19  Jan Hubicka  <jh@suse.cz>
8606
8607         * predict.c (predict_paths_leading_to): Rewrite.
8608         (predict_paths_for_bb): New.
8609         (tree_bb_level_predictions): Update call of predict_paths_leading_to.
8610
8611 2008-02-19  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8612
8613         PR bootstrap/35218
8614         * Makefile.in (build_file_translate): New.
8615         (gcc-vers.texi): Use it for translating $(abs_srcdir).
8616         * config.build (build_file_translate): Set to `CMD //c' on MinGW.
8617         * configure.ac (build_file_translate): Substitute it.
8618         * configure: Regenerate.
8619
8620 2008-02-19  Jan Hubicka  <jh@suse.cz>
8621
8622         PR rtl-optimization/34408
8623         * see.c (see_def_extension_not_merged): Copy subreg so we don't have
8624         invalid sharing.
8625
8626 2008-02-19  Jan Hubicka  <jh@suse.cz>
8627
8628         PR middle-end/28779
8629         * tree-inline.c (estimate_num_insns_1): Fix counting of cost of
8630         call_expr.
8631
8632 2008-02-19  H.J. Lu  <hongjiu.lu@intel.com>
8633
8634         PR Ada/35186
8635         * config/i386/i386-modes.def: Revert the last DI alignment
8636         change until Ada people can look into it.
8637
8638 2008-02-19  Nick Clifton  <nickc@redhat.com>
8639
8640         * opts.c (print_specific_help): Fix typo in --help text.
8641
8642 2008-02-19  Jakub Jelinek  <jakub@redhat.com>
8643
8644         PR target/35239
8645         * config/i386/cpuid.h (__cpuid, __get_cpuid_max): Use special
8646         32-bit inline asm without asm alternatives for host GCC < 3.0.
8647
8648 2008-02-19  Richard Guenther  <rguenther@suse.de>
8649
8650         PR tree-optimization/34989
8651         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Re-structure.
8652         Allow propagation to INDIRECT_REF if we can simplify only.
8653
8654 2008-02-19  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8655
8656         * c-common.c (warn_for_collisions_1): Use appropriate option when
8657         warning.
8658
8659 2008-02-19  Nick Clifton  <nickc@redhat.com>
8660
8661         PR other/31349
8662         * opts.c (undocumented_msg): Leave blank unless checking is enabled.
8663         (handle_options): Fix indentation.
8664         (print_filtered_help): If no language-specific options were
8665         displayed tell the user how to list all the options supported by
8666         the language's front-end.
8667         (print_specific_help): Fix indentation and remove duplicate line.
8668         (common_handle_option): Handle the -v option.
8669         For --help enable the display of undocumented options if the -v
8670         switch has been included on the command line.
8671         For --help= check for overlaps in the arguments between the option
8672         classes and the language names and issue a warning when they
8673         cannot be disambiguated.
8674         * c.opt (v): Pass on to the common option handler.
8675
8676 2008-02-19  Revital Eres  <eres@il.ibm.com> 
8677
8678         * modulo-sched.c (sms_schedule): Change dump message when
8679         create_ddg function fails.
8680         (try_scheduling_node_in_cycle): Rename row to cycle.
8681         (print_partial_schedule): Rename CYCLE to ROW.
8682
8683 2008-02-19  Christian Bruel  <christian.bruel@st.com>
8684             Zdenek Dvorak  <ook@ucw.cz>
8685
8686         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check step alignment.
8687
8688 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8689
8690         PR target/33555
8691         * config/i386/i386.md (*x86_movsicc_0_m1_se): New insn pattern.
8692         (*x86_movdicc_0_m1_se): Ditto.
8693
8694 2008-02-19  Uros Bizjak  <ubizjak@gmail.com>
8695
8696         * config/i386/sfp-machine.h (__gcc_CMPtype): New typedef.
8697         (CMPtype): Define as __gcc_CMPtype.
8698         * config/rs6000/sfp-machine.h (__gcc_CMPtype): New typedef.
8699         (CMPtype): Define as __gcc_CMPtype.
8700
8701 2008-02-19  Hans-Peter Nilsson  <hp@axis.com>
8702
8703         Support valgrind 3.3 for --enable-checking=valgrind.
8704         * system.h: Consolidate ENABLE_VALGRIND_CHECKING-dependent defines
8705         here.
8706         [!VALGRIND_MAKE_MEM_NOACCESS]: Define as VALGRIND_MAKE_NOACCESS.
8707         [!VALGRIND_MAKE_MEM_DEFINED]: Define as VALGRIND_MAKE_READABLE.
8708         [!VALGRIND_MAKE_MEM_UNDEFINED]: Define as VALGRIND_MAKE_WRITABLE.
8709         * ggc-common.c: Remove ENABLE_VALGRIND_CHECKING-dependent defines.
8710         Replace use of VALGRIND_MAKE_READABLE, VALGRIND_MAKE_WRITABLE, and
8711         VALGRIND_MAKE_NOACCESS with VALGRIND_MAKE_MEM_DEFINED,
8712         VALGRIND_MAKE_MEM_UNDEFINED, and VALGRIND_MAKE_MEM_NOACCESS
8713         respectively.
8714         * ggc-zone.c: Similar.
8715         * ggc-page.c: Similar.
8716
8717 2008-02-19  Paul Brook  <paul@codesourcery.com>
8718
8719         PR target/35071
8720         * config/arm/ieee754-df.S: Fix do_it typo.
8721         * config/arm/ieee754-sf.S: Fix do_it typo.
8722
8723 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8724
8725         PR target/35189
8726         * config/i386/i386.c (OPTION_MASK_ISA_MMX_SET): New.
8727         (OPTION_MASK_ISA_3DNOW_SET): Likewise.
8728         (OPTION_MASK_ISA_SSE_SET): Likewise.
8729         (OPTION_MASK_ISA_SSE2_SET): Likewise.
8730         (OPTION_MASK_ISA_SSE3_SET): Likewise.
8731         (OPTION_MASK_ISA_SSSE3_SET): Likewise.
8732         (OPTION_MASK_ISA_SSE4_1_SET): Likewise.
8733         (OPTION_MASK_ISA_SSE4_2_SET): Likewise.
8734         (OPTION_MASK_ISA_SSE4_SET): Likewise.
8735         (OPTION_MASK_ISA_SSE4A_SET): Likewise.
8736         (OPTION_MASK_ISA_SSE5_SET): Likewise.
8737         (OPTION_MASK_ISA_3DNOW_A_UNSET): Likewise.
8738         (OPTION_MASK_ISA_MMX_UNSET): Updated.
8739         (OPTION_MASK_ISA_3DNOW_UNSET): Updated.
8740         (OPTION_MASK_ISA_SSE_UNSET): Likewise.
8741         (OPTION_MASK_ISA_SSE3_UNSET): Likewise.
8742         (OPTION_MASK_ISA_SSSE3_UNSET): Likewise.
8743         (OPTION_MASK_ISA_SSE4_1_UNSET): Likewise.
8744         (OPTION_MASK_ISA_SSE4_2_UNSET): Likewise.
8745         (OPTION_MASK_ISA_SSE4A_UNSET): Likewise.
8746         (OPTION_MASK_ISA_SSE5_UNSET): Likewise.
8747         (OPTION_MASK_ISA_SSE4): Removed.
8748         (ix86_handle_option): Turn on bits in ix86_isa_flags and
8749         ix86_isa_flags_explicit with OPTION_MASK_ISA_XXX_SET for -mXXX.
8750         (override_options): Don't turn on implied SSE/MMX bits in
8751         ix86_isa_flags.
8752
8753 2008-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8754
8755         * config/i386/i386-modes.def: Use 4 byte alignment on DI for
8756         32bit host.
8757
8758 2008-02-18  Joey Ye  <joey.ye@intel.com>
8759
8760         PR middle-end/34921
8761         * tree-nested.c (insert_field_into_struct): Set type alignment
8762         to field alignment if the former is less than the latter.
8763
8764 2008-02-18  Jakub Jelinek  <jakub@redhat.com>
8765
8766         * BASE-VER: Set to 4.4.0.
8767
8768 2008-02-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8769
8770         * doc/c-tree.texi: Use @dots{} and @enddots{} where appropriate.
8771         * doc/cfg.texi: Likewise.
8772         * doc/extend.texi: Likewise.
8773         * doc/gty.texi: Likewise.
8774         * doc/invoke.texi: Likewise.
8775         * doc/loop.texi: Likewise.
8776         * doc/md.texi: Likewise.
8777         * doc/passes.texi: Likewise.
8778         * doc/rtl.texi: Likewise.
8779         * doc/sourcebuild.texi: Likewise.
8780         * doc/tm.texi: Likewise.
8781         * doc/tree-ssa.texi: Likewise.
8782
8783 2008-02-17  Richard Guenther  <rguenther@suse.de>
8784
8785         PR middle-end/35227
8786         * tree-complex.c (init_parameter_lattice_values): Handle parameters
8787         without default definition.
8788
8789 2008-02-17  Richard Guenther  <rguenther@suse.de>
8790
8791         PR tree-optimization/35231
8792         * tree-vrp.c (register_edge_assert_for): Do not assume A == 0
8793         if A | B != 1.
8794
8795 2008-02-17  Uros Bizjak  <ubizjak@gmail.com>
8796
8797         Revert:
8798         2008-02-15  Uros Bizjak  <ubizjak@gmail.com>    
8799         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8800         libgcc_cmp_return mode.
8801
8802 2008-02-16  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8803
8804         PR c/28368
8805         * doc/invoke.texi (-std): Clarify description of -std= and -ansi.
8806
8807 2008-02-16  Ralf Corsepius  <ralf.corsepius@rtems.org>
8808
8809         * config/m68k/t-rtems (M68K_MLIB_CPU): Add 5208, 5307, 5407, 5475
8810         multilibs.
8811
8812 2008-02-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8813
8814         * doc/c-tree.texi: Use `@.' where appropriate.
8815         * doc/extend.texi: Likewise.
8816         * doc/install.texi: Likewise.
8817         * doc/invoke.texi: Likewise.
8818         * doc/loop.texi: Likewise.
8819         * doc/makefile.texi: Likewise.
8820         * doc/md.texi: Likewise.
8821         * doc/passes.texi: Likewise.
8822         * doc/standards.texi: Likewise.
8823         * doc/tm.texi: Likewise.
8824
8825 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8826
8827         PR middle-end/35196
8828         * omp-low.c (expand_omp_for_generic): Don't initialize fd->v
8829         in entry_bb.
8830         (expand_omp_for_static_nochunk): Initialize fd->v in seq_start_bb
8831         rather than in entry_bb.
8832
8833 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8834
8835         * config/i386/sfp-machine.h (CMPtype): Define as typedef using
8836         libgcc_cmp_return mode.
8837
8838 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
8839
8840         PR middle-end/35130
8841         * tree-nested.c (convert_call_expr): Put FRAME.* vars into
8842         OMP_CLAUSE_SHARED rather than OMP_CLAUSE_FIRSTPRIVATE clause.
8843
8844 2008-02-15  Richard Guenther  <rguenther@suse.de>
8845             Zdenek Dvorak  <ook@ucw.cz>
8846
8847         PR tree-optimization/35164
8848         * tree-flow.h (stmt_references_abnormal_ssa_name): Declare.
8849         * tree-dfa.c (stmt_references_abnormal_ssa_name): New function.
8850         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
8851         Only propagate addresses which do not have abnormal SSA_NAMEs
8852         in their operands.
8853
8854 2008-02-15  Joseph Myers  <joseph@codesourcery.com>
8855
8856         PR target/35088
8857         * config/m68k/m68k.h (DWARF_CIE_DATA_ALIGNMENT): Define.
8858
8859 2008-02-15  Jan Hubicka  <jh@suse.cz>
8860
8861         PR middle-end/35149
8862         * ipa.c (cgraph_remove_unreachable_nodes): Clear local.inlinable flag.
8863
8864 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8865
8866         PR middle-end/34621
8867         * function.c (pad_to_arg_alignment): Remove test for STACK_BOUNDARY
8868         when calculating alignment_pad.
8869
8870 2008-02-15  Uros Bizjak  <ubizjak@gmail.com>
8871
8872         * config/i386/i386.h (CLEAR_RATIO): Use MIN macro.
8873         (WIDEST_HARDWARE_FP_SIZE): Use LONG_DOUBLE_TYPE_SIZE define.
8874         * config/i386/darwin.h (PREFERRED_STACK_BOUNDARY): Use MAX macro
8875         and STACK_BOUNDARY define.
8876
8877 2008-02-14  Danny Smith  <dannysmith@users.sourceforge.net>
8878
8879         PR preprocessor/35061
8880         * c-pragma.c (handle_pragma_pop_macro): Check that
8881         pushed_macro_table has been allocated.
8882
8883 2008-02-14  Eric Botcazou  <ebotcazou@adacore.com>
8884
8885         PR middle-end/35136
8886         * gimplify.c (force_gimple_operand_bsi): Revert 2008-02-12 change.
8887         (force_gimple_operand): Likewise.
8888         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Add new cases
8889         for TARGET_MEM_REF and CONVERT_EXPR/NON_LVALUE_EXPR/NOP_EXPR.
8890         Also recurse on the operand for regular VIEW_CONVERT_EXPRs.
8891         (find_interesting_uses_address): Check addressability and alignment
8892         of the base expression only after substituting bases of IVs into it.
8893
8894 2008-02-14  Michael Matz  <matz@suse.de>
8895
8896         PR target/34930
8897         * function.c (instantiate_virtual_regs_in_insn): Reload address
8898         before falling back to reloading the whole operand.
8899
8900 2008-02-14  Andreas Krebbel  <krebbel1@de.ibm.com>
8901
8902         * config/s390/s390.c (s390_mainpool_start): Emit the pool
8903         before the first section switch note.
8904
8905 2008-02-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8906
8907         * doc/bugreport.texi: Update copyright years.
8908         * doc/c-tree.texi: Likewise.
8909         * doc/cfg.texi: Likewise.
8910         * doc/cpp.texi: Likewise.
8911         * doc/cppinternals.texi: Likewise.
8912         * doc/fragments.texi: Likewise.
8913         * doc/frontends.texi: Likewise.
8914         * doc/gcc.texi: Likewise.
8915         * doc/gty.texi: Likewise.
8916         * doc/hostconfig.texi: Likewise.
8917         * doc/implement-c.texi: Likewise.
8918         * doc/libgcc.texi: Likewise.
8919         * doc/loop.texi: Likewise.
8920         * doc/makefile.texi: Likewise.
8921         * doc/options.texi: Likewise.
8922         * doc/passes.texi: Likewise.
8923         * doc/rtl.texi: Likewise.
8924         * doc/sourcebuild.texi: Likewise.
8925         * doc/standards.texi: Likewise.
8926         * doc/tree-ssa.texi: Likewise.
8927         * doc/trouble.texi: Likewise.
8928
8929         * doc/extend.texi: Use @: or add comma where appropriate.
8930         * doc/invoke.texi: Likewise.
8931         * doc/tm.texi: Likewise.
8932
8933 2008-02-14  Alan Modra  <amodra@bigpond.net.au>
8934
8935         PR target/34393
8936         * config/rs6000/rs6000.md (restore_stack_block): Force operands[1]
8937         to a reg.
8938
8939 2008-02-14  Jesper Nilsson  <jesper.nilsson@axis.com>
8940
8941         * doc/md.texi (clz, ctz): Add reference.
8942         * doc/rtl.texi (clz, ctz): Likewise.
8943
8944 2008-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8945
8946         PR other/35148
8947         * Makefile.in (gcc-vers.texi): Use abs_srcdir for the value of
8948         srcdir.
8949
8950 2008-02-13  Andreas Krebbel  <krebbel1@de.ibm.com>
8951
8952         * config/s390/s390.c (struct constant_pool): New field
8953         emit_pool_after added.
8954         (s390_mainpool_start): Set the emit_pool_after flag according
8955         to the section switch notes.
8956         (s390_mainpool_finish): Consider emit_pool_after when emitting
8957         the literal pool at the end of the function.
8958         (s390_chunkify_start): Force literal pool splits at section
8959         switch notes.
8960
8961 2008-02-13  Michael Matz  <matz@suse.de>
8962
8963         PR debug/35065
8964         * var-tracking.c (clobber_variable_part): Correctly traverse the
8965         list.
8966
8967 2008-02-13  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8968
8969         PR 29673
8970         * doc/invoke.texi (Debugging Options): Remove -fdump-tree-inlined.
8971         Add -fdump-ipa-inline.
8972         * tree-dump.c (dump_files): Remove tree-inlined dump.
8973         * tree-pass.h (tree_dump_index): Remove TDI_inlined.
8974         
8975 2008-02-12  Richard Guenther  <rguenther@suse.de>
8976
8977         PR tree-optimization/35171
8978         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Deal with
8979         default defs.
8980
8981 2008-02-12  Richard Guenther  <rguenther@suse.de>
8982
8983         PR middle-end/35163
8984         * fold-const.c (fold_widened_comparison): Use get_unwidened in
8985         value-preserving mode.  Disallow final truncation.
8986
8987 2008-02-12  Eric Botcazou  <ebotcazou@adacore.com>
8988
8989         PR middle-end/35136
8990         * gimplify.c (force_gimple_operand_bsi): Move SSA renaming
8991         code from here to...
8992         (force_gimple_operand): ...here.
8993
8994 2008-02-12  Jakub Jelinek  <jakub@redhat.com>
8995
8996         PR c++/35144
8997         * tree-sra.c (sra_build_assignment): fold_convert SRC if copying
8998         non-compatible pointers.
8999         (generate_element_copy): If SRC and DST are RECORD_TYPEs with
9000         different FIELD_DECLs, try harder by comparing field offsets, sizes
9001         and types.
9002
9003         PR inline-asm/35160
9004         * function.c (match_asm_constraints_1): Don't replace the same input
9005         multiple times.
9006
9007 2008-02-12  Anatoly Sokolov <aesok@post.ru>
9008
9009         * config/avr/avr.h (AVR_HAVE_RAMPZ): Define.
9010         * config/avr/avr.c (expand_prologue): Save RAMPZ register.
9011         (expand_epilogue): Restore RAMPZ register.
9012         * config/avr/avr.md (RAMPZ_ADDR): New constant.
9013
9014 2008-02-11  Kai Tietz  <kai.tietz@onevision.com>
9015
9016         * config/i386/cygwin.asm: (__alloca): Correct calling
9017         convention and alignment.
9018         (__chkstk): Force 8 byte stack alignment.
9019
9020 2008-02-11  Uros Bizjak  <ubizjak@gmail.com>
9021             Richard Guenther  <rguenther@suse.de>
9022
9023         PR tree-optimization/33992
9024         * tree-ssa-loop-im.c (rewrite_bittest): Fixup the type of
9025         the zero we compare against.
9026
9027 2008-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
9028
9029         PR libfortran/35063
9030         * gthr-win32.h (__gthread_mutex_destroy_function): New function
9031         to CloseHandle after unlocking to prevent accumulation of handle
9032         count.
9033
9034 2008-02-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9035
9036         PR middle_end/34150
9037         * pa.c (legitimize_pic_address): Add REG_EQUAL note on sets with a
9038         pic_label_operand source.  Similarly, add a REG_LABEL_OPERAND note
9039         and update LABEL_NUSES during and after reload.
9040
9041 2008-02-08  Steven Bosscher  <stevenb.gcc@gmail.com>
9042
9043         PR middle-end/34627
9044         * combine.c (simplify_if_then_else): Make sure the comparison is
9045         against const0_rtx when simplifying to (abs x) or (neg (abs X)).
9046
9047 2008-02-08  Richard Sandiford  <rsandifo@nildram.co.uk>
9048
9049         PR bootstrap/35051
9050         * double-int.h: Don't include gmp.h for GENERATOR_FILEs.
9051         (mpz_set_double_int, mpz_get_double_int): Hide from GENERATOR_FILEs.
9052         * real.h: Don't include gmp.h or mpfr.h for GENERATOR_FILEs.
9053         (real_from_mpfr, mpfr_from_real): Hide from GENERATOR_FILEs.
9054         * tree.h (get_type_static_bounds): Likewise.
9055
9056 2008-02-08  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9057
9058         * doc/invoke.texi (Option Summary, C++ Dialect Options)
9059         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9060         Make -Wfoo language annotations match what the compiler outputs.
9061
9062 2008-02-08  Sa Liu  <saliu@de.ibm.com>
9063
9064         * config/spu/spu-builtins.def: Fixed wrong parameter type in spu 
9065         intrinsics spu_convts, spu_convtu, spu_convtf.
9066
9067 2008-02-08  Hans-Peter Nilsson  <hp@axis.com>
9068
9069         * doc/extend.texi (Function Attributes) <noinline>: Mention
9070         asm ("") as method to keep calls.
9071
9072 2008-02-07  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9073
9074         PR other/32754
9075         * doc/options.texi (Options): Replace references to opts.sh with
9076         optc-gen.awk.
9077         * opts-common.c: Likewise.
9078         * optc-gen.awk: Likewise.
9079         
9080 2008-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9081
9082         * config/s390/s390.h (FUNCTION_ARG_REGNO_P): Fix fprs for 64 bit.
9083
9084 2008-02-07  Richard Henderson  <rth@redhat.com>
9085
9086         PR rtl-opt/33410
9087         * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use an
9088         EXPR_LIST for the REG_EQUAL instead of a comparison with a 
9089         funny mode.
9090
9091 2008-02-07  Uros Bizjak  <ubizjak@gmail.com>
9092
9093         PR tree-optimization/35085
9094         * tree-ssa-reassoc.c (rewrite_expr_tree): Enable destructive update
9095         for operand entry oe2 in addition to operand entry oe3 in order to
9096         expose more opportunities for vectorizer sum reduction.
9097
9098 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9099
9100         PR other/35107
9101         * Makefile.in (LIBS): Remove $(GMPLIBS).
9102         (cc1-dummy, cc1): Add $(GMPLIBS).
9103
9104 2008-02-06  Jan Hubicka  <jh@suse.cz>
9105
9106         PR target/23322
9107         * i386.md (moddf_integer): Do not produce partial memory stalls for
9108         targets where it hurts.
9109
9110 2008-02-06  Uros Bizjak  <ubizjak@gmail.com>
9111
9112         PR target/35083
9113         * optabs.c (expand_float): Do not check for decimal modes when
9114         expanding unsigned integer through signed conversion.
9115
9116 2008-02-06  Nick Clifton  <nickc@redhat.com>
9117
9118         * config/stormy16/stormy16.md (eqbranchsi): Replace a match_dup
9119         inside the clobber with a match_operand and duplicated operand
9120         number in the constraint.
9121         (ineqbranchsi): Delete redundant comment.
9122
9123 2008-02-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9124
9125         * config/arm/rtems-elf.h (TARGET_OS_CPP_BUILTINS): Add 
9126         builtin_define ("__USE_INIT_FINI__").
9127         * config/h8300/t-rtems (MULTILIB_OPTION,MULTILIB_DIRNAMES): Add
9128         -msx multilibs.
9129         * gthr-rtems.h: Remove __GTHREAD_MUTEX_INIT.
9130
9131 2008-02-06  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9132
9133         PR documentation/30330
9134         * doc/invoke.texi (C++ Dialect Options)
9135         (Objective-C and Objective-C++ Dialect Options, Warning Options):
9136         For each warning option -Wfoo that allows -Wno-foo, ensure both
9137         -Wfoo and -Wno-foo are listed in the option index.  Fix index
9138         entry of -Wswitch-default, index -Wnormalized= including the
9139         `=', and -Wlarger-than-@var{len} including @var{len}.
9140
9141 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9142
9143         * config/i386/i386.md (floatunssisf2): Use
9144         ix86_expand_convert_uns_sisf_sse also for TARGET_SSE.
9145         (floatunssi<mode>2): Rename from floatunssisf2 and floatunssidf2.
9146         Macroize expander using MODEF mode iterator.
9147
9148 2008-02-05  Diego Novillo  <dnovillo@google.com>
9149
9150         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00140.html
9151
9152         PR 33738
9153         * tree-vrp.c (vrp_evaluate_conditional): Revert fix for PR 33738.
9154
9155 2008-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9156
9157         PR other/35070
9158         * toplev.c (print_version): Honor `indent' for GMP/MPFR warnings.
9159
9160 2008-02-05  H.J. Lu  <hongjiu.lu@intel.com>
9161
9162         PR target/35084
9163         * config/i386/i386.c (ix86_function_sseregparm): Add an arg
9164         to indicate if a message should be generated.
9165         (init_cumulative_args): Updated.
9166         (function_value_32): Likewise.
9167
9168 2008-02-05  Joseph Myers  <joseph@codesourcery.com>
9169
9170         * doc/include/texinfo.tex: Update to version 2008-02-04.16.
9171
9172 2008-02-05  Uros Bizjak  <ubizjak@gmail.com>
9173
9174         PR target/35083
9175         * config/i386/i386.md (floatunsisf2): Enable for TARGET_SSE_MATH only.
9176         Call ix86_expand_convert_uns_sisf_sse for TARGET_SSE2.
9177
9178 2008-02-04  Diego Novillo  <dnovillo@google.com>
9179
9180         http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
9181
9182         PR 33738
9183         * tree-vrp.c (vrp_evaluate_conditional): With
9184         -Wtype-limits, emit a warning when comparing against a
9185         constant outside the natural range of OP0's type.
9186
9187 2008-02-04  Richard Guenther  <rguenther@suse.de>
9188
9189         PR middle-end/33631
9190         * expr.c (count_type_elements): Give for unions instead of
9191         guessing.
9192
9193 2008-02-04  Richard Guenther  <rguenther@suse.de>
9194
9195         PR middle-end/35043
9196         * gimplify.c (gimplify_init_ctor_eval): Convert array indices
9197         to TYPE_DOMAINs base type instead of using bitsizetype here.
9198
9199 2008-02-03  Jason Merrill  <jason@redhat.com>
9200
9201         * print-tree.c (print_node) [CONSTRUCTOR]: Print elements.
9202
9203 2008-02-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9204
9205         PR other/29972
9206         * doc/invoke.texi (C++ Dialect Options, Optimize Options)
9207         (HPPA Options, i386 and x86-64 Options, IA-64 Options)
9208         (RS/6000 and PowerPC Options): Fix typos and markup.
9209         * doc/passes.texi (Tree-SSA passes): Likewise.
9210
9211 2008-02-02  Michael Matz  <matz@suse.de>
9212
9213         PR target/35045
9214         * postreload-gcse.c (record_last_reg_set_info_regno): Renamed
9215         from record_last_reg_set_info.
9216         (record_last_reg_set_info): Take an RTX argument, iterate over all
9217         constituent hardregs.
9218         (record_last_set_info, record_opr_changes): Change calls to
9219         new signature or to record_last_reg_set_info_regno.
9220
9221 2008-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
9222
9223         * doc/extend.texi (X86 Built-in Functions): Fix grammar.
9224
9225 2008-02-01  Hans-Peter Nilsson  <hp@axis.com>
9226
9227         PR rtl-optimization/34773
9228         * reg-notes.def (EQUAL): Mention significance of combination of
9229         REG_EQUAL and REG_RETVAL.
9230         * fwprop.c (try_fwprop_subst): Don't add REG_EQUAL to an
9231         insn that has a REG_RETVAL.
9232
9233 2008-02-01  Roger Sayle  <roger@eyesopen.com>
9234
9235         PR bootstrap/33781
9236         * configure.ac (--enable-fixed-point): Disable unless explicitly
9237         requested on IRIX.
9238         * configure: Regenerate.
9239
9240 2008-02-01  Richard Guenther  <rguenther@suse.de>
9241
9242         PR other/35042
9243         * invoke.texi (-finline-limit): Remove no longer true parts
9244         of the documentation.  Note that there is no default value.
9245
9246 2008-02-01  Andrew Pinski  <pinskia@gmail.com>
9247             Mark Mitchell  <mark@codesourcery.com>
9248             Ben Elliston  <bje@au.ibm.com>
9249
9250         PR c/29326
9251         * doc/extend.texi (Other Builtins): Document.
9252
9253 2008-01-31  Tom Browder <tom.browder@gmail.com>
9254
9255         * doc/c-tree.texi (Types): Fix grammar.
9256         (Expression trees): Ditto.
9257         * doc/passes.texi (Tree-SSA passes): Ditto.
9258         
9259         * doc/configterms.texi (Configure Terms): Fix typo.
9260         * doc/cpp.texi (Common Predefined Macros): Ditto.
9261         * doc/md.texi (Machine Constraints): Ditto.
9262         
9263         * doc/makefile.texi (Makefile): Add comma.
9264
9265 2008-01-31  Tom Browder  <tom.browder@gmail.com>
9266             Gerald Pfeifer  <gerald@pfeifer.com>
9267         
9268         * doc/sourcebuild.texi (Front End): Remove references to CVS
9269         and CVSROOT/modules.
9270         (Texinfo Manuals): Replace reference to CVS by one to SVN.
9271         (Back End): Remove reference to CVS.
9272
9273 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9274
9275         PR target/34900
9276         * config/mips/mips.c (gen_load_const_gp): New function, taking a
9277         comment from...
9278         (mips16_gp_pseudo_reg): ...here.
9279         * config/mips/mips.md (load_const_gp): Replace with...
9280         (load_const_gp_<mode>): ...this :P-based insn.
9281
9282 2008-01-31  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9283
9284         * doc/invoke.texi (-ansi): Mention explicitly corresponding -std=
9285         options. Minor fixes.
9286         (-std): Move reference to standards closer to where language
9287         standards are first mentioned.
9288         
9289 2008-01-31  Richard Sandiford  <rsandifo@nildram.co.uk>
9290
9291         PR rtl-optimization/34995
9292         * reload.c (alternative_allows_const_pool_ref): Take an rtx
9293         parameter and return a bool.  If the rtx parameter is nonnull,
9294         check that it satisfies an EXTRA_MEMORY_CONSTRAINT.
9295         (find_reloads): Update call accordingly.  Pass the new operand
9296         if it needed no address reloads, otherwise pass null.
9297
9298 2008-01-30  Richard Henderson  <rth@redhat.com>
9299
9300         PR c/34993
9301         * tree.c (build_type_attribute_qual_variant): Skip TYPE_DOMAIN
9302         for unbounded arrays.
9303
9304 2008-01-30  Silvius Rus  <rus@google.com>
9305
9306         * config/i386/xmmintrin.h (_mm_prefetch): Add const to first arg.
9307
9308 2008-01-30  Jan Hubicka  <jh@suse.cz>
9309
9310         PR target/34982
9311         * i386.c (init_cumulative_args): Use real function declaration when
9312         calling locally.
9313
9314 2008-01-30  Richard Sandiford  <rsandifo@nildram.co.uk>
9315
9316         PR rtl-optimization/34998
9317         * global.c (build_insn_chain): Treat non-subreg_lowpart
9318         SUBREGs of pseudos as clobbering all the words covered by the
9319         SUBREG, not just all the bytes.
9320         * ra-conflict.c (clear_reg_in_live): Likewise.  Take the
9321         original df_ref rather than an extract parameter.
9322         (global_conflicts): Update call accordingly.
9323
9324 2008-01-30  Andreas Krebbel  <krebbel1@de.ibm.com>
9325
9326         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): Rearrange
9327         the overflow check to make it easier to read.
9328         (__fixtfdi): Change the type of the ll member in union
9329         long_double to UDItype_x.
9330
9331 2008-01-30  Jakub Jelinek  <jakub@redhat.com>
9332
9333         PR middle-end/34969
9334         * cgraph.h (cgraph_update_edges_for_call_stmt): New prototype.
9335         * cgraph.c (cgraph_update_edges_for_call_stmt): New function.
9336         * tree-inline.c (fold_marked_statements): Call
9337         cgraph_update_edges_for_call_stmt if folding a call statement.
9338         * cgraphunit.c (verify_cgraph_node): Set cfun to this_cfun for
9339         debug_generic_stmt calls, reset it back afterwards.
9340
9341         PR c/35017
9342         * c-decl.c (start_decl): Don't pedwarn about TREE_READONLY
9343         static decls.
9344         * c-typeck.c (build_external_ref): Don't pedwarn about
9345         static vars in current function's scope.
9346
9347 2008-01-29  Joseph Myers  <joseph@codesourcery.com>
9348
9349         * config.gcc (i[34567]86-*-nto-qnx*): Remove deprecation.
9350
9351 2008-01-29  Bernhard Fischer  <aldot@gcc.gnu.org>
9352
9353         PR c/35002
9354         * ipa-struct-reorg.c: Fix spelling.
9355         * params.def: Ditto.
9356
9357 2008-01-29  Richard Guenther  <rguenther@suse.de>
9358
9359         PR middle-end/35006
9360         * tree-inline.h (struct copy_body_data): Add remapping_type_depth
9361         field.
9362         * tree-inline.c (remap_type): Increment remapping_type_depth
9363         around remapping types.
9364         (copy_body_r): Only add referenced variables if they are referenced
9365         from code, not types.
9366
9367 2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
9368
9369         PR c++/34055
9370         PR c++/34103
9371         PR c++/34219
9372         PR c++/34606
9373         PR c++/34753
9374         PR c++/34754
9375         PR c++/34755
9376         PR c++/34919
9377         PR c++/34961
9378         * c-pretty-print.c (pp_c_type_qualifier_list): Don't try to print
9379         qualifiers for an ERROR_MARK_NODE or a NULL_TREE.
9380
9381 2008-01-28  Andy Hutchinson   <hutchinsonandy@netscape.net>
9382
9383         PR target/34412
9384         * config/avr/avr.c (expand_prologue): Use correct QI mode frame 
9385         pointer for tiny stack.
9386
9387 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9388
9389         * doc/tree-ssa.texi: Add cindex PHI nodes and improve wording.
9390
9391 2008-01-28  Bernhard Fischer  <aldot@gcc.gnu.org>
9392
9393         * config/vx-common.h: Fix typo in comment.
9394
9395 2008-01-28  Ian Lance Taylor  <iant@google.com>
9396
9397         PR c++/34862
9398         PR c++/33407
9399         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
9400         coalesce pointers if they have different DECL_NO_TBAA_P values.
9401         * tree-ssa-copy.c (may_propagate_copy): Don't propagate copies
9402         between variables with different DECL_NO_TBAA_P values.
9403
9404 2008-01-28  Nathan Froyd  <froydnj@codesourcery.com>
9405
9406         PR 31535
9407         * config/rs6000/rs6000.c (small_data_operand): Vectors and floats
9408         are not legitimate small data references on SPE targets.
9409
9410 2008-01-28  David Daney  <ddaney@avtrex.com>
9411
9412         * doc/install.texi (mips-*-*): Recommend binutils 2.18.
9413
9414 2008-01-28  David Daney  <ddaney@avtrex.com>
9415
9416         * doc/install.texi (--disable-libgcj-bc):  Reword documentation.
9417
9418 2008-01-27  Joseph Myers  <joseph@codesourcery.com>
9419
9420         * config.gcc (strongarm*-*, ep9312*-*, xscale*-*, parisc*-*,
9421         m680[012]0-*, *-*-beos*, *-*-kaos*, *-*-linux*aout*,
9422         *-*-linux*libc1*, *-*-solaris2.[0-6], *-*-solaris2.[0-6].*,
9423         *-*-sysv*, *-*-windiss*, alpha*-*-unicosmk*, cris-*-aout,
9424         hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
9425         i[34567]86-sequent-ptx4*, i[34567]86-*-nto-qnx*,
9426         i[34567]86-*-sco3.2v5*, i[34567]86-*-uwin*, powerpc-*-chorusos*,
9427         vax-*-bsd*, vax-*-ultrix*): Mark obsolete.
9428
9429 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9430
9431         * basic-block.h (condjump_equiv_p): Fix comment.
9432
9433 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9434
9435         * tree-pretty-print.c (print_generic_decl, print_generic_stmt,
9436         print_generic_stmt_indented): Fix comment.
9437
9438 2008-01-27  Bernhard Fischer  <aldot@gcc.gnu.org>
9439
9440         * configure.ac (__stack_chk_fail): Add detecion for availability
9441         of SSP in uClibc by checking if __UCLIBC_HAS_SSP__ is defined.
9442         * configure: Regenerate.
9443
9444 2008-01-26  Maxim Kuvyrkov  <maxim@codesourcery.com>
9445
9446         PR middle-end/34688
9447         * final.c (output_addr_const): Handle TRUNCATE.
9448
9449 2008-01-26  Zdenek Dvorak  <ook@ucw.cz>
9450
9451         PR target/34711
9452         * tree-ssa-loop-ivopts.c (comp_cost): New type.
9453         (zero_cost, infinite_cost): New constants.
9454         (struct cost_pair): Change type of cost to comp_cost.
9455         (struct iv_ca): Change type of cand_use_cost and cost to comp_cost.
9456         (new_cost, add_costs, sub_costs, compare_costs, infinite_cost_p):
9457         New functions.
9458         (set_use_iv_cost, force_expr_to_var_cost, force_var_cost,
9459         split_address_cost, ptr_difference_cost, difference_cost,
9460         get_computation_cost_at, get_computation_cost,
9461         determine_use_iv_cost_generic, determine_use_iv_cost_address,
9462         determine_use_iv_cost_condition, determine_use_iv_costs,
9463         cheaper_cost_pair, iv_ca_recount_cost, iv_ca_set_no_cp,
9464         iv_ca_set_cp, iv_ca_cost, iv_ca_new, iv_ca_dump, iv_ca_extend,
9465         iv_ca_narrow, iv_ca_prune, try_improve_iv_set, find_optimal_iv_set):
9466         Change type of cost to comp_cost.
9467         (determine_iv_cost): Increase cost of non-original ivs, instead
9468         of decreasing the cost of original ones.
9469         (get_address_cost): Indicate the complexity of the addressing mode 
9470         in comp_cost.
9471         (try_add_cand_for): Prefer using ivs not specific to some object.
9472         * tree-flow.h (force_expr_to_var_cost): Declaration removed.
9473
9474 2008-01-26  Peter Bergner  <bergner@vnet.ibm.com>
9475             Janis Johnson  <janis187@us.ibm.com>
9476
9477         PR target/34814
9478         * doc/tm.texi (TARGET_EXPAND_TO_RTL_HOOK): Document.
9479         (TARGET_INSTANTIATE_DECLS): Likewise.
9480         * target.h (expand_to_rtl_hook): New target hook.
9481         (instantiate_decls): Likewise.
9482         * function.c (instantiate_decl): Make non-static.  Rename to...
9483         (instantiate_decl_rtl): ... this.
9484         (instantiate_expr): Use instantiate_decl_rtl.
9485         (instantiate_decls_1): Likewise.
9486         (instantiate_decls): Likewise.
9487         (instantiate_virtual_regs: Call new instantiate_decls taget hook.
9488         * function.h (instantiate_decl_rtl): Add prototype.
9489         * cfgexpand.c (target.h): New include.
9490         (tree_expand_cfg): Call new expand_to_rtl_hook target hook.
9491         * target-def.h (TARGET_EXPAND_TO_RTL_HOOK): New define.
9492         (TARGET_INSTANTIATE_DECLS): Likewise.
9493         (TARGET_INITIALIZER): New target hooks added.
9494         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
9495         New prototype.
9496         * config/rs6000/rs6000.c (tree-flow.h): New include.
9497         (machine_function): Add sdmode_stack_slot field.
9498         (rs6000_alloc_sdmode_stack_slot): New function.
9499         (rs6000_instantiate_decls): Likewise.
9500         (rs6000_secondary_memory_needed_rtx): Likewise.
9501         (rs6000_check_sdmode): Likewise.
9502         (TARGET_EXPAND_TO_RTL_HOOK): Target macro defined.
9503         (TARGET_INSTANTIATE_DECLS): Likewise.
9504         (rs6000_hard_regno_mode_ok): Allow SDmode.
9505         (num_insns_constant): Likewise.  Handle _Decimal32 constants.
9506         (rs6000_emit_move): Handle SDmode.
9507         (function_arg_advance): Likewise.
9508         (function_arg): Likewise.
9509         (rs6000_gimplify_va_arg): Likewise.  Add special handling of
9510         SDmode var args for 32-bit compiles.
9511         (rs6000_secondary_reload_class): Handle SDmode.
9512         (rs6000_output_function_epilogue): Likewise.
9513         (rs6000_function_value): Simplify if statement.
9514         (rs6000_libcall_value): Likewise.
9515         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Handle SDmode.
9516         (SECONDARY_MEMORY_NEEDED_RTX): Add define.
9517         * config/rs6000/dfp.md (movsd): New define_expand and splitter.
9518         (movsd_hardfloat): New define_insn.
9519         (movsd_softfloat): Likewise.
9520         (movsd_store): Likewise.
9521         (movsd_load): Likewise.
9522         (extendsddd2): Likewise.
9523         (extendsdtd2): Likewise.
9524         (truncddsd2): Likewise.
9525         (movdd_hardfloat64): Fixup comment.
9526         (UNSPEC_MOVSD_LOAD): New constant.
9527         (UNSPEC_MOVSD_STORE): Likewise.
9528
9529 2008-01-26  Jakub Jelinek  <jakub@redhat.com>
9530
9531         PR c++/34965
9532         * c-pretty-print.c (pp_c_exclusive_or_expression): Handle
9533         TRUTH_XOR_EXPR.
9534         (pp_c_logical_and_expression): Handle TRUTH_AND_EXPR.
9535         (pp_c_logical_or_expression): Handle TRUTH_OR_EXPR.
9536         (pp_c_expression): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
9537         and TRUTH_XOR_EXPR.
9538
9539 2008-01-26  David Edelsohn  <edelsohn@gnu.org>
9540
9541         PR target/34794
9542         * config.gcc: Separate AIX 5.3 from AIX 6.1.
9543         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
9544         __LONGDOUBLE128 too.
9545         * config/rs6000/aix61.h: New file.
9546
9547 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9548
9549         PR rtl-optimization/34959
9550         * optabs.c (expand_unop): In libcall notes, give ffs, clz, ctz,
9551         popcount and parity rtxes the same mode as their operand.
9552         Truncate or extend the result to the return value's mode
9553         if necessary.
9554
9555 2008-01-26  Richard Sandiford  <rsandifo@nildram.co.uk>
9556
9557         PR target/34981
9558         * config/mips/mips-protos.h (mips_expand_call): Return an rtx.
9559         * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Rename FAKE_CALL_REGNO
9560         to GOT_VERSION_REGNUM.
9561         (CALL_REALLY_USED_REGISTERS): Set the GOT_VERSION_REGNUM entry to 0.
9562         (EPILOGUE_USES): Include GOT_VERSION_REGNUM if TARGET_USE_GOT.
9563         * config/mips/mips.c (mips_emit_call_insn): New function.
9564         (mips_call_tls_get_addr): Call mips_expand_call directly.
9565         (mips16_copy_fpr_return_value): Use mips_emit_call_insn rather than
9566         emit_call_insn.
9567         (mips16_build_call_stub): Likewise.  Return the call insn or null.
9568         (mips_expand_call): Update the call to mips16_build_call_stub
9569         accordingly and a remove redundant condition.  Assert that MIPS16
9570         stubs do not use lazy binding.  Use mips_emit_call_insn and return
9571         the call insn.
9572         (mips_extra_live_on_entry): Include GOT_VERSION_REGNUM if
9573         TARGET_USE_GOT.
9574         (mips_hard_regno_mode_ok_p): Allow SImode for GOT_VERSION_REGNUM.
9575         (mips_avoid_hazard): Remove hazard_set handling.
9576         * config/mips/mips.md (UNSPEC_EH_RECEIVER): Rename to...
9577         (UNSPEC_RESTORE_GP): ...this.
9578         (UNSPEC_SET_GOT_VERSION, UNSPEC_UPDATE_GOT_VERSION): New constants.
9579         (FAKE_CALL_REGNO): Rename to...
9580         (GOT_VERSION_REGNUM): ...this.
9581         (type): Add "ghost" value.  Add an associated insn reservation.
9582         (hazard_set): Remove.
9583         (exception_receiver): Rename to...
9584         (restore_gp): ...this and update the unspec identifier accordingly.
9585         (exception_receiver, nonlocal_got_receiver): New expanders.
9586         (load_call<mode>): Use GOT_VERSION_REGNUM.  Don't set
9587         FAKE_CALL_REGNO.  Remove hazard_set attribute.
9588         (set_got_version, update_got_version): New patterns.
9589
9590 2008-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
9591
9592         PR target/34970
9593         * config/i386/cygming.h (ASM_OUTPUT_LABELREF): Define.
9594
9595 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9596
9597         PR other/31955
9598         * doc/install.texi2html: Generate gcc-vers.texi.
9599
9600 2008-01-25  DJ Delorie  <dj@redhat.com>
9601
9602         * config/m32c/m32c.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
9603
9604 2008-01-25  Joseph Myers  <joseph@codesourcery.com>
9605
9606         * config/c4x: Remove directory.
9607         * config.gcc (crx-*, mt-*): Mark obsolete.
9608         (c4x-*, tic4x-*, c4x-*-rtems*, tic4x-*-rtems*, c4x-*, tic4x-*,
9609         h8300-*-rtemscoff*, ns32k-*-netbsdelf*, ns32k-*-netbsd*,
9610         sh-*-rtemscoff*): Remove cases.
9611         * defaults.h (C4X_FLOAT_FORMAT): Remove.
9612         * real.c (encode_c4x_single, decode_c4x_single,
9613         encode_c4x_extended, decode_c4x_extended, c4x_single_format,
9614         c4x_extended_format): Remove.
9615         * real.h (c4x_single_format, c4x_extended_format): Remove.
9616         * doc/extend.texi (interrupt, naked): Remove mention of attributes
9617         on C4x.
9618         (Pragmas): Remove comment about c4x pragmas.
9619         * doc/install.texi (c4x): Remove target-specific instructions.
9620         * doc/invoke.texi (TMS320C3x/C4x Options): Remove.
9621         * doc/md.texi (Machine Constraints): Remove C4x documentation.
9622         * doc/tm.texi (MEMBER_TYPE_FORCES_BLK, c_register_pragma): Do not
9623         refer to C4x source files as examples.
9624         (C4X_FLOAT_FORMAT): Remove documentation.
9625
9626 2008-01-25  Bernd Schmidt  <bernd.schmidt@analog.com>
9627
9628         * config/bfin/bfin.c (override_options): Reorder tests so that
9629         flag_pic gets enabled for -msep-data.
9630
9631 2008-01-25  Richard Guenther  <rguenther@suse.de>
9632
9633         PR middle-end/32244
9634         * expr.c (expand_expr_real_1): Reduce result of LSHIFT_EXPR
9635         to its bitfield precision if required.
9636
9637 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9638
9639         PR middle-end/33880
9640         * tree-nested.c (walk_omp_for): New function.
9641         (convert_nonlocal_reference, convert_local_reference): Call
9642         walk_omp_for on OMP_FOR.
9643         (convert_call_expr): Call walk_body on OMP_FOR's
9644         OMP_FOR_PRE_INIT_BODY.
9645
9646 2008-01-25  Richard Guenther  <rguenther@suse.de>
9647
9648         PR tree-optimization/34966
9649         * tree-ssa-math-opts.c (execute_cse_sincos_1): For all but
9650         default defs and PHI_NODEs we have to insert after the
9651         defining statement.
9652
9653 2008-01-24  Nick Clifton  <nickc@redhat.com>
9654
9655         * config/stormy16/stormy16-lib2.c (MIN_UNITS_PER_WORD):
9656         Provide a default definition.
9657         (LIBGCC2_UNITS_PER_WORD): Likewise.
9658
9659         * config/stormy16/stormy16.c: Include df.h for the prototype
9660         for df_regs_ever_live_p.
9661         (xstormy16_expand_builtin_va_start): Convert the stack offset
9662         into a component_ref and then use POINTER_PLUS_EXPR to add it
9663         to the incoming_virtual_args_rtx.
9664         (xstormy16_gimplify_va_arg_expr): Rename to
9665         xstormy16_gimplify_va_arg_expr.
9666         Use POINTER_PLUS_EXPR when performing pointer arithmetic.
9667         (TARGET_GIMPLIFY_VA_ARG_EXPR): Use renamed
9668         xstormy16_gimplify_va_arg_expr.
9669         Fix up some formatting issues.
9670
9671         * config/stormy16/stormy16.c: (xstormy16_carry_plus_operand):
9672         Move to predicates.md.
9673         (xs_hi_general_operand): Likewise.
9674         (xs_hi_nonmemory_operand): Likewise.
9675         * config/stormy16/predicates.md:
9676         (xstormy16_carry_plus_operand): New predicate.
9677         (xs_hi_general_operand): New predicate.
9678         (xs_hi_nonmemory_operand): New predicate.
9679         * config/stormy16/stormy16-protos.h:
9680         (xstormy16_carry_plus_operand): Delete prototype.
9681         (xs_hi_general_operand): Likewise.
9682         (xs_hi_nonmemory_operand): Likewise.
9683
9684         * config/storm16/stormy16.md (addhi3): Remove earlyclobber
9685         modifiers as they are no longer needed and they can trigger
9686         reload spill failures.
9687
9688         * config/storm16/stormy16.md (ineqbranchsi): Replace match_dup
9689         with a match_operand in order to help reload.
9690
9691         * config/storm16/stormy16.md (movhi_internal): Replace 'r'
9692         constraint with 'e' for the 8th alternative as this version of
9693         the mov.w instruction only accepts the lower 8 registers.
9694
9695 2008-01-25  Uros Bizjak  <ubizjak@gmail.com>
9696
9697         PR target/34856
9698         * simplifx-rtx.c (simplify_const_binary_operation) [VEC_CONCAT]:
9699         Consider only CONST_INT, CONST_DOUBLE and CONST_FIXED as constant
9700         vector elements.
9701
9702 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
9703
9704         PR middle-end/33333
9705         * gimplify.c (gimplify_omp_for): Gimplify OMP_FOR_PRE_BODY.
9706
9707 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9708
9709         * ipa-struct-reorg.c (remove_str_allocs_in_func, remove_str_allocs):
9710         New functions.
9711         (remove_structure): Update allocations list before removing structure.
9712         
9713 2008-01-25  Golovanevsky Olga  <olga@il.ibm.com>
9714
9715         * ipa-struct-reorg.c (is_safe_cond_expr, 
9716         create_new_stmts_for_cond_expr): Use integer_zerop function,
9717         that recognize not only zero-pointer, but zero-integer too.
9718
9719 2008-01-25  Ben Elliston  <bje@au.ibm.com>
9720
9721         PR other/22232
9722         * fixproto: Escape "." in sed expression that strips leading "./".
9723
9724 2008-01-24  H.J. Lu  <hongjiu.lu@intel.com>
9725
9726         PR driver/34904
9727         * gcc.c (SWITCH_OK): Removed.
9728         (SWITCH_LIVE): Changed to bit.
9729         (SWITCH_FALSE): Likewise.
9730         (SWITCH_IGNORE): Likewise.
9731         (switchstr): Change live_cond to unsigned int.
9732         (process_command): Replace SWITCH_OK with 0.
9733         (do_self_spec): Likewise.
9734         (set_collect_gcc_options): Check the SWITCH_IGNORE bit.
9735         (give_switch): Likewise.
9736         (used_arg): Likewise.
9737         (do_spec_1): Set the SWITCH_IGNORE bit.
9738         (check_live_switch): Check both SWITCH_LIVE and SWITCH_FALSE
9739         bits.  Set the SWITCH_LIVE bit.
9740
9741 2008-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
9742
9743         * config/s390/s390.h (MOVE_RATIO): Define new target macro.
9744
9745 2008-01-24  Richard Sandiford  <rsandifo@nildram.co.uk>
9746
9747         PR tree-optimization/34472
9748         * ipa-struct-reorg.c (safe_cond_expr_check): Change the DATA
9749         parameter to a "bool *" and set *DATA to false if there is
9750         an unsafe access.  Do not delete the structure here.
9751         (check_cond_exprs): Delete it here instead.
9752         (check_cond_exprs, exclude_cold_structs): Do not increase
9753         I when removing a structure.
9754
9755 2008-01-24  Uros Bizjak  <ubizjak@gmail.com>
9756
9757         PR target/34856
9758         * config/i386/i386.c (ix86_expand_vector_init): Consider only
9759         CONST_INT, CONST_DOUBLE and CONST_FIXED as constant vector elements.
9760
9761 2008-01-24  Jakub Jakub Jelinek  <jakub@redhat.com>
9762
9763         PR middle-end/34934
9764         * tree-stdarg.c (reachable_at_most_once): Use VEC vector instead of
9765         a fixed vector for stack.
9766
9767 2008-01-24  Ben Elliston  <bje@au.ibm.com>
9768
9769         PR c++/25701
9770         * doc/gcc.texi (Software development): Add a direntry for g++.
9771         
9772 2008-01-23  Hans-Peter Nilsson  <hp@axis.com>
9773
9774         * config/cris/cris.h (CC1PLUS_SPEC, OPTIMIZATION_OPTIONS): Drop
9775         stale and straggling -fforce-addr comments above.
9776
9777         * config/cris/cris.h (CRIS_SUBTARGET_VERSION, TARGET_VERSION): Don't
9778         define.
9779         * config/cris/linux.h (CRIS_SUBTARGET_VERSION): Don't define.
9780         * config/cris/aout.h (CRIS_SUBTARGET_VERSION): Don't define.
9781
9782 2008-01-23  Michael Matz  <matz@suse.de>
9783
9784         PR debug/34895
9785         * dwarf2out.c (force_type_die): Use modified_type_die instead of
9786         gen_type_die.
9787
9788 2008-01-23  Andreas Krebbel  <krebbel1@de.ibm.com>
9789
9790         * ipa-struct-reorg.c (create_new_malloc): Use pointer type as
9791         malloc result type.
9792
9793 2008-01-23 Anatoly Sokolov <aesok@post.ru>
9794
9795         * config/avr/avr.c (avr_current_arch): New variable.
9796         (avr_arch_types): Add 'avr31' and 'avr51' entries.
9797         (avr_arch): Add 'ARCH_AVR31' and 'ARCH_AVR51'.
9798         (avr_mcu_types): Add 'avr31' and 'avr51' architectures.
9799         (avr_override_options): Init 'avr_current_arch'. 
9800         (base_arch_s): Move from here...
9801         * config/avr/avr.h (base_arch_s): ... here. Add new members 
9802         'have_elpm', 'have_elpmx', 'have_eijmp_eicall', 'reserved'. Rename 
9803         'mega' to 'have_jmp_call'.
9804         (TARGET_CPU_CPP_BUILTINS): Define "__AVR_HAVE_JMP_CALL__", 
9805         "__AVR_HAVE_RAMPZ__",   "__AVR_HAVE_ELPM__" and  "__AVR_HAVE_ELPMX__"
9806         macros.
9807         (LINK_SPEC, CRT_BINUTILS_SPECS, ASM_SPEC): Add 'avr31' and 'avr51' 
9808         architectures.
9809         * config/avr/t-avr (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, 
9810         MULTILIB_MATCHES): (Ditto.).
9811
9812 2008-01-23  Richard Guenther  <rguenther@suse.de>
9813
9814         PR middle-end/31529
9815         * cgraphunit.c (cgraph_reset_node): Always mark the node
9816         not reachable if it is not queued already.
9817
9818 2008-01-23  Bernd Schmidt  <bernd.schmidt@analog.com>
9819
9820         * config/bfin/bfin-protos.h (WA_RETS, ENABLE_WA_RETS): New macros.
9821         * config/bfin/bfin.c (bfin_cpus): Add WA_RETS everywhere.
9822         (cputype_selected): New static variable.
9823         (bfin_handle_option): Set it if -mcpu is used.
9824         (override_option): Select default set of workarounds if no cpu type
9825         selected on the command line.
9826         (workaround_rts_anomaly): Only run if ENABLE_WA_RETS.
9827
9828         From  Michael Frysinger  <michael.frysinger@analog.com>
9829         * config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
9830         BFIN_CPU_BF547, BFIN_CPU_BF523, BFIN_CPU_BF524, and BFIN_CPU_BF526.
9831
9832         * config/bfin/elf.h (LIB_SPEC): Use proper linker script
9833         for bf547, bf523, bf524, and bf526.
9834         * config/bfin/bfin.c (bfin_cpus[]): Add bf547,  bf523, bf524, and
9835         bf526.
9836         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
9837         __ADSPBF523__ for bf523, __ADSPBF524__ for bf524,
9838         __ADSPBF526__ for bf526, __ADSPBF52x__ for all three, as well as
9839         __ADSPBF547__ and __ADSPBF54x__ for bf547.
9840         * doc/invoke.texi (Blackfin Options): Document that
9841         -mcpu now accept bf547, bf523, bf524, and bf526.
9842
9843 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9844
9845         PR rtl-optimization/34628
9846         * combine.c (try_combine): Stop and undo after the first combination
9847         if an autoincrement side-effect on the first insn has effectively
9848         been lost.
9849
9850 2008-01-22  David Edelsohn  <edelsohn@gnu.org>
9851
9852         PR target/34529
9853         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
9854         Offset addresses are not valid for Altivec or paired float modes.
9855
9856 2008-01-22  Jakub Jelinek  <jakub@redhat.com>
9857
9858         PR c++/34607
9859         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for
9860         if DECL_INITIAL (decl) is error_mark_node.
9861
9862         PR c++/34914
9863         * c-common.c (handle_vector_size_attribute): Only allow
9864         integral, scalar float and fixed point types.  Handle OFFSET_TYPE
9865         the same way as pointer, array etc. types.
9866         * tree.c (reconstruct_complex_type): Handle OFFSET_TYPE.
9867
9868         PR c++/34917
9869         * tree.c (build_type_attribute_qual_variant): Call
9870         build_qualified_type if attributes are equal, but quals are not.
9871
9872 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9873
9874         PR 32102
9875         * doc/invoke.texi (-Wall): -Wall enables -Wstrict-overflow=1.
9876         * flags.h (warn_strict_aliasing): Remove.
9877         (warn_strict_overflow): Remove.
9878         * opts.c (warn_strict_aliasing): Remove.
9879         (warn_strict_overflow): Remove.
9880         * c-opts.c (c_common_handle_option): -Wall only sets
9881         -Wstrict-aliasing or -Wstrict-overflow if they are uninitialized.
9882         (c_common_post_options): Give default values to -Wstrict-aliasing
9883         and -Wstrict-overflow if they are uninitialized.
9884         * common.opt (Wstrict-aliasing): Specify Var and Init.
9885         (Wstrict-overflow): Likewise.
9886
9887 2008-01-22  Kenneth Zadeck  <zadeck@naturalbridge.com>
9888
9889         PR rtl-optimization/26854
9890         PR rtl-optimization/34400
9891         PR rtl-optimization/34884
9892         * ddg.c (create_ddg_dep_from_intra_loop_link): Use
9893         DF_RD->gen.
9894         * df.h (df_changeable_flags.DF_RD_NO_TRIM): Deleted
9895         (df_rd_bb_info.expanded_lr_out): Deleted
9896         * loop_invariant.c (find_defs): Deleted DF_RD_NO_TRIM flag.
9897         * loop_iv.c (iv_analysis_loop_init): Ditto.  * df-problems.c
9898         (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
9899         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
9900         Removed code to allocate, initialize or free expanded_lr_out.
9901         (df_rd_bb_local_compute_process_def): Restructured to make more
9902         understandable.
9903         (df_rd_confluence_n): Removed code to no apply invalidate_by_call
9904         sets if the sets are being trimmed.
9905
9906 2008-01-22  H.J. Lu  <hongjiu.lu@intel.com>
9907
9908         PR bootstrap/32287
9909         * configure.ac (ld_vers): Support GNU linker version xx.xx.*
9910         (as_vers): Likewise.
9911         * configure: Regenerated.
9912
9913 2008-01-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9914
9915         PR middle-end/33092
9916         * tree-pass.h (pass_build_alias): New pass.
9917         * tree-ssa-alias.c (gate_build_alias): New.
9918         (pass_build_alias): New.
9919         * passes.c (init_optimization_passes): Add pass_build_alias after
9920         pass_create_structure_vars.
9921
9922 2008-01-22  Wolfgang Gellerich  <gellerich@de.ibm.com>
9923
9924         * config/s390/s390.h (S390_TDC_POSITIVE_NORMALIZED_NUMBER):
9925         Renamed to S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER.
9926         (S390_TDC_NEGATIVE_NORMALIZED_NUMBER): Renamed to
9927         S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER.
9928         (S390_TDC_POSITIVE_DENORMALIZED_NUMBER): Renamed to
9929         S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER.
9930         (S390_TDC_NEGATIVE_DENORMALIZED_NUMBER): Renamed to
9931         S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER.
9932         (S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): New constant.
9933         (S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): New constant.
9934         (S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): New constant.
9935         (S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): New constant.
9936         * config/s390/s390.md (FP_ALL): New mode iterator.
9937         (_d): New mode attribute.
9938         ("*signbit<mode>2>"): Changed mode of first operand.
9939         ("isinf<mode>2"): Changed mode of first operand.
9940         ("*TDC_insn"): Adaptation for DFP modes.
9941
9942 2008-01-22  Ben Elliston  <bje@au.ibm.com>
9943
9944         * tree.c (check_qualified_type): Improve function description.
9945
9946 2008-01-21  Jason Merrill  <jason@redhat.com>
9947
9948         PR c++/34196
9949         * tree.h (TRY_CATCH_IS_CLEANUP): New macro.
9950         * tree-eh.c (honor_protect_cleanup_actions): Strip TRY_CATCH_EXPR
9951         if it is set.
9952
9953 2008-01-21  DJ Delorie  <dj@redhat.com>
9954
9955         * doc/tm.texi (HARD_REGNO_NREGS): Note that this macro must not
9956         return zero.
9957
9958 2008-01-21  Richard Guenther  <rguenther@suse.de>
9959
9960         PR middle-end/34856
9961         * tree-cfg.c (verify_expr): Allow all invariant expressions
9962         instead of just constant class ones as reference argument.
9963         * tree-ssa-loop-im.c (for_each_index): Handle CONSTRUCTOR
9964         like any other constant.
9965         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
9966
9967 2008-01-21  H.J. Lu  <hongjiu.lu@intel.com>
9968
9969         * regmove.c (fixup_match_1): Update call crossed frequencies.
9970
9971 2008-01-21  Richard Guenther  <rguenther@suse.de>
9972
9973         PR c/34885
9974         * tree-inline.c (setup_one_parameter): Deal with mismatched
9975         types using a VIEW_CONVERT_EXPR.
9976
9977 2008-01-21  Alon Dayan  <alond@il.ibm.com>
9978             Olga Golovanevsky  <olga@il.ibm.com>
9979         
9980         PR tree-optimization/34701
9981         * ipa-struct-reorg.c (gen_size): Fix the malloc parameter calculation
9982         when the structure size is not a power of 2.
9983
9984 2008-01-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
9985
9986         * doc/install.texi: Add doc for --enable-checking=df.
9987         
9988 2008-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
9989
9990         PR rtl-optimization/34808
9991         * emit-rtl.c (try_split): Handle REG_RETVAL notes.
9992
9993 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
9994
9995         * global.c (find_reg): Only compute EH_RETURN_DATA_REGNO once per
9996         input.
9997
9998 2008-01-19  Kenneth Zadeck  <zadeck@naturalbridge.com>
9999
10000         PR rtl-optimization/26854
10001         PR rtl-optimization/34400
10002         * ddg.c (create_ddg_dep_from_intra_loop_link): Do not use
10003         DF_RD->gen.
10004         * df.h (df_changeable_flags.DF_RD_NO_TRIM): New.
10005         (df_rd_bb_info.expanded_lr_out): New.
10006         * loop_invariant.c (find_defs): Added DF_RD_NO_TRIM flag.
10007         * loop_iv.c (iv_analysis_loop_init): Ditto.
10008         * df-problems.c (df_rd_free_bb_info, df_rd_alloc, df_rd_confluence_n,
10009         df_rd_bb_local_compute, df_rd_transfer_function, df_rd_free):
10010         Added code to allocate, initialize or free expanded_lr_out.
10011         (df_rd_bb_local_compute_process_def): Restructured to make
10012         more understandable.
10013         (df_rd_confluence_n): Add code to do nothing with fake edges and
10014         code to no apply invalidate_by_call sets if the sets are being trimmed.
10015         (df_lr_local_finalize): Renamed to df_lr_finalize.
10016         (df_live_local_finalize): Renamed to df_live_finalize.
10017
10018 2008-01-20  Richard Sandiford  <rsandifo@nildram.co.uk>
10019
10020         PR target/34831
10021         * config/mips/mips.md (div<mode>3): Use <recip_condition> when
10022         deciding whether to use reciprocal instructions.
10023
10024 2008-01-19  Uros Bizjak  <ubizjak@gmail.com>
10025
10026         * dwarf2out.c (dwarf2out_switch_text_section): Do not call
10027         dwarf2out_note_section_used if cold_text_section is NULL.
10028
10029 2008-01-19  Jakub Jelinek  <jakub@redhat.com>
10030
10031         PR gcov-profile/34610
10032         * tree-cfg.c (make_edges): Mark both outgoing edges from
10033         OMP_CONTINUE and from OMP_FOR as EDGE_ABNORMAL.
10034         * omp-low.c (expand_omp_for): Clear EDGE_ABNORMAL bits
10035         from OMP_FOR and OMP_CONTINUE outgoing edges.
10036
10037         * tree-profile.c (tree_profiling): Return early if
10038         cfun->after_tree_profile != 0.  Set cfun->after_tree_profile
10039         at the end.
10040         * omp-low.c (expand_omp_parallel): Copy after_tree_profile
10041         from cfun to child_cfun.
10042         * function.h (struct function): Add after_tree_profile bit.
10043
10044 2008-01-19 Anatoly Sokolov <aesok@post.ru>
10045
10046         * config/avr/avr.S (_exit): Disable interrupt.
10047
10048 2008-01-18  Kenneth Zadeck  <zadeck@naturalbridge.com>
10049             Steven Bosscher  <stevenb.gcc@gmail.com>
10050
10051         PR rtl-optimization/26854
10052         PR rtl-optimization/34400
10053         * df-problems.c (df_live_scratch): New scratch bitmap.
10054         (df_live_alloc): Allocate df_live_scratch when doing df_live.
10055         (df_live_reset): Clear the proper bitmaps.
10056         (df_live_bb_local_compute): Only process the artificial defs once
10057         since the order is not important.
10058         (df_live_init): Init the df_live sets only with the variables
10059         found live by df_lr.
10060         (df_live_transfer_function): Use the df_lr sets to prune the
10061         df_live sets as they are being computed.  
10062         (df_live_free): Free df_live_scratch.
10063
10064 2008-01-18  Ian Lance Taylor  <iant@google.com>
10065
10066         * common.opt: Add fmerge-debug-strings.
10067         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test
10068         flag_merge_debug_strings rather than flag_merge_constants.
10069         * doc/invoke.texi (Option Summary): Mention
10070         -fmerge-debug-strings.
10071         (Debugging Options): Document -fmerge-debug-strings.
10072
10073 2008-01-18  Ian Lance Taylor  <iant@google.com>
10074
10075         PR c++/33407
10076         * tree.h (DECL_IS_OPERATOR_NEW): Define.
10077         (struct tree_function_decl): Add new field operator_new_flag.
10078         * tree-inline.c (expand_call_inline): When inlining a call to
10079         operator new, force the return value to go into a variable, and
10080         set DECL_NO_TBAA_P on that variable.
10081         * c-decl.c (merge_decls): Merge DECL_IS_OPERATOR_NEW flag.
10082
10083 2008-01-18  Uros Bizjak  <ubizjak@gmail.com>
10084
10085         PR debug/34484
10086         * dwarf2out.c (dwarf2out_switch_text_section): Do not guard with
10087         DWARF2_DEBUGGING_INFO.
10088         (dwarf2out_note_section_used): Ditto.  Add prototype.
10089         (have_multiple_function_sections, text_section_used,
10090         cold_text_section_used, *cold_text_sections): Move declarations
10091         before their uses.
10092
10093 2008-01-17  Bob Wilson  <bob.wilson@acm.org>
10094
10095         * config/xtensa/unwind-dw2-xtensa.h (_Unwind_FrameState): Remove pc
10096         field and add signal_ra.
10097         * config/xtensa/unwind-dw2-xtensa.c (uw_frame_state_for): Remove
10098         assignments to frame state pc.  Move end of stack check after
10099         MD_FALLBACK_FRAME_STATE_FOR.
10100         (uw_update_context_1): Use frame state signal_regs if set, instead
10101         of checking signal_frame flag.
10102         (uw_update_context): Use frame state signal_ra if set.
10103         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Define.
10104         * config/xtensa/linux-unwind.h: New file.
10105
10106 2008-01-18  Bernhard Fischer  <aldot@gcc.gnu.org>
10107
10108         * modulo-sched.c (get_sched_window): Fix comment typo.
10109
10110 2008-01-17  Andrew MacLeod  <amacleod@redhat.com>
10111
10112         PR tree-optimization/34648
10113         * tree-ssa-sccvn.c (visit_use): Expressions which can throw are varying.
10114
10115 2008-01-17  Anatoly Sokolov <aesok@post.ru>
10116
10117         * config/avr/avr.h (LINK_SPEC): Support -mrelax and -mpmem-wrap-around.
10118         * config/avr/avr.opt (mrelax, mpmem-wrap-around): Add.
10119
10120 2008-01-17  Seongbae Park  <seongbae.park@gmail.com>
10121
10122         PR rtl-optimization/34400
10123         * df-core.c (df_worklist_dataflow_overeager,
10124         df_worklist_dataflow_doublequeue): New functions.
10125         (df_worklist_dataflow): Two different worklist solvers.
10126         * params.def (PARAM_DF_DOUBLE_QUEUE_THRESHOLD_FACTOR):
10127         New param.
10128
10129 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10130
10131         PR testsuite/34821
10132         * doc/invoke.texi: Document the dependence on pthread for fopenmp
10133         and ftree-parallelize-loops.
10134
10135 2008-01-17  Mircea Namolaru  <namolaru@il.ibm.com>
10136
10137         PR rtl-optimization/34826
10138         * loop-doloop (doloop_modify): Update the REG_BR_PROB note.
10139
10140 2008-01-17  Andreas Krebbel  <krebbel1@de.ibm.com>
10141
10142         * global.c (find_reg): Mark the eh regs as used if necessary.
10143         * ra-conflict.c (global_conflicts): Set no_eh_reg flag.
10144         * ra.h (struct allocno): no_eh_reg field added.  Changed
10145         no_stack_reg type to bitfield.
10146
10147 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10148
10149         * tree.c (substitute_in_expr): Add missing 'break'.
10150
10151 2008-01-17  Richard Guenther  <rguenther@suse.de>
10152
10153         PR tree-optimization/34825
10154         * tree-ssa-math-opts.c (is_division_by): Do not recognize
10155         x / x as division to handle.
10156
10157 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10158
10159         * pa64-hpux.h (LIB_SPEC): Add "-lpthread" in shared links if "-mt" or
10160         "-pthread" is specified.
10161         * pa-hpux11.h (LIB_SPEC): Likewise.
10162
10163 2008-01-16  Janis Johnson  <janis187@us.ibm.com>
10164             Peter Bergner  <bergner@vnet.ibm.com>
10165
10166         PR rtl-optimization/33796
10167         * sparseset.c (sparseset_alloc): Use xcalloc rather than xmalloc.
10168
10169 2008-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10170
10171         PR libgfortran/34699
10172         * pa-hpux.h (LINK_SPEC): Only search /lib/pa1.1 and /usr/lib/pa1.1 on
10173         static links.
10174         * pa-hpux10.h (LINK_SPEC): Likewise.
10175         * pa-hpux11.h (LINK_SPEC): Don't search /lib/pa1.1 and /usr/lib/pa1.1.
10176
10177 2008-01-16  Richard Guenther  <rguenther@suse.de>
10178
10179         PR middle-end/32628
10180         * fold-const.c (fold_convert_const_int_from_int): Do not
10181         set overflow if that occured only because of a sign extension
10182         change when converting from/to a sizetype with the same
10183         precision and signedness.
10184
10185 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10186
10187         PR debug/34249
10188         * dwarf2out.c (output_call_frame_info): Move output of FDE initial
10189         location address to the correct place.  Update copyright year.
10190
10191 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10192
10193         * lambda-code.c (lambda_transform_legal_p): Handle the case of
10194         no dependences in the dependence_relations vector.
10195
10196 2008-01-16  Jan Hubicka  <jh@suse.cz>
10197
10198         PR rtl-optimization/31396
10199         * regstat.c (regstat_bb_compute_ri): Compute FREQ_CALLS_CROSSED.
10200         * cfg.c (dump_reg_info): Print it.
10201         * regs.h (struct reg_info_t): add freq_calls_crossed.
10202         (REG_FREQ_CALLS_CROSSED): New macro.
10203         * global.c (global_alloc): Compute freq_calls_crossed for allocno.
10204         (find_reg): Update call of CALLER_SAVE_PROFITABLE.
10205         * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2,
10206         regmove_optimize): Update call crossed frequencies.
10207         * local-alloc.c (struct qty): Add freq_calls_crossed.
10208         (alloc_qty): Copute freq_calls_crossed.
10209         (update_equiv_regs, combine_regs): Update REG_FREQ_CALLS_CROSSED.
10210         (find_free_reg): Update call of CALLER_SAVE_PROFITABLE.
10211         * ra.h (struct allocno): Add freq_calls_crossed.
10212
10213 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10214
10215         * gcc.c (LINK_COMMAND_SPEC): Add includes and link options for
10216         libgomp when compiling with ftree-parallelize-loops.
10217         (GOMP_SELF_SPECS): Add -pthread for ftree-parallelize-loops.
10218
10219 2008-01-16  Richard Guenther  <rguenther@suse.de>
10220
10221         PR tree-optimization/34769
10222         * tree-data-ref.c (initialize_matrix_A): Revert fix for PR34458.
10223         * tree.c (int_cst_value): Instead make this function more
10224         permissive in what it accepts as valid input.  Document this
10225         function always sign-extends the value.
10226
10227 2008-01-16  Jakub Jelinek  <jakub@redhat.com>
10228             Richard Guenther  <rguenther@suse.de>
10229
10230         PR c/34668
10231         * gimplify.c (fold_indirect_ref_rhs): Rename to ...
10232         (gimple_fold_indirect_ref_rhs): ... this.
10233         (gimple_fold_indirect_ref): New function with foldings
10234         that preserve lvalueness.
10235         (gimplify_modify_expr_rhs): Call gimple_fold_indirect_ref_rhs.
10236         * tree-flow.h (gimple_fold_indirect_ref): Declare.
10237         * tree-inline.c (copy_body_r): Use gimple_fold_indirect_ref
10238         to fold an INDIRECT_REF, fall back to the old use of
10239         fold_indirect_ref_1.
10240
10241 2008-01-16  Sebastian Pop  <sebastian.pop@amd.com>
10242
10243         * tree-data-ref.c (subscript_dependence_tester_1): Call 
10244         free_conflict_function.
10245         (compute_self_dependence): Same.
10246
10247 2008-01-16  Uros Bizjak  <ubizjak@gmail.com>
10248
10249         PR debug/34249
10250         * debug.h (dwarf2out_switch_text_section): Move declaration from ...
10251         * dwarf2out.c (dwarf2out_switch_text_section): ... here.  Make
10252         function global.
10253         * final.c (final_scan_insn) [NOTE_INSN_SWITCH_TEXT_SECTIONS]:
10254         Depending on dwarf2out_do_frame, call dwarf2out_switch_text_section
10255         for DWARF2_UNWIND_INFO targets.
10256
10257 2008-01-16  Richard Guenther  <rguenther@suse.de>
10258
10259         PR c/34768
10260         * c-typeck.c (common_pointer_type): Do not merge inconsistent
10261         type qualifiers for function types.
10262
10263 2008-01-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10264
10265         * tree-parloops.c (gen_parallel_loop): Fix ommision of declaration for
10266         loop_iterator li from previous commit.
10267
10268 2008-01-15  Sebastian Pop  <sebastian.pop@amd.com>
10269
10270         * tree-parloops.c (gen_parallel_loop): Free loop bound estimations.
10271
10272 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10273
10274         * tree-parloops.c (loop_has_blocks_with_irreducible_flag): New.
10275         (parallelize_loops): Don't parallelize irreducible components.
10276
10277 2008-01-14  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10278
10279         PR c++/24924
10280         * c-opts (c_common_post_options): Do not enable CPP
10281         flag_pedantic_errors by default.
10282         
10283 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
10284
10285         PR rtl-optimization/31944
10286         * cse.c (remove_pseudo_from_table): New function.
10287         (merge_equiv_classes): Use above function to remove pseudo-registers.
10288         (invalidate): Likewise.
10289
10290 2008-01-13  Richard Guenther  <rguenther@suse.de>
10291
10292         PR middle-end/34601
10293         * emit-rtl.c (set_reg_attrs_for_decl_rtl): Use DECL_MODE
10294         instead of TYPE_MODE to deal with calls from expand_one_error_var.
10295
10296 2008-01-13  Uros Bizjak  <ubizjak@gmail.com>
10297
10298         * gcse.c (cprop_jump): Call validate_unshare_change instead of
10299         validate_change to unshare the source of the PC set.
10300
10301 2008-01-12  Jan Hubicka  <jh@suse.cz>
10302
10303         PR middle-end/32135
10304         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Do not construct
10305         references above array bounds.  This might trigger bounds checks for
10306         pointers to arrays.
10307
10308 2008-01-12  Sebastian Pop  <sebastian.pop@amd.com>
10309
10310         * tree-ssa-ter.c (free_temp_expr_table): Free num_in_part and
10311         new_replaceable_dependencies.
10312
10313 2008-01-12  Doug Kwan  <dougkwan@google.com>
10314
10315         * c-decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
10316         instead of OPT_Wreturn_type in warning due to ignored return type
10317         qualifiers.
10318         * c-opt.c (c_common_post_option): Add -Wignored-qualifiers to
10319         options included in -Wextra.
10320         * c.opt: New option -Wignored_qualifiers.
10321         * doc/invoke.texi (Warning Options, -Wextra): Add new option
10322         -Wignore_qualifiers.
10323         (-Wignored-qualifiers): Document.
10324         (-Wreturn-type): Remove description of functionality now handled
10325         by -Wignored-qualifiers.
10326
10327 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
10328
10329         PR ada/33788
10330         * fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Fold an existing
10331         NOP_EXPR if it is between integral types with the same precision.
10332
10333 2008-01-12  Jan Hubicka  <jh@suse.cz>
10334
10335         PR other/28023
10336         * invoke.texi (max-inline-recursive-depth): Fix default value.
10337
10338 2008-01-12  Zdenek Dvorak  <ook@ucw.cz>
10339
10340         * tree-parloops.c (transform_to_exit_first_loop): Cast nit to the
10341         correct type.
10342
10343 2008-01-11  Bob Wilson  <bob.wilson@acm.org>
10344         
10345         * config/xtensa/xtensa.c (override_options): Set flag_shlib.
10346         
10347 2008-01-11  James E. Wilson  <wilson@specifix.com>
10348
10349         PR target/26015
10350         * config/vax/elf.h (FRAME_POINTER_CFA_OFFSET): Define.
10351
10352 2008-01-11  Anatoly Sokolov <aesok@post.ru>
10353
10354         * config/avr/avr.c (expand_prologue, expand_epilogue): Don't 
10355         save/restore frame pointer register and don't use 'call-prologues' 
10356         optimization in function with "OS_task" attribute.
10357
10358 2008-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10359
10360         PR middle-end/31309
10361         * expr.c (copy_blkmode_from_reg): Use a mode suited to the size
10362         when copying to memory.
10363
10364 2008-01-11  Steven Bosscher  <stevenb.gcc@gmail.com>
10365
10366         PR rtl-optimization/30905
10367         * cfgcleanup.c: Include dce.h
10368         (crossjumps_occured): New global variable.
10369         (try_crossjump_bb): Exit loop after finding a fallthru edge.
10370         If something changed, set crossjumps_occured to true.
10371         (try_optimize_cfg): Clear crossjumps_occured at the beginning.
10372         Don't add/remove fake edges to exit here...
10373         (cleanup_cfg): ...but do it here, when crossjumping.
10374         Run a fast DCE when successful crossjumps occured in the latest
10375         iteration of try_optimize_cfg.
10376
10377 2008-01-11  Richard Guenther  <rguenther@suse.de>
10378
10379         * tree-ssa-sccvn.c (struct vn_binary_op_s): Move hashcode near opcode.
10380         (struct vn_unary_op_s): Likewise.
10381         (vn_reference_insert): Free old reference on hash collision.
10382
10383 2008-01-10  Raksit Ashok  <raksit@google.com>
10384
10385         PR rtl-optimization/27971
10386         * combine.c (find_split_point): Split PLUS expressions which are
10387         inside a MEM rtx, and whose first operand is complex.
10388
10389 2008-01-10  DJ Delorie  <dj@redhat.com>
10390
10391         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Renamed from...
10392         (m32c_hard_regno_nregs): ...this, which is now a wrapper.
10393         (m32c_hard_regno_ok): Call the underlying function.
10394
10395 2008-01-10  Richard Guenther  <rguenther@suse.de>
10396
10397         PR middle-end/34683
10398         * tree-cfg.c (tree_merge_blocks): Do not go through the
10399         full-blown folding and stmt updating path if we just deal
10400         with virtual operands.
10401         * tree-ssa-copy.c (may_propagate_copy): Do not short-cut
10402         test for abnormal SSA_NAMEs.
10403
10404 2008-01-10  Andreas Krebbel  <krebbel1@de.ibm.com>
10405
10406         PR middle-end/34641
10407         * reload.c (push_reload): Add assertions.  All constants from
10408         reg_equiv_constant should have been used for replacing the respective
10409         pseudo earlier.
10410         (find_reloads_address): Invoke find_reloads_address_part for
10411         constant taken from the reg_equiv_constant array.
10412
10413 2008-01-10  Steven Bosscher  <stevenb.gcc@gmail.com>
10414
10415         * tree-ssa-sccvn.h (struct vn_ssa_aux): Make the most accessed
10416         field (valnum) the first in the struct.  Replace bools with
10417         unit bit fields.
10418
10419 2008-01-10  Richard Guenther  <rguenther@suse.de>
10420
10421         PR tree-optimization/34651
10422         * tree-sra.c (sra_build_assignment): Sanitize.  Use the correct
10423         types and ordering for masking and converting.
10424
10425 2008-01-09  Sebastian Pop  <sebastian.pop@amd.com>
10426
10427         PR tree-optimization/34017
10428         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Generate code
10429         also for PHI_NODE expressions.
10430
10431 2008-01-09  Jan Hubicka  <jh@suse.cz>
10432
10433         PR tree-optimization/34708
10434         * tree-inline.c (estimate_num_insns_1): Compute cost of SWITCH_EXPR
10435         based on number of case labels.
10436         (init_inline_once): Remove switch_cost.
10437         * tree-inline.h (eni_weights_d): Remove switch_cost.
10438
10439 2008-01-09  Richard Guenther  <rguenther@suse.de>
10440         Andrew Pinski  <andrew_pinski@playstation.sony.com>
10441
10442         PR middle-end/30132
10443         * gimplify.c (gimplify_cond_expr): Do not create an addressable
10444         temporary if an rvalue is ok or an lvalue is not required.
10445
10446 2008-01-09  Richard Guenther  <rguenther@suse.de>
10447
10448         PR middle-end/34458
10449         * tree-data-ref.c (initialize_matrix_A): Use tree_low_cst,
10450         adjust return type.
10451
10452 2008-01-09  Richard Guenther  <rguenther@suse.de>
10453
10454         PR middle-end/34679
10455         * tree.c (host_integerp): Check for sizetype only if the
10456         type is an integer type.
10457
10458 2008-01-09  Steven Bosscher  <stevenb.gcc@gmail.com>
10459
10460         PR debug/26364
10461         * opts.c (decode_options): Disable inlining of functions called
10462         once if not in unit-at-a-time mode.
10463
10464 2008-01-09  Alexandre Oliva  <aoliva@redhat.com>
10465
10466         * Makefile.in (dse.o): Remove duplicate $(RECOG_H) dependency.
10467
10468 2008-01-08  Richard Guenther  <rguenther@suse.de>
10469
10470         PR middle-end/31863
10471         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Bail
10472         out early if the result will be unused.
10473
10474 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10475
10476         PR target/34709
10477         Revert:
10478
10479         2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10480         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10481         for TARGET_RECIP.       
10482         
10483 2008-01-08  Jan Sjodin  <jan.sjodin@amd.com>
10484         
10485         * config/i386/i386.c (k8_cost, amdfam10_cost): Branch costs
10486         for vectorization tuned.
10487         
10488 2008-01-08  Richard Guenther  <rguenther@suse.de>
10489
10490         PR tree-optimization/34683
10491         * tree-ssa-operands.c (operand_build_cmp): Export.
10492         * tree-ssa-operands.h (operand_build_cmp): Declare.
10493         * tree-vn.c (vuses_compare): Remove.
10494         (sort_vuses): Use operand_build_cmp.
10495         (sort_vuses_heap): Likewise.
10496         * tree-ssa-sccvn.c (vuses_to_vec): Use VEC_reserve, not VEC_alloc
10497         to re-use old VEC if available.  Do not sort already sorted VUSEs.
10498         (vdefs_to_vec): Do not sort already sorted VDEFs.
10499
10500 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
10501
10502         PR middle-end/34694
10503         * omp-low.c (copy_var_decl): Copy also DECL_SOURCE_LOCATION.
10504
10505 2008-01-08  Uros Bizjak  <ubizjak@gmail.com>
10506
10507         PR target/34702
10508         * doc/invoke.texi (i386 and x86-64 Options) [mrecip]: Document
10509         limitations of reciprocal sequences on x86 targets.
10510
10511 2008-01-08  Richard Guenther  <rguenther@suse.de>
10512
10513         PR tree-optimization/34683
10514         * tree-flow-inline.h (var_ann): Remove overzealous asserts.
10515
10516 2008-01-07  Jakub Jelinek  <jakub@redhat.com>
10517
10518         PR target/34622
10519         * config/darwin.c (darwin_mergeable_string_section): Don't use
10520         .cstring if int_size_in_bytes != TREE_STRING_LENGTH.
10521
10522 2008-01-07  Uros Bizjak  <ubizjak@gmail.com>
10523
10524         PR target/34682
10525         * config/i386/i386.md (neg<mode>2): Rename from negsf2, negdf2 and
10526         negxf2.  Macroize expander using X87MODEF mode iterator.  Change
10527         predicates of op0 and op1 to register_operand.
10528         (abs<mode>2): Rename from abssf2, absdf2 and negxf2.  Macroize
10529         expander using X87MODEF mode iterator.  Change predicates of
10530         op0 and op1 to register_operand.
10531         ("*absneg<mode>2_mixed", "*absneg<mode>2_sse"): Rename from
10532         corresponding patterns and macroize using MODEF macro.  Change
10533         predicates of op0 and op1 to register_operand and remove
10534         "m" constraint. Disparage "r" alternative with "!".
10535         ("*absneg<mode>2_i387"): Rename from corresponding patterns and
10536         macroize using X87MODEF macro.  Change predicates of op0 and op1
10537         to register_operand and remove "m" constraint.  Disparage "r"
10538         alternative with "!".
10539         (absneg splitter with memory operands): Remove.
10540         ("*neg<mode>2_1", "*abs<mode>2_1"): Rename from corresponding
10541         patterns and macroize using X87MODEF mode iterator.
10542         * config/i386/sse.md (negv4sf2, absv4sf2, neg2vdf2, absv2df2):
10543         Change predicate of op1 to register_operand.
10544         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Remove support
10545         for memory operands.
10546
10547 2008-01-07  Nathan Froyd  <froydnj@codesourcery.com>
10548
10549         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add clause for mcpu=8548.
10550
10551 2008-01-07  Richard Guenther  <rguenther@suse.de>
10552
10553         * basic-block.h (struct edge_def): Pair dest_idx with goto_locus
10554         fields.
10555
10556 2008-01-07  Richard Guenther  <rguenther@suse.de>
10557
10558         PR tree-optimization/34683
10559         * tree-ssa-sccvn.c (vuses_to_vec): Pre-allocate the vector of
10560         VOPs of the needed size to save memory.  Use VEC_quick_push
10561         to save compile-time.
10562         (vdefs_to_vec): Likewise.
10563
10564 2008-01-07  Sa Liu  <saliu@de.ibm.com>
10565
10566         * config/spu/spu.md (divdf3): Genetate inline code for double
10567         division.  The implementation doesn't handle INF or NAN, therefore it
10568         only applies when -ffinite-math-only is given.
10569
10570 2008-01-06  Paolo Carlini  <pcarlini@suse.de>
10571
10572         PR libstdc++/34680
10573         * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_RTTI, if appropriate.
10574         * doc/cpp.texi ([Common Predefined Macros]): Document.
10575
10576 2008-01-06  Uros Bizjak  <ubizjak@gmail.com>
10577
10578         * config/i386/i386.c (ix86_emit_swsqrtsf): Use negative constants in
10579         order to use commutative addition instead of subtraction.
10580
10581 2008-01-06  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10582             Mircea Namolaru  <namolaru@il.ibm.com>
10583             Vladimir Yanovsky  <yanov@il.ibm.com>
10584             Revital Eres  <eres@il.ibm.com>
10585
10586         PR tree-optimization/34263
10587         * tree-outof-ssa.c (process_single_block_loop_latch,
10588         contains_tree_r): New functions.
10589         (analyze_edges_for_bb): Call process_single_block_loop_latch
10590         function to empty single-basic-block latch block if possible.
10591
10592 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10593
10594         * config/i386/i386.c (ix86_builtin_reciprocal): Remove check
10595         for TARGET_RECIP.
10596         (ix86_emit_swsqrtsf): Do not filter out infinity for rsqrt expansion.
10597
10598 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10599
10600         * c-omp.c (check_omp_for_incr_expr): Handle CONVERT_EXPR.
10601
10602 2008-01-05  Richard Sandiford  <rsandifo@nildram.co.uk>
10603
10604         * config/mips/mips.c (mips_in_small_data_p): Reinstate size > 0 check.
10605
10606 2008-01-05  Jakub Jelinek  <jakub@redhat.com>
10607
10608         PR tree-optimization/34618
10609         * tree-outof-ssa.c (create_temp): Copy over DECL_GIMPLE_REG_P
10610         flag from T.
10611
10612 2008-01-05  Uros Bizjak  <ubizjak@gmail.com>
10613
10614         PR target/34673
10615         * config/i386/i386.c (ix86_emit_swsqrtsf): Swap input operands
10616         in the call to gen_rtx_NE.  Remove unneeded VECTOR_MODE_P check.
10617         Update copyright year.
10618
10619         * config/i386/i386.md (rsqrtsf2): Enable for TARGET_SSE_MATH.
10620         Update copyright year.
10621         * config/i386/sse.md (rsqrtv4sf2): Ditto. Unconditionally expand
10622         using NR fixup.
10623
10624 2008-01-05  Zhouyi Zhou  <zhouzhouyi@FreeBSD.org>
10625
10626         * tree-vrp.c (find_conditional_asserts): Remove redundant check that
10627         edge does not point to current bb before changing need_assert.
10628
10629 2008-01-04  Richard Guenther  <rguenther@suse.de>
10630
10631         PR middle-end/34029
10632         * tree-cfg.c (verify_expr): Do not look inside ADDR_EXPRs
10633         for verifying purposes if they are is_gimple_min_invariant.
10634
10635 2008-01-04  Aldy Hernandez  <aldyh@redhat.com>
10636
10637         PR tree-optimization/34448
10638         PR tree-optimization/34465
10639         * gimplify.c (gimplify_init_constructor): Add new parameter
10640         notify_temp_creation.  Use it.
10641         (gimplify_modify_expr_rhs): Take volatiles into account when
10642         optimizing constructors.
10643         Do not optimize constructors if gimplify_init_constructor will dump to
10644         memory.
10645         * gcc.dg/tree-ssa/pr32901.c: Tests const volatiles.
10646         * gcc.c-torture/compile/pr34448.c: New.
10647
10648 2008-01-04  Jakub Jelinek  <jakub@redhat.com>
10649
10650         PR gcov-profile/34609
10651         * tree-inline.c (declare_return_variable): Set TREE_ADDRESSABLE on
10652         return_slot if result is TREE_ADDRESSABLE.
10653
10654 2008-01-04  Richard Sandiford  <rsandifo@nildram.co.uk>
10655
10656         * config/mips/mips.md (sqrt_condition): Tweak comment.
10657         (recip_condition): Likewise.  Require TARGET_FLOAT64 for DFmode.
10658
10659 2008-01-03  Tom Tromey  <tromey@redhat.com>
10660
10661         PR c/34457
10662         * c-common.c (c_type_hash): Handle VLAs.
10663
10664 2008-01-03  Jan Hubicka  <jh@suse.cz>
10665
10666         PR tree-optimization/31081
10667         * tree-inline.c (remap_ssa_name): Initialize uninitialized SSA vars to
10668         0 when inlining and not inlining to first basic block.
10669         (remap_decl): When var is initialized to 0, don't set default_def.
10670         (expand_call_inline): Set entry_bb.
10671         * tree-inline.h (copy_body_data): Add entry_bb.
10672
10673 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10674
10675         PR c++/34619
10676         * cgraphunit.c (cgraph_build_static_cdtor): set_cfun back to NULL
10677         before returning.
10678
10679         PR tree-optimization/29484
10680         * tree-inline.c (inline_forbidden_p_2): New function.
10681         (inline_forbidden_p): Disallow inlining if some static var
10682         has an address of a local LABEL_DECL in its initializer.
10683         * doc/extend.texi (Labels as Values): Document &&foo behaviour
10684         vs. inlining.
10685
10686 2008-01-03  Sebastian Pop  <sebastian.pop@amd.com>
10687
10688         PR tree-optimization/34635
10689         * tree-data-ref.c (add_other_self_distances): Make sure that the
10690         evolution step is constant.
10691
10692 2008-01-03  Jakub Jelinek  <jakub@redhat.com>
10693
10694         PR middle-end/34608
10695         * omp-low.c (expand_omp_parallel): Purge dead EH edges in the child fn.
10696
10697 2008-01-02  Richard Sandiford  <rsandifo@nildram.co.uk>
10698
10699         * tree-sra.c (scalarize_init): Insert the generate_element_init
10700         statements after the generate_element_zero statements.
10701
10702 2008-01-02  Richard Guenther  <rguenther@suse.de>
10703
10704         PR middle-end/34093
10705         PR middle-end/31976
10706         * tree-ssa-operands.c (ssa_operand_alloc): Also allocate a buffer
10707         for very large number of operands instead of ICEing.
10708
10709 2008-01-02  Arthur Norman <acn1@cam.ac.uk>
10710
10711         PR target/34013
10712         * config/i386/i386.c (ix86_expand_prologue): Save red-zone
10713         while stack probing.
10714
10715 2008-01-01  Douglas Gregor  <doug.gregor@gmail.com>
10716
10717         * c-opts.c (sanitize_cpp_opts): Don't warn about "long long" when
10718         in C++0x mode.
10719
10720 2008-01-01  Volker Reichelt  <v.reichelt@netcologne.de>
10721
10722         PR libmudflap/26442
10723         * tree-mudflap.c (mx_register_decls): Guard warning by
10724         !DECL_ARTIFICIAL check.
10725
10726 2008-01-01  Jakub Jelinek  <jakub@redhat.com>
10727
10728         * config/i386/sse.md (sse5_pperm, sse5_pperm_pack_v2di_v4si,
10729         sse5_pperm_pack_v4si_v8hi, sse5_pperm_pack_v8hi_v16qi,
10730         sse5_perm<mode>): Fix constraints.